diff --git a/Makefile b/Makefile deleted file mode 100644 index fff7afb5c1ffe44b03b8b80bed149c92da8a49ed..0000000000000000000000000000000000000000 --- a/Makefile +++ /dev/null @@ -1,22 +0,0 @@ -PYTHON?= python -ifeq (${MAKE_HOST}, x86_64-unknown-cygwin) - TWEEGOBIN?= tweego.exe -else - TWEEGOBIN?= tweego -endif - -SRCDIR?= src -STARTFILE?= $(SRCDIR)/config/start.tw -FCTARG?= bin/FC.html -GENINCLUDES?= ./devTools/scripts/includes.py -all: $(FCTARG) - -$(STARTFILE): $(SRCDIR)/config/start.tw.proto $(GENINCLUDES) \ - $(shell find ${SRCDIR} -type d -print) - $(PYTHON) $(GENINCLUDES) $< $@ $(SRCDIR) - -$(FCTARG): $(STARTFILE) $(shell find ${SRCDIR} -type f -name \*.tw -print) - ./devTools/tweeGo/$(TWEEGOBIN) -o $(FCTARG) $(STARTFILE) - -clean: - -$(RM) $(STARTFILE) $(FCTARG) diff --git a/compile b/compile new file mode 100644 index 0000000000000000000000000000000000000000..0bfe49cdfb116a1e229ddff20c5a6d21ec05786a --- /dev/null +++ b/compile @@ -0,0 +1,11 @@ +#!/bin/bash + +# Will add all *.tw files to StoryIncludes. +rm src/config/start.tw +cp src/config/start.tw.proto start.tw.tmp +find src -name '*.tw' -print >>start.tw.tmp +mv start.tw.tmp src/config/start.tw + +./devTools/tweeGo/tweego -o bin/FC.html src/config/start.tw + +rm src/config/start.tw \ No newline at end of file diff --git a/compile.bat b/compile.bat index 541043a8b6f1f3d96f9fb0ce73e2566a92a036af..d8e2e7a999217b5d74f06ff5cc0481f8382ba6d8 100644 --- a/compile.bat +++ b/compile.bat @@ -1,9 +1,14 @@ @echo off :: Free Cities Basic Compiler - Windows x86_64 -:: Uses embedded Python 3.5.3 x86_64 :: Will add all *.tw files to StoryIncludes. -"%~dp0devTools\python-3.5.3\python.exe" "%~dp0devTools\scripts\includes.py" "src\config\start.tw.proto" "src\config\start.tw" "src" "%*" +del src\config\start.tw +copy src\config\start.tw.proto start.tw.tmp >nul +>>start.tw.tmp (for /r "src" %%F in (*.tw) do echo %%F) +move start.tw.tmp src\config\start.tw >nul CALL "%~dp0devTools\tweeGo\tweego.exe" -o "%~dp0bin/FC.html" "%~dp0src\config\start.tw" + +del src\config\start.tw + ECHO Done diff --git a/compile_debug.bat b/compile_debug.bat index 0d94e4fda8d6afc25f07df22ba2b97f8b9c60b77..044969418c16e8ef6800c075052e10113f97c1b0 100644 --- a/compile_debug.bat +++ b/compile_debug.bat @@ -2,10 +2,15 @@ :: Free Cities Basic Compiler - Windows x86_64 :: Will wait for keypress before terminating. -:: Uses embedded Python 3.5.3 x86_64 :: Will add all *.tw files to StoryIncludes. -"%~dp0devTools\python-3.5.3\python.exe" "%~dp0devTools\scripts\includes.py" "src\config\start.tw.proto" "src\config\start.tw" "src" "%*" +del src\config\start.tw +copy src\config\start.tw.proto start.tw.tmp >nul +>>start.tw.tmp (for /r "src" %%F in (*.tw) do echo %%F) +move start.tw.tmp src\config\start.tw >nul CALL "%~dp0devTools\tweeGo\tweego.exe" -o "%~dp0bin/FC.html" "%~dp0src\config\start.tw" + +del src\config\start.tw + ECHO Done -PAUSE +PAUSE \ No newline at end of file diff --git a/devNotes/Slave Generation Widgets.txt b/devNotes/Slave Generation Widgets.txt new file mode 100644 index 0000000000000000000000000000000000000000..242279d61582591e4c7f784e0381e420d4d00901 --- /dev/null +++ b/devNotes/Slave Generation Widgets.txt @@ -0,0 +1,910 @@ +:: slave generation widgets [nobr] + +<<widget "NationalityToRace">> + +<<if $fixedRace == 0>> + +<<if ($activeSlave.nationality is "American")>> + <<set $activeSlave.race to either("black", "middle eastern", "white", "white", "white", "latina", "latina", "asian", "amerindian", "mixed race")>> +<<elseif ($activeSlave.nationality is "Canadian")>> + <<set $activeSlave.race to either("white", "white", "white", "white", "amerindian")>> +<<elseif ($activeSlave.nationality is "Puerto Rican")>> + <<set $activeSlave.race to either("latina")>> +<<elseif ($activeSlave.nationality is "Cuban")>> + <<set $activeSlave.race to either("latina", "black")>> +<<elseif ($activeSlave.nationality is "Haitian")>> + <<set $activeSlave.race to either("black")>> +<<elseif ($activeSlave.nationality is "Jamaican")>> + <<set $activeSlave.race to either("black")>> +<<elseif ($activeSlave.nationality is "Mexican")>> + <<set $activeSlave.race to either("latina", "latina", "latina", "latina", "latina", "amerindian")>> +<<elseif ($activeSlave.nationality is "Dominican")>> + <<set $activeSlave.race to either("mixed race", "mixed race", "mixed race", "mixed race", "mixed race", "mixed race", "mixed race", "white", "white", "black")>> +<<elseif ($activeSlave.nationality is "Peruvian")>> + <<set $activeSlave.race to either("latina", "amerindian")>> +<<elseif ($activeSlave.nationality is "Venezuelan")>> + <<set $activeSlave.race to either("latina")>> +<<elseif ($activeSlave.nationality is "Bolivian")>> + <<set $activeSlave.race to either("latina", "amerindian")>> +<<elseif ($activeSlave.nationality is "Guatemalan")>> + <<set $activeSlave.race to either("latina", "amerindian")>> +<<elseif ($activeSlave.nationality is "Brazilian")>> + <<set $activeSlave.race to either("black", "latina", "mixed race", "mixed race", "amerindian", "white")>> +<<elseif ($activeSlave.nationality is "Argentinian")>> + <<set $activeSlave.race to either("white", "latina", "latina")>> +<<elseif ($activeSlave.nationality is "Chilean")>> + <<set $activeSlave.race to either("white", "latina", "latina", "latina")>> +<<elseif ($activeSlave.nationality is "Colombian")>> + <<set $activeSlave.race to either("latina")>> +<<elseif ($activeSlave.nationality is "Egyptian")>> + <<set $activeSlave.race to either("black", "middle eastern", "middle eastern", "middle eastern", "semitic")>> +<<elseif ($activeSlave.nationality is "Turkish")>> + <<set $activeSlave.race to either("middle eastern", "middle eastern", "middle eastern", "semitic")>> +<<elseif ($activeSlave.nationality is "Iranian")>> + <<set $activeSlave.race to either("indo-aryan", "indo-aryan", "indo-aryan", "semitic")>> +<<elseif ($activeSlave.nationality is "Armenian")>> + <<set $activeSlave.race to either("indo-aryan", "semitic")>> +<<elseif ($activeSlave.nationality is "Israeli")>> + <<set $activeSlave.race to either("white", "middle eastern", "semitic", "semitic")>> +<<elseif ($activeSlave.nationality is "Saudi")>> + <<set $activeSlave.race to either("black", "asian", "middle eastern", "middle eastern")>> +<<elseif ($activeSlave.nationality is "Moroccan")>> + <<set $activeSlave.race to either("middle eastern", "middle eastern", "black")>> +<<elseif ($activeSlave.nationality is "Nigerian")>> + <<set $activeSlave.race to either("black")>> +<<elseif ($activeSlave.nationality is "Kenyan")>> + <<set $activeSlave.race to either("black")>> +<<elseif ($activeSlave.nationality is "Zimbabwean")>> + <<set $activeSlave.race to either("black", "black", "black", "black", "white")>> +<<elseif ($activeSlave.nationality is "Ugandan")>> + <<set $activeSlave.race to either("black")>> +<<elseif ($activeSlave.nationality is "Tanzanian")>> + <<set $activeSlave.race to either("black", "black", "black", "semitic")>> +<<elseif ($activeSlave.nationality is "Ghanan")>> + <<set $activeSlave.race to either("black", "black", "black", "semitic")>> +<<elseif ($activeSlave.nationality is "Congolese")>> + <<set $activeSlave.race to either("black")>> +<<elseif ($activeSlave.nationality is "Ethiopian")>> + <<set $activeSlave.race to either("black", "black", "black", "middle eastern", "semitic")>> +<<elseif ($activeSlave.nationality is "South African")>> + <<set $activeSlave.race to either("black", "black", "black", "white")>> +<<elseif ($activeSlave.nationality is "Chinese")>> + <<set $activeSlave.race to either("asian")>> +<<elseif ($activeSlave.nationality is "Korean")>> + <<set $activeSlave.race to either("asian")>> +<<elseif ($activeSlave.nationality is "Japanese")>> + <<set $activeSlave.race to either("asian")>> +<<elseif ($activeSlave.nationality is "Thai")>> + <<set $activeSlave.race to either("asian", "asian", "malay")>> +<<elseif ($activeSlave.nationality is "Vietnamese")>> + <<set $activeSlave.race to either("asian")>> +<<elseif ($activeSlave.nationality is "Indonesian")>> + <<set $activeSlave.race to either("asian", "malay", "malay", "pacific islander")>> +<<elseif ($activeSlave.nationality is "Filipina")>> + <<set $activeSlave.race to either("asian", "malay", "malay", "pacific islander")>> +<<elseif ($activeSlave.nationality is "Burmese")>> + <<set $activeSlave.race to either("asian", "asian", "indo-aryan")>> +<<elseif ($activeSlave.nationality is "Nepalese")>> + <<set $activeSlave.race to either("asian", "asian", "indo-aryan")>> +<<elseif ($activeSlave.nationality is "Uzbek")>> + <<set $activeSlave.race to either("asian")>> +<<elseif ($activeSlave.nationality is "Afghan")>> + <<set $activeSlave.race to either("indo-aryan", "middle eastern")>> +<<elseif ($activeSlave.nationality is "Algerian")>> + <<set $activeSlave.race to either("middle eastern")>> +<<elseif ($activeSlave.nationality is "Libyan")>> + <<set $activeSlave.race to either("middle eastern")>> +<<elseif ($activeSlave.nationality is "Tunisian")>> + <<set $activeSlave.race to either("middle eastern")>> +<<elseif ($activeSlave.nationality is "Lebanese")>> + <<set $activeSlave.race to either("middle eastern", "semitic")>> +<<elseif ($activeSlave.nationality is "Jordanian")>> + <<set $activeSlave.race to either("middle eastern", "semitic")>> +<<elseif ($activeSlave.nationality is "Emirati")>> + <<set $activeSlave.race to either("middle eastern", "indo-aryan")>> +<<elseif ($activeSlave.nationality is "Omani")>> + <<set $activeSlave.race to either("middle eastern", "indo-aryan")>> +<<elseif ($activeSlave.nationality is "Malian")>> + <<set $activeSlave.race to either("black", "black", "black", "black", "black", "middle eastern")>> +<<elseif ($activeSlave.nationality is "Sudanese")>> + <<set $activeSlave.race to either("black", "black", "black", "middle eastern")>> +<<elseif ($activeSlave.nationality is "Yemeni")>> + <<set $activeSlave.race to either("black", "semitic", "middle eastern", "middle eastern", "middle eastern")>> +<<elseif ($activeSlave.nationality is "Iraqi")>> + <<set $activeSlave.race to either("semitic", "middle eastern", "middle eastern", "middle eastern", "middle eastern")>> +<<elseif ($activeSlave.nationality is "Indian")>> + <<set $activeSlave.race to either("indo-aryan")>> +<<elseif ($activeSlave.nationality is "Malaysian")>> + <<set $activeSlave.race to either("asian", "malay", "malay", "malay")>> +<<elseif ($activeSlave.nationality is "Kazakh")>> + <<set $activeSlave.race to either("asian", "asian", "asian", "semitic", "indo-aryan")>> +<<elseif ($activeSlave.nationality is "Pakistani")>> + <<set $activeSlave.race to either("indo-aryan", "indo-aryan", "indo-aryan", "semitic")>> +<<elseif ($activeSlave.nationality is "Bangladeshi")>> + <<set $activeSlave.race to either("indo-aryan")>> +<<elseif ($activeSlave.nationality is "Belarusian")>> + <<set $activeSlave.race to either("white")>> +<<elseif ($activeSlave.nationality is "Russian")>> + <<set $activeSlave.race to either("white")>> +<<elseif ($activeSlave.nationality is "Ukrainian")>> + <<set $activeSlave.race to either("white")>> +<<elseif ($activeSlave.nationality is "Irish")>> + <<set $activeSlave.race to either("white")>> +<<elseif ($activeSlave.nationality is "Icelandic")>> + <<set $activeSlave.race to either("white")>> +<<elseif ($activeSlave.nationality is "Finnish")>> + <<set $activeSlave.race to either("white")>> +<<elseif ($activeSlave.nationality is "Swiss")>> + <<set $activeSlave.race to either("white")>> +<<elseif ($activeSlave.nationality is "Danish")>> + <<set $activeSlave.race to either("white")>> +<<elseif ($activeSlave.nationality is "Norwegian")>> + <<set $activeSlave.race to either("white")>> +<<elseif ($activeSlave.nationality is "Austrian")>> + <<set $activeSlave.race to either("white")>> +<<elseif ($activeSlave.nationality is "Slovak")>> + <<set $activeSlave.race to either("white", "white", "white", "white", "indo-aryan")>> +<<elseif ($activeSlave.nationality is "Dutch")>> + <<set $activeSlave.race to either("white")>> +<<elseif ($activeSlave.nationality is "Belgian")>> + <<set $activeSlave.race to either("white")>> +<<elseif ($activeSlave.nationality is "Czech")>> + <<set $activeSlave.race to either("white")>> +<<elseif ($activeSlave.nationality is "Serbian")>> + <<set $activeSlave.race to either("white")>> +<<elseif ($activeSlave.nationality is "Portuguese")>> + <<set $activeSlave.race to either("white")>> +<<elseif ($activeSlave.nationality is "Hungarian")>> + <<set $activeSlave.race to either("white", "white", "white", "white", "indo-aryan")>> +<<elseif ($activeSlave.nationality is "Estonian")>> + <<set $activeSlave.race to either("white")>> +<<elseif ($activeSlave.nationality is "Polish")>> + <<set $activeSlave.race to either("white")>> +<<elseif ($activeSlave.nationality is "Lithuanian")>> + <<set $activeSlave.race to either("white")>> +<<elseif ($activeSlave.nationality is "Romanian")>> + <<set $activeSlave.race to either("semitic", "white", "white", "white", "white", "indo-aryan")>> +<<elseif ($activeSlave.nationality is "German")>> + <<set $activeSlave.race to either("black", "middle eastern", "white", "white", "white", "white", "white", "white")>> +<<elseif ($activeSlave.nationality is "Swedish")>> + <<set $activeSlave.race to either("middle eastern", "white", "white", "white", "white")>> +<<elseif ($activeSlave.nationality is "French")>> + <<set $activeSlave.race to either("black", "middle eastern", "white", "white", "white", "white", "white", "southern European")>> +<<elseif ($activeSlave.nationality is "Italian")>> + <<set $activeSlave.race to either("middle eastern", "southern European", "southern European", "white", "white")>> +<<elseif ($activeSlave.nationality is "Greek")>> + <<set $activeSlave.race to either("southern European")>> +<<elseif ($activeSlave.nationality is "Spanish")>> + <<set $activeSlave.race to either("semitic", "southern European", "southern European")>> +<<elseif ($activeSlave.nationality is "British")>> + <<set $activeSlave.race to either("indo-aryan", "white", "white", "white", "white", "white", "white", "white", "white", "white")>> +<<elseif ($activeSlave.nationality is "Scottish")>> + <<set $activeSlave.race to either("middle eastern", "indo-aryan", "white", "white", "white", "white", "white", "white", "white")>> +<<elseif ($activeSlave.nationality is "Australian")>> + <<set $activeSlave.race to either("white", "white", "black", "asian")>> +<<elseif ($activeSlave.nationality is "a New Zealander")>> + <<set $activeSlave.race to either("white", "white", "white", "white", "pacific islander")>> +<</if>> + +/% Begin mixed race rate adjustment. %/ +/% Some countries are extremely ethnically homogeneous and unlikely to change soon. %/ +<<if ($activeSlave.nationality is "Japanese")>> + <<if random(1,100) > 98>> + <<set $activeSlave.race to "mixed race">> + <</if>> +<<elseif ($activeSlave.nationality is "Korean")>> + <<if random(1,100) > 95>> + <<set $activeSlave.race to "mixed race">> + <</if>> +<<elseif ($activeSlave.nationality is "Polish") or ($activeSlave.nationality is "Romanian") or ($activeSlave.nationality is "Bulgarian") or ($activeSlave.nationality is "Lithuanian") or ($activeSlave.nationality is "Croatian")>> + /% Croatia isn't an origin currently but the game might add it in the future. %/ + <<if random(1,100) > 98>> + <<set $activeSlave.race to "mixed race">> + <</if>> +<<elseif random(1,100) > 90>> + /% Default rate. %/ + <<set $activeSlave.race to "mixed race">> +<</if>> +/% End mixed race rate adjustment. %/ + +<<else>> + +<<switch $fixedRace>> +<<case "white">> + <<set $activeSlave.nationality to $whiteNationalities.random()>> +<<case "asian">> + <<set $activeSlave.nationality to $asianNationalities.random()>> +<<case "latina">> + <<set $activeSlave.nationality to $latinaNationalities.random()>> +<<case "middle eastern">> + <<set $activeSlave.nationality to $middleEasternNationalities.random()>> +<<case "black">> + <<set $activeSlave.nationality to $blackNationalities.random()>> +<<case "indo-aryan">> + <<set $activeSlave.nationality to $indoAryan"Nationalities.random()>> +<<case "pacific islander">> + <<set $activeSlave.nationality to $pacificIslanderNationalities.random()>> +<<case "malay">> + <<set $activeSlave.nationality to $malayNationalities.random()>> +<<case "amerindian">> + <<set $activeSlave.nationality to $amerindianNationalities.random()>> +<<case "southern european">> + <<set $activeSlave.nationality to $southernEuropean"Nationalities.random()>> +<<case "semitic">> + <<set $activeSlave.nationality to $semiticNationalities.random()>> +<</switch>> +<<set $activeSlave.race = $fixedRace>> + +<</if>> + +<<if $arcologies[0].FSSupremacistLawME != 0>> +<<if $activeSlave.race == $arcologies[0].FSSupremacistRace>> + <<set $activeSlave.race to "mixed race">> +<</if>> +<</if>> + +<</widget>> + +<<widget "NationalityToName">> + +<<if ($activeSlave.nationality is "American")>> + <<if $activeSlave.race is "black">> + <<set $activeSlave.birthName to $africanAmericanSlaveNames.random()>> + <<elseif $activeSlave.race is "latina">> + <<set $activeSlave.birthName to $latinaSlaveNames.random()>> + <<elseif $activeSlave.race is "asian">> + <<set $activeSlave.birthName to $asianAmericanSlaveNames.random()>> + <<elseif $activeSlave.race is "middle eastern">> + <<set $activeSlave.birthName to $egyptianSlaveNames.random()>> + <<else>> + <<set $activeSlave.birthName to $whiteAmericanSlaveNames.random()>> + <</if>> +<<case "Canadian">> + <<set $activeSlave.birthName to $canadianSlaveNames.random()>> +<<case "Mexican">> + <<set $activeSlave.birthName to $mexicanSlaveNames.random()>> +<<case "Dominican">> + <<set $activeSlave.birthName to $dominicanSlaveNames.random()>> +<<case "Puerto Rican">> + <<set $activeSlave.birthName to $puertoRicanSlaveNames.random()>> +<<case "Haitian">> + <<set $activeSlave.birthName to $haitianSlaveNames.random()>> +<<case "Jamaican">> + <<set $activeSlave.birthName to $jamaicanSlaveNames.random()>> +<<case "Cuban">> + <<set $activeSlave.birthName to $cubanSlaveNames.random()>> +<<case "Guatemalan">> + <<set $activeSlave.birthName to $guatemalanSlaveNames.random()>> +<<case "Chilean">> + <<set $activeSlave.birthName to $chileanSlaveNames.random()>> +<<case "Peruvian">> + <<set $activeSlave.birthName to $peruvianSlaveNames.random()>> +<<case "Bolivian">> + <<set $activeSlave.birthName to $bolivianSlaveNames.random()>> +<<case "Venezuelan">> + <<set $activeSlave.birthName to $venezuelanSlaveNames.random()>> +<<case "Belarusian">> + <<set $activeSlave.birthName to $belarusianSlaveNames.random()>> +<<case "Russian">> + <<set $activeSlave.birthName to $russianSlaveNames.random()>> +<<case "Ukrainian">> + <<set $activeSlave.birthName to $ukrainianSlaveNames.random()>> +<<case "Italian">> + <<set $activeSlave.birthName to $italianSlaveNames.random()>> +<<case "Spanish">> + <<set $activeSlave.birthName to $spanishSlaveNames.random()>> +<<case "British">> + <<set $activeSlave.birthName to $britishSlaveNames.random()>> +<<case "Scottish">> + <<set $activeSlave.birthName to $scottishSlaveNames.random()>> +<<case "French">> + <<set $activeSlave.birthName to $frenchSlaveNames.random()>> +<<case "German">> + <<set $activeSlave.birthName to $germanSlaveNames.random()>> +<<case "Lithuanian">> + <<set $activeSlave.birthName to $lithuanianSlaveNames.random()>> +<<case "Norwegian">> + <<set $activeSlave.birthName to $norwegianSlaveNames.random()>> +<<case "Slovak">> + <<set $activeSlave.birthName to $slovakSlaveNames.random()>> +<<case "Danish">> + <<set $activeSlave.birthName to $danishSlaveNames.random()>> +<<case "Dutch">> + <<set $activeSlave.birthName to $dutchSlaveNames.random()>> +<<case "Austrian">> + <<set $activeSlave.birthName to $austrianSlaveNames.random()>> +<<case "Swiss">> + <<set $activeSlave.birthName to $swissSlaveNames.random()>> +<<case "Serbian">> + <<set $activeSlave.birthName to $serbianSlaveNames.random()>> +<<case "Belgian">> + <<set $activeSlave.birthName to $belgianSlaveNames.random()>> +<<case "Czech">> + <<set $activeSlave.birthName to $czechSlaveNames.random()>> +<<case "Portuguese">> + <<set $activeSlave.birthName to $portugueseSlaveNames.random()>> +<<case "Swedish">> + <<set $activeSlave.birthName to $swedishSlaveNames.random()>> +<<case "Romanian">> + <<set $activeSlave.birthName to $romanianSlaveNames.random()>> +<<case "Hungarian">> + <<set $activeSlave.birthName to $hungarianSlaveNames.random()>> +<<case "Estonian">> + <<set $activeSlave.birthName to $estonianSlaveNames.random()>> +<<case "Irish">> + <<set $activeSlave.birthName to $irishSlaveNames.random()>> +<<case "Icelandic">> + <<set $activeSlave.birthName to $icelandicSlaveNames.random()>> +<<case "Finnish">> + <<set $activeSlave.birthName to $finnishSlaveNames.random()>> +<<case "Greek">> + <<set $activeSlave.birthName to $greekSlaveNames.random()>> +<<case "Polish">> + <<set $activeSlave.birthName to $polishSlaveNames.random()>> +<<case "Brazilian">> + <<set $activeSlave.birthName to $brazilianSlaveNames.random()>> +<<case "Egyptian">> + <<set $activeSlave.birthName to $egyptianSlaveNames.random()>> +<<case "Colombian">> + <<set $activeSlave.birthName to $colombianSlaveNames.random()>> +<<case "Argentinian">> + <<set $activeSlave.birthName to $argentinianSlaveNames.random()>> +<<case "Turkish">> + <<set $activeSlave.birthName to $turkishSlaveNames.random()>> +<<case "Iranian">> + <<set $activeSlave.birthName to $iranianSlaveNames.random()>> +<<case "Armenian">> + <<set $activeSlave.birthName to $armenianSlaveNames.random()>> +<<case "Israeli">> + <<set $activeSlave.birthName to $israeliSlaveNames.random()>> +<<case "Saudi">> + <<set $activeSlave.birthName to $saudiSlaveNames.random()>> +<<case "South African">> + <<if $activeSlave.race is "black">> + <<set $activeSlave.birthName to $blackSouthAfricanSlaveNames.random()>> + <<else>> + <<set $activeSlave.birthName to $whiteSouthAfricanSlaveNames.random()>> + <</if>> +<<case "Nigerian">> + <<set $activeSlave.birthName to $nigerianSlaveNames.random()>> +<<case "Congolese">> + <<set $activeSlave.birthName to $congoleseSlaveNames.random()>> +<<case "Kenyan">> + <<set $activeSlave.birthName to $kenyanSlaveNames.random()>> +<<case "Tanzanian">> + <<set $activeSlave.birthName to $tanzanianSlaveNames.random()>> +<<case "Zimbabwean">> + <<if $activeSlave.race == "white">> + <<set $activeSlave.birthName to $britishSlaveNames.random()>> + <<else>> + <<set $activeSlave.birthName to $zimbabweanSlaveNames.random()>> + <</if>> +<<case "Ghanan">> + <<set $activeSlave.birthName to $ghananSlaveNames.random()>> +<<case "Ugandan">> + <<set $activeSlave.birthName to $ugandanSlaveNames.random()>> +<<case "Ethiopian">> + <<set $activeSlave.birthName to $ethiopianSlaveNames.random()>> +<<case "Moroccan">> + <<set $activeSlave.birthName to $moroccanSlaveNames.random()>> +<<case "Chinese">> + <<set $activeSlave.birthName to $chineseSlaveNames.random()>> +<<case "Korean">> + <<set $activeSlave.birthName to $koreanSlaveNames.random()>> +<<case "Thai">> + <<set $activeSlave.birthName to $thaiSlaveNames.random()>> +<<case "Vietnamese">> + <<set $activeSlave.birthName to $vietnameseSlaveNames.random()>> +<<case "Japanese">> + <<set $activeSlave.birthName to $japaneseSlaveNames.random()>> +<<case "Indonesian">> + <<set $activeSlave.birthName to $indonesianSlaveNames.random()>> +<<case "Filipina">> + <<set $activeSlave.birthName to $filipinaSlaveNames.random()>> +<<case "Bangladeshi">> + <<set $activeSlave.birthName to $bangladeshiSlaveNames.random()>> +<<case "Malaysian">> + <<set $activeSlave.birthName to $malaysianSlaveNames.random()>> +<<case "Uzbek">> + <<set $activeSlave.birthName to $uzbekSlaveNames.random()>> +<<case "Afghan">> + <<set $activeSlave.birthName to $afghanSlaveNames.random()>> +<<case "Nepalese">> + <<set $activeSlave.birthName to $nepaleseSlaveNames.random()>> +<<case "Burmese">> + <<set $activeSlave.birthName to $burmeseSlaveNames.random()>> +<<case "Iraqi">> + <<set $activeSlave.birthName to $iraqiSlaveNames.random()>> +<<case "Yemeni">> + <<set $activeSlave.birthName to $yemeniSlaveNames.random()>> +<<case "Sudanese">> + <<set $activeSlave.birthName to $sudaneseSlaveNames.random()>> +<<case "Algerian">> + <<set $activeSlave.birthName to $algerianSlaveNames.random()>> +<<case "Tunisian">> + <<set $activeSlave.birthName to $tunisianSlaveNames.random()>> +<<case "Libyan">> + <<set $activeSlave.birthName to $libyanSlaveNames.random()>> +<<case "Omani">> + <<set $activeSlave.birthName to $omaniSlaveNames.random()>> +<<case "Malian">> + <<set $activeSlave.birthName to $malianSlaveNames.random()>> +<<case "Jordanian">> + <<set $activeSlave.birthName to $jordanianSlaveNames.random()>> +<<case "Lebanese">> + <<set $activeSlave.birthName to $lebaneseSlaveNames.random()>> +<<case "Emirati">> + <<set $activeSlave.birthName to $emiratiSlaveNames.random()>> +<<case "Kazakh">> + <<set $activeSlave.birthName to $kazakhSlaveNames.random()>> +<<case "Pakistani">> + <<set $activeSlave.birthName to $pakistaniSlaveNames.random()>> +<<case "Indian">> + <<set $activeSlave.birthName to $indianSlaveNames.random()>> +<<case "Australian">> + <<set $activeSlave.birthName to $australianSlaveNames.random()>> +<<case "a New Zealander">> + <<set $activeSlave.birthName to $newZealanderSlaveNames.random()>> +<<default>> + <<set $activeSlave.birthName to $whiteAmericanSlaveNames.random()>> +<</switch>> + +<</widget>> + +<<widget "NationalityToAccent">> + +<<set $seed to either(0,1,1,2,2,2,3,3,3,3)>> + +<<if ($activeSlave.nationality is "American")>> + <<if $activeSlave.race is "black">> + <<if $language is "English">> + <<set $activeSlave.accent to 0>> + <<else>> + <<set $activeSlave.accent to either(0,1,1,2,2,2,3,3,3,3)>> + <</if>> + <<elseif $activeSlave.race is "latina">> + <<if $language is "English">> + <<set $activeSlave.accent to 0>> + <<elseif $language is "Spanish">> + <<set $activeSlave.accent to either(0,1,2,3)>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> + <<elseif $activeSlave.race is "asian">> + <<if $language is "English">> + <<set $activeSlave.accent to 0>> + <<elseif $language is "Chinese">> + <<set $activeSlave.accent to either(0,1,2,3)>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> + <<elseif $activeSlave.race is "middle eastern">> + <<if $language is "English">> + <<set $activeSlave.accent to 0>> + <<elseif $language is "Arabic">> + <<set $activeSlave.accent to either(0,1,2,3)>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> + <<else>> + <<if $language is "English">> + <<set $activeSlave.accent to 0>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> + <</if>> +<<elseif ($activeSlave.nationality is "Canadian")>> + <<if $language is "English">> + <<set $activeSlave.accent to 0>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif ($activeSlave.nationality is "Mexican")>> + <<if $language is "Spanish">> + <<set $activeSlave.accent to 0>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif ($activeSlave.nationality is "Dominican")>> + <<if $language is "Spanish">> + <<set $activeSlave.accent to 0>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif ($activeSlave.nationality is "Puerto Rican")>> + <<if $language is "Spanish">> + <<set $activeSlave.accent to 0>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif ($activeSlave.nationality is "Haitian")>> + <<set $activeSlave.accent to $seed>> +<<elseif ($activeSlave.nationality is "Jamaican")>> + <<set $activeSlave.accent to $seed>> +<<elseif ($activeSlave.nationality is "Cuban")>> + <<if $language is "Spanish">> + <<set $activeSlave.accent to 1>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif ($activeSlave.nationality is "Guatemalan")>> + <<if $language is "Spanish">> + <<set $activeSlave.accent to 1>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif ($activeSlave.nationality is "Chilean")>> + <<if $language is "Spanish">> + <<set $activeSlave.accent to 1>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif ($activeSlave.nationality is "Peruvian")>> + <<if $language is "Spanish">> + <<set $activeSlave.accent to 1>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif ($activeSlave.nationality is "Bolivian")>> + <<if $language is "Spanish">> + <<set $activeSlave.accent to 1>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif ($activeSlave.nationality is "Venezuelan")>> + <<if $language is "Spanish">> + <<set $activeSlave.accent to 1>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif ($activeSlave.nationality is "Russian")>> + <<set $activeSlave.accent to $seed>> +<<elseif ($activeSlave.nationality is "Ukrainian")>> + <<set $activeSlave.accent to $seed>> +<<elseif ($activeSlave.nationality is "Italian")>> + <<set $activeSlave.accent to $seed>> +<<elseif ($activeSlave.nationality is "Spanish")>> + <<if $language is "Spanish">> + <<set $activeSlave.accent to 1>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif ($activeSlave.nationality is "British")>> + <<if $language is "English">> + <<set $activeSlave.accent to 1>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif ($activeSlave.nationality is "Scottish")>> + <<if $language is "English">> + <<set $activeSlave.accent to 2>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif ($activeSlave.nationality is "French")>> + <<set $activeSlave.accent to $seed>> +<<elseif ($activeSlave.nationality is "German")>> + <<set $activeSlave.accent to $seed>> +<<elseif ($activeSlave.nationality is "Lithuanian")>> + <<set $activeSlave.accent to $seed>> +<<elseif ($activeSlave.nationality is "Belarusian")>> + <<set $activeSlave.accent to $seed>> +<<elseif ($activeSlave.nationality is "French")>> + <<set $activeSlave.accent to $seed>> +<<elseif ($activeSlave.nationality is "German")>> + <<set $activeSlave.accent to $seed>> +<<elseif ($activeSlave.nationality is "Lithuanian")>> + <<set $activeSlave.accent to $seed>> +<<elseif ($activeSlave.nationality is "Norwegian")>> + <<set $activeSlave.accent to $seed>> +<<elseif ($activeSlave.nationality is "Slovak")>> + <<set $activeSlave.accent to $seed>> +<<elseif ($activeSlave.nationality is "Danish")>> + <<set $activeSlave.accent to $seed>> +<<elseif ($activeSlave.nationality is "Dutch")>> + <<set $activeSlave.accent to $seed>> +<<elseif ($activeSlave.nationality is "Austrian")>> + <<set $activeSlave.accent to $seed>> +<<elseif ($activeSlave.nationality is "Swiss")>> + <<set $activeSlave.accent to $seed>> +<<elseif ($activeSlave.nationality is "Serbian")>> + <<set $activeSlave.accent to $seed>> +<<elseif ($activeSlave.nationality is "Belgian")>> + <<set $activeSlave.accent to $seed>> +<<elseif ($activeSlave.nationality is "Czech")>> + <<set $activeSlave.accent to $seed>> +<<elseif ($activeSlave.nationality is "Portuguese")>> + <<if $language is "Spanish">> + <<set $activeSlave.accent to either(0,1,2,3)>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif ($activeSlave.nationality is "Swedish")>> + <<set $activeSlave.accent to $seed>> +<<elseif ($activeSlave.nationality is "Romanian")>> + <<set $activeSlave.accent to $seed>> +<<elseif ($activeSlave.nationality is "Hungarian")>> + <<set $activeSlave.accent to $seed>> +<<elseif ($activeSlave.nationality is "Estonian")>> + <<set $activeSlave.accent to $seed>> +<<elseif ($activeSlave.nationality is "Irish")>> + <<if $language is "English">> + <<set $activeSlave.accent to 1>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif ($activeSlave.nationality is "Icelandic")>> + <<set $activeSlave.accent to $seed>> +<<elseif ($activeSlave.nationality is "Finnish")>> + <<set $activeSlave.accent to $seed>> +<<elseif ($activeSlave.nationality is "Greek")>> + <<set $activeSlave.accent to $seed>> +<<elseif ($activeSlave.nationality is "Polish")>> + <<set $activeSlave.accent to $seed>> +<<elseif ($activeSlave.nationality is "Brazilian")>> + <<if $language is "Spanish">> + <<set $activeSlave.accent to either(0,1,2,3)>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif ($activeSlave.nationality is "Egyptian")>> + <<if $language is "Arabic">> + <<set $activeSlave.accent to 1>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif ($activeSlave.nationality is "Colombian")>> + <<if $language is "Spanish">> + <<set $activeSlave.accent to 1>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif ($activeSlave.nationality is "Argentinian")>> + <<if $language is "Spanish">> + <<set $activeSlave.accent to 1>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif ($activeSlave.nationality is "Turkish")>> + <<set $activeSlave.accent to $seed>> +<<elseif ($activeSlave.nationality is "Iranian")>> + <<if $language is "Arabic">> + <<set $activeSlave.accent to either(0,1,2,3)>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif ($activeSlave.nationality is "Armenian")>> + <<set $activeSlave.accent to $seed>> +<<elseif ($activeSlave.nationality is "Israeli")>> + <<set $activeSlave.accent to $seed>> +<<elseif ($activeSlave.nationality is "Saudi")>> + <<if $language is "Arabic">> + <<set $activeSlave.accent to 0>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif ($activeSlave.nationality is "South African")>> + <<if $language is "English">> + <<set $activeSlave.accent to 1>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif ($activeSlave.nationality is "Nigerian")>> + <<if $language is "Arabic">> + <<set $activeSlave.accent to either(0,1,2,3)>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif ($activeSlave.nationality is "Congolese")>> + <<set $activeSlave.accent to $seed>> +<<elseif ($activeSlave.nationality is "Kenyan")>> + <<if $language is "Arabic">> + <<set $activeSlave.accent to either(0,1,2,3)>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif ($activeSlave.nationality is "Tanzanian")>> + <<set $activeSlave.accent to $seed>> +<<elseif ($activeSlave.nationality is "Zimbabwean")>> + <<if $language is "English" && $activeSlave.race == "white">> + <<set $activeSlave.accent to 1>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif ($activeSlave.nationality is "Ghanan")>> + <<if $language is "Arabic">> + <<set $activeSlave.accent to either(0,1,2,3)>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif ($activeSlave.nationality is "Ugandan")>> + <<set $activeSlave.accent to $seed>> +<<elseif ($activeSlave.nationality is "Ethiopian")>> + <<if $language is "Arabic">> + <<set $activeSlave.accent to either(0,1,2,3)>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif ($activeSlave.nationality is "Moroccan")>> + <<if $language is "Arabic">> + <<set $activeSlave.accent to either(0,1,2,3)>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif ($activeSlave.nationality is "Chinese")>> + <<if $language is "Chinese">> + <<set $activeSlave.accent to 0>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif ($activeSlave.nationality is "Korean")>> + <<if $language is "Chinese">> + <<set $activeSlave.accent to either(0,1,2,3)>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif ($activeSlave.nationality is "Thai")>> + <<if $language is "Chinese">> + <<set $activeSlave.accent to either(0,1,2,3)>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif ($activeSlave.nationality is "Vietnamese")>> + <<if $language is "Chinese">> + <<set $activeSlave.accent to either(0,1,2,3)>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif ($activeSlave.nationality is "Japanese")>> + <<set $activeSlave.accent to $seed>> +<<elseif ($activeSlave.nationality is "Indonesian")>> + <<set $activeSlave.accent to $seed>> +<<elseif ($activeSlave.nationality is "Filipina")>> + <<set $activeSlave.accent to $seed>> +<<elseif ($activeSlave.nationality is "Bangladeshi")>> + <<if $language is "Indian">> + <<set $activeSlave.accent to either(0,1,2,3)>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif ($activeSlave.nationality is "Malaysian")>> + <<set $activeSlave.accent to $seed>> +<<elseif ($activeSlave.nationality is "Uzbek")>> + <<set $activeSlave.accent to $seed>> +<<elseif ($activeSlave.nationality is "Afghan")>> + <<set $activeSlave.accent to $seed>> +<<elseif ($activeSlave.nationality is "Nepalese")>> + <<set $activeSlave.accent to $seed>> +<<elseif ($activeSlave.nationality is "Burmese")>> + <<set $activeSlave.accent to $seed>> +<<elseif ($activeSlave.nationality is "Iraqi")>> + <<if $language is "Arabic">> + <<set $activeSlave.accent to either(0,1,2,3)>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif ($activeSlave.nationality is "Yemeni")>> + <<if $language is "Arabic">> + <<set $activeSlave.accent to 1>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif ($activeSlave.nationality is "Sudanese")>> + <<if $language is "Arabic">> + <<set $activeSlave.accent to either(0,1,2,3)>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif ($activeSlave.nationality is "Algerian")>> + <<if $language is "Arabic">> + <<set $activeSlave.accent to either(0,1,2,3)>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif ($activeSlave.nationality is "Tunisian")>> + <<if $language is "Arabic">> + <<set $activeSlave.accent to either(0,1,2,3)>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif ($activeSlave.nationality is "Libyan")>> + <<if $language is "Arabic">> + <<set $activeSlave.accent to 1>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif ($activeSlave.nationality is "Omani")>> + <<if $language is "Arabic">> + <<set $activeSlave.accent to 1>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif ($activeSlave.nationality is "Malian")>> + <<if $language is "Arabic">> + <<set $activeSlave.accent to either(0,1,2,3)>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif ($activeSlave.nationality is "Jordanian")>> + <<if $language is "Arabic">> + <<set $activeSlave.accent to 1>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif ($activeSlave.nationality is "Lebanese")>> + <<if $language is "Arabic">> + <<set $activeSlave.accent to 1>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif ($activeSlave.nationality is "Emirati")>> + <<if $language is "Arabic">> + <<set $activeSlave.accent to 0>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif ($activeSlave.nationality is "Kazakh")>> + <<set $activeSlave.accent to $seed>> +<<elseif ($activeSlave.nationality is "Pakistani")>> + <<if $language is "Arabic">> + <<set $activeSlave.accent to either(0,1,2,3)>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif ($activeSlave.nationality is "Indian")>> + <<if $language is "Indian">> + <<set $activeSlave.accent to 0>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif ($activeSlave.nationality is "Australian")>> + <<if $language is "English">> + <<set $activeSlave.accent to 1>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif ($activeSlave.nationality is "a New Zealander")>> + <<if $language is "English">> + <<set $activeSlave.accent to 1>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif $activeSlave.nationality is "Roman Revivalist">> + <<if $language is "Latin">> + <<set $activeSlave.accent to 0>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif $activeSlave.nationality is "Ancient Egyptian Revivalist">> + <<if $language is "Ancient Egyptian">> + <<set $activeSlave.accent to 0>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif $activeSlave.nationality is "Edo Revivalist">> + <<if $language is "Japanese">> + <<set $activeSlave.accent to 0>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif $activeSlave.nationality is "Arabian Revivalist">> + <<if $language is "Arabic">> + <<set $activeSlave.accent to 0>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<elseif $activeSlave.nationality is "Ancient Chinese Revivalist">> + <<if $language is "Chinese">> + <<set $activeSlave.accent to 0>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<else>> + <<set $activeSlave.accent to $seed>> +<</if>> + +<<if $activeSlave.nationality is $language>> + <<set $activeSlave.accent to 0>> +<</if>> + +<</widget>> \ No newline at end of file diff --git a/devTools/python-3.5.3/pyshellext.dll b/devTools/python-3.5.3/pyshellext.dll deleted file mode 100755 index da64fedb1b3f93faab82eaf9d5b95cfe54382de9..0000000000000000000000000000000000000000 Binary files a/devTools/python-3.5.3/pyshellext.dll and /dev/null differ diff --git a/devTools/python-3.5.3/python.exe b/devTools/python-3.5.3/python.exe deleted file mode 100755 index 60f9c77a2e46e44fe90e1c453a8ad8c49e4aa8c2..0000000000000000000000000000000000000000 Binary files a/devTools/python-3.5.3/python.exe and /dev/null differ diff --git a/devTools/python-3.5.3/python3.dll b/devTools/python-3.5.3/python3.dll deleted file mode 100755 index 56f0fe618783ac167f06d1e2e8b705b619971b73..0000000000000000000000000000000000000000 Binary files a/devTools/python-3.5.3/python3.dll and /dev/null differ diff --git a/devTools/python-3.5.3/python35.dll b/devTools/python-3.5.3/python35.dll deleted file mode 100755 index 1ca7924b20389d1dbcd18159fba506c2f64cfb88..0000000000000000000000000000000000000000 Binary files a/devTools/python-3.5.3/python35.dll and /dev/null differ diff --git a/devTools/python-3.5.3/python35.zip b/devTools/python-3.5.3/python35.zip deleted file mode 100755 index 2849f7ffe7afdc7bfac5838fdaa4cec26d7f2c8e..0000000000000000000000000000000000000000 Binary files a/devTools/python-3.5.3/python35.zip and /dev/null differ diff --git a/devTools/python-3.5.3/pythonw.exe b/devTools/python-3.5.3/pythonw.exe deleted file mode 100755 index 1d3f9dc27cda9e57ad5792c5fe3f6c93c19125be..0000000000000000000000000000000000000000 Binary files a/devTools/python-3.5.3/pythonw.exe and /dev/null differ diff --git a/devTools/python-3.5.3/pyvenv.cfg b/devTools/python-3.5.3/pyvenv.cfg deleted file mode 100755 index d70b999908a17824119a3fad090cfa10391326d7..0000000000000000000000000000000000000000 --- a/devTools/python-3.5.3/pyvenv.cfg +++ /dev/null @@ -1 +0,0 @@ -applocal = true diff --git a/devTools/python-3.5.3/sqlite3.dll b/devTools/python-3.5.3/sqlite3.dll deleted file mode 100755 index 3c4c9f6bdb0d5af77bc46d6d4a78541cad175075..0000000000000000000000000000000000000000 Binary files a/devTools/python-3.5.3/sqlite3.dll and /dev/null differ diff --git a/devTools/python-3.5.3/vcruntime140.dll b/devTools/python-3.5.3/vcruntime140.dll deleted file mode 100755 index 52fe06bd612e47835444a68b4863ca254519cc8b..0000000000000000000000000000000000000000 Binary files a/devTools/python-3.5.3/vcruntime140.dll and /dev/null differ diff --git a/devTools/scripts/includes.py b/devTools/scripts/includes.py deleted file mode 100644 index 35a7727d4c2b3f34312e26d0ef3301525b4d144b..0000000000000000000000000000000000000000 --- a/devTools/scripts/includes.py +++ /dev/null @@ -1,38 +0,0 @@ -#!python - -import sys -import os.path - -FN = sys.argv[1] -OUT = sys.argv[2] -DIR = sys.argv[3] - -def main(): - if not os.path.exists(FN): - print >>sys.stderr, FN, 'not found' - sys.exit(1) - - with open(FN, 'r') as fin: - lines = fin.readlines() - fin.close() - fout = open(OUT, 'w') - fout.write("".join(lines)) - - # os.sep can be changed to \\ or / as appropriate - # can also os.path.abspath() which will canonicalize - - pnames = [] - for path, subdirs, files in os.walk(DIR): - for filename in files: - if filename.endswith('.tw'): - pathname = os.path.join(path, filename) - if pathname != OUT: - pnames.append(pathname + '\n') - - fout.write("".join(sorted(pnames))) - fout.close() - - return 0 - -if __name__ == '__main__': - sys.exit(main()) diff --git a/devTools/tweeGo/targets/sugarcube-2/LICENSE b/devTools/tweeGo/targets/sugarcube-2/LICENSE index 16c827dd25dddde1584cb270a9359832ff17b38a..85a5baca3bf9c63d2f64e6a0a8f75c389c760a8d 100644 --- a/devTools/tweeGo/targets/sugarcube-2/LICENSE +++ b/devTools/tweeGo/targets/sugarcube-2/LICENSE @@ -1,5 +1,5 @@ -Copyright (c) 2013-2016 Thomas Michael Edwards <tmedwards@motoslave.net>. +Copyright (c) 2013-2017 Thomas Michael Edwards <tmedwards@motoslave.net>. All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/devTools/tweeGo/targets/sugarcube-2/header.html b/devTools/tweeGo/targets/sugarcube-2/header.html index 423cda248a4813b7e07b1b4f1a3b4e1d9b4f6483..d695620395812f5bea84e5b3c00e7c07b8d8afc8 100644 --- a/devTools/tweeGo/targets/sugarcube-2/header.html +++ b/devTools/tweeGo/targets/sugarcube-2/header.html @@ -6,9 +6,9 @@ <meta name="viewport" content="width=device-width,initial-scale=1" /> <!-- -SugarCube (v2.12.2): A free (gratis and libre) story format, based on TiddlyWiki. +SugarCube (v2.14.0): A free (gratis and libre) story format, based on TiddlyWiki. -Copyright © 2013–2016 Thomas Michael Edwards <tmedwards@motoslave.net>. +Copyright © 2013–2017 Thomas Michael Edwards <tmedwards@motoslave.net>. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -98,7 +98,7 @@ var saveAs=saveAs||navigator.msSaveBlob&&navigator.msSaveBlob.bind(navigator)||f <style id="style-fonts" type="text/css">@font-face{font-family:tme-fa-icons;src:url(data:application/octet-stream;base64,d09GRgABAAAAACWoAA4AAAAAQhQAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAABRAAAAEQAAABWPihI/2NtYXAAAAGIAAAAOgAAAUrQXRm3Y3Z0IAAAAcQAAAAKAAAACgAAAABmcGdtAAAB0AAABZQAAAtwiJCQWWdhc3AAAAdkAAAACAAAAAgAAAAQZ2x5ZgAAB2wAABjCAAAq+uJ4WNtoZWFkAAAgMAAAADQAAAA2BZlJs2hoZWEAACBkAAAAIAAAACQIJwQZaG10eAAAIIQAAABuAAABOPTeAABsb2NhAAAg9AAAAJ4AAACeojKW6m1heHAAACGUAAAAIAAAACAA6gvwbmFtZQAAIbQAAAGPAAAC/eLsyKlwb3N0AAAjRAAAAfwAAAM0412SIHByZXAAACVAAAAAZQAAAHvdawOFeJxjYGRWYZzAwMrAwVTFtIeBgaEHQjM+YDBkZGJgYGJgZWbACgLSXFMYHF4wvPBhDvqfxRDFHMQwDSjMCJIDANLeC6V4nGNgYGBmgGAZBkYGEHAB8hjBfBYGDSDNBqQZGZgYGF74/P8PUvCCAURLMELVAwEjG8OIBwC4Ywb6AAAAAAAAAAAAAAAAAAB4nK1WaXMTRxCd1WHLNj6CDxI2gVnGcox2VpjLCBDG7EoW4BzylexCjl1Ldu6LT/wG/ZpekVSRb/y0vB4d2GAnVVQoSv2m9+1M9+ueXpPQksReWI+k3HwpprY2aWTnSUg3bFqO4kPZ2QspU0z+LoiCaLXUvu04JCISgap1hSWC2PfI0iTjQ48yWrYlvWpSbulJd9kaD+qt+vbT0FGO3QklNZuhQ+uRLanCqBJFMu2RkjYtw9VfSVrh5yvMfNUMJYLoJJLGm2EMj+Rn44xWGa3GdhxFkU2WG0WKRDM8iCKPslpin1wxQUD5oBlSXvk0onyEH5EVe5TTCnHJdprf9yU/6R3OvyTieouyJQf+QHZkB3unK/ki0toK46adbEehivB0fSfEI5uT6p/sUV7TaOB2RaYnzQiWyleQWPkJZfYPyWrhfMqXPBrVkoOcCFovc2Jf8g60HkdMiWsmyILujk6IoO6XnKHYY/q4+OO9XSwXIQTIOJb1jkq4EEYpYbOaJG0EOYiSskWV1HpHTJzyOi3iLWG/Tu3oS2e0Sag7MZ6th46tnKjkeDSp00ymTu2k5tGUBlFKOhM85tcBlB/RJK+2sZrEyqNpbDNjJJFQoIVzaSqIZSeWNAXRPJrRm7thmmvXokWaPFDPPXpPb26Fmzs9p+3AP2v8Z3UqpoO9MJ2eDshKfJp2uUnRun56hn8m8UPWAiqRLTbDlMVDtn4H5eVjS47CawNs957zK+h99kTIpIH4G/AeL9UpBUyFmFVQC9201rUsy9RqVotUZOq7IU0rX9ZpAk05Dn1jX8Y4/q+ZGUtMCd/vxOnZEZeeufYlyDSH3GZdj+Z1arFdgM5sz+k0y/Z9nebYfqDTPNvzOh1ha+t0lO2HOi2w/UinY2wvaEGT7jsEchGBXMAGEoGwdRAI20sIhK1CIGwXEQjbIgJhu4RA2H6MQNguIxC2l7Wsmn4qaRw7E8sARYgDoznuyGVuKldTyaUSrotGpzbkKXKrpKJ4Vv0rA/3ikTesgbVAukTW/IpJrnxUleOPrmh508S5Ao5Vf3tzXJ8TD2W/WPhT8L/amqqkV6x5ZHIVeSPQk+NE1yYVj67p8rmqR9f/i4oOa4F+A6UQC0VZlg2+mZDwUafTUA1c5RAzGzMP1/W6Zc3P4fybGCEL6H78NxQaC9yDTllJWe1gr9XXj2W5twflsCdYkmK+zOtb4YuMzEr7RWYpez7yecAVMCqVYasNXK3gzXsS85DpTfJMELcVZYOkjceZILGBYx4wb76TICRMXbWB2imcsIG8YMwp2O+EQ1RvlOVwe6F9Ho2Uf2tX7MgZFU0Q+G32Rtjrs1DyW6yBhCe/1NdAVSFNxbipgEsj5YZq8GFcrdtGMk6gr6jYDcuyig8fR9x3So5lIPlIEatHRz+tvUKd1Ln9yihu3zv9CIJBaWL+9r6Z4qCUd7WSZVZtA1O3GpVT15rDxasO3c2j7nvH2Sdy1jTddE/c9L6mVbeDg7lZEO3bHJSlTC6o68MOG6jLzaXQ6mVckt52DzAsMKDfoRUb/1f3cfg8V6oKo+NIvZ2oH6PPYgzyDzh/R/UF6OcxTLmGlOd7lxOfbtzD2TJdxV2sn+LfwKy15mbpGnBD0w2Yh6xaHbrKDXynBjo90tyO9BDwse4K8QBgE8Bi8InuWsbzKYDxfMYcH+Bz5jBoMofBFnMYbDNnDWCHOQx2mcNgjzkMvmDOOsCXzGEQModBxBwGT5gTADxlDoOvmMPga+Yw+IY59wG+ZQ6DmDkMEuYw2Nd0ayhzixd0F6htUBXowPQTFvewONRUGbK/44Vhf28Qs38wiKk/aro9pP7EC0P92SCm/mIQU3/VdGdI/Y0Xhvq7QUz9wyCmPtMvxnKZwV9GvkuFA8ouNp/z98T7B8IaQLYAAQAB//8AD3icrToNcBzVefe9/b3dvd29u909/dyd7ke6k86yLEunOyHJsrCxJWyJGmEcLMDYxBhHNsZQBzOAkjQmFDrGIq5gHEIcCILOAGZq3IQO04RkIGkgaUMKMbQznSlJW0wgJtOQHxRr1e+93TvJwq7JTD3y2/f//bzvfX/vAhAIzL3KPcYNBFIB8UR9EJYuAcuAqGNbOiwDSczkuorlaJ6WTeVSRwMIDveY8aN20GztjzMhW4P2H+kNUPM5NaVNQE0K3tWM77vv8rJqgnT33VJE4WWIfd/QbKHZjcXcZiFAqjCDgUJA/mZTWOIIwi0vAwNiUjkW9THIZs6DAbnj6ffGP/P+0y2vv+5SXGLKuXHJPJH92c+yT7x3883wnI9W/DxI4T9+bm7uOL+MUwNywAg0BJYFQgNKa2NDzFBEjqeM0SFXLHU4YKe7yjFoSmdEKWw5nemOUj5czMXCliilM7lyuFgqp3HaDf1j/fhH+s6cfm4MEpA8c0BSQBO5CUkD5fJi05kDjSUoNnETTUUSXtpPVm0aGHDdmV0nNkPiMUWeHZMVRSZPSlp0dqypCKVG8iT9IK5AEeamyZGAjecW5tm5SSBm8ojiSqBsYoXDTRtuymw13V8axjB+p2EPlsMGcRzTTRkGOLRpmk/AzSZ+A97ecx+QN8g9gUbc26F7N+GJiN5pLGMA8hUo7EQcHI455A0PwrS3I37N+bZhTE8bex1aeeIJ4+MTjTY6gcH+iIvgGWQRdh2TR9sS81kspCzytguLfBcyuBOLXuhwYnZnh8NFUs6plLPLScGpWBKwkYztwsop7Hie9r7rYK/9brWXTg9U+RiBX+GJiyc0rgIv7UNJe3vPjrFdyZOV/byNUkyW/0AuIi/h+h6U5a64SmW5ieGcya2AYimG+EUtnZN08ImgveV+KOYykiiJVMrbkI+dHUkC9+nyPUFdD94j639r1uTq7FiSNrR1hXS8uLbGapYUSbpaJvzmp5aODbU9iJNBU1gJa5LFTCqihNpDigmWWtc2GjUy7Y2m3hHk14qmPJXp2cTInZudO85dhzw2AuXAJQHl+Yt7l0RVjkO8u4q5JZARE2A5yNxStNgGWcQSj7izA1HucCgJOsRsb7xYWgn9XAwvRqaN4HAS4ENF3kXFFovJ/muW3zsYDK3jxaCQbOouOPXZPmBDNZG4krS0N2/9wakf7hHv+IcPX/jcaGWZAp9fvrFtv66UeSlXn4zYdZo5kLNwIJJRTbEu3jz62Zf37Xv5l7RAeugZfAQ7kJ5koA3PoJB1eP8MpHRVWqpygyITpiKz4DCoHMENlun+wrDA0bNZ9jmJZdZwhhx9UnewMKztg2yAlie9j6O7Lzrks7tYdRdOO4u/FJ9e5G93RyFTJ1f5G17IZDs7z25uEfuFBYwlvYpUUuTnKJO6umg5IymD88yGGxbycjN2JOkIVk6wUoEzm/0O5T/Owb92Jg8NyL/6qFrl30IZ5nSgMp3nch7DkvOMCaMeoQ1U4JZxQncenmAMmcAei/S7V9CvAccW8mczwtMCceSQ8nwhXWuKAeQPJbRCc9RnhoSyhvBL+WgxTzsk0Y567IFj+35wa4Xq7ykS5YIm7UIdq4iCfKcsiIoSvFFWONUnFovZoXHKhXE69R9hTOIEgZPcJ0VZRrx+i3j9hhtFPqQDnYjX8uaEpS2+F4twiVkOylSJAwfvBZO3XBnoTaEHtltSWAGKIEl3SJIQ1CRESIRnLFtJRc88GckEbQuOBTO5zBXziL0JIPKiyMtzggwiMc+czmbDEbDMbJaLhC3LPzPuFOKaD6zEM+tt15gNxTPLIg5dvglCfGmbmakYmqmKsEfRVOWWAXjqvEzVeamT6botq9321Vu2rIb7KOrufmZ24LWmoiI3yspJJ65e704JprBSFGH3pxXLhAQe9fBzbM1rq7YAm1dsctvZSiqu8G94rxwS/LQ7JYorRR0XXq/GmSh4dJADKAsSk70ajQ8gHdE0MhzVjOCbVDSvKINd1PhKVN+fgMTG2zYCvIaq+V2mmsNTP36IRLD6xO7ejWTDisfc7zCVD6tQW+/eMTW1Y3fSt20foe+hBZpQ3zfGfH3vyzmCZNvHFoJFVPrRjj7m6I26M3r7KHQxgD5c2H/4tQdIeJLJ+yQDvTsZOwv4jYfJQxVaxxmtKtNTTVaQnRmS6kkWvfBoNvCeIT55jt41PJZwpg3YYeJYGK+dppgK/sF+R/8ggZIOBlnyNoK/qpwokLZ6uCFRKCTKV8HeGaYksPg2Xj/3fyQZb6dhGWv2QLLQU4DW7lZwf77Hw+vb3AjzexKIVywkEXoGlB1JUqr4FW3A7BZlDzgzhZ5W0tyfI1da7mmn13JvsZOFxLuJIRsmLXJVskByA41iu/uvSds9bWOnPZQ4lSgANm+xqQ6gMPlGH2YR79rSDIXLXQBujHZSxkCpSIeynwCdNxEFJ2HVmSDaFPxQYoIN2BfCM8E6zTCu66VDSQ97KkPfIa8i7nGUITNAZagDhYFJjeg5rXh+bcBuYamT/JWmRVE8Iopeb/3ud1ZdSIs4TkQLcaogJ63Z5dGUxEfefz8qSKko+Qm2PB/ZgyEEMngmjkjovYB0GBog+n9COzD7MiQ73pfOA5S8NLseIst+QWbPC9y/J8dRv7QFliCNWcnzAYlI3fE8hdNVbBPY1WEeZxm8m5mKOdypQRG1qhiRgQBnZbr7N20qT1ipoPsLVYWEGq8hE3BoLPn2tV8PhWVe0WTB4nIN3WMD7cmIiDZEhaSSROulWMbk2+sX4LIs0Iq4NNdUfV3mDeqCbaEOligmbYSFCaU0VRVULrhTKoKlIMubNvV3ZyyOByWMilXkBpNjcIjihTjBrwzF/bmKF1iMJNsHxrobcnxElDVF0C3u69fevP5txIsEcUrVZyR96DPqiI/C+zGTp0uZGkXVP6PG1RncET7Ey/eKjnX885QeWw83krsCIVyvMp8TD9P3rEvMFUkFZxS6Rw25ytWQJ/52/tqLyQSDrc7Dpiq/H2XDgYsVBgjnK7BF95EwLKLNKLh0bg5x74VXPNwJO1fq7raB588j7pbhat78pDKjPE1td1Jl6Hhn8Q73LdISsCrrgwuijljQ28Tinnavx+Xu9ap6jYqn2QzNaly7RoVJ99MoBl/DvmtU1X0Lu3FCnO37XXKEW832Nai8BYnDKKvIF92W3F9dotK94ahCNyJPuW+5b2L1WrQ2X6fSc1TBejLg77uvsm8FX2b1ghWk6cbjuB1FUIVm9y0f6aMKfMbdhjshNGihFKgIgE7044ZvkbXz+zbh3chXN/f35Z6mOyF2b/m7H6V7HVV3XYOYtiDOig/J25bh+xPuAPMdxRPRc8V1YU8Z2mEv9OIO2O6DTg8Wtt2C3+lCcjBRmEaNVbDhi0nLnUK1ttvqdVpsexruQ93WGnf3T9s47N+te7nN5FeohRGeChUfIvZx5htAPYTNjQl/ea/tTlkW7LZ7nIK3dyNsGUwWpq0+a4k/ALvozB5nurkCqwthUdrq5mnzBD/tu5rpfPVYuC6L0VZwnMfd/YnGxgTc97jjFNjGFvRQ6iyrYPfZjyPVyQJM233YRF5YVb1xgLzjwVMX3NOwZ/K7wtJZx4W8pGRNNzf4ZOBeCKgPCxuKcUYmxQNycbjP5wGlEJGk8OZc369tR3gtaZ+X6CbmVkIONRVJcugpluk1TQL1Fqmfy1ELVi4hYy1zJhYNj4zu7RkfbuebN17fv+q2Fj4sDgtE7Hv2uk89uneIH7j9yNWjR1YMmUvJSzO6s9QcGWkbHt83PtzW0yWCMMLr4roNcMm+o88e3XdJ/0VDkWiFDxSv5YhXq8d3nVAryjjtoDXp7Ojn2gg6ijGHIUxDpQZ0Y2lQym2+5NZHN219to8XhsUw33Lb6p6dG9DVGN598/bmkXA0NoPeR2t4qO/h0U8d3bcKtmB5yeilos6PCCB29fgINjeNmEsdfaYmGhm6qB9RrPhEx7mrEbfGwCDauZXNJo09wLJ1oAhSe1NxWkUDKKJofMqeE+szt8S4K9JYmjbLXRRtylOU1vWN//mVy4/0DVGNqM9QJT7SvL287ot5MSZoGC/oyHTWO7p3vdd5s6RB439/5fKH6aIaEDh46AVkpMqWo1YdaWpe1690hzT4e79jxGuLvD+R0iUwuiJ+TLUM4+yrA8aAdsVAsX1JFgMsTkCF4ceBdtgLZ8oXaENnPpfPipLA6A57nn4+XI1hUbCoYmig1KP5pH44Kybnq4cUyatKivvTmXpeOC7y8J4il3yHncWVz+SDrc5zTqucPyYro3Af7XP30/I8ddJxsQAgXIFbz37QdsmqNhJl0K6145C0rkWzExAX8aM3sDpwYyA8oF83PNBXWu7xRPQMIT1E6syw7M4F2tFwOmyhVKQ7+uH/lz9DribLBF4jsuze94lYBc+7LzLOXMw4c+66u52EZz/QLEWxyA0XZFuA9+OVUfSTwyzWCw0o3a0Jx9BYTrKp2AZiEi9qGSs6OFhZkPboRDXesZKpbcd3UOjV8dMgNNQhr1pJh0Qy5petVIQ48Zq1KefMj7zIhluf3pQeBs5JfUuJMGcgHFRik16gP1mzHX2EmroaYhmVysETLOo54aSGU/gHzbEwdRvCMXuGhUczHj3HkZ42Rk9LYIDS07c8YRuqSBg91Pmnwo8VghFR2Y9oKTmxziSwi0HTN2I1cMvT3E7Fezk/Pae1UnYyUwqdRnqCNZPoXSJSk6hxGWmRBKqBSMqyTP97/wmaJcQCGpqbG5Iw6vhEtHpEVWihepULpFG3rqG0rOha2qTxJIC0YOSYFjrxEtP8nlSlIxvu7PLcRKmS76mk04Sq0HoTqJ04CcfcK+DDIU34mhCX/dByaAiDy58ibicVeRdNJrNyezI2G/ESlUKsZDxiOtLJk/ChXCc9Imp+1nO2xL6QZIkkWiizM7SHIF9q9K8ZpQDx8zOjgWaMzORvdrSGPJ2sEzRYZer9O2gmWD4zSTr6sSuH8Uc/IGjmyLIMOHUV0G48840967ixy2v6zIhcU+pr3bDj9u0bc1xfqUbO9sUuH3O/iqEbFPqaPbOBZuFTO57rx7mxvnDL7avRFLah/ei55LZCpKddjqz4OxhyH6YRLuzA0rcfY5yC8rQTcb08JdLYleZW8TZ0lGgSCyVfQoQtRDiPV6BqKLryzL7kqRmkuoGdE5UzlKWy39mJQlU1OChf1KrEHOYcsdMhvaO3j5JN+zZBXJZ2Kmq0WRSMDSFJGqmtC0q8eZesmfWxPxNNca3DC3KzYsg7MBBXhJ2yHmvy5sojNXVBmQvfhUdoxJ0NgiENWTzfqwd3SOjC927ceNvGjbfTUTNp13eIumhvAKEvJA/HTUW6Maj1CeJAUtBFrcOI1xugSWxubV1qqaRJ1gZvqiHLbKqwOo5TR9hELw7/iBsjL/t6WXl+SWN9VOO5RfnTtJcwreTFY35bWthGB+bMB+yOcGEDg4bztxbkUR0wh1h2kJWgV0awMR+Hjvn5mlrmu9BMCMpYsZynmQC8KR2xco4maZIg5jN5CU86ViJ/s27nzqlxgFc6167fuXP92s5XYOdDO8j4pYNYw16IjR8eH79U0ra3Y6V9uyat20l2P7AbsKpjJ81Tzs39nt9PXgqYeL9LNB+Yi9uMN1BEZ0knnvijDiZLEDg6dJ30NuA9oQEVh9U0uk/kgO8A+R94pvWy8YveWn0ZWbfmLepJXdqz5Z5B94qhu7d2k75r7l0Lx2gVtvTMr6FXgDY7p56d6qSNS+/e0ke6r//CQ1/YXiTdW++u+FK/529HfC3klvzNhK3Te4txIUFlkuQ8tIjguXrUG6WAPWgMsIcDF664d3v3DHXwhQ07YMul2I9QDvtQXz+bokoej3uUo5mt1Qi7f/m58pGoIAyavsnnFiUl8cbhKTpRmI+CKw9Y1oKc5GvZZJCT6kWJcCHNzzDS3KTQKEocr/6Fe1GoUf+1rq/QG/W/hs9goz8E649Xc5M6HxXjAnDV9OT9spBFuwOC26Prv2bzQ3RhCHfwaYpW8+LxqOzlYOZR7/Kf/RbmXMktCzAr3jWP/Kqt5KUqZDq4uTqyBbYGfL17HcuL19KcjykyePSoAP2bNgILH1qOXXFwA9l471P3bOIvOwRXL8j+k0OjB6cPjrLCfe2sXP/824QcsAMZlOmGWiMo0rwb4K1qo+mH/LkBVlXdA+cFXFFWvz0//AXvbZ6+ac3GoyzHHvXfzCqvNILfLi9qV7KBJ/03OPbql/A+XlcDa3g9C1/rnPPU/XzkR4E3q/4p6kHES6V3vVx1M7x3EG4RnpwfhuT9B8mTF4BG6w/vZp7SbtoL4oJBkCuYe2+LL3GT6CtdzGKjNas6FGaHETyqOIeljCSdy4azYTwkLxFIL08OHSKaM+7sonl9vERpGguhHaS5bUgz24xu3ETTPsVKqntkIZfpqR1MdBfQKd6hmiFHviU1QZ260MQ2FSOcbfDmVoyFeHkb9rq/db9KFWsP6uutqz6LgZW6R+JrIjp86Gp6jSXL+7RoUv38yjEracH0NiVpKdu2ISBl27QDRdTKAT9WHoc/IL/p7w4sptcdmtpFR6IcZRnNXDnaT909x7Ykjj6PwmlFdP9FMuWgQvb8nAiKpHB7iS4/r+pk678LRCWOGpq9QwfOlOGlbpDkEPwThngKL7puibAY5LvMl+ZQQ8Yx4mxF/wZjkGJ7a3NjKl5jyjiJ/hAhLzVVExN+9qMpZsAyWImhu/eF2NlfcmS6bxq6lNlO9CZvxpjon/G7R5k1SqVwuFwOv3HTTZn0TTelSQs2wtjpPkNH8D/RH++b3mkosx0KLkzSlfi92qSrzPKX2arMTe692ChjJ7T5I75t3I487EIe5jXKQ6pg6Q83qs/lEn3noSFynmb4aOrBF9sEoBuHhKFYcL11up41emofLCQGE60wVdeDClSvn5qqM41Go7t+iuWUHqzrNrOGWTsFst5TtwLXXPk0Syc9fSX2rsBFmzadY6C/Fge8d+e5uXHkfyiQRc6vwTu2Ylkhz95Fq2/8+YVv/CxSqb7xxyqhDjDBRxFBxcQnSYzeBfrYNqGJjej4TLDfWEywII42hqZ+/BB/6I2DkCn0WS9uv3PD4Z0DpG/3oemDe7u5NS/aMOWtol60t2qCusYTSi19uHn1iHiQOpz2i2v6xx/4xqE9PfyqHQ+N3Ln9RftsmoxADcYAyvMt9Y73lr7wdwTUmb8g/u53GOaw6pPizJC9MJrEj7noG9sG1CNhmWN2BcF2dpRzGBfz5XrojEWZRxuj6aCYY0tiLJOTMmK2uJJQjxj/8hjKEB1iGHCj4JTpxczQzEtehAevG+5pUO12twtCjfG4I979yJB4a7RlZbDdVGV1OMgDQPZQY+ERm1wqiVyYJwJHMrGaP+o9YKbUlE2ApL6YEiyylNT9ESff74qtvCgqNSZcBVOa+2Hr9q9E70rVikGTcxRJ4BSQa6ImzpQIEXk+OFbqhvQRQ4souDWotqAiL2Xqm+AZ/Yz0kXcCOnvfqg1779vzOXtqtvPMii9Ig5+dwj87Kf4bQ6EJfdRt4PyQZYFY0/NXERbE5vPzi+As2njhToFqfp7h6ufXYTFiZ6MCryyG/xQX5qIBFddLfr6b+SYsHc3P1ocikRD5rxCMuNslxeBKuiZjzQpUY6kFvwNgPtyioHRxkEr9fv+HE5AwHFc9q0neOXOa/kiAi9ByQX3et1fZb2+q7yCL914QN5y1GVt/DOVaR29JPCECXV9iGaI84A7sQ9W3Y4dLZe4vVR1Mxd3Hc7rq7lNVOKjqHM9xqmiceVWXNTgoiO6fswpN0R/EfnefyHtnMvcsdw1nzMOJiSzGpQ+SPmclxmVRqlVM0HG5wNFSQYAIRhjE3ZDTsobwJbifVegTxj7sx7mCRwvp5XSWh6/QYs/TwjyMahKsVCYZVaeECMTR56MplPyzCfrSPO/dL0m8RwvpQ1oS56aF7i/58Mpn0eOHaKxcTNGd84cLd4oCvXPu3B+4a8kPUA7rmSzJ7E3Zy7OzuJEm/Mt+7Eh/pyDPMx7xF7luuh/CY9hDe4WZYLqvW+YhFlJiWX1PO0aOB6L0t3AVOUK7V/XSqP8Dx/CavHCY8erwC3jhyKHZR2nu9wXvpz4vKN4dwOIA22sZ/S1RTbhyBxbvF/XeXzEQpfEUTa0hLTTE+RigN9vzQhBp0RzT5OUaKazwlhEU8u0fx8D9XmGdwVmmZmpavDGuichhJJUz1nn5pp9yj5H3GG7DgZtovmnn5YNFiiT/JyIZqw6Uvd+i0TRIFwumFw7SVEg/TYvQDM/8hE9O4uTWEVlECuyU2tLW1oKK3jIk+bItDxy6TZKw36mttdZgKDxo1fIRzrFMSbrt0J/Cl8KVh1OcozuqGUyO7RxLBk3UrA6XfmDTF97qwAErpOl655GnjnTqOidyIQsHO08G/hcLt/j/AAB4nGNgZGBgAOLaW41M8fw2Xxm4mV8ARRguss1QhNC5H/9//Z/FUsEcBORyMDCBRAFTFwxveJxjYGRgYA76n8UQxVLGwPD/FUsFA1AEBfgBAHyYBUh4nGN+wcDAvACCWfSBNIgviMBM1kA6koGBMRWVBqsDYqYmiF4wHQkxg+kUBMPVWEP0gTDYvBdoahZAzYxEY0ciuWUBFjkoZimDYLC8IKpehmsQccYvSGYgYZB7YBhFL5o8cxTQjDUI/wIArpclrwAAAAAAAAA6AIYA3AEKAUgBgAGgAfoCYgKqAwIDOgOGA9wEQAR4BLYFAgU8BZoFzAYMBlIGmga6BtgG+AcYB0QHcAecB8gIAAg2CG4IpgjyCUAJrAo0CtALOAueDAoMYA0ADVANjg3mDiQOjg7GDvgPOA+ED84QPBB2EN4RNhGgEfISchKoEsgS6BMGEz4TXhOSE8QT+BQsFGIUiBTWFX0AAAABAAAATgBuAAYAAAAAAAIAAAAQAHMAAAAiC3AAAAAAeJx1kctOGzEUhn9DoIKgLloJdcdZIRDK5CKhSqyoogJrhLJDwgyeSzpjRx4HlGfgLcoz8Dp9j+76Z2KhqFJmZM93Ph/bxx4AX/AHCqvnnG3FCgeMVryFT/gReZv+JnKHfBd5B108RN6l/xV5H2d4idzFV/zmCqqzx2iK98gK39RR5C18Vt8jb9P/jNwh30fewaGaR96lf428j4l6i9zFsfo7drOFL/MiyMn4VEaD4bk8LsRRlVZXouehcL6RS8mcDaaqXJK6OtSml+lemTrb3Jp8Xmm/rtZ5YnxTOivDZLCur401XgfztNytec5HIWSSeVfLVdxHZt5NTRqSIoTZRb+/vj/GcJhhAY8SOQoECE5oT/kdYYAhf4zgkRnCzFVWCQuNikZjzhlFO9IwvmTLGFlaw4yKnCBlX9PUdD2Oa/Zlay1n3dLmXKei9xuzNvkJ7XLvso2F9SaselP2Na1tZ+i2wqePszV4ZhUj2sBZy1P4tmrB1X/nEd7XcmxKk9In7a0F2gv0+W44/z/KQo7lAHicbZLnlpswEIW5Bgy4bLLpvfeE9N57z76DLARWEJKOEEucpw8CO/kTncOdT6PhnlHxRt4wJt7/x47nYQQfAUKMESFGggmmmGGOLezBXmxjH/bjAA7iEA7jCI7iGI7jBE7iFE7jDM7iHM7jAi7iEi7jCq7iGq7jBlLcxC3cxh3cxT3cxwM8xCM8xhM8xTM8xwu8xCu8xhu8xTu8xwd8xCd8xhd8xTd8xw/sBLUlZuIkZZW2q0hzahvDRqocUyIpE4EWTR1WXDZ1sGRCz5yklBsqWBZwmauZk01mTqxl0nIlUyLs9r/Zej35m4kFl2XKftlAKFomTlKlmfQ1l74lRdB9dbxQqqyIKbc2MPQZGqbFKsqVaYnJ4ky1Ms24iQXLrYPE8GLZ07jRfaIvcf5JX+NoMhQ5jLoqFwenBS8Gpw7WTh05py6MaOtT2ibEGNXWKW1Da0i9nPY6dNe7CEWy7pc+5EJpvfJVnvtUFUHFZBPWS2LYxKqiECztVpINypAuGS2nvQ6Gs+H0hsk0U3ZznDETguua1/MNpLvMWH/RFGEuuobCihScxqS2zPC6jH4rVaVcxn1UjQ1yJW1QK2MTJ6nrPOqp0d3Vk1WoSVOz7p0oHeWdTbpoh5i3sVWpezp23AGTWch+Mmonu0o0Vb+l6RqdabLmRnveH9ru7j54nGPw3sFwIihiIyNjX+QGxp0cDBwMyQUbGVidNjIwaEFoDhR6JwMDAycyi5nBZaMKY0dgxAaHjoiNzCkuG9VAvF0cDQyMLA4dySERICWRQLCRgUdrB+P/1g0svRuZGFwAB9MiuAAAAA==) format('woff')}</style> <style id="style-core" type="text/css">html{font:16px/1 Helmet,Freesans,sans-serif}#store-area,tw-storydata{display:none!important;z-index:0}#story{z-index:10;margin:2.5em;-webkit-transition:margin-left .2s ease-in;-o-transition:margin-left .2s ease-in;transition:margin-left .2s ease-in}@media screen and (max-width:1136px){#story{margin-right:1.5em}}#passages{max-width:54em;margin:0 auto}.no-transition{-webkit-transition:none!important;-o-transition:none!important;transition:none!important}:focus{outline:thin dotted}body{color:#eee;background-color:#111}a{cursor:pointer;color:#68d;text-decoration:none;-webkit-transition-duration:.2s;-o-transition-duration:.2s;transition-duration:.2s}a:hover{color:#8af;text-decoration:underline}a.link-broken{color:#c22}a.link-broken:hover{color:#e44}span.link-disabled{color:#aaa}area{cursor:pointer}button{cursor:pointer;color:#eee;background-color:#35a;border:1px solid #57c;line-height:normal;padding:.4em;-webkit-transition-duration:.2s;-o-transition-duration:.2s;transition-duration:.2s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}button:hover{background-color:#57c;border-color:#79e}button:disabled{cursor:not-allowed;background-color:#444;border:1px solid #666}input,select,textarea{color:#eee;background-color:transparent;border:1px solid #444;padding:.4em}select{padding:.34em .4em}input[type=text]{min-width:18em}textarea{min-width:30em}input[type=checkbox],input[type=file],input[type=radio],select{cursor:pointer}input:focus,input:hover,select:focus,select:hover,textarea:focus,textarea:hover{background-color:#333;border-color:#eee}hr{display:block;height:1px;border:none;border-top:1px solid #eee;margin:1em 0;padding:0}textarea{resize:vertical}audio,canvas,progress,video{max-width:100%;vertical-align:middle}.error{padding:.25em;background-color:#511;border-left:.5em solid #c22}.error[title]{cursor:help}.highlight,.marked{color:#ff0;font-weight:700;font-style:italic}.nobr{white-space:nowrap}#story a.link-external:after,.error:before,[data-icon-after]:after,[data-icon-before]:before,[data-icon]:before{font-family:tme-fa-icons;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;speak:none}[data-icon]:before{content:attr(data-icon)}[data-icon-before]:before{content:attr(data-icon-before) "\00a0"}[data-icon-after]:after{content:"\00a0" attr(data-icon-after)}.error:before{content:"\00a0\e80d\00a0\00a0"}#story a.link-external:after{content:"\00a0\e80e"}.passage{line-height:1.75;text-align:left;-webkit-transition:opacity .4s ease-in;-o-transition:opacity .4s ease-in;transition:opacity .4s ease-in}.passage-in{opacity:0}.passage ol,.passage ul{margin-left:.5em;padding-left:1.5em}.passage table{margin:1em 0;border-collapse:collapse;font-size:100%}.passage caption,.passage td,.passage th,.passage tr{padding:3px}.passage .error{white-space:nowrap}.macro-linkappend-insert,.macro-linkprepend-insert,.macro-linkreplace-insert,.macro-repeat-insert,.macro-timed-insert{-webkit-transition:opacity .4s ease-in;-o-transition:opacity .4s ease-in;transition:opacity .4s ease-in}.macro-linkappend-in,.macro-linkprepend-in,.macro-linkreplace-in,.macro-repeat-in,.macro-timed-in{opacity:0}</style> <style id="style-ui-bar" type="text/css">#story{margin-left:20em}#ui-bar.stowed~#story{margin-left:4.5em}@media screen and (max-width:1136px){#story{margin-left:19em}#ui-bar.stowed~#story{margin-left:3.5em}}@media screen and (max-width:768px){#story{margin-left:3.5em}}#ui-bar{position:fixed;z-index:50;top:0;left:0;width:17.5em;height:100%;margin:0;padding:0;-webkit-transition:left .2s ease-in;-o-transition:left .2s ease-in;transition:left .2s ease-in}#ui-bar.stowed{left:-15.5em}#ui-bar-body{height:90%;height:calc(100% - 2.5em);margin:2.5em 0;padding:0 1.5em}#ui-bar.stowed #ui-bar-body,#ui-bar.stowed #ui-bar-history{visibility:hidden;-webkit-transition:visibility .2s step-end;-o-transition:visibility .2s step-end;transition:visibility .2s step-end}#ui-bar{background-color:#222;border-right:1px solid #444;text-align:center}#ui-bar-tray{position:absolute;top:.2em;left:0;right:0}#ui-bar a{text-decoration:none}#ui-bar hr{border-color:#444}#ui-bar-history [id|=history],#ui-bar-toggle{font-size:1.2em;line-height:inherit;color:#eee;background-color:transparent;border:1px solid #444}#ui-bar-toggle{display:block;position:absolute;top:0;right:0;border-right:none;padding:.3em .45em .25em}#ui-bar.stowed #ui-bar-toggle{padding:.3em .35em .25em .55em}#ui-bar-toggle:hover{background-color:#444;border-color:#eee}#ui-bar-history{margin:0 auto}#ui-bar-history [id|=history]{padding:.2em .45em .35em}#ui-bar-history #history-jumpto{padding:.2em .665em .35em}#ui-bar-history [id|=history]:not(:first-child){margin-left:1.2em}#ui-bar-history [id|=history]:hover{background-color:#444;border-color:#eee}#ui-bar-history [id|=history]:disabled{color:#444;background-color:transparent;border-color:#444}#ui-bar-body{line-height:1.5;overflow:auto}#ui-bar-body>:not(:first-child){margin-top:2em}#story-title{margin:0;font-size:162.5%}#story-author{margin-top:2em;font-weight:700}#menu ul{margin:1em 0 0;padding:0;list-style:none;border:1px solid #444}#menu ul:empty{display:none}#menu li{margin:0}#menu li:not(:first-child){border-top:1px solid #444}#menu li a{display:block;padding:.25em .75em;border:1px solid transparent;color:#eee;text-transform:uppercase}#menu li a:hover{background-color:#444;border-color:#eee}#menu a,#ui-bar-history [id|=history],#ui-bar-toggle{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#menu-core li[id|=menu-item] a:before,#ui-bar-history [id|=history],#ui-bar-toggle:before{font-family:tme-fa-icons;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;speak:none}#ui-bar-toggle:before{content:"\e81d"}#ui-bar.stowed #ui-bar-toggle:before{content:"\e81e"}#menu-item-saves a:before{content:"\e82b\00a0"}#menu-item-settings a:before{content:"\e82d\00a0"}#menu-item-restart a:before{content:"\e82c\00a0"}#menu-item-share a:before{content:"\e82f\00a0"}</style> -<style id="style-ui-dialog" type="text/css">html.ui-dialog-open body{overflow:hidden}#ui-overlay.open{visibility:visible;-webkit-transition:opacity .2s ease-in;-o-transition:opacity .2s ease-in;transition:opacity .2s ease-in}#ui-overlay:not(.open){-webkit-transition:visibility .2s step-end,opacity .2s ease-in;-o-transition:visibility .2s step-end,opacity .2s ease-in;transition:visibility .2s step-end,opacity .2s ease-in}#ui-overlay{visibility:hidden;opacity:0;z-index:1000;position:fixed;top:0;left:0;height:100%;width:100%}#ui-dialog.open{display:block;-webkit-transition:opacity .2s ease-in;-o-transition:opacity .2s ease-in;transition:opacity .2s ease-in}#ui-dialog{display:none;opacity:0;z-index:1100;position:fixed;top:50px;margin:0;padding:0}#ui-dialog-titlebar{position:relative}#ui-dialog-close{display:block;position:absolute;right:0;top:0;white-space:nowrap}#ui-dialog-body{overflow:auto;min-width:280px;height:90%;height:calc(100% - 2.1em - 34px)}#ui-dialog-body.settings [id|=setting-body]{display:table;width:100%}#ui-dialog-body.settings [id|=setting-label]{display:table-cell;padding:.4em 2em .4em 0}#ui-dialog-body.settings [id|=setting-label]+div{display:table-cell;min-width:8em;text-align:right;vertical-align:middle;white-space:nowrap}#ui-overlay{background-color:#000}#ui-overlay.open{opacity:.8}#ui-dialog{max-width:66em}#ui-dialog.open{opacity:1}#ui-dialog-titlebar{background-color:#444;min-height:24px}#ui-dialog-title{margin:0;padding:.2em 3.5em .2em .5em;font-size:1.5em;text-align:center;text-transform:uppercase}#ui-dialog-close{cursor:pointer;font-size:120%;margin:0;padding:0;width:3.6em;height:92%;background-color:transparent;border:1px solid transparent;-webkit-transition-duration:.2s;-o-transition-duration:.2s;transition-duration:.2s}#ui-dialog-close:hover{background-color:#b44;border-color:#d66}#ui-dialog-body{background-color:#111;border:1px solid #444;text-align:left;line-height:1.5;padding:1em}#ui-dialog-body>:first-child{margin-top:0}#ui-dialog-body hr{background-color:#444}#ui-dialog-body ul.buttons{margin:0;padding:0;list-style:none}#ui-dialog-body ul.buttons li{display:inline-block;margin:0;padding:.4em .4em 0 0}#ui-dialog-body ul.buttons>li+li>button{margin-left:1em}#ui-dialog-body.list{padding:0;min-width:140px}#ui-dialog-body.list ul{margin:0;padding:0;list-style:none;border:1px solid transparent}#ui-dialog-body.list li{margin:0}#ui-dialog-body.list li:not(:first-child){border-top:1px solid #444}#ui-dialog-body.list li a{display:block;padding:.25em .75em;border:1px solid transparent;color:#eee;text-decoration:none}#ui-dialog-body.list li a:hover{background-color:#333;border-color:#eee}#ui-dialog-body.saves{padding:0 0 1px}#ui-dialog-body.saves>:not(:first-child){border-top:1px solid #444}#ui-dialog-body.saves table{border-spacing:0;min-width:340px;width:100%}#ui-dialog-body.saves tr:not(:first-child){border-top:1px solid #444}#ui-dialog-body.saves td{padding:.33em .33em}#ui-dialog-body.saves td:first-child{min-width:1.5em;text-align:center}#ui-dialog-body.saves td:nth-child(3){line-height:1.2}#ui-dialog-body.saves td:last-child{text-align:right}#ui-dialog-body.saves .empty{color:#999}#ui-dialog-body.saves .datestamp{font-size:75%}#ui-dialog-body.saves ul.buttons li{padding:.4em}#ui-dialog-body.saves ul.buttons>li+li>button{margin-left:.2em}#ui-dialog-body.saves ul.buttons li:last-child{float:right}#ui-dialog-body.settings div[id|=header-body]{margin:1em 0}#ui-dialog-body.settings div[id|=header-body]:first-child{margin-top:0}#ui-dialog-body.settings div[id|=header-body]:not(:first-child){border-top:1px solid #444;padding-top:1em}#ui-dialog-body.settings div[id|=header-body]>*{margin:0}#ui-dialog-body.settings h2[id|=header-heading]{font-size:1.375em}#ui-dialog-body.settings p[id|=header-label]{font-size:87.5%}#ui-dialog-body.settings div[id|=setting-body]+div[id|=setting-body]{margin:.5em 0}#ui-dialog-body.settings [id|=setting-control]{white-space:nowrap}#ui-dialog-body.settings button[id|=setting-control]{color:#eee;background-color:transparent;border:1px solid #444;padding:.4em}#ui-dialog-body.settings button[id|=setting-control]:hover{background-color:#333;border-color:#eee}#ui-dialog-body.settings button[id|=setting-control].enabled{background-color:#282;border-color:#4a4}#ui-dialog-body.settings button[id|=setting-control].enabled:hover{background-color:#4a4;border-color:#6c6}#ui-dialog-body.share{min-width:140px}#ui-dialog-body.list a,#ui-dialog-body.settings span[id|=setting-input],#ui-dialog-close{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#ui-dialog-body.saves button[id=saves-export]:before,#ui-dialog-body.saves button[id=saves-import]:before,#ui-dialog-body.saves button[id=saves-clear]:before,#ui-dialog-body.settings button[id|=setting-control].enabled:after,#ui-dialog-body.settings button[id|=setting-control]:after,#ui-dialog-close{font-family:tme-fa-icons;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;speak:none}#ui-dialog-body.saves button[id=saves-export]:before{content:"\e829\00a0"}#ui-dialog-body.saves button[id=saves-import]:before{content:"\e82a\00a0"}#ui-dialog-body.saves button[id=saves-clear]:before{content:"\e827\00a0"}#ui-dialog-body.settings button[id|=setting-control]:after{content:"\00a0\00a0\e830"}#ui-dialog-body.settings button[id|=setting-control].enabled:after{content:"\00a0\00a0\e831"}</style> +<style id="style-ui-dialog" type="text/css">html.ui-dialog-open body{overflow:hidden}#ui-overlay.open{visibility:visible;-webkit-transition:opacity .2s ease-in;-o-transition:opacity .2s ease-in;transition:opacity .2s ease-in}#ui-overlay:not(.open){-webkit-transition:visibility .2s step-end,opacity .2s ease-in;-o-transition:visibility .2s step-end,opacity .2s ease-in;transition:visibility .2s step-end,opacity .2s ease-in}#ui-overlay{visibility:hidden;opacity:0;z-index:1000;position:fixed;top:0;left:0;height:100%;width:100%}#ui-dialog.open{display:block;-webkit-transition:opacity .2s ease-in;-o-transition:opacity .2s ease-in;transition:opacity .2s ease-in}#ui-dialog{display:none;opacity:0;z-index:1100;position:fixed;top:50px;margin:0;padding:0}#ui-dialog-titlebar{position:relative}#ui-dialog-close{display:block;position:absolute;right:0;top:0;white-space:nowrap}#ui-dialog-body{overflow:auto;min-width:280px;height:90%;height:calc(100% - 2.1em - 34px)}#ui-dialog-body.settings [id|=setting-body]{display:table;width:100%}#ui-dialog-body.settings [id|=setting-label]{display:table-cell;padding:.4em 2em .4em 0}#ui-dialog-body.settings [id|=setting-label]+div{display:table-cell;min-width:8em;text-align:right;vertical-align:middle;white-space:nowrap}#ui-overlay{background-color:#000}#ui-overlay.open{opacity:.8}#ui-dialog{max-width:66em}#ui-dialog.open{opacity:1}#ui-dialog-titlebar{background-color:#444;min-height:24px}#ui-dialog-title{margin:0;padding:.2em 3.5em .2em .5em;font-size:1.5em;text-align:center;text-transform:uppercase}#ui-dialog-close{cursor:pointer;font-size:120%;margin:0;padding:0;width:3.6em;height:92%;background-color:transparent;border:1px solid transparent;-webkit-transition-duration:.2s;-o-transition-duration:.2s;transition-duration:.2s}#ui-dialog-close:hover{background-color:#b44;border-color:#d66}#ui-dialog-body{background-color:#111;border:1px solid #444;text-align:left;line-height:1.5;padding:1em}#ui-dialog-body>:first-child{margin-top:0}#ui-dialog-body hr{background-color:#444}#ui-dialog-body ul.buttons{margin:0;padding:0;list-style:none}#ui-dialog-body ul.buttons li{display:inline-block;margin:0;padding:.4em .4em 0 0}#ui-dialog-body ul.buttons>li+li>button{margin-left:1em}#ui-dialog-body.list{padding:0;min-width:140px}#ui-dialog-body.list ul{margin:0;padding:0;list-style:none;border:1px solid transparent}#ui-dialog-body.list li{margin:0}#ui-dialog-body.list li:not(:first-child){border-top:1px solid #444}#ui-dialog-body.list li a{display:block;padding:.25em .75em;border:1px solid transparent;color:#eee;text-decoration:none}#ui-dialog-body.list li a:hover{background-color:#333;border-color:#eee}#ui-dialog-body.saves{padding:0 0 1px}#ui-dialog-body.saves>:not(:first-child){border-top:1px solid #444}#ui-dialog-body.saves table{border-spacing:0;min-width:340px;width:100%}#ui-dialog-body.saves tr:not(:first-child){border-top:1px solid #444}#ui-dialog-body.saves td{padding:.33em .33em}#ui-dialog-body.saves td:first-child{min-width:1.5em;text-align:center}#ui-dialog-body.saves td:nth-child(3){line-height:1.2}#ui-dialog-body.saves td:last-child{text-align:right}#ui-dialog-body.saves .empty{color:#999}#ui-dialog-body.saves .datestamp{font-size:75%}#ui-dialog-body.saves ul.buttons li{padding:.4em}#ui-dialog-body.saves ul.buttons>li+li>button{margin-left:.2em}#ui-dialog-body.saves ul.buttons li:last-child{float:right}#ui-dialog-body.settings div[id|=header-body]{margin:1em 0}#ui-dialog-body.settings div[id|=header-body]:first-child{margin-top:0}#ui-dialog-body.settings div[id|=header-body]:not(:first-child){border-top:1px solid #444;padding-top:1em}#ui-dialog-body.settings div[id|=header-body]>*{margin:0}#ui-dialog-body.settings h2[id|=header-heading]{font-size:1.375em}#ui-dialog-body.settings p[id|=header-label]{font-size:87.5%}#ui-dialog-body.settings div[id|=setting-body]+div[id|=setting-body]{margin:.5em 0}#ui-dialog-body.settings [id|=setting-control]{white-space:nowrap}#ui-dialog-body.settings button[id|=setting-control]{color:#eee;background-color:transparent;border:1px solid #444;padding:.4em}#ui-dialog-body.settings button[id|=setting-control]:hover{background-color:#333;border-color:#eee}#ui-dialog-body.settings button[id|=setting-control].enabled{background-color:#282;border-color:#4a4}#ui-dialog-body.settings button[id|=setting-control].enabled:hover{background-color:#4a4;border-color:#6c6}#ui-dialog-body.share{min-width:140px}#ui-dialog-body.list a,#ui-dialog-body.settings span[id|=setting-input],#ui-dialog-close{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#ui-dialog-body.saves button[id=saves-clear]:before,#ui-dialog-body.saves button[id=saves-export]:before,#ui-dialog-body.saves button[id=saves-import]:before,#ui-dialog-body.settings button[id|=setting-control].enabled:after,#ui-dialog-body.settings button[id|=setting-control]:after,#ui-dialog-close{font-family:tme-fa-icons;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;speak:none}#ui-dialog-body.saves button[id=saves-export]:before{content:"\e829\00a0"}#ui-dialog-body.saves button[id=saves-import]:before{content:"\e82a\00a0"}#ui-dialog-body.saves button[id=saves-clear]:before{content:"\e827\00a0"}#ui-dialog-body.settings button[id|=setting-control]:after{content:"\00a0\00a0\e830"}#ui-dialog-body.settings button[id|=setting-control].enabled:after{content:"\00a0\00a0\e831"}</style> <style id="style-debugview" type="text/css">#ui-bar-body>#debug-view-toggle:first-child{margin-top:1em}#ui-bar-body>#debug-view-toggle:first-child+*{margin-top:1em}#debug-view-toggle{text-transform:uppercase}#debug-view-toggle:after,#debug-view-toggle:before{font-family:tme-fa-icons;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;speak:none}#debug-view-toggle:before{content:"\e838\00a0"}html:not(.debug-view) #debug-view-toggle{color:#eee;background-color:transparent;border:1px solid #444;padding:.4em}html:not(.debug-view) #debug-view-toggle:hover{background-color:#333;border-color:#eee}html:not(.debug-view) #debug-view-toggle:after{content:"\00a0\00a0\e830"}html.debug-view #debug-view-toggle{background-color:#282;border-color:#4a4}html.debug-view #debug-view-toggle:hover{background-color:#4a4;border-color:#6c6}html.debug-view #debug-view-toggle:after{content:"\00a0\00a0\e831"}html.debug-view .debug{padding:.25em;background-color:#234}html.debug-view .debug[title]{cursor:help}html.debug-view .debug.block{display:inline-block;vertical-align:middle}html.debug-view .debug.invalid{text-decoration:line-through}html.debug-view .debug.hidden,html.debug-view .debug.hidden .debug{background-color:#555}html:not(.debug-view) .debug.hidden{display:none}html.debug-view .debug[data-name][data-type].nonvoid:after,html.debug-view .debug[data-name][data-type]:before{background-color:rgba(0,0,0,.25);font-family:monospace,monospace;white-space:pre}html.debug-view .debug[data-name][data-type]:before{content:attr(data-name)}html.debug-view .debug[data-name][data-type|=macro]:before{content:"<<" attr(data-name) ">>"}html.debug-view .debug[data-name][data-type|=macro].nonvoid:after{content:"<</" attr(data-name) ">>"}html.debug-view .debug[data-name][data-type|=html]:before{content:"<" attr(data-name) ">"}html.debug-view .debug[data-name][data-type|=html].nonvoid:after{content:"</" attr(data-name) ">"}html.debug-view .debug[data-name][data-type]:not(:empty):before{margin-right:.25em}html.debug-view .debug[data-name][data-type].nonvoid:not(:empty):after{margin-left:.25em}html.debug-view .debug[data-name][data-type|=special],html.debug-view .debug[data-name][data-type|=special]:before{display:block}</style> </head> <body> @@ -145,12 +145,12 @@ var saveAs=saveAs||navigator.msSaveBlob&&navigator.msSaveBlob.bind(navigator)||f SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- */ - if(document.documentElement.classList.contains("init-loading")){!function(window,document,jQuery,undefined){"use strict";function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _toConsumableArray(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t<e.length;t++)r[t]=e[t];return r}return Array.from(e)}function safeActiveElement(){try{return document.activeElement||null}catch(e){return null}}var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}}(),_slicedToArray=function(){function e(e,t){var r=[],n=!0,a=!1,i=undefined;try{for(var o,s=e[Symbol.iterator]();!(n=(o=s.next()).done)&&(r.push(o.value),!t||r.length!==t);n=!0);}catch(e){a=!0,i=e}finally{try{!n&&s.return&&s.return()}finally{if(a)throw i}}return r}return function(t,r){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,r);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},Alert=function(){function e(e,t,r,n){var a="fatal"===e,i="Apologies! "+(a?"A fatal":"An")+" error has occurred.";i+=a?" Aborting.":" You may be able to continue, but some parts may not work properly.",null==t&&null==r||(i+="\n\nError",null!=t&&(i+=" ["+t+"]"),i+=null!=r?": "+r.replace(/^(?:(?:uncaught\s+(?:exception:\s+)?)?error:\s+)+/i,"")+".":": unknown error."),n&&n.stack&&(i+="\n\nStack Trace:\n"+n.stack),window.alert(i)}function t(t,r,n){e(null,t,r,n)}function r(t,r,n){e("fatal",t,r,n)}return function(e){window.onerror=function(n,a,i,o,s){"complete"===document.readyState?t(null,n,s):(r(null,n,s),window.onerror=e,"function"==typeof window.onerror&&window.onerror.apply(this,arguments))}}(window.onerror),Object.freeze(Object.defineProperties({},{error:{value:t},fatal:{value:r}}))}();!function(){Array.prototype.includes||Object.defineProperty(Array.prototype,"includes",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.includes called on null or undefined");if(0===arguments.length)return!1;var e=this.length>>>0;if(0===e)return!1;var t=arguments[0],r=Number(arguments[1])||0;for(r<0&&(r=Math.max(0,e+r));r<e;++r){var n=this[r];if(t===n||t!==t&&n!==n)return!0}return!1}}),String.prototype.trimLeft||Object.defineProperty(String.prototype,"trimLeft",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.trimLeft called on null or undefined");return this.replace(/^[\s\uFEFF\u00A0]+/,"")}}),String.prototype.trimStart||Object.defineProperty(String.prototype,"trimStart",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.trimStart called on null or undefined");return this.trimLeft()}}),String.prototype.trimRight||Object.defineProperty(String.prototype,"trimRight",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.trimRight called on null or undefined");return this.replace(/[\s\uFEFF\u00A0]+$/,"")}}),String.prototype.trimEnd||Object.defineProperty(String.prototype,"trimEnd",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.trimEnd called on null or undefined");return this.trimRight()}})}(),function(){function _random(){if(0===arguments.length)throw new Error("_random called with insufficient parameters");var e=void 0,t=void 0;if(1===arguments.length?(e=0,t=arguments[0]):(e=arguments[0],t=arguments[1]),e>t){var r=[t,e];e=r[0],t=r[1]}return Math.floor(_nativeMathRandom()*(t-e+1))+e}function _getCodePointStartAndEnd(e,t){var r=e.charCodeAt(t);if(Number.isNaN(r))return{char:"",start:-1,end:-1};if(r<55296||r>57343)return{char:e.charAt(t),start:t,end:t};if(r>=55296&&r<=56319){var n=t+1;if(n>=e.length)throw new Error("high surrogate without trailing low surrogate");var a=e.charCodeAt(n);if(a<56320||a>57343)throw new Error("high surrogate without trailing low surrogate");return{char:e.charAt(t)+e.charAt(n),start:t,end:n}}if(0===t)throw new Error("low surrogate without leading high surrogate");var i=t-1,o=e.charCodeAt(i);if(o<55296||o>56319)throw new Error("low surrogate without leading high surrogate");return{char:e.charAt(i)+e.charAt(t),start:i,end:t}}var _nativeMathRandom=Math.random;Object.defineProperty(Array,"random",{configurable:!0,writable:!0,value:function(e,t,r){var n=t,a=r;return 2===arguments.length&&(a=n,n=0),Array.isArray(e)?e.random(n,a):e.hasOwnProperty("length")?[].concat(_toConsumableArray(e)).random(n,a):void 0}}),Object.defineProperty(Array.prototype,"count",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.count called on null or undefined");for(var e=Array.prototype.indexOf,t=arguments[0],r=Number(arguments[1])||0,n=0;(r=e.call(this,t,r))!==-1;)++n,++r;return n}}),Object.defineProperty(Array.prototype,"delete",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.delete called on null or undefined");if(0===arguments.length)return[];var e=this.length>>>0;if(0===e)return[];for(var t=Array.prototype.indexOf,r=Array.prototype.push,n=Array.prototype.splice,a=Array.prototype.concat.apply([],arguments),i=[],o=0,s=a.length;o<s;++o)for(var u=a[o],l=0;(l=t.call(this,u,l))!==-1;)r.apply(i,n.call(this,l,1));return i}}),Object.defineProperty(Array.prototype,"deleteAt",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.deleteAt called on null or undefined");if(0===arguments.length)return[];var e=this.length>>>0;if(0===e)return[];for(var t=Array.prototype.splice,r=[].concat(_toConsumableArray(new Set(Array.prototype.concat.apply([],arguments).map(function(t){return t<0?Math.max(0,e+t):t})).values())),n=[].concat(_toConsumableArray(r)).sort(function(e,t){return t-e}),a=[],i=0,o=r.length;i<o;++i)a[i]=this[r[i]];for(var s=0,u=n.length;s<u;++s)t.call(this,n[s],1);return a}}),Object.defineProperty(Array.prototype,"flatten",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.flatten called on null or undefined");return Array.prototype.reduce.call(this,function(e,t){return e.concat(Array.isArray(t)?t.flatten():t)},[])}}),Object.defineProperty(Array.prototype,"includesAll",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.includesAll called on null or undefined");if(1===arguments.length)return Array.isArray(arguments[0])?Array.prototype.includesAll.apply(this,arguments[0]):Array.prototype.includes.apply(this,arguments);for(var e=0,t=arguments.length;e<t;++e)if(!Array.prototype.some.call(this,function(e){return e===this.val||e!==e&&this.val!==this.val},{val:arguments[e]}))return!1;return!0}}),Object.defineProperty(Array.prototype,"includesAny",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.includesAny called on null or undefined");if(1===arguments.length)return Array.isArray(arguments[0])?Array.prototype.includesAny.apply(this,arguments[0]):Array.prototype.includes.apply(this,arguments);for(var e=0,t=arguments.length;e<t;++e)if(Array.prototype.some.call(this,function(e){return e===this.val||e!==e&&this.val!==this.val},{val:arguments[e]}))return!0;return!1}}),Object.defineProperty(Array.prototype,"pluck",{configurable:!0,writable:!0,value:function(e,t){if(null==this)throw new TypeError("Array.prototype.pluck called on null or undefined");var r=this.length>>>0;if(0!==r){var n=e,a=t;return 1===arguments.length&&(a=n,n=0),null==n?n=0:n<0?(n=r+n,n<0&&(n=0)):n>=r&&(n=r-1),null==a?a=r-1:a<0?(a=r+a,a<0&&(a=r-1)):a>=r&&(a=r-1),Array.prototype.splice.call(this,_random(n,a),1)[0]}}}),Object.defineProperty(Array.prototype,"random",{configurable:!0,writable:!0,value:function(e,t){if(null==this)throw new TypeError("Array.prototype.random called on null or undefined");var r=this.length>>>0;if(0!==r){var n=e,a=t;return 1===arguments.length&&(a=n,n=0),null==n?n=0:n<0?(n=r+n,n<0&&(n=0)):n>=r&&(n=r-1),null==a?a=r-1:a<0?(a=r+a,a<0&&(a=r-1)):a>=r&&(a=r-1),this[_random(n,a)]}}}),Object.defineProperty(Array.prototype,"shuffle",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.shuffle called on null or undefined");var e=this.length>>>0;if(0!==e){for(var t=e-1;t>0;--t){var r=Math.floor(_nativeMathRandom()*(t+1)),n=this[t];this[t]=this[r],this[r]=n}return this}}}),Object.defineProperty(Function.prototype,"partial",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Function.prototype.partial called on null or undefined");var e=Array.prototype.slice,t=this,r=e.call(arguments,0);return function(){for(var n=[],a=0,i=0;i<r.length;++i)n.push(r[i]===undefined?arguments[a++]:r[i]);return t.apply(this,n.concat(e.call(arguments,a)))}}}),Object.defineProperty(Math,"clamp",{configurable:!0,writable:!0,value:function e(t,r,n){var e=Number(t);return Number.isNaN(e)?NaN:e.clamp(r,n)}}),Object.defineProperty(Math,"easeInOut",{configurable:!0,writable:!0,value:function(e){return 1-(Math.cos(Number(e)*Math.PI)+1)/2}}),Object.defineProperty(Number.prototype,"clamp",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Number.prototype.clamp called on null or undefined");if(2!==arguments.length)throw new Error("Number.prototype.clamp called with an incorrect number of parameters");var e=Number(arguments[0]),t=Number(arguments[1]);if(e>t){var r=[t,e];e=r[0],t=r[1]}return Math.min(Math.max(this,e),t)}}),RegExp.escape||!function(){var e=/[\\^$*+?.()|[\]{}]/g,t=new RegExp(e.source);Object.defineProperty(RegExp,"escape",{configurable:!0,writable:!0,value:function(r){var n=String(r);return n&&t.test(n)?n.replace(e,"\\$&"):n}})}(),function(){var e=/{(\d+)(?:,([+-]?\d+))?}/g,t=new RegExp(e.source);Object.defineProperty(String,"format",{configurable:!0,writable:!0,value:function(r){function n(e,t,r){if(!t)return e;var n=Math.abs(t)-e.length;if(n<1)return e;var a=String(r).repeat(n);return t<0?e+a:a+e}if(arguments.length<2)return 0===arguments.length?"":r;var a=2===arguments.length&&Array.isArray(arguments[1])?[].concat(_toConsumableArray(arguments[1])):Array.prototype.slice.call(arguments,1);return 0===a.length?r:t.test(r)?(e.lastIndex=0,r.replace(e,function(e,t,r){var i=a[t];if(null==i)return"";for(;"function"==typeof i;)i=i();switch("undefined"==typeof i?"undefined":_typeof(i)){case"string":break;case"object":i=JSON.stringify(i);break;default:i=String(i)}return n(i,r?Number.parseInt(r,10):0," ")})):r}})}(),Object.defineProperty(String.prototype,"contains",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.contains called on null or undefined");return String.prototype.indexOf.apply(this,arguments)!==-1}}),Object.defineProperty(String.prototype,"count",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.count called on null or undefined");var e=String(arguments[0]||"");if(""===e)return 0;for(var t=String.prototype.indexOf,r=e.length,n=Number(arguments[1])||0,a=0;(n=t.call(this,e,n))!==-1;)++a,n+=r;return a}}),Object.defineProperty(String.prototype,"splice",{configurable:!0,writable:!0,value:function(e,t,r){if(null==this)throw new TypeError("String.prototype.splice called on null or undefined");var n=this.length>>>0;if(0===n)return"";var a=Number(e);Number.isSafeInteger(a)?a<0&&(a+=n,a<0&&(a=0)):a=0,a>n&&(a=n);var i=Number(t);(!Number.isSafeInteger(i)||i<0)&&(i=0);var o=this.slice(0,a);return"undefined"!=typeof r&&(o+=r),a+i<n&&(o+=this.slice(a+i)),o}}),Object.defineProperty(String.prototype,"splitOrEmpty",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.splitOrEmpty called on null or undefined");return""===String(this)?[]:String.prototype.split.apply(this,arguments)}}),Object.defineProperty(String.prototype,"toLocaleUpperFirst",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.toLocaleUpperFirst called on null or undefined");var e=String(this),t=_getCodePointStartAndEnd(e,0),r=t.char,n=t.end;return n===-1?"":r.toLocaleUpperCase()+e.slice(n+1)}}),Object.defineProperty(String.prototype,"toUpperFirst",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.toUpperFirst called on null or undefined");var e=String(this),t=_getCodePointStartAndEnd(e,0),r=t.char,n=t.end;return n===-1?"":r.toUpperCase()+e.slice(n+1)}}),Object.defineProperty(Date.prototype,"toJSON",{configurable:!0,writable:!0,value:function(){return["(revive:date)",this.toISOString()]}}),Object.defineProperty(Function.prototype,"toJSON",{configurable:!0,writable:!0,value:function(){return["(revive:eval)","("+this.toString()+")"]}}),Object.defineProperty(Map.prototype,"toJSON",{configurable:!0,writable:!0,value:function(){return["(revive:map)",[].concat(_toConsumableArray(this))]}}),Object.defineProperty(RegExp.prototype,"toJSON",{configurable:!0,writable:!0,value:function(){return["(revive:eval)",this.toString()]}}),Object.defineProperty(Set.prototype,"toJSON",{configurable:!0,writable:!0,value:function(){return["(revive:set)",[].concat(_toConsumableArray(this))]}}),Object.defineProperty(JSON,"reviveWrapper",{configurable:!0,writable:!0,value:function(e,t){if("string"!=typeof e)throw new TypeError("JSON.reviveWrapper code parameter must be a string");return["(revive:eval)",[e,t]]}}),Object.defineProperty(JSON,"_real_parse",{value:JSON.parse}),Object.defineProperty(JSON,"parse",{configurable:!0,writable:!0,value:function value(text,reviver){return JSON._real_parse(text,function(key,val){var value=val;if(Array.isArray(value)&&2===value.length)switch(value[0]){case"(revive:set)":value=new Set(value[1]);break;case"(revive:map)":value=new Map(value[1]);break;case"(revive:date)":value=new Date(value[1]);break;case"(revive:eval)":try{if(Array.isArray(value[1])){var $ReviveData$=value[1][1];value=eval(value[1][0])}else value=eval(value[1])}catch(e){}}else if("string"==typeof value&&"@@revive@@"===value.slice(0,10))try{value=eval(value.slice(10))}catch(e){}if("function"==typeof reviver)try{value=reviver(key,value)}catch(e){}return value})}}),Object.defineProperty(Array.prototype,"contains",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.contains called on null or undefined");return Array.prototype.includes.apply(this,arguments)}}),Object.defineProperty(Array.prototype,"containsAll",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.containsAll called on null or undefined");return Array.prototype.includesAll.apply(this,arguments)}}),Object.defineProperty(Array.prototype,"containsAny",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.containsAny called on null or undefined");return Array.prototype.includesAny.apply(this,arguments)}}),Object.defineProperty(String.prototype,"readBracketedList",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.readBracketedList called on null or undefined");for(var e=new RegExp("(?:\\[\\[((?:\\s|\\S)*?)\\]\\])|([^\"'\\s]\\S*)","gm"),t=[],r=void 0;null!==(r=e.exec(this));)r[1]?t.push(r[1]):r[2]&&t.push(r[2]);return t}})}(),function(){function e(e){13!==e.which&&32!==e.which||(e.preventDefault(),jQuery(safeActiveElement()||this).trigger("click"))}function t(e){return function(){var t=jQuery(this);t.is("[aria-pressed]")&&t.attr("aria-pressed","true"===t.attr("aria-pressed")?"false":"true"),e.apply(this,arguments)}}function r(e){return t(function(){jQuery(this).off(".aria-clickable").removeAttr("tabindex aria-controls aria-pressed").not("a,button").removeAttr("role").end().filter("button").prop("disabled",!0),e.apply(this,arguments)})}jQuery.fn.extend({ariaClick:function(n,a){if(0===this.length||0===arguments.length)return this;var i=n,o=a;return null==o&&(o=i,i=undefined),i=jQuery.extend({namespace:undefined,one:!1,selector:undefined,data:undefined,controls:undefined,pressed:undefined,label:undefined},i),"string"!=typeof i.namespace?i.namespace="":"."!==i.namespace[0]&&(i.namespace="."+i.namespace),"boolean"==typeof i.pressed&&(i.pressed=i.pressed?"true":"false"),this.filter("button").prop("type","button"),this.not("a,button").attr("role","button"),this.attr("tabindex",0),null!=i.controls&&this.attr("aria-controls",i.controls),null!=i.pressed&&this.attr("aria-pressed",i.pressed),null!=i.label&&this.attr({"aria-label":i.label,title:i.label}),this.not("button").on("keypress.aria-clickable"+i.namespace,i.selector,e),this.on("click.aria-clickable"+i.namespace,i.selector,i.data,i.one?r(o):t(o)),this}})}(),function(){jQuery.fn.extend({wikiWithOptions:function(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];if(0===this.length||0===r.length)return this;var a=document.createDocumentFragment();return r.forEach(function(t){return new Wikifier(a,t,e)}),this.append(a),this},wiki:function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return this.wikiWithOptions.apply(this,[undefined].concat(t))}})}();var Browser=function(){var e={userAgent:navigator.userAgent.toLowerCase()};return e.isGecko=navigator&&"Gecko"===navigator.product&&!/webkit|trident/.test(e.userAgent),e.isIE=/msie|trident/.test(e.userAgent)&&!e.userAgent.includes("opera"),e.ieVersion=function(){var t=/(?:msie\s+|rv:)(\d{1,2}\.\d)/.exec(e.userAgent);return t?Number([1]):0}(),e.isOpera=e.userAgent.includes("opera")||e.userAgent.includes(" opr/"),e.operaVersion=function(){var t=new RegExp((/applewebkit|chrome/.test(e.userAgent)?"opr":"version")+"\\/(\\d{1,2}\\.\\d+)"),r=t.exec(e.userAgent);return r?Number(r[1]):0}(),e.isMobile=Object.freeze({Android:/android/.test(e.userAgent),BlackBerry:/blackberry/.test(e.userAgent),iOS:/ip(?:hone|ad|od)/.test(e.userAgent),Windows:/iemobile/.test(e.userAgent),any:function(){var t=e.isMobile;return t.Android||t.BlackBerry||t.iOS||t.Windows}}),Object.freeze(e)}(),Has=function(){function e(e){try{if(null!=e&&e.length>=0){var t="SugarCube.WebStorage.test",r="1701 Guilty Scott";if(e.setItem(t,r),e.getItem(t)===r)return e.removeItem(t),!0}}catch(e){}return!1}return Object.freeze({audio:"function"==typeof document.createElement("audio").canPlayType,fileAPI:"File"in window&&"FileList"in window&&"FileReader"in window&&!Browser.isMobile.any()&&(!Browser.isOpera||Browser.operaVersion>=15),geolocation:"geolocation"in navigator&&"function"==typeof navigator.geolocation.getCurrentPosition&&"function"==typeof navigator.geolocation.watchPosition,localStorage:"localStorage"in window&&e(window.localStorage),sessionStorage:"sessionStorage"in window&&e(window.sessionStorage)})}(),_ref3=function(){function e(e){var t=document.getElementById("style-story");null===t&&(t=document.createElement("style"),t.id="style-story",t.type="text/css",document.head.appendChild(t)),t=new StyleWrapper(t),t.add(e)}function t(e){if("object"!==("undefined"==typeof e?"undefined":_typeof(e))||null==e)return e;if("function"==typeof e.clone)return e.clone(!0);if(e.nodeType&&"function"==typeof e.cloneNode)return e.cloneNode(!0);var r=void 0;return Array.isArray(e)?r=[]:e instanceof Date?r=new Date(e.getTime()):e instanceof Map?(r=new Map,e.forEach(function(e,n){r.set(n,t(e))})):e instanceof RegExp?r=new RegExp(e):e instanceof Set?(r=new Set,e.forEach(function(e){r.add(t(e))})):r=Object.create(Object.getPrototypeOf(e)),Object.keys(e).forEach(function(n){return r[n]=t(e[n])}),r}function r(e){for(var t=document.createDocumentFragment(),r=document.createElement("p"),n=void 0;null!==(n=e.firstChild);){if(n.nodeType===Node.ELEMENT_NODE){var a=n.nodeName.toUpperCase();switch(a){case"BR":if(null!==n.nextSibling&&n.nextSibling.nodeType===Node.ELEMENT_NODE&&"BR"===n.nextSibling.nodeName.toUpperCase()){e.removeChild(n.nextSibling),e.removeChild(n),t.appendChild(r),r=document.createElement("p");continue}if(!r.hasChildNodes()){e.removeChild(n);continue}break;case"ADDRESS":case"ARTICLE":case"ASIDE":case"BLOCKQUOTE":case"CENTER":case"DIV":case"DL":case"FIGURE":case"FOOTER":case"FORM":case"H1":case"H2":case"H3":case"H4":case"H5":case"H6":case"HEADER":case"HR":case"MAIN":case"NAV":case"OL":case"P":case"PRE":case"SECTION":case"TABLE":case"UL":r.hasChildNodes()&&(t.appendChild(r),r=document.createElement("p")),t.appendChild(n);continue}}r.appendChild(n)}r.hasChildNodes()&&t.appendChild(r),e.appendChild(t)}function n(e,t,r){var n="object"===("undefined"==typeof e?"undefined":_typeof(e))?e:document.getElementById(e);if(null==n)return null;var a=Array.isArray(t)?t:[t];jQuery(n).empty();for(var i=0,o=a.length;i<o;++i)if(Story.has(a[i]))return new Wikifier(n,Story.get(a[i]).processText().trim()),n;if(null!=r){var s=String(r).trim();""!==s&&new Wikifier(n,s)}return n}function a(e,t,r){return jQuery(document.createElement("span")).addClass("error").attr("title",r).text(L10n.get("errorTitle")+": "+(t||"unknown error")).appendTo(e),!1}function i(e,t){switch("undefined"==typeof e?"undefined":_typeof(e)){case"number":if(Number.isNaN(e))return t;break;case"object":if(null===e)return t;if(Array.isArray(e)||e instanceof Set)return[].concat(_toConsumableArray(e)).map(function(e){return i(e,t)}).join(", ");if(e instanceof Map){var r=function(){var r=i,n=[].concat(_toConsumableArray(e)).map(function(e){return r(e[0],t)+" ⇒ "+r(e[1],t)}).join("; ");return{v:"( "+n+" )"}}();if("object"===("undefined"==typeof r?"undefined":_typeof(r)))return r.v}else{if(e instanceof Date)return e.toLocaleString();if("function"==typeof e.toString)return e.toString()}return Object.prototype.toString.call(e);case"function":case"undefined":return t}return String(e)}return Object.freeze(Object.defineProperties({},{addStyle:{value:e},clone:{value:t},convertBreaks:{value:r},setPageElement:{value:n},throwError:{value:a},toStringOrDefault:{value:i}}))}(),addStyle=_ref3.addStyle,clone=_ref3.clone,convertBreaks=_ref3.convertBreaks,setPageElement=_ref3.setPageElement,throwError=_ref3.throwError,toStringOrDefault=_ref3.toStringOrDefault,Util=function(){function e(e){var t=void 0;switch("undefined"==typeof e?"undefined":_typeof(e)){case"number":t=e;break;case"string":t=Number(e);break;default:return!1}return!Number.isNaN(t)&&Number.isFinite(t)}function t(e){return"boolean"==typeof e||"string"==typeof e&&("true"===e||"false"===e)}function r(e){return String(e).trim().replace(/[^\w\s\u2013\u2014-]+/g,"").replace(/[_\s\u2013\u2014-]+/g,"-").toLocaleLowerCase()}function n(e){if(null==e)return"";var t=String(e);return t&&h.test(t)?t.replace(d,function(e){return p[e]}):t}function a(e){if(null==e)return"";var t=String(e);return t&&g.test(t)?t.replace(f,function(e){return m[e]}):t}function i(e){var t=/^([+-]?(?:\d*\.)?\d+)([Mm]?[Ss])$/,r=t.exec(String(e));if(null===r)throw new SyntaxError('invalid time value syntax: "'+e+'"');var n=Number(r[1]);if(/^[Ss]$/.test(r[2])&&(n*=1e3),Number.isNaN(n)||!Number.isFinite(n))throw new RangeError('invalid time value: "'+e+'"');return n}function o(e){if("number"!=typeof e||Number.isNaN(e)||!Number.isFinite(e)){var t=void 0;switch("undefined"==typeof e?"undefined":_typeof(e)){case"string":t='"'+e+'"';break;case"number":t=String(e);break;default:t=Object.prototype.toString.call(e)}throw new Error("invalid milliseconds: "+t)}return e+"ms"}function s(e){if(!e.includes("-"))switch(e){case"bgcolor":return"backgroundColor";case"float":return"cssFloat";default:return e}var t="-ms-"===e.slice(0,4)?e.slice(1):e;return t.split("-").map(function(e,t){return 0===t?e:e.toUpperFirst()}).join("")}function u(e){var t=document.createElement("a"),r=Object.create(null);t.href=e,t.search&&t.search.replace(/^\?/,"").splitOrEmpty(/(?:&(?:amp;)?|;)/).forEach(function(e){var t=e.split("="),n=_slicedToArray(t,2),a=n[0],i=n[1];r[a]=i});var n=t.host&&"/"!==t.pathname[0]?"/"+t.pathname:t.pathname;return{href:t.href,protocol:t.protocol,host:t.host,hostname:t.hostname,port:t.port,path:""+n+t.search,pathname:n,query:t.search,search:t.search,queries:r,searches:r,hash:t.hash}}function l(e,t){for(var r=Object.prototype.toString,n=Array.isArray(e),a=[].concat(Object.keys(e),Object.keys(t)).sort().filter(function(e,t,r){return 0===t||r[t-1]!==e}),i={},o=void 0,s=function(e){return e===o},u=0,l=a.length;u<l;++u){var c=a[u],d=e[c],h=t[c];if(e.hasOwnProperty(c))if(t.hasOwnProperty(c)){if(d===h)continue;if(("undefined"==typeof d?"undefined":_typeof(d))===("undefined"==typeof h?"undefined":_typeof(h)))if("function"==typeof d)d.toString()!==h.toString()&&(i[c]=[v.Copy,h]);else if("object"!==("undefined"==typeof d?"undefined":_typeof(d))||null===d)i[c]=[v.Copy,h];else{var p=r.call(d),f=r.call(h);if(p===f)if("[object Date]"===p){var g=Number(h);Number(d)!==g&&(i[c]=[v.CopyDate,g])}else if("[object RegExp]"===p)d.toString()!==h.toString()&&(i[c]=[v.Copy,clone(h)]);else{var m=Util.diff(d,h);null!==m&&(i[c]=m)}else i[c]=[v.Copy,clone(h)]}else i[c]=[v.Copy,"object"!==("undefined"==typeof h?"undefined":_typeof(h))||null===h?h:clone(h)]}else if(n&&Util.isNumeric(c)){var y=Number(c);if(!o){o="";do o+="~";while(a.some(s));i[o]=[v.SpliceArray,y,y]}y<i[o][1]&&(i[o][1]=y),y>i[o][2]&&(i[o][2]=y)}else i[c]=v.Delete;else i[c]=[v.Copy,"object"!==("undefined"==typeof h?"undefined":_typeof(h))||null===h?h:clone(h)]}return Object.keys(i).length>0?i:null}function c(e,t){for(var r=Object.keys(t||{}),n=clone(e),a=0,i=r.length;a<i;++a){var o=r[a],s=t[o];if(s===v.Delete)delete n[o];else if(Array.isArray(s))switch(s[0]){case v.SpliceArray:n.splice(s[1],1+(s[2]-s[1]));break;case v.Copy:n[o]=clone(s[1]);break;case v.CopyDate:n[o]=new Date(s[1])}else n[o]=Util.patch(n[o],s)}return n}var d=/[&<>"'`]/g,h=new RegExp(d.source),p=Object.freeze({"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"}),f=/&(?:amp|lt|gt|quot|apos|#39|#x27|#96|#x60);/g,g=new RegExp(f.source),m=Object.freeze({"&":"&","<":"<",">":">",""":'"',"'":"'","'":"'","'":"'","`":"`","`":"`"}),v=Object.freeze({Delete:0,SpliceArray:1,Copy:2,CopyDate:3});return Object.freeze(Object.defineProperties({},{isNumeric:{value:e},isBoolean:{value:t},slugify:{value:r},escape:{value:n},unescape:{value:a},fromCssTime:{value:i},toCssTime:{value:o},fromCssProperty:{value:s},parseUrl:{value:u},DiffOp:{value:v},diff:{value:l},patch:{value:c},random:{value:Math.random},entityEncode:{value:n},entityDecode:{value:a},evalExpression:{value:function(){return Scripting.evalJavaScript.apply(Scripting,arguments)}},evalStatements:{value:function(){return Scripting.evalJavaScript.apply(Scripting,arguments)}}}))}(),SimpleAudio=function(){function e(){return g}function t(e){g=!!e,l("mute",g)}function r(){return p}function n(e){p=Math.clamp(e,.2,5),l("rate",p)}function a(){return f}function i(e){f=Math.clamp(e,0,1),l("volume",f)}function o(){l("stop")}function s(e,t){if("function"!=typeof t)throw new Error("callback parameter must be a function");h.set(e,t)}function u(e){h.delete(e)}function l(e,t){h.forEach(function(r){return r(e,t)})}function c(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return new(Function.prototype.bind.apply(m,[null].concat(t)))}function d(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return new(Function.prototype.bind.apply(v,[null].concat(t)))}var h=new Map,p=1,f=1,g=!1,m=function(){function e(t){if(_classCallCheck(this,e),Array.isArray(t))this._create(t);else{if(!(t instanceof e))throw new Error("sources parameter must be an array of either URLs or source objects");this._copy(t)}}return _createClass(e,[{key:"_create",value:function(t){if(!Array.isArray(t)||0===t.length)throw new Error("sources parameter must be an array of either URLs or source objects");var r=/^data:\s*audio\/([^;,]+)\s*[;,]/i,n=/\.([^\.\/\\]+)$/,a=e.getType,i=[],o=document.createElement("audio");t.forEach(function(e){var t=null;switch("undefined"==typeof e?"undefined":_typeof(e)){case"string":var s=void 0;if("data:"===e.slice(0,5)){if(s=r.exec(e),null===s)throw new Error("source data URI missing media type")}else if(s=n.exec(Util.parseUrl(e).pathname),null===s)throw new Error("source URL missing file extension");var u=a(s[1]);null!==u&&(t={src:e,type:u});break;case"object":if(null===e)throw new Error("source object cannot be null");if(!e.hasOwnProperty("src"))throw new Error('source object missing required "src" property');if(!e.hasOwnProperty("format"))throw new Error('source object missing required "format" property');var l=a(e.format);null!==l&&(t={src:e.src,type:l});break;default:throw new Error("invalid source value (type: "+("undefined"==typeof e?"undefined":_typeof(e))+")")}if(null!==t){var c=document.createElement("source");c.src=t.src,c.type=t.type,o.appendChild(c),i.push(t)}}),this._finalize(o,i,clone(t))}},{key:"_copy",value:function(t){if(!(t instanceof e))throw new Error("original parameter must be an instance of AudioWrapper");this._finalize(t.audio.cloneNode(!0),clone(t.sources),clone(t.originalSources))}},{key:"_finalize",value:function(e,t,r){var n=this;Object.defineProperties(this,{audio:{configurable:!0,value:e},sources:{configurable:!0,value:Object.freeze(t)},originalSources:{configurable:!0,value:Object.freeze(r)},_error:{writable:!0,value:!1},_faderId:{writable:!0,value:null},_mute:{writable:!0,value:!1},_rate:{writable:!0,value:1},_volume:{writable:!0,value:1}}),jQuery(this.audio).on("loadstart",function(){return n._error=!1}).find("source:last-of-type").on("error",function(){n._error=!0,n._trigger("error")}),SimpleAudio.subscribe(this,function(e){if(!n.audio)return void SimpleAudio.unsubscribe(n);switch(e){case"mute":n._updateAudioMute();break;case"rate":n._updateAudioRate();break;case"stop":n.stop();break;case"volume":n._updateAudioVolume()}}),this.load()}},{key:"_trigger",value:function(e){jQuery(this.audio).triggerHandler(e)}},{key:"clone",value:function(){return new e(this)}},{key:"destroy",value:function(){SimpleAudio.unsubscribe(this),this.fadeStop(),this.stop();var e=this.audio;for(jQuery(e).off();e.hasChildNodes();)e.removeChild(e.firstChild);e.load(),this._error=!0,delete this.audio,delete this.sources,delete this.originalSources}},{key:"_updateAudioMute",value:function(){this.audio.muted=this._mute||SimpleAudio.mute}},{key:"_updateAudioRate",value:function(){this.audio.playbackRate=this._rate*SimpleAudio.rate}},{key:"_updateAudioVolume",value:function(){this.audio.volume=this._volume*SimpleAudio.volume}},{key:"hasSource",value:function(){return this.sources.length>0}},{key:"hasNoData",value:function(){return this.audio.readyState===HTMLMediaElement.HAVE_NOTHING}},{key:"hasMetadata",value:function(){return this.audio.readyState>=HTMLMediaElement.HAVE_METADATA}},{key:"hasSomeData",value:function(){return this.audio.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA}},{key:"hasData",value:function(){return this.audio.readyState===HTMLMediaElement.HAVE_ENOUGH_DATA}},{key:"isFailed",value:function(){return this._error}},{key:"isLoading",value:function(){return this.audio.networkState===HTMLMediaElement.NETWORK_LOADING}},{key:"isPlaying",value:function(){return!(this.audio.ended||this.audio.paused||!this.hasSomeData())}},{key:"isPaused",value:function(){return this.audio.paused&&(this.audio.duration===1/0||this.audio.currentTime>0)&&!this.audio.ended}},{key:"isEnded",value:function(){return this.audio.ended}},{key:"isFading",value:function(){return null!==this._faderId}},{key:"isMuted",value:function(){return this._mute}},{key:"isLooped",value:function(){return this.audio.loop}},{key:"load",value:function(){"auto"!==this.audio.preload&&(this.audio.preload="auto"),this.isLoading()||this.audio.load()}},{key:"play",value:function(){this.audio.play()}},{key:"pause",value:function(){this.audio.pause(); -}},{key:"stop",value:function(){this.audio.pause(),this.time=0,this._trigger("aw:stop")}},{key:"fadeWithDuration",value:function(e,t,r){var n=this;this.fadeStop();var a=Math.clamp(null==r?this.volume:r,0,1),i=Math.clamp(t,0,1);a!==i&&(this.volume=a,jQuery(this.audio).off("timeupdate.AudioWrapper:fadeWithDuration").one("timeupdate.AudioWrapper:fadeWithDuration",function(){var t=void 0,r=void 0;a<i?(t=a,r=i):(t=i,r=a);var o=Number(e);o<1&&(o=1);var s=25,u=(i-a)/(o/(s/1e3));n._faderId=setInterval(function(){return n.isPlaying()?(n.volume=Math.clamp(n.volume+u,t,r),0===n.volume&&n.pause(),void(n.volume===i&&(n.fadeStop(),n._trigger("aw:fade")))):void n.fadeStop()},s)}),this.play())}},{key:"fade",value:function(e,t){this.fadeWithDuration(5,e,t)}},{key:"fadeIn",value:function(){this.fade(1)}},{key:"fadeOut",value:function(){this.fade(0)}},{key:"fadeStop",value:function(){null!==this._faderId&&(clearInterval(this._faderId),this._faderId=null)}},{key:"on",value:function(t,r){if("function"!=typeof r)throw new Error("listener parameter must be a function");var n=e._events,a=t.trim().splitOrEmpty(/\s+/).map(function(e){var t=e.split(".",1)[0];if(!n.hasOwnProperty(t))throw new Error('unknown event "'+t+'"; valid: '+Object.keys(n).join(", "));return e.replace(t,n[t])+".AudioWrapperEvent"}).join(" ");if(""===a)throw new Error('invalid eventNames parameter "'+t+'"');return jQuery(this.audio).on(a,r),this}},{key:"one",value:function(t,r){if("function"!=typeof r)throw new Error("listener parameter must be a function");var n=e._events,a=t.trim().splitOrEmpty(/\s+/).map(function(e){var t=e.split(".",1)[0];if(!n.hasOwnProperty(t))throw new Error('unknown event "'+t+'"; valid: '+Object.keys(n).join(", "));return e.replace(t,n[t])+".AudioWrapperEvent"}).join(" ");if(""===a)throw new Error('invalid eventNames parameter "'+t+'"');return jQuery(this.audio).one(a,r),this}},{key:"off",value:function(t,r){if(r&&"function"!=typeof r)throw new Error("listener parameter must be a function");if(!t)return jQuery(this.audio).off(".AudioWrapperEvent",r);var n=e._events,a=t.trim().splitOrEmpty(/\s+/).map(function(e){var t=e.split(".",1)[0];if(t){if(!n.hasOwnProperty(t))throw new Error('unknown event "'+t+'"; valid: '+Object.keys(n).join(", "));return e.replace(t,n[t])+".AudioWrapperEvent"}return e+".AudioWrapperEvent"}).join(" ");if(""===a)throw new Error('invalid eventNames parameter "'+t+'"');return jQuery(this.audio).off(a,r),this}},{key:"duration",get:function(){return this.audio.duration}},{key:"ended",get:function(){return this.audio.ended}},{key:"loop",get:function(){return this.audio.loop},set:function(e){this.audio.loop=!!e}},{key:"mute",get:function(){return this._mute},set:function(e){this._mute=!!e,this._updateAudioMute()}},{key:"paused",get:function(){return this.audio.paused}},{key:"rate",get:function(){return this._rate},set:function(e){this._rate=Math.clamp(e,.2,5),this._updateAudioRate()}},{key:"remaining",get:function(){return this.audio.duration-this.audio.currentTime}},{key:"time",get:function(){return this.audio.currentTime},set:function(e){var t=this;try{this.audio.currentTime=e}catch(r){jQuery(this.audio).off("loadedmetadata.AudioWrapper:time").one("loadedmetadata.AudioWrapper:time",function(){return t.audio.currentTime=e})}}},{key:"volume",get:function(){return this._volume},set:function(e){this._volume=Math.clamp(e,0,1),this._updateAudioVolume()}}],[{key:"_verifyType",value:function(t){if(!t||!Has.audio)return null;var r=e._types;if(!r.hasOwnProperty(t)){var n=document.createElement("audio");r[t]=""!==n.canPlayType(t).replace(/^no$/i,"")}return r[t]?t:null}},{key:"getType",value:function(t){if(!t||!Has.audio)return null;var r=e.formats,n=t.toLowerCase(),a=r.hasOwnProperty(n)?r[n]:"audio/"+n;return e._verifyType(a)}},{key:"canPlayFormat",value:function(t){return null!==e.getType(t)}},{key:"canPlayType",value:function(t){return null!==e._verifyType(t)}}]),e}();Object.defineProperties(m,{formats:{value:{aac:"audio/aac",caf:"audio/x-caf","x-caf":"audio/x-caf",mp3:'audio/mpeg; codecs="mp3"',mpeg:'audio/mpeg; codecs="mp3"',m4a:"audio/mp4",mp4:"audio/mp4","x-m4a":"audio/mp4","x-mp4":"audio/mp4",oga:"audio/ogg",ogg:"audio/ogg",opus:'audio/ogg; codecs="opus"',wav:"audio/wav",wave:"audio/wav",weba:"audio/webm",webm:"audio/webm"}},_types:{value:{}},_events:{value:Object.freeze({canplay:"canplaythrough",end:"ended",error:"error",fade:"aw:fade",pause:"pause",play:"playing",rate:"ratechange",seek:"seeked",stop:"aw:stop",volume:"volumechange"})}});var v=function(){function e(t){var r=this;_classCallCheck(this,e),Object.defineProperties(this,{tracks:{configurable:!0,value:[]},queue:{configurable:!0,value:[]},current:{writable:!0,value:null},_rate:{writable:!0,value:1},_volume:{writable:!0,value:1},_mute:{writable:!0,value:!1},_loop:{writable:!0,value:!1},_shuffle:{writable:!0,value:!1}}),Array.isArray(t)?t.forEach(function(e){return r.add(e)}):t instanceof e&&t.tracks.forEach(function(e){return r.add(e)})}return _createClass(e,[{key:"add",value:function(e){var t=this;if(null==e||"object"!==("undefined"==typeof e?"undefined":_typeof(e)))throw new Error("track parameter must be an object");var r=void 0,n=void 0,a=void 0,i=void 0;if(e instanceof m)r=!0,n=e.clone(),a=e.volume,i=e.rate;else{if(!e.hasOwnProperty("track"))throw new Error('track object missing required "track" property');if(!(e.track instanceof m))throw new Error('track object\'s "track" property must be an AudioWrapper object');r=e.hasOwnProperty("copy")&&e.copy,n=r?e.track.clone():e.track,a=e.hasOwnProperty("volume")?e.volume:e.track.volume,i=e.hasOwnProperty("rate")?e.rate:e.track.rate}n.stop(),n.loop=!1,n.mute=!1,n.volume=a,n.rate=i,n.on("end.AudioListEvent",function(){return t._onEnd()}),this.tracks.push({copy:r,track:n,volume:a,rate:i})}},{key:"destroy",value:function(){this.stop(),this.tracks.filter(function(e){return e.copy}).forEach(function(e){return e.track.destroy()}),delete this.tracks,delete this.queue}},{key:"isPlaying",value:function(){return null!==this.current&&this.current.track.isPlaying()}},{key:"isEnded",value:function(){return 0===this.queue.length&&(null===this.current||this.current.track.isEnded())}},{key:"isPaused",value:function(){return null===this.current||this.current.track.isPaused()}},{key:"isMuted",value:function(){return this._mute}},{key:"isLooped",value:function(){return this._loop}},{key:"isShuffled",value:function(){return this._shuffle}},{key:"play",value:function(){(null!==this.current&&!this.current.track.isEnded()||(0===this.queue.length&&this._buildList(),this._next()))&&this.current.track.play()}},{key:"pause",value:function(){null!==this.current&&this.current.track.pause()}},{key:"stop",value:function(){null!==this.current&&(this.current.track.stop(),this.current=null),this.queue.splice(0)}},{key:"skip",value:function(){this._next()?this.current.track.play():this._loop&&this.play()}},{key:"fadeWithDuration",value:function(e,t,r){if(0===this.queue.length&&this._buildList(),null!==this.current&&!this.current.track.isEnded()||this._next()){var n=Math.clamp(t,0,1)*this.current.volume,a=void 0;null!=r&&(a=Math.clamp(r,0,1)*this.current.volume),this.current.track.fadeWithDuration(e,n,a),this._volume=t}}},{key:"fade",value:function(e,t){this.fadeWithDuration(5,e,t)}},{key:"fadeIn",value:function(){this.fade(1)}},{key:"fadeOut",value:function(){this.fade(0)}},{key:"_next",value:function(){return null!==this.current&&this.current.track.stop(),0===this.queue.length?(this.current=null,!1):(this.current=this.queue.shift(),!this.current.track.hasSource()||this.current.track.isFailed()?this._next():(this.current.track.mute=this._mute,this.current.track.rate=this.rate*this.current.rate,this.current.track.volume=this.volume*this.current.volume,!0))}},{key:"_onEnd",value:function(){if(0===this.queue.length){if(!this._loop)return;this._buildList()}this._next()&&this.current.track.play()}},{key:"_buildList",value:function(){var e;this.queue.splice(0),(e=this.queue).push.apply(e,_toConsumableArray(this.tracks)),0!==this.queue.length&&this._shuffle&&(this.queue.shuffle(),this.queue.length>1&&this.queue[0]===this.current&&this.queue.push(this.queue.shift()))}},{key:"duration",get:function(){return this.tracks.map(function(e){return e.track.duration}).reduce(function(e,t){return e+t},0)}},{key:"loop",get:function(){return this._loop},set:function(e){this._loop=!!e}},{key:"mute",get:function(){return this._mute},set:function(e){this._mute=!!e,null!==this.current&&(this.current.track.mute=this._mute)}},{key:"rate",get:function(){return this._rate},set:function(e){this._rate=Math.clamp(e,.2,5),null!==this.current&&(this.current.track.rate=this.rate*this.current.rate)}},{key:"remaining",get:function(){var e=this.queue.map(function(e){return e.track.duration}).reduce(function(e,t){return e+t},0);return null!==this.current&&(e+=this.current.track.remaining),e}},{key:"shuffle",get:function(){return this._shuffle},set:function(e){this._shuffle=!!e}},{key:"time",get:function(){return this.duration-this.remaining}},{key:"volume",get:function(){return this._volume},set:function(e){this._volume=Math.clamp(e,0,1),null!==this.current&&(this.current.track.volume=this.volume*this.current.volume)}}]),e}();return Object.freeze(Object.defineProperties({},{mute:{get:e,set:t},rate:{get:r,set:n},volume:{get:a,set:i},stop:{value:o},subscribe:{value:s},unsubscribe:{value:u},publish:{value:l},create:{value:c},createList:{value:d}}))}(),DebugView=function(){var e=function(){function e(t,r,n,a){_classCallCheck(this,e),Object.defineProperties(this,{parent:{value:t},view:{value:document.createElement("span")},break:{value:document.createElement("wbr")}}),jQuery(this.view).attr({title:a,"aria-label":a,"data-type":null!=r?r:"","data-name":null!=n?n:""}).addClass("debug"),this.parent.appendChild(this.view),this.parent.appendChild(this.break)}return _createClass(e,[{key:"append",value:function(e){return jQuery(this.view).append(e),this}},{key:"modes",value:function(e){var t=this;if(null!=e){if("object"===("undefined"==typeof e?"undefined":_typeof(e)))return Object.keys(e).forEach(function(t){this[e[t]?"addClass":"removeClass"](t)},jQuery(this.view)),this;throw new Error("DebugView.prototype.modes options parameter must be an object or null/undefined")}var r=function(){var e={};return t.view.className.splitOrEmpty(/\s+/).forEach(function(t){"debug"!==t&&(e[t]=!0)}),{v:e}}();if("object"===("undefined"==typeof r?"undefined":_typeof(r)))return r.v}},{key:"remove",value:function(){var e=jQuery(this.view);this.view.hasChildNodes()&&e.contents().appendTo(this.parent),e.remove(),jQuery(this.break).remove()}},{key:"output",get:function(){return this.view}},{key:"type",get:function(){return this.view.getAttribute("data-type")},set:function(e){this.view.setAttribute("data-type",null!=e?e:"")}},{key:"name",get:function(){return this.view.getAttribute("data-name")},set:function(e){this.view.setAttribute("data-name",null!=e?e:"")}},{key:"title",get:function(){return this.view.title},set:function(e){this.view.title=e}}],[{key:"init",value:function(){jQuery('<button id="debug-view-toggle">'+L10n.get("debugViewTitle")+"</button>").ariaClick({label:L10n.get("debugViewToggle")},function(){return e.toggle()}).prependTo("#ui-bar-body"),e.enable()}},{key:"enable",value:function(){jQuery(document.documentElement).addClass("debug-view"),jQuery.event.trigger("tw:debugviewupdate")}},{key:"disable",value:function(){jQuery(document.documentElement).removeClass("debug-view"),jQuery.event.trigger("tw:debugviewupdate")}},{key:"toggle",value:function(){jQuery(document.documentElement).toggleClass("debug-view"),jQuery.event.trigger("tw:debugviewupdate")}}]),e}();return e}(),KeyValueStore=function(){var e=function(){function e(t,r){_classCallCheck(this,e);var n=r+".",a=null,i=null;t?Has.localStorage&&(a=window.localStorage,i="localStorage"):Has.sessionStorage&&(a=window.sessionStorage,i="sessionStorage"),Object.defineProperties(this,{_ok:{value:null!==a},_engine:{value:a},_prefix:{value:n},_prefixRe:{value:new RegExp("^"+RegExp.escape(n))},name:{value:i},id:{value:r},persist:{value:!!t}})}return _createClass(e,[{key:"keys",value:function e(){if(!this._ok)return[];for(var e=[],t=0;t<this._engine.length;++t){var r=this._engine.key(t);this._prefixRe.test(r)&&e.push(r.replace(this._prefixRe,""))}return e}},{key:"has",value:function(e){return!(!e||!this._ok)&&null!=this._engine.getItem(this._prefix+e)}},{key:"get",value:function(t){if(!t||!this._ok)return null;var r=this._engine.getItem(this._prefix+t);return null==r?null:e._deserialize(r)}},{key:"set",value:function(t,r){if(!t||!this._ok)return!1;try{this._engine.setItem(this._prefix+t,e._serialize(r))}catch(e){throw/quota_?(?:exceeded|reached)/i.test(e.name)&&(e.message=this.name+" quota exceeded"),e}return!0}},{key:"delete",value:function(e){return!(!e||!this._ok)&&(this._engine.removeItem(this._prefix+e),!0)}},{key:"length",get:function(){return this.keys().length}}],[{key:"_serialize",value:function(e){return LZString.compressToUTF16(JSON.stringify(e))}},{key:"_deserialize",value:function(e){return JSON.parse(LZString.decompressFromUTF16(e))}}]),e}(),t=function(){function e(t,r){_classCallCheck(this,e),"cookie"in document&&e._updateCookieStores&&(e._updateCookieStores(r),e._updateCookieStores=null);var n=""+r+(t?"!":"*")+".";Object.defineProperties(this,{_ok:{value:"cookie"in document},_prefix:{value:n},_prefixRe:{value:new RegExp("^"+RegExp.escape(n))},name:{value:"cookie"},id:{value:r},persist:{value:!!t}})}return _createClass(e,[{key:"keys",value:function e(){if(!this._ok||""===document.cookie)return[];for(var t=document.cookie.split(/;\s*/),e=[],r=0;r<t.length;++r){var n=t[r].split("="),a=decodeURIComponent(n[0]);if(this._prefixRe.test(a)){var i=decodeURIComponent(n[1]);""!==i&&e.push(a.replace(this._prefixRe,""))}}return e}},{key:"has",value:function(t){return!(!t||!this._ok)&&null!==e._getCookie(this._prefix+t)}},{key:"get",value:function(t){if(!t||!this._ok)return null;var r=e._getCookie(this._prefix+t);return null===r?null:e._deserialize(r)}},{key:"set",value:function(t,r){if(!t||!this._ok)return!1;try{if(e._setCookie(this._prefix+t,e._serialize(r),this.persist?"Tue, 19 Jan 2038 03:14:07 GMT":undefined),!this.has(t))throw new Error("unknown validation error")}catch(e){throw e.message="cookie error: "+e.message,e}return!0}},{key:"delete",value:function(t){if(!t||!this._ok||!this.has(t))return!1;try{if(e._setCookie(this._prefix+t,undefined,"Thu, 01 Jan 1970 00:00:00 GMT"),this.has(t))throw new Error("unknown validation error")}catch(e){throw e.message="cookie error: "+e.message,e}return!0}},{key:"length",get:function(){return this.keys().length}}],[{key:"_getCookie",value:function(e){if(!e||""===document.cookie)return null;for(var t=document.cookie.split(/;\s*/),r=0;r<t.length;++r){var n=t[r].split("="),a=decodeURIComponent(n[0]);if(e===a){var i=decodeURIComponent(n[1]);return i||null}}return null}},{key:"_setCookie",value:function(e,t,r){if(e){var n=encodeURIComponent(e)+"=";null!=t&&(n+=encodeURIComponent(t)),null!=r&&(n+="; "+r),n+="; path=/",document.cookie=n}}},{key:"_serialize",value:function(e){return LZString.compressToBase64(JSON.stringify(e))}},{key:"_deserialize",value:function(e){return JSON.parse(LZString.decompressFromBase64(e))}},{key:"_updateCookieStores",value:function(t){if(""!==document.cookie)for(var r=t+".",n=new RegExp("^"+RegExp.escape(r)),a=t+"!.",i=t+"*.",o=/\.(?:state|rcWarn)$/,s=document.cookie.split(/;\s*/),u=0;u<s.length;++u){var l=s[u].split("="),c=decodeURIComponent(l[0]);if(n.test(c)){var d=decodeURIComponent(l[1]);""!==d&&!function(){var t=!o.test(c);e._setCookie(c,undefined,"Thu, 01 Jan 1970 00:00:00 GMT"),e._setCookie(c.replace(n,function(){return t?a:i}),d,t?"Tue, 19 Jan 2038 03:14:07 GMT":undefined)}()}}}}]),e}(),r=function(){function r(n,a,i){_classCallCheck(this,r);var o=null;switch(n){case"cookie":o=new t(a,i);break;case"webStorage":o=new e(a,i),o._ok||(o=new t(a,i));break;default:throw new Error("unknown driver type")}if(!o._ok)throw new Error("unknown driver error");Object.defineProperties(this,{_driver:{value:o},name:{value:o.name},type:{value:n},id:{value:i},persist:{value:a}})}return _createClass(r,[{key:"keys",value:function(){return null===this._driver?[]:this._driver.keys()}},{key:"clear",value:function(){if(null===this._driver)return!1;for(var e=this.keys(),t=0;t<e.length;++t)this.delete(e[t]);return!0}},{key:"has",value:function(e,t){if(null===this._driver||!e)return!1;try{return this._driver.has(e)}catch(r){return t||Alert.error(null,'unable to check key "'+e+'"; '+r.message,r),!1}}},{key:"get",value:function(e,t){if(null===this._driver||!e)return null;try{return this._driver.get(e)}catch(r){return t||Alert.error(null,'unable to get key "'+e+'"; '+r.message,r),null}}},{key:"set",value:function(e,t,r){if(null===this._driver||!e)return!1;try{return this._driver.set(e,t,r)}catch(t){return r||Alert.error(null,'unable to set key "'+e+'"; '+t.message,t),!1}}},{key:"delete",value:function(e,t){if(null===this._driver||!e)return!1;try{return this._driver.delete(e,t)}catch(r){return t||Alert.error(null,'unable to delete key "'+e+'"; '+r.message,r),!1}}},{key:"deleteMatching",value:function(e,t){if(null===this._driver||!e)return!1;for(var r=this.keys(),n=new RegExp("^"+RegExp.escape(e)),a=0;a<r.length;++a)n.test(r[a])&&this.delete(r[a],t);return!0}},{key:"length",get:function(){return null===this._driver?0:this._driver.length}}]),r}();return r}(),PRNGWrapper=function(){var e=function(){function e(t,r){_classCallCheck(this,e),Object.defineProperties(this,new Math.seedrandom(t,r,function(e,t){return{_prng:{value:e},seed:{writable:!0,value:t},pull:{writable:!0,value:0},random:{value:function(){return++this.pull,this._prng()}}}}))}return _createClass(e,null,[{key:"marshal",value:function(e){if(!e||!e.hasOwnProperty("seed")||!e.hasOwnProperty("pull"))throw new Error("PRNG is missing required data");return{seed:e.seed,pull:e.pull}}},{key:"unmarshal",value:function(t){if(!t||!t.hasOwnProperty("seed")||!t.hasOwnProperty("pull"))throw new Error("PRNG object is missing required data");for(var r=new e(t.seed,!1),n=t.pull;n>0;--n)r.random();return r}}]),e}();return e}(),StyleWrapper=function(){var e=/\[[<>]?[Ii][Mm][Gg]\[(?:\s|\S)*?\]\]+/g,t=new RegExp(e.source),r=function(){function r(e){if(_classCallCheck(this,r),null==e)throw new TypeError("StyleWrapper style parameter must be an HTMLStyleElement object");Object.defineProperties(this,{style:{value:e}})}return _createClass(r,[{key:"isEmpty",value:function(){return 0===this.style.cssRules.length}},{key:"set",value:function(e){this.clear(),this.add(e)}},{key:"add",value:function(r){var n=r;t.test(n)&&(e.lastIndex=0,n=n.replace(e,function(e){var t=Wikifier.helpers.parseSquareBracketedMarkup({source:e,matchStart:0});if(t.hasOwnProperty("error")||t.pos<e.length)return e;var r=t.source;if("data:"!==r.slice(0,5)&&Story.has(r)){var n=Story.get(r);n.tags.includes("Twine.image")&&(r=n.text)}return'url("'+r.replace(/"/g,"%22")+'")'})),this.style.styleSheet?this.style.styleSheet.cssText+=n:this.style.appendChild(document.createTextNode(n))}},{key:"clear",value:function(){this.style.styleSheet?this.style.styleSheet.cssText="":jQuery(this.style).empty()}}]),r}();return r}(),L10n=function(){function e(){r()}function t(e,t){if(!e)return"";var r=function(e){var t=void 0;return e.some(function(e){return!!l10nStrings.hasOwnProperty(e)&&(t=e,!0)}),t}(Array.isArray(e)?e:[e]);if(!r)return"";for(var i=50,o=l10nStrings[r],s=0;a.test(o);){if(++s>i)throw new Error("L10n.get exceeded maximum replacement iterations, probable infinite loop");n.lastIndex=0,o=o.replace(n,function(e){var r=e.slice(1,-1);return t&&t.hasOwnProperty(r)?t[r]:l10nStrings.hasOwnProperty(r)?l10nStrings[r]:void 0})}return o}function r(){strings&&Object.keys(strings).length>0&&Object.keys(l10nStrings).forEach(function(e){try{var t=void 0;switch(e){case"identity":t=strings.identity;break;case"aborting":t=strings.aborting;break;case"cancel":t=strings.cancel;break;case"close":t=strings.close;break;case"ok":t=strings.ok;break;case"errorTitle":t=strings.errors.title;break;case"errorNonexistentPassage":t=strings.errors.nonexistentPassage;break;case"errorSaveMissingData":t=strings.errors.saveMissingData;break;case"errorSaveIdMismatch":t=strings.errors.saveIdMismatch;break;case"warningDegraded":t=strings.warnings.degraded;break;case"debugViewTitle":t=strings.debugView.title;break;case"debugViewToggle":t=strings.debugView.toggle;break;case"uiBarToggle":t=strings.uiBar.toggle;break;case"uiBarBackward":t=strings.uiBar.backward;break;case"uiBarForward":t=strings.uiBar.forward;break;case"uiBarJumpto":t=strings.uiBar.jumpto;break;case"jumptoTitle":t=strings.jumpto.title;break;case"jumptoTurn":t=strings.jumpto.turn;break;case"jumptoUnavailable":t=strings.jumpto.unavailable;break;case"savesTitle":t=strings.saves.title;break;case"savesDisallowed":t=strings.saves.disallowed;break;case"savesEmptySlot":t=strings.saves.emptySlot;break;case"savesIncapable":t=strings.saves.incapable;break;case"savesLabelAuto":t=strings.saves.labelAuto;break;case"savesLabelDelete":t=strings.saves.labelDelete;break;case"savesLabelExport":t=strings.saves.labelExport;break;case"savesLabelImport":t=strings.saves.labelImport;break;case"savesLabelLoad":t=strings.saves.labelLoad;break;case"savesLabelClear":t=strings.saves.labelClear;break;case"savesLabelSave":t=strings.saves.labelSave;break;case"savesLabelSlot":t=strings.saves.labelSlot;break;case"savesSavedOn":t=strings.saves.savedOn;break;case"savesUnavailable":t=strings.saves.unavailable;break;case"savesUnknownDate":t=strings.saves.unknownDate;break;case"settingsTitle":t=strings.settings.title;break;case"settingsOff":t=strings.settings.off;break;case"settingsOn":t=strings.settings.on;break;case"settingsReset":t=strings.settings.reset;break;case"restartTitle":t=strings.restart.title;break;case"restartPrompt":t=strings.restart.prompt;break;case"shareTitle":t=strings.share.title;break;case"autoloadTitle":t=strings.autoload.title;break;case"autoloadCancel":t=strings.autoload.cancel;break;case"autoloadOk":t=strings.autoload.ok;break;case"autoloadPrompt":t=strings.autoload.prompt;break;case"macroBackText":t=strings.macros.back.text;break;case"macroReturnText":t=strings.macros.return.text}t&&(l10nStrings[e]=t.replace(/%\w+%/g,function(e){return"{"+e.slice(1,-1)+"}"}))}catch(e){}})}var n=/\{\w+\}/g,a=new RegExp(n.source);return Object.freeze(Object.defineProperties({},{init:{value:e},get:{value:t}}))}(),strings={errors:{},warnings:{},debugView:{},uiBar:{},jumpto:{},saves:{},settings:{},restart:{},share:{},autoload:{},macros:{back:{},return:{}}},l10nStrings={identity:"game",aborting:"Aborting",cancel:"Cancel",close:"Close",ok:"OK",errorTitle:"Error",errorNonexistentPassage:'the passage "{passage}" does not exist',errorSaveMissingData:"save is missing required data. Either the loaded file is not a save or the save has become corrupted",errorSaveIdMismatch:"save is from the wrong {identity}",_warningIntroLacking:"Your browser either lacks or has disabled",_warningOutroDegraded:", so this {identity} is running in a degraded mode. You may be able to continue, however, some parts may not work properly.",warningNoWebStorage:"{_warningIntroLacking} the Web Storage API{_warningOutroDegraded}",warningDegraded:"{_warningIntroLacking} some of the capabilities required by this {identity}{_warningOutroDegraded}",debugViewTitle:"Debug View",debugViewToggle:"Toggle the debug view",uiBarToggle:"Toggle the UI bar",uiBarBackward:"Go backward within the {identity} history",uiBarForward:"Go forward within the {identity} history",uiBarJumpto:"Jump to a specific point within the {identity} history",jumptoTitle:"Jump To",jumptoTurn:"Turn",jumptoUnavailable:"No jump points currently available…",savesTitle:"Saves",savesDisallowed:"Saving has been disallowed on this passage.",savesEmptySlot:"— slot empty —",savesIncapable:"{_warningIntroLacking} the capabilities required to support saves, so saves have been disabled for this session.",savesLabelAuto:"Autosave",savesLabelDelete:"Delete",savesLabelExport:"Save to Disk…",savesLabelImport:"Load from Disk…",savesLabelLoad:"Load",savesLabelClear:"Delete All",savesLabelSave:"Save",savesLabelSlot:"Slot",savesSavedOn:"Saved on",savesUnavailable:"No save slots found…",savesUnknownDate:"unknown",settingsTitle:"Settings",settingsOff:"Off",settingsOn:"On",settingsReset:"Reset to Defaults",restartTitle:"Restart",restartPrompt:"Are you sure that you want to restart? Unsaved progress will be lost.",shareTitle:"Share",autoloadTitle:"Autoload",autoloadCancel:"Go to start",autoloadOk:"Load autosave",autoloadPrompt:"An autosave exists. Load it now or go to the start?",macroBackText:"Back",macroReturnText:"Return"},Config=function(){function e(){throw new Error("Config.history.mode has been deprecated and is no longer used by SugarCube, please remove it from your code")}function t(){throw new Error("Config.history.tracking has been deprecated, use Config.history.maxStates instead")}var r=Object.seal({debug:!1,addVisitedLinkClass:!1,cleanupWikifierOutput:!1,loadDelay:0,history:Object.seal({controls:!0,maxStates:100,get mode(){e()},set mode(t){e()},get tracking(){t()},set tracking(e){t()}}),macros:Object.seal({ifAssignmentError:!0,maxLoopIterations:1e3}),passages:Object.seal({descriptions:undefined,displayTitles:!1,start:undefined,transitionOut:undefined}),saves:Object.seal({autoload:undefined,autosave:undefined,id:"untitled-story",isAllowed:undefined,onLoad:undefined,onSave:undefined,slots:8,version:undefined}),ui:Object.seal({stowBarInitially:800,updateStoryElements:!0}),transitionEndEventName:function(){for(var e=new Map([["transition","transitionend"],["MSTransition","msTransitionEnd"],["WebkitTransition","webkitTransitionEnd"],["MozTransition","transitionend"]]),t=[].concat(_toConsumableArray(e.keys())),r=document.createElement("div"),n=0;n<t.length;++n)if(r.style[t[n]]!==undefined)return e.get(t[n]);return""}()});return r}(),Patterns=function(){var e=/[\u0150\u0170]/g.test("Å"),t="[\\s\\u00A0\\u2028\\u2029]",r="[0-9A-Z_a-z\\-\\u00C0-\\u00D6\\u00D8-\\u00DE\\u00DF-\\u00F6\\u00F8-\\u00FF"+(e?"\\u0150\\u0170\\u0151\\u0171":"")+"]",n=r.replace("\\-",""),a="[$A-Z_a-z]",i=a+"[$0-9A-Z_a-z]*",o="[$_]",s=o+i,u="[A-Za-z][\\w-]*|[=-]",l="("+r+"+)\\(([^\\)\\|\\n]+)\\):",c="("+r+"+):([^;\\|\\n]+);",d="((?:\\."+r+"+)+);",h="((?:#"+r+"+)+);",p=l+"|"+c+"|"+d+"|"+h,f="(?:file|https?|mailto|ftp|javascript|irc|news|data):[^\\s'\"]+";return Object.freeze({space:t,anyLetter:r,anyLetterStrict:n,identifierFirstChar:a,identifier:i,variableSigil:o,variable:s,macroName:u,inlineCss:p,url:f})}(),Scripting=function(){function addAccessibleClickHandler(e,t,r,n,a){if(arguments.length<2)throw new Error("addAccessibleClickHandler insufficient number of parameters");var i=void 0,o=void 0;if("function"==typeof t?(i=t,o={namespace:n,one:!!r}):(i=r,o={namespace:a,one:!!n,selector:t}),"function"!=typeof i)throw new TypeError("addAccessibleClickHandler handler parameter must be a function");return jQuery(e).ariaClick(o,i)}function insertElement(e,t,r,n,a,i){var o=jQuery(document.createElement(t));return r&&o.attr("id",r),n&&o.addClass(n),i&&o.attr("title",i),a&&o.text(a),e&&o.appendTo(e),o[0]}function insertText(e,t){jQuery(e).append(document.createTextNode(t))}function removeChildren(e){jQuery(e).empty()}function removeElement(e){jQuery(e).remove()}function fade(e,t){function r(){i+=.05*a,n(o,Math.easeInOut(i)),(1===a&&i>=1||a===-1&&i<=0)&&(e.style.visibility="in"===t.fade?"visible":"hidden",o.parentNode.replaceChild(e,o),o=null,window.clearInterval(s),t.onComplete&&t.onComplete())}function n(e,t){e.style.zoom=1,e.style.filter="alpha(opacity="+Math.floor(100*t)+")",e.style.opacity=t}var a="in"===t.fade?1:-1,i=void 0,o=e.cloneNode(!0),s=void 0;e.parentNode.replaceChild(o,e),"in"===t.fade?(i=0,o.style.visibility="visible"):i=1,n(o,i),s=window.setInterval(r,25)}function scrollWindowTo(e,t){function r(){c+=i,window.scroll(0,o+l*(u*Math.easeInOut(c))),c>=1&&window.clearInterval(d)}function n(e){for(var t=0;e.offsetParent;)t+=e.offsetTop,e=e.offsetParent;return t}function a(e){var t=n(e),r=t+e.offsetHeight,a=window.scrollY?window.scrollY:document.body.scrollTop,i=window.innerHeight?window.innerHeight:document.body.clientHeight,o=a+i;return t<a?t:r>o&&e.offsetHeight<i?t-(i-e.offsetHeight)+20:t}var i=null!=t?Number(t):.1;Number.isNaN(i)||!Number.isFinite(i)||i<0?i=.1:i>1&&(i=1);var o=window.scrollY?window.scrollY:document.body.scrollTop,s=a(e),u=Math.abs(o-s),l=o>s?-1:1,c=0,d=void 0;d=window.setInterval(r,25)}function either(){if(0!==arguments.length)return Array.prototype.concat.apply([],arguments).random()}function hasVisited(){if(0===arguments.length)throw new Error("hasVisited called with insufficient parameters");if(State.isEmpty())return!1;for(var e=Array.prototype.concat.apply([],arguments),t=State.passages,r=0,n=e.length;r<n;++r)if(!t.includes(e[r]))return!1;return!0}function lastVisited(){if(0===arguments.length)throw new Error("lastVisited called with insufficient parameters");if(State.isEmpty())return-1;for(var e=Array.prototype.concat.apply([],arguments),t=State.passages,r=t.length-1,n=State.turns,a=0,i=e.length;a<i&&n>-1;++a){var o=t.lastIndexOf(e[a]);n=Math.min(n,o===-1?-1:r-o)}return n}function passage(){return State.passage}function previous(){var e=State.passages;if(arguments.length>0){var t=Number(arguments[0]);if(!Number.isSafeInteger(t)||t<1)throw new RangeError("previous offset parameter must be a positive integer greater than zero");return e.length>t?e[e.length-1-t]:""}for(var r=e.length-2;r>=0;--r)if(e[r]!==State.passage)return e[r];return""}function random(){if(0===arguments.length)throw new Error("random called with insufficient parameters");var e=void 0,t=void 0;if(1===arguments.length?(e=0,t=arguments[0]):(e=arguments[0],t=arguments[1]),e>t){var r=[t,e];e=r[0],t=r[1]}return Math.floor(State.random()*(t-e+1))+e}function randomFloat(){if(0===arguments.length)throw new Error("randomFloat called with insufficient parameters");var e=void 0,t=void 0;if(1===arguments.length?(e=0,t=arguments[0]):(e=arguments[0],t=arguments[1]),e>t){var r=[t,e];e=r[0],t=r[1]}return State.random()*(t-e)+e}function tags(){if(0===arguments.length)return Story.get(State.passage).tags.slice(0);for(var e=Array.prototype.concat.apply([],arguments),t=[],r=0,n=e.length;r<n;++r)t=t.concat(Story.get(e[r]).tags);return t}function time(){return null===Engine.lastPlay?0:Date.now()-Engine.lastPlay}function turns(){return State.turns}function variables(){return State.variables}function visited(){if(State.isEmpty())return 0;for(var e=Array.prototype.concat.apply([],0===arguments.length?[State.passage]:arguments),t=State.passages,r=State.turns,n=0,a=e.length;n<a&&r>0;++n)r=Math.min(r,t.count(e[n]));return r}function visitedTags(){if(0===arguments.length)throw new Error("visitedTags called with insufficient parameters");if(State.isEmpty())return 0;for(var e=Array.prototype.concat.apply([],arguments),t=e.length,r=State.passages,n=new Map,a=0,i=0,o=r.length;i<o;++i){var s=r[i];if(n.has(s))n.get(s)&&++a;else{var u=Story.get(s).tags;if(u.length>0){for(var l=0,c=0;c<t;++c)u.includes(e[c])&&++l;l===t?(++a,n.set(s,!0)):n.set(s,!1)}}}return a}function evalJavaScript(code,output){return function(code,output){return eval(code)}.call(output?{output:output}:null,String(code),output)}function evalTwineScript(code,output){return function(code,output){return eval(code)}.call(output?{output:output}:null,parse(String(code)),output)}var parse=function(){function e(e){if(0!==r.lastIndex)throw new RangeError("Scripting.parse last index is non-zero at start");for(var a=e,i=void 0;null!==(i=r.exec(a));)if(i[5]){var o=i[5];if("$"===o||"_"===o)continue;if(n.test(o))o=o[0];else if("is"===o){var s=r.lastIndex,u=a.slice(s);/^\s+not\b/.test(u)&&(a=a.splice(s,u.search(/\S/)),o="isnot")}t.hasOwnProperty(o)&&(a=a.splice(i.index,o.length,t[o]),r.lastIndex+=t[o].length-o.length)}return a}var t=Object.freeze({ -$:"State.variables.",_:"TempVariables.",to:"=",eq:"==",neq:"!=",is:"===",isnot:"!==",gt:">",gte:">=",lt:"<",lte:"<=",and:"&&",or:"||",not:"!",def:'"undefined" !== typeof',ndef:'"undefined" === typeof'}),r=new RegExp(["(\"\"|'')",'("(?:\\\\.|[^"\\\\])+")',"('(?:\\\\.|[^'\\\\])+')","([=+\\-*\\/%<>&\\|\\^~!?:,;\\(\\)\\[\\]{}]+)","([^\"'=+\\-*\\/%<>&\\|\\^~!?:,;\\(\\)\\[\\]{}\\s]+)"].join("|"),"g"),n=new RegExp("^"+Patterns.variable);return e}();return Object.freeze(Object.defineProperties({},{parse:{value:parse},evalJavaScript:{value:evalJavaScript},evalTwineScript:{value:evalTwineScript}}))}(),Wikifier=function(){var e=void 0,t=0,r=function(){function r(n,a,i){_classCallCheck(this,r),"object"!==("undefined"==typeof e?"undefined":_typeof(e))&&r.compileFormatters(),Object.defineProperties(this,{source:{value:String(a)},options:{writable:!0,value:Object.assign({profile:"all"},i)},nextMatch:{writable:!0,value:0},output:{writable:!0,value:null},_rawArgs:{writable:!0,value:""}}),null==n?this.output=document.createDocumentFragment():n.jquery?this.output=n[0]:this.output=n;try{++t,this.subWikify(this.output),1===t&&Config.cleanupWikifierOutput&&convertBreaks(this.output)}finally{--t}}return _createClass(r,[{key:"subWikify",value:function(e,t,r){var n=this.output,a=void 0;this.output=e,null!=r&&"object"===("undefined"==typeof r?"undefined":_typeof(r))&&(a=this.options,this.options=Object.assign({},this.options,r));var i=t?new RegExp("(?:"+t+")",this.options.ignoreTerminatorCase?"gim":"gm"):null,o=void 0,s=void 0;do{if(this.formatter.formatterRegExp.lastIndex=this.nextMatch,i&&(i.lastIndex=this.nextMatch),s=this.formatter.formatterRegExp.exec(this.source),o=i?i.exec(this.source):null,o&&(!s||o.index<=s.index))return o.index>this.nextMatch&&this.outputText(this.output,this.nextMatch,o.index),this.matchStart=o.index,this.matchLength=o[0].length,this.matchText=o[0],this.nextMatch=i.lastIndex,this.output=n,void(a&&(this.options=a));if(s){s.index>this.nextMatch&&this.outputText(this.output,this.nextMatch,s.index),this.matchStart=s.index,this.matchLength=s[0].length,this.matchText=s[0],this.nextMatch=this.formatter.formatterRegExp.lastIndex;for(var u=void 0,l=1,c=s.length;l<c;++l)if(s[l]){u=l-1;break}if(this.formatter.formatters[u].handler(this),null!=TempState.break)break}}while(o||s);null==TempState.break?this.nextMatch<this.source.length&&(this.outputText(this.output,this.nextMatch,this.source.length),this.nextMatch=this.source.length):this.output.lastChild&&this.output.lastChild.nodeType===Node.ELEMENT_NODE&&"BR"===this.output.lastChild.nodeName.toUpperCase()&&jQuery(this.output.lastChild).remove(),this.output=n,a&&(this.options=a)}},{key:"outputText",value:function(e,t,r){jQuery(e).append(document.createTextNode(this.source.substring(t,r)))}},{key:"rawArgs",value:function(){return this._rawArgs}},{key:"fullArgs",value:function(){return Scripting.parse(this.rawArgs())}},{key:"formatter",get:function(){if(!e.hasOwnProperty(this.options.profile))throw new Error('nonexistent formatter profile "'+this.options.profile+'"');return e[this.options.profile]}}],[{key:"compileFormatters",value:function(){var t=r.formatters,n=t.filter(function(e){return!Array.isArray(e.profiles)||e.profiles.includes("core")});return e={all:{formatters:t,formatterRegExp:new RegExp(t.map(function(e){return"("+e.match+")"}).join("|"),"gm")},core:{formatters:n,formatterRegExp:new RegExp(n.map(function(e){return"("+e.match+")"}).join("|"),"gm")}}}},{key:"getValue",value:function(e){var t=r.parseStoryVariable(e),n=void 0;if(null!==t){n=t.store;for(var a=t.names,i=0,o=a.length;i<o;++i){if("undefined"==typeof n[a[i]]){n=undefined;break}n=n[a[i]]}}return n}},{key:"setValue",value:function(e,t){var n=r.parseStoryVariable(e);if(null!==n){for(var a=n.names,i=a.pop(),o=n.store,s=0,u=a.length;s<u;++s){if("undefined"==typeof o[a[s]]){o=undefined;break}o=o[a[s]]}if(o!==undefined)return o[i]=t,!0}return!1}},{key:"parseStoryVariable",value:function(e){for(var t={store:"$"===e[0]?State.variables:TempVariables,names:[]},n=e,a=void 0;null!==(a=r._parseVarRegExp.exec(n));)n=n.slice(a[0].length),a[1]?t.names.push(a[1]):a[2]?t.names.push(a[2]):a[3]?t.names.push(a[3]):a[4]?t.names.push(a[4]):a[5]?t.names.push(r.getValue(a[5])):a[6]&&t.names.push(Number(a[6]));return""===n?t:null}},{key:"wikifyEval",value:function(e){var t=document.createDocumentFragment();new r(t,e);var n=t.querySelector(".error");if(null!==n)throw new Error(n.textContent.replace(/^(?:(?:Uncaught\s+)?Error:\s+)+/,""));return t}},{key:"createInternalLink",value:function(e,t,r,n){var a=jQuery(document.createElement("a"));return null!=t&&(a.attr("data-passage",t),Story.has(t)?(a.addClass("link-internal"),Config.addVisitedLinkClass&&State.hasPlayed(t)&&a.addClass("link-visited")):a.addClass("link-broken"),a.ariaClick({one:!0},function(){"function"==typeof n&&n(),Engine.play(t)})),r&&a.append(document.createTextNode(r)),e&&a.appendTo(e),a[0]}},{key:"createExternalLink",value:function(e,t,r){var n=jQuery(document.createElement("a")).attr("target","_blank").addClass("link-external").text(r).appendTo(e);return null!=t&&n.attr({href:t,tabindex:0}),n[0]}},{key:"isExternalLink",value:function(e){if(Story.has(e))return!1;var t=new RegExp("^"+Patterns.url,"gim");return t.test(e)||/[\/\.\?#]/.test(e)}}]),r}();return Object.defineProperties(r,{_parseVarRegExp:{value:new RegExp(["^(?:",Patterns.variableSigil,"(",Patterns.identifier,")|\\.(",Patterns.identifier,")|\\[(?:(?:\"((?:\\\\.|[^\"\\\\])+)\")|(?:'((?:\\\\.|[^'\\\\])+)')|(",Patterns.variableSigil,Patterns.identifierFirstChar,".*)|(\\d+))\\])"].join(""))},helpers:{value:{}},parse:{value:Scripting.parse},evalExpression:{value:Scripting.evalTwineScript},evalStatements:{value:Scripting.evalTwineScript},textPrimitives:{value:Patterns}}),Object.defineProperties(r.helpers,{_inlineCssLookahead:{value:new RegExp(Patterns.inlineCss,"gm")},inlineCss:{value:function(e){var t={classes:[],id:"",styles:{}},r=this._inlineCssLookahead,n=void 0;do{r.lastIndex=e.nextMatch;var a=r.exec(e.source);n=a&&a.index===e.nextMatch,n&&(a[1]?t.styles[Util.fromCssProperty(a[1])]=a[2].trim():a[3]?t.styles[Util.fromCssProperty(a[3])]=a[4].trim():a[5]?t.classes=t.classes.concat(a[5].slice(1).split(/\./)):a[6]&&(t.id=a[6].slice(1).split(/#/).pop()),e.nextMatch=r.lastIndex)}while(n);return t}},evalText:{value:function(e){var t=void 0;try{t=Scripting.evalTwineScript(e),null==t||"function"==typeof t?t=e:(t=String(t),/\[(?:object(?:\s+[^\]]+)?|native\s+code)\]/.test(t)&&(t=e))}catch(r){t=e}return t}},evalPassageId:{value:function(e){return null==e||Story.has(e)?e:r.helpers.evalText(e)}},hasBlockContext:{value:function(e){for(var t="function"==typeof window.getComputedStyle,r=e.length-1;r>=0;--r){var n=e[r];switch(n.nodeType){case Node.ELEMENT_NODE:var a=n.nodeName.toUpperCase();if("BR"===a)return!0;var i=t?window.getComputedStyle(n,null):n.currentStyle;if(i&&i.display){if("none"===i.display)continue;return"block"===i.display}switch(a){case"ADDRESS":case"ARTICLE":case"ASIDE":case"BLOCKQUOTE":case"CENTER":case"DIV":case"DL":case"FIGURE":case"FOOTER":case"FORM":case"H1":case"H2":case"H3":case"H4":case"H5":case"H6":case"HEADER":case"HR":case"MAIN":case"NAV":case"OL":case"P":case"PRE":case"SECTION":case"TABLE":case"UL":return!0}return!1;case Node.COMMENT_NODE:continue;default:return!1}}return!0}},parseSquareBracketedMarkup:{value:function(e){function t(){return d>=e.source.length?u:e.source[d++]}function r(){return d>=e.source.length?u:e.source[d]}function n(t){return t<1||d+t>=e.source.length?u:e.source[d+t]}function a(){return{error:String.format.apply(String,arguments),pos:d}}function i(){c=d}function o(t){var r=e.source.slice(c,d).trim();if(""===r)throw new Error("malformed wiki "+(f?"link":"image")+", empty "+t+" component");"link"===t&&"~"===r[0]?(l.forceInternal=!0,l.link=r.slice(1)):l[t]=r,c=d}function s(e){++d;e:for(;;){switch(r()){case"\\":++d;var t=r();if(t!==u&&"\n"!==t)break;case u:case"\n":return u;case e:break e}++d}return d}var u=-1,l={},c=e.matchStart,d=c+1,h=void 0,p=void 0,f=void 0,g=void 0;if(g=r(),"["===g)f=l.isLink=!0;else{switch(f=!1,g){case"<":l.align="left",++d;break;case">":l.align="right",++d}if(!/^[Ii][Mm][Gg]$/.test(e.source.slice(d,d+3)))return a("malformed square-bracketed wiki markup");d+=3,l.isImage=!0}if("["!==t())return a("malformed wiki {0}",f?"link":"image");h=1,p=0,i();try{e:for(;;){switch(g=r()){case u:case"\n":return a("unterminated wiki {0}",f?"link":"image");case'"':if(s(g)===u)return a("unterminated double quoted string in wiki {0}",f?"link":"image");break;case"'":if((4===p||3===p&&f)&&s(g)===u)return a("unterminated single quoted string in wiki {0}",f?"link":"image");break;case"|":0===p&&(o(f?"text":"title"),++c,p=1);break;case"-":0===p&&">"===n(1)&&(o(f?"text":"title"),++d,c+=2,p=1);break;case"<":0===p&&"-"===n(1)&&(o(f?"link":"source"),++d,c+=2,p=2);break;case"[":if(p===-1)return a("unexpected left square bracket '['");++h,1===h&&(i(),++c);break;case"]":if(--h,0===h){switch(p){case 0:case 1:o(f?"link":"source"),p=3;break;case 2:o(f?"text":"title"),p=3;break;case 3:f?(o("setter"),p=-1):(o("link"),p=4);break;case 4:o("setter"),p=-1}if(++d,"]"===r()){++d;break e}--d}}++d}}catch(e){return a(e.message)}return l.pos=d,l}}}),Object.defineProperty(r,"formatters",{value:[{name:"macro",profiles:["core"],match:"<<",lookahead:new RegExp("<<(\\/?"+Patterns.macroName+")(?:\\s*)((?:(?:\"(?:\\\\.|[^\"\\\\])*\")|(?:'(?:\\\\.|[^'\\\\])*')|(?:\\[(?:[<>]?[Ii][Mm][Gg])?\\[[^\\r\\n]*?\\]\\]+)|[^>]|(?:>(?!>)))*)>>","gm"),argsPattern:["(``)","`((?:\\\\.|[^`\\\\])+)`","(\"\"|'')",'("(?:\\\\.|[^"\\\\])+")',"('(?:\\\\.|[^'\\\\])+')","(\\[(?:[<>]?[Ii][Mm][Gg])?\\[[^\\r\\n]*?\\]\\]+)","([^`\"'\\s]+)","(`|\"|')"].join("|"),working:{source:"",name:"",arguments:"",index:0},context:null,handler:function(e){var t=this.lookahead.lastIndex=e.matchStart;if(this.parseTag(e)){var r=e.nextMatch,n=this.working.source,a=this.working.name,i=this.working.arguments,o=void 0;try{if(o=Macro.get(a),!o){if(Macro.tags.has(a)){var s=Macro.tags.get(a);return throwError(e.output,"child tag <<"+a+">> was found outside of a call to its parent macro"+(1===s.length?"":"s")+" <<"+s.join(">>, <<")+">>",e.source.slice(t,e.nextMatch))}return throwError(e.output,"macro <<"+a+">> does not exist",e.source.slice(t,e.nextMatch))}var u=null;if(o.hasOwnProperty("tags")&&(u=this.parseBody(e,o),!u))return e.nextMatch=r,throwError(e.output,"cannot find a closing tag for macro <<"+a+">>",e.source.slice(t,e.nextMatch)+"…");if("function"!=typeof o.handler)return throwError(e.output,"macro <<"+a+">> handler function "+(o.hasOwnProperty("handler")?"is not a function":"does not exist"),e.source.slice(t,e.nextMatch));var l=u?u[0].args:this.createArgs(i,o.hasOwnProperty("skipArgs")&&!!o.skipArgs||o.hasOwnProperty("skipArg0")&&!!o.skipArg0);if(o.hasOwnProperty("_MACRO_API")){this.context=new MacroContext({parent:this.context,macro:o,name:a,args:l,payload:u,parser:e,source:n});try{o.handler.call(this.context)}finally{this.context=this.context.parent}}else{var c=e._rawArgs;e._rawArgs=i,o.handler(e.output,a,l,e,u),e._rawArgs=c}}catch(r){return throwError(e.output,"cannot execute "+(o&&o.isWidget?"widget":"macro")+" <<"+a+">>: "+r.message,e.source.slice(t,e.nextMatch))}finally{this.working.source="",this.working.name="",this.working.arguments="",this.working.index=0}}else e.outputText(e.output,e.matchStart,e.nextMatch)},parseTag:function(e){var t=this.lookahead.exec(e.source);return!(!t||t.index!==e.matchStart||!t[1])&&(e.nextMatch=this.lookahead.lastIndex,this.working.source=e.source.slice(t.index,this.lookahead.lastIndex),this.working.name=t[1],this.working.arguments=t[2],this.working.index=t.index,!0)},parseBody:function(e,t){for(var r=this.working.name,n="/"+r,a="end"+r,i=!!Array.isArray(t.tags)&&t.tags,o=[],s=t.hasOwnProperty("skipArgs")&&t.skipArgs,u=t.hasOwnProperty("skipArg0")&&t.skipArg0,l=-1,c=1,d=this.working.source,h=this.working.name,p=this.working.arguments,f=e.nextMatch;(e.matchStart=e.source.indexOf(this.match,e.nextMatch))!==-1;)if(this.parseTag(e)){var g=this.working.source,m=this.working.name,v=this.working.arguments,y=this.working.index,b=e.nextMatch;switch(m){case r:++c;break;case a:case n:--c;break;default:if(1===c&&i)for(var w=0,k=i.length;w<k;++w)m===i[w]&&(o.push({source:d,name:h,arguments:p,args:this.createArgs(p,s||0===o.length&&u),contents:e.source.slice(f,y)}),d=g,h=m,p=v,f=b)}if(0===c){o.push({source:d,name:h,arguments:p,args:this.createArgs(p,s||0===o.length&&u),contents:e.source.slice(f,y)}),l=b;break}}else this.lookahead.lastIndex=e.nextMatch=e.matchStart+this.match.length;return l!==-1?(e.nextMatch=l,o):null},createArgs:function(e,t){var r=t?[]:this.parseArgs(e);return Object.defineProperties(r,{raw:{value:e},full:{value:Scripting.parse(e)}}),r},parseArgs:function(e){for(var t=new RegExp(this.argsPattern,"gm"),n=[],a=new RegExp("^"+Patterns.variable),i=void 0;null!==(i=t.exec(e));){var o=void 0;if(i[1])o=undefined;else if(i[2]){o=i[2];try{o=Scripting.evalTwineScript(o)}catch(e){throw new Error('unable to parse macro argument "'+o+'": '+e.message)}}else if(i[3])o="";else if(i[4]){o=i[4];try{o=Scripting.evalJavaScript(o)}catch(e){throw new Error("unable to parse macro argument '"+o+"': "+e.message)}}else if(i[5]){o=i[5];try{o=Scripting.evalJavaScript(o)}catch(e){throw new Error('unable to parse macro argument "'+o+'": '+e.message)}}else if(i[6]){o=i[6];var s=r.helpers.parseSquareBracketedMarkup({source:o,matchStart:0});if(s.hasOwnProperty("error"))throw new Error('unable to parse macro argument "'+o+'": '+s.error);if(s.pos<o.length)throw new Error('unable to parse macro argument "'+o+'": unexpected character(s) "'+o.slice(s.pos)+'" (pos: '+s.pos+")");s.isLink?(o={isLink:!0},o.count=s.hasOwnProperty("text")?2:1,o.link=r.helpers.evalPassageId(s.link),o.text=s.hasOwnProperty("text")?r.helpers.evalText(s.text):o.link,o.external=!s.forceInternal&&r.isExternalLink(o.link),o.setFn=s.hasOwnProperty("setter")?function(e){return function(){return Scripting.evalJavaScript(e)}}(Scripting.parse(s.setter)):null):s.isImage&&(o=function(e){var t={source:e,isImage:!0};if("data:"!==e.slice(0,5)&&Story.has(e)){var r=Story.get(e);r.tags.includes("Twine.image")&&(t.source=r.text,t.passage=r.title)}return t}(r.helpers.evalPassageId(s.source)),s.hasOwnProperty("align")&&(o.align=s.align),s.hasOwnProperty("title")&&(o.title=r.helpers.evalText(s.title)),s.hasOwnProperty("link")&&(o.link=r.helpers.evalPassageId(s.link),o.external=!s.forceInternal&&r.isExternalLink(o.link)),o.setFn=s.hasOwnProperty("setter")?function(e){return function(){return Scripting.evalJavaScript(e)}}(Scripting.parse(s.setter)):null)}else if(i[7])if(o=i[7],a.test(o))o=r.getValue(o);else if(/^(?:settings|setup)[\.\[]/.test(o))try{o=Scripting.evalTwineScript(o)}catch(e){throw new Error('unable to parse macro argument "'+o+'": '+e.message)}else if("null"===o)o=null;else if("undefined"===o)o=undefined;else if("true"===o)o=!0;else if("false"===o)o=!1;else{var u=Number(o);Number.isNaN(u)||(o=u)}else if(i[8]){var l=void 0;switch(i[8]){case"`":l="backtick expression";break;case'"':l="double quoted string";break;case"'":l="single quoted string"}throw new Error("unterminated "+l+" in macro argument string")}n.push(o)}return n}},{name:"prettyLink",profiles:["core"],match:"\\[\\[[^[]",handler:function(e){var t=r.helpers.parseSquareBracketedMarkup(e);if(t.hasOwnProperty("error"))return void e.outputText(e.output,e.matchStart,e.nextMatch);e.nextMatch=t.pos;var n=r.helpers.evalPassageId(t.link),a=t.hasOwnProperty("text")?r.helpers.evalText(t.text):n,i=t.hasOwnProperty("setter")?function(e){return function(){return Scripting.evalJavaScript(e)}}(Scripting.parse(t.setter)):null,o=(Config.debug?new DebugView(e.output,"wiki-link","[[link]]",e.source.slice(e.matchStart,e.nextMatch)):e).output;t.forceInternal||!r.isExternalLink(n)?r.createInternalLink(o,n,a,i):r.createExternalLink(o,n,a)}},{name:"urlLink",profiles:["core"],match:Patterns.url,handler:function(e){e.outputText(r.createExternalLink(e.output,e.matchText),e.matchStart,e.nextMatch)}},{name:"image",profiles:["core"],match:"\\[[<>]?[Ii][Mm][Gg]\\[",handler:function(e){var t=r.helpers.parseSquareBracketedMarkup(e);if(t.hasOwnProperty("error"))return void e.outputText(e.output,e.matchStart,e.nextMatch);e.nextMatch=t.pos;var n=void 0;Config.debug&&(n=new DebugView(e.output,"wiki-image",t.hasOwnProperty("link")?"[img[][link]]":"[img[]]",e.source.slice(e.matchStart,e.nextMatch)),n.modes({block:!0}));var a=t.hasOwnProperty("setter")?function(e){return function(){return Scripting.evalJavaScript(e)}}(Scripting.parse(t.setter)):null,i=(Config.debug?n:e).output,o=void 0;if(t.hasOwnProperty("link")){var s=r.helpers.evalPassageId(t.link);i=t.forceInternal||!r.isExternalLink(s)?r.createInternalLink(i,s,null,a):r.createExternalLink(i,s),i.classList.add("link-image")}if(i=jQuery(document.createElement("img")).appendTo(i).get(0),o=r.helpers.evalPassageId(t.source),"data:"!==o.slice(0,5)&&Story.has(o)){var u=Story.get(o);u.tags.includes("Twine.image")&&(i.setAttribute("data-passage",u.title),o=u.text)}i.src=o,t.hasOwnProperty("title")&&(i.title=r.helpers.evalText(t.title)),t.hasOwnProperty("align")&&(i.align=t.align)}},{name:"monospacedByBlock",profiles:["block"],match:"^\\{\\{\\{\\n",lookahead:/^\{\{\{\n((?:^[^\n]*\n)+?)(^\}\}\}$\n?)/gm,handler:function(e){this.lookahead.lastIndex=e.matchStart;var t=this.lookahead.exec(e.source);t&&t.index===e.matchStart&&(jQuery(document.createElement("pre")).text(t[1]).appendTo(e.output),e.nextMatch=this.lookahead.lastIndex)}},{name:"formatByChar",profiles:["core"],match:"''|//|__|\\^\\^|~~|==|\\{\\{\\{",handler:function(e){switch(e.matchText){case"''":e.subWikify(jQuery(document.createElement("strong")).appendTo(e.output).get(0),"''");break;case"//":e.subWikify(jQuery(document.createElement("em")).appendTo(e.output).get(0),"//");break;case"__":e.subWikify(jQuery(document.createElement("u")).appendTo(e.output).get(0),"__");break;case"^^":e.subWikify(jQuery(document.createElement("sup")).appendTo(e.output).get(0),"\\^\\^");break;case"~~":e.subWikify(jQuery(document.createElement("sub")).appendTo(e.output).get(0),"~~");break;case"==":e.subWikify(jQuery(document.createElement("s")).appendTo(e.output).get(0),"==");break;case"{{{":var t=/\{\{\{((?:.|\n)*?)\}\}\}/gm;t.lastIndex=e.matchStart;var r=t.exec(e.source);r&&r.index===e.matchStart&&(jQuery(document.createElement("code")).text(r[1]).appendTo(e.output),e.nextMatch=t.lastIndex)}}},{name:"customStyle",profiles:["core"],match:"@@",terminator:"@@",blockRegExp:/\s*\n/gm,handler:function(e){var t=r.helpers.inlineCss(e);this.blockRegExp.lastIndex=e.nextMatch;var n=this.blockRegExp.exec(e.source),a=n&&n.index===e.nextMatch,i=jQuery(document.createElement(a?"div":"span")).appendTo(e.output);0===t.classes.length&&""===t.id&&0===Object.keys(t.styles).length?i.addClass("marked"):(t.classes.forEach(function(e){return i.addClass(e)}),""!==t.id&&i.attr("id",t.id),i.css(t.styles)),a?(e.nextMatch+=n[0].length,e.subWikify(i[0],"\\n?"+this.terminator)):e.subWikify(i[0],this.terminator)}},{name:"verbatimText",profiles:["core"],match:'"{3}|<nowiki>',lookahead:/(?:"{3}((?:.|\n)*?)"{3})|(?:<nowiki>((?:.|\n)*?)<\/nowiki>)/gm,handler:function(e){this.lookahead.lastIndex=e.matchStart;var t=this.lookahead.exec(e.source);t&&t.index===e.matchStart&&(jQuery(document.createElement("span")).addClass("verbatim").text(t[1]||t[2]).appendTo(e.output),e.nextMatch=this.lookahead.lastIndex)}},{name:"horizontalRule",profiles:["core"],match:"^----+$\\n?|<hr\\s*/?>\\n?",handler:function(e){jQuery(document.createElement("hr")).appendTo(e.output)}},{name:"emdash",profiles:["core"],match:"--",handler:function(e){jQuery(document.createTextNode("—")).appendTo(e.output)}},{name:"doubleDollarSign",profiles:["core"],match:"\\${2}",handler:function(e){jQuery(document.createTextNode("$")).appendTo(e.output)}},{name:"nakedVariable",profiles:["core"],match:Patterns.variable+"(?:(?:\\."+Patterns.identifier+")|(?:\\[\\d+\\])|(?:\\[\"(?:\\\\.|[^\"\\\\])+\"\\])|(?:\\['(?:\\\\.|[^'\\\\])+'\\])|(?:\\["+Patterns.variable+"\\]))*",handler:function(e){var t=toStringOrDefault(r.getValue(e.matchText),null);null===t?jQuery(document.createTextNode(e.matchText)).appendTo(e.output):new r((Config.debug?new DebugView(e.output,"variable",e.matchText,e.matchText):e).output,t)}},{name:"heading",profiles:["block"],match:"^!{1,6}",terminator:"\\n",handler:function(e){return r.helpers.hasBlockContext(e.output.childNodes)?void e.subWikify(jQuery(document.createElement("h"+e.matchLength)).appendTo(e.output).get(0),this.terminator):void jQuery(e.output).append(document.createTextNode(e.matchText))}},{name:"table",profiles:["block"],match:"^\\|(?:[^\\n]*)\\|(?:[fhck]?)$",lookahead:/^\|([^\n]*)\|([fhck]?)$/gm,rowTerminator:"\\|(?:[cfhk]?)$\\n?",cellPattern:"(?:\\|([^\\n\\|]*)\\|)|(\\|[cfhk]?$\\n?)",cellTerminator:"(?:\\u0020*)\\|",rowTypes:{c:"caption",f:"tfoot",h:"thead","":"tbody"},handler:function(e){if(!r.helpers.hasBlockContext(e.output.childNodes))return void jQuery(e.output).append(document.createTextNode(e.matchText));var t=jQuery(document.createElement("table")).appendTo(e.output).get(0),n=[],a=null,i=null,o=0,s=void 0;e.nextMatch=e.matchStart;do{this.lookahead.lastIndex=e.nextMatch;var u=this.lookahead.exec(e.source);if(s=u&&u.index===e.nextMatch){var l=u[2];"k"===l?(t.className=u[1],e.nextMatch+=u[0].length+1):(l!==a&&(a=l,i=jQuery(document.createElement(this.rowTypes[l])).appendTo(t)),"c"===a?(i.css("caption-side",0===o?"top":"bottom"),e.nextMatch+=1,e.subWikify(i[0],this.rowTerminator)):this.rowHandler(e,jQuery(document.createElement("tr")).appendTo(i).get(0),n),++o)}}while(s)},rowHandler:function(e,t,n){var a=this,i=new RegExp(this.cellPattern,"gm"),o=0,s=1,u=void 0;do{i.lastIndex=e.nextMatch;var l=i.exec(e.source);if(u=l&&l.index===e.nextMatch){if("~"===l[1]){var c=n[o];c&&(++c.rowCount,c.$element.attr("rowspan",c.rowCount).css("vertical-align","middle")),e.nextMatch=l.index+l[0].length-1}else if(">"===l[1])++s,e.nextMatch=l.index+l[0].length-1;else{if(l[2]){e.nextMatch=l.index+l[0].length;break}!function(){++e.nextMatch;for(var i=r.helpers.inlineCss(e),u=!1,l=!1,c=void 0;" "===e.source.substr(e.nextMatch,1);)u=!0,++e.nextMatch;"!"===e.source.substr(e.nextMatch,1)?(c=jQuery(document.createElement("th")).appendTo(t),++e.nextMatch):c=jQuery(document.createElement("td")).appendTo(t),n[o]={rowCount:1,$element:c},s>1&&(c.attr("colspan",s),s=1),e.subWikify(c[0],a.cellTerminator)," "===e.matchText.substr(e.matchText.length-2,1)&&(l=!0),i.classes.forEach(function(e){return c.addClass(e)}),""!==i.id&&c.attr("id",i.id),u&&l?i.styles["text-align"]="center":u?i.styles["text-align"]="right":l&&(i.styles["text-align"]="left"),c.css(i.styles),e.nextMatch=e.nextMatch-1}()}++o}}while(u)}},{name:"list",profiles:["block"],match:"^(?:(?:\\*+)|(?:#+))",lookahead:/^(?:(\*+)|(#+))/gm,terminator:"\\n",handler:function(e){if(!r.helpers.hasBlockContext(e.output.childNodes))return void jQuery(e.output).append(document.createTextNode(e.matchText));e.nextMatch=e.matchStart;var t=[e.output],n=null,a=0,i=void 0,o=void 0;do{this.lookahead.lastIndex=e.nextMatch;var s=this.lookahead.exec(e.source);if(i=s&&s.index===e.nextMatch){var u=s[2]?"ol":"ul",l=s[0].length;if(e.nextMatch+=s[0].length,l>a)for(o=a;o<l;++o)t.push(jQuery(document.createElement(u)).appendTo(t[t.length-1]).get(0));else if(l<a)for(o=a;o>l;--o)t.pop();else l===a&&u!==n&&(t.pop(),t.push(jQuery(document.createElement(u)).appendTo(t[t.length-1]).get(0)));a=l,n=u,e.subWikify(jQuery(document.createElement("li")).appendTo(t[t.length-1]).get(0),this.terminator)}}while(i)}},{name:"quoteByBlock",profiles:["block"],match:"^<<<\\n",terminator:"^<<<\\n",handler:function(e){return r.helpers.hasBlockContext(e.output.childNodes)?void e.subWikify(jQuery(document.createElement("blockquote")).appendTo(e.output).get(0),this.terminator):void jQuery(e.output).append(document.createTextNode(e.matchText))}},{name:"quoteByLine",profiles:["block"],match:"^>+",lookahead:/^>+/gm,terminator:"\\n",handler:function(e){if(!r.helpers.hasBlockContext(e.output.childNodes))return void jQuery(e.output).append(document.createTextNode(e.matchText));var t=[e.output],n=0,a=e.matchLength,i=void 0,o=void 0;do{if(a>n)for(o=n;o<a;++o)t.push(jQuery(document.createElement("blockquote")).appendTo(t[t.length-1]).get(0));else if(a<n)for(o=n;o>a;--o)t.pop();n=a,e.subWikify(t[t.length-1],this.terminator),jQuery(document.createElement("br")).appendTo(t[t.length-1]),this.lookahead.lastIndex=e.nextMatch;var s=this.lookahead.exec(e.source);i=s&&s.index===e.nextMatch,i&&(a=s[0].length,e.nextMatch+=s[0].length)}while(i)}},{name:"html",profiles:["core"],match:"<[Hh][Tt][Mm][Ll]>",lookahead:/<[Hh][Tt][Mm][Ll]>((?:.|\n)*?)<\/[Hh][Tt][Mm][Ll]>/gm,handler:function(e){this.lookahead.lastIndex=e.matchStart;var t=this.lookahead.exec(e.source);t&&t.index===e.matchStart&&(e.nextMatch=this.lookahead.lastIndex,jQuery(document.createDocumentFragment()).append(t[1]).appendTo(e.output))}},{name:"commentByBlock",profiles:["core"],match:"(?:/(?:%|\\*))|(?:<!--)",lookahead:/(?:\/(%|\*)(?:(?:.|\n)*?)\1\/)|(?:<!--(?:(?:.|\n)*?)-->)/gm,handler:function(e){this.lookahead.lastIndex=e.matchStart;var t=this.lookahead.exec(e.source);t&&t.index===e.matchStart&&(e.nextMatch=this.lookahead.lastIndex)}},{name:"lineContinuation",profiles:["core"],match:"\\\\"+Patterns.space+"*?(?:\\n|$)|(?:^|\\n)"+Patterns.space+"*?\\\\",handler:function(e){e.nextMatch=e.matchStart+e.matchLength}},{name:"lineBreak",profiles:["core"],match:"\\n|<br\\s*/?>",handler:function(e){e.options.nobr||jQuery(document.createElement("br")).appendTo(e.output)}},{name:"htmlCharacterReference",profiles:["core"],match:"(?:(?:&#?[0-9A-Za-z]{2,8};|.)(?:&#?(?:x0*(?:3[0-6][0-9A-Fa-f]|1D[C-Fc-f][0-9A-Fa-f]|20[D-Fd-f][0-9A-Fa-f]|FE2[0-9A-Fa-f])|0*(?:76[89]|7[7-9][0-9]|8[0-7][0-9]|761[6-9]|76[2-7][0-9]|84[0-3][0-9]|844[0-7]|6505[6-9]|6506[0-9]|6507[0-1]));)+|&#?[0-9A-Za-z]{2,8};)",handler:function(e){jQuery(document.createDocumentFragment()).append(e.matchText).appendTo(e.output)}},{name:"htmlTag",profiles:["core"],match:"<\\w+(?:\\s+[^\\u0000-\\u001F\\u007F-\\u009F\\s\"'>\\/=]+(?:\\s*=\\s*(?:\"[^\"]*?\"|'[^']*?'|[^\\s\"'=<>`]+))?)*\\s*\\/?>",tagPattern:"<(\\w+)",voidElements:["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"],nobrElements:["colgroup","datalist","dl","figure","ol","optgroup","select","table","tbody","tfoot","thead","tr","ul"],handler:function(e){var t=new RegExp(this.tagPattern).exec(e.matchText),r=t&&t[1],n=r&&r.toLowerCase();if(n){var a=this.voidElements.includes(n),i=this.nobrElements.includes(n),o=void 0,s=void 0;if(!a){o="<\\/"+n+"\\s*>";var u=new RegExp(o,"gim");u.lastIndex=e.matchStart,s=u.exec(e.source)}if(a||s){var l=e.output,c=document.createElement(e.output.tagName),d=void 0;for(c.innerHTML=e.matchText;c.firstChild;)c=c.firstChild;c.hasAttribute("data-passage")&&(this.processDataAttributes(c),Config.debug&&(d=new DebugView(e.output,"html-"+n,n,e.matchText),d.modes({block:"img"===n,nonvoid:s}),l=d.output)),s&&(e.subWikify(c,o,{ignoreTerminatorCase:!0,nobr:i}),d&&jQuery(c).find(".debug.block").length>0&&d.modes({block:!0})),l.appendChild(c)}else throwError(e.output,'HTML tag "'+r+'" is not closed',e.matchText+"…")}},processDataAttributes:function(e){var t=e.getAttribute("data-passage");if(null!=t){var n=r.helpers.evalPassageId(t);n!==t&&(t=n,e.setAttribute("data-passage",n)),""!==t&&("IMG"===e.tagName.toUpperCase()?"data:"!==t.slice(0,5)&&Story.has(t)&&(t=Story.get(t),t.tags.includes("Twine.image")&&(e.src=t.text.trim())):!function(){var r=e.getAttribute("data-setter"),n=void 0;null!=r&&(r=String(r).trim(),""!==r&&(n=function(e){return function(){return Scripting.evalJavaScript(e)}}(Scripting.parse(r)))),Story.has(t)?(e.classList.add("link-internal"),Config.addVisitedLinkClass&&State.hasPlayed(t)&&e.classList.add("link-visited")):e.classList.add("link-broken"),jQuery(e).ariaClick({one:!0},function(){"function"==typeof n&&n.call(this),Engine.play(t)})}())}}}]}),r}(),Macro=function(){function e(t,r,a){if(Array.isArray(t))return void t.forEach(function(t){return e(t,r,a)});if(!h.test(t))throw new Error('invalid macro name "'+t+'"');if(n(t))throw new Error("cannot clobber existing macro <<"+t+">>");if(u(t))throw new Error("cannot clobber child tag <<"+t+">> of parent macro"+(1===d[t].length?"":"s")+" <<"+d[t].join(">>, <<")+">>");try{if("object"===("undefined"==typeof r?"undefined":_typeof(r)))c[t]=a?clone(r):r;else{if(!n(r))throw new Error("cannot create alias of nonexistent macro <<"+r+">>");c[t]=a?clone(c[r]):c[r]}Object.defineProperty(c,t,{writable:!1}),c[t]._MACRO_API=!0}catch(e){throw"TypeError"===e.name?new Error("cannot clobber protected macro <<"+t+">>"):new Error("unknown error when attempting to add macro <<"+t+">>: ["+e.name+"] "+e.message)}if(c[t].hasOwnProperty("tags"))if(null==c[t].tags)o(t);else{if(!Array.isArray(c[t].tags))throw new Error('bad value for "tags" property of macro <<'+t+">>");o(t,c[t].tags)}}function t(e){if(Array.isArray(e))return void e.forEach(function(e){return t(e)});if(n(e)){c[e].hasOwnProperty("tags")&&s(e);try{Object.defineProperty(c,e,{writable:!0}),delete c[e]}catch(t){throw new Error("unknown error removing macro <<"+e+">>: "+t.message)}}else if(u(e))throw new Error("cannot remove child tag <<"+e+">> of parent macro <<"+d[e]+">>")}function r(){return 0===Object.keys(c).length}function n(e){return c.hasOwnProperty(e)}function a(e){var t=null;return n(e)&&"function"==typeof c[e].handler?t=c[e]:macros.hasOwnProperty(e)&&"function"==typeof macros[e].handler&&(t=macros[e]),t}function i(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"init";Object.keys(c).forEach(function(t){"function"==typeof c[t][e]&&c[t][e](t)}),Object.keys(macros).forEach(function(t){"function"==typeof macros[t][e]&¯os[t][e](t)})}function o(e,t){if(!e)throw new Error("no parent specified");for(var r=["/"+e,"end"+e],a=[].concat(r,Array.isArray(t)?t:[]),i=0;i<a.length;++i){var o=a[i];if(n(o))throw new Error("cannot register tag for an existing macro");u(o)?d[o].includes(e)||(d[o].push(e),d[o].sort()):d[o]=[e]}}function s(e){if(!e)throw new Error("no parent specified");Object.keys(d).forEach(function(t){var r=d[t].indexOf(e);r!==-1&&(1===d[t].length?delete d[t]:d[t].splice(r,1))})}function u(e){return d.hasOwnProperty(e)}function l(e){return u(e)?d[e]:null}var c={},d={},h=new RegExp("^(?:"+Patterns.macroName+")$");return Object.freeze(Object.defineProperties({},{add:{value:e},delete:{value:t},isEmpty:{value:r},has:{value:n},get:{value:a},init:{value:i},tags:{value:Object.freeze(Object.defineProperties({},{register:{value:o},unregister:{value:s},has:{value:u},get:{value:l}}))},evalStatements:{value:function(){return Scripting.evalJavaScript.apply(Scripting,arguments)}}}))}(),MacroContext=function(){var e=function(){function e(t){_classCallCheck(this,e);var r=Object.assign({parent:null,macro:null,name:"",args:null,payload:null,parser:null,source:""},t);if(null===r.macro||""===r.name||null===r.parser)throw new TypeError("context object missing required properties");Object.defineProperties(this,{parent:{value:r.parent},self:{value:r.macro},name:{value:r.name},args:{value:r.args},payload:{value:r.payload},source:{value:r.source},parser:{value:r.parser},_output:{value:r.parser.output},_debugView:{writable:!0,value:null},_debugViewEnabled:{writable:!0,value:Config.debug}})}return _createClass(e,[{key:"contextHas",value:function(e){for(var t=this;null!==(t=t.parent);)if(e(t))return!0;return!1}},{key:"contextSelect",value:function(e){for(var t=this;null!==(t=t.parent);)if(e(t))return t;return null}},{key:"contextSelectAll",value:function(e){for(var t=[],r=this;null!==(r=r.parent);)e(r)&&t.push(r);return t}},{key:"createDebugView",value:function(e,t){return this._debugView=new DebugView(this._output,"macro",e?e:this.name,t?t:this.source),null!==this.payload&&this.payload.length>0&&this._debugView.modes({ -nonvoid:!0}),this._debugViewEnabled=!0,this._debugView}},{key:"removeDebugView",value:function(){null!==this._debugView&&(this._debugView.remove(),this._debugView=null),this._debugViewEnabled=!1}},{key:"error",value:function(e,t){return throwError(this._output,"<<"+this.name+">>: "+e,t?t:this.source)}},{key:"output",get:function(){return this._debugViewEnabled?this.debugView.output:this._output}},{key:"debugView",get:function(){return this._debugViewEnabled?null!==this._debugView?this._debugView:this.createDebugView():null}}]),e}();return e}();!function(){function e(e,t,r,n){return function(){if(t||"function"==typeof r){var a=void 0;try{"undefined"!=typeof e&&(State.variables.hasOwnProperty("args")&&(a=State.variables.args),State.variables.args=e),t&&Wikifier.wikifyEval(t),"function"==typeof r&&r.call(this)}finally{"undefined"!=typeof e&&("undefined"!=typeof a?State.variables.args=a:delete State.variables.args)}}null!=n&&Engine.play(n)}}Macro.add("set",{skipArgs:!0,handler:function(){if(0===this.args.full.length)return this.error("no expression specified");try{Scripting.evalJavaScript(this.args.full)}catch(e){return this.error("bad evaluation: "+("object"===("undefined"==typeof e?"undefined":_typeof(e))?e.message:e))}Config.debug&&this.debugView.modes({hidden:!0})}}),Macro.add("unset",{skipArgs:!0,handler:function(){if(0===this.args.full.length)return this.error("no story/temporary variable list specified");for(var e=new RegExp("(?:(State\\.variables)|(TempVariables))\\.("+Patterns.identifier+")","g"),t=void 0;null!==(t=e.exec(this.args.full));){var r=t[1]?State.variables:TempVariables,n=t[3];r.hasOwnProperty(n)&&delete r[n]}Config.debug&&this.debugView.modes({hidden:!0})}}),Macro.add("remember",{skipArgs:!0,handler:function(){if(0===this.args.full.length)return this.error("no expression specified");try{Scripting.evalJavaScript(this.args.full)}catch(e){return this.error("bad evaluation: "+("object"===("undefined"==typeof e?"undefined":_typeof(e))?e.message:e))}for(var e=storage.get("remember")||{},t=new RegExp("State\\.variables\\.("+Patterns.identifier+")","g"),r=void 0;null!==(r=t.exec(this.args.full));){var n=r[1];e[n]=State.variables[n]}return storage.set("remember",e)?void(Config.debug&&this.debugView.modes({hidden:!0})):this.error("unknown error, cannot remember: "+this.args.raw)},init:function(){var e=storage.get("remember");e&&Object.keys(e).forEach(function(t){return State.variables[t]=e[t]})}}),Macro.add("forget",{skipArgs:!0,handler:function(){if(0===this.args.full.length)return this.error("no story variable list specified");for(var e=storage.get("remember"),t=new RegExp("State\\.variables\\.("+Patterns.identifier+")","g"),r=void 0,n=!1;null!==(r=t.exec(this.args.full));){var a=r[1];State.variables.hasOwnProperty(a)&&delete State.variables[a],e&&e.hasOwnProperty(a)&&(n=!0,delete e[a])}return n&&!storage.set("remember",e)?this.error("unknown error, cannot update remember store"):void(Config.debug&&this.debugView.modes({hidden:!0}))}}),Macro.add("run","set"),Macro.add("script",{skipArgs:!0,tags:null,handler:function(){var e=document.createDocumentFragment();try{Scripting.evalJavaScript(this.payload[0].contents,e),Config.debug&&this.createDebugView(this.name,this.source+this.payload[0].contents+"<</"+this.name+">>")}catch(e){return this.error("bad evaluation: "+("object"===("undefined"==typeof e?"undefined":_typeof(e))?e.message:e),this.source+this.payload[0].contents+"<</"+this.name+">>")}e.hasChildNodes()&&this.output.appendChild(e)}}),Macro.add("display",{handler:function(){if(0===this.args.length)return this.error("no passage specified");var e=void 0;if(e="object"===_typeof(this.args[0])?this.args[0].link:this.args[0],!Story.has(e))return this.error('passage "'+e+'" does not exist');Config.debug&&this.debugView.modes({block:!0}),e=Story.get(e);var t=void 0;t=this.args[1]?jQuery(document.createElement(this.args[1])).addClass(e.domId+" macro-"+this.name).attr("data-passage",e.title).appendTo(this.output):jQuery(this.output),t.wiki(e.processText())}}),Macro.add("nobr",{skipArgs:!0,tags:null,handler:function(){new Wikifier(this.output,this.payload[0].contents.replace(/^\n+|\n+$/g,"").replace(/\n+/g," "))}}),Macro.add(["print","=","-"],{skipArgs:!0,handler:function(){if(0===this.args.full.length)return this.error("no expression specified");try{var e=toStringOrDefault(Scripting.evalJavaScript(this.args.full),null);null!==e&&new Wikifier(this.output,"-"===this.name?Util.escape(e):e)}catch(e){return this.error("bad evaluation: "+("object"===("undefined"==typeof e?"undefined":_typeof(e))?e.message:e))}}}),Macro.add("silently",{skipArgs:!0,tags:null,handler:function(){var e=document.createDocumentFragment();if(new Wikifier(e,this.payload[0].contents.trim()),Config.debug)this.debugView.modes({hidden:!0}),this.output.appendChild(e);else{var t=[].concat(_toConsumableArray(e.querySelectorAll(".error"))).map(function(e){return e.textContent});if(t.length>0)return this.error("error"+(1===t.length?"":"s")+" within contents ("+t.join("; ")+")",this.source+this.payload[0].contents+"<</"+this.name+">>")}}}),Macro.add("if",{skipArgs:!0,tags:["elseif","else"],handler:function(){var e=0;try{for(var t=Scripting.evalJavaScript,r=this.payload.length,n=!1;e<r;++e){switch(this.payload[e].name){case"else":if(e+1!==r)return this.error("<<else>> must be the final clause");if(this.payload[e].args.raw.length>0)return/^\s*if\b/i.test(this.payload[e].args.raw)?this.error('whitespace is not allowed between the "else" and "if" in <<elseif>> clause'+(e>0?" (#"+e+")":"")):this.error("<<else>> does not accept a conditional expression (perhaps you meant to use <<elseif>>), invalid: "+this.payload[e].args.raw);break;default:if(0===this.payload[e].args.full.length)return this.error("no conditional expression specified for <<"+this.payload[e].name+">> clause"+(e>0?" (#"+e+")":""));if(Config.macros.ifAssignmentError&&/[^!=&^|<>*\/%+-]=[^=]/.test(this.payload[e].args.full))return this.error("assignment operator found within <<"+this.payload[e].name+">> clause"+(e>0?" (#"+e+")":"")+" (perhaps you meant to use an equality operator: ==, ===, eq, is), invalid: "+this.payload[e].args.raw)}if(Config.debug&&this.createDebugView(this.payload[e].name,this.payload[e].source).modes({nonvoid:!1}),"else"===this.payload[e].name||t(this.payload[e].args.full)){n=!0,new Wikifier(this.output,this.payload[e].contents);break}Config.debug&&this.debugView.modes({hidden:!0,invalid:!0})}if(Config.debug){for(++e;e<r;++e)this.createDebugView(this.payload[e].name,this.payload[e].source).modes({nonvoid:!1,hidden:!0,invalid:!0});this.createDebugView("/"+this.name,"<</"+this.name+">>").modes({nonvoid:!1,hidden:!n,invalid:!n})}}catch(t){return this.error("bad conditional expression in <<"+(0===e?"if":"elseif")+">> clause"+(e>0?" (#"+e+")":"")+": "+("object"===("undefined"==typeof t?"undefined":_typeof(t))?t.message:t))}}}),Macro.add("switch",{skipArg0:!0,tags:["case","default"],handler:function(){if(0===this.args.full.length)return this.error("no expression specified");var e=this.payload.length,t=void 0;if(1===e)return this.error("no cases specified");try{t=Scripting.evalJavaScript(this.args.full)}catch(e){return this.error("bad evaluation: "+("object"===("undefined"==typeof e?"undefined":_typeof(e))?e.message:e))}var r=this.debugView,n=1,a=!1;for(Config.debug&&r.modes({nonvoid:!1,hidden:!0});n<e;++n){switch(this.payload[n].name){case"default":if(n+1!==e)return this.error("<<default>> must be the final case");if(this.payload[n].args.length>0)return this.error("<<default>> does not accept values, invalid: "+this.payload[n].args.raw);break;default:if(0===this.payload[n].args.length)return this.error("no value(s) specified for <<"+this.payload[n].name+">> (#"+n+")")}if(Config.debug&&this.createDebugView(this.payload[n].name,this.payload[n].source).modes({nonvoid:!1}),"default"===this.payload[n].name||this.payload[n].args.some(function(e){return e===t})){a=!0,new Wikifier(this.output,this.payload[n].contents);break}Config.debug&&this.debugView.modes({hidden:!0,invalid:!0})}if(Config.debug){for(++n;n<e;++n)this.createDebugView(this.payload[n].name,this.payload[n].source).modes({nonvoid:!1,hidden:!0,invalid:!0});r.modes({nonvoid:!1,hidden:!0,invalid:!a}),this.createDebugView("/"+this.name,"<</"+this.name+">>").modes({nonvoid:!1,hidden:!0,invalid:!a})}}}),Macro.add("for",{skipArgs:!0,tags:null,handler:function(){var e=Scripting.evalJavaScript,t=this.payload[0].contents.replace(/\n$/,""),r=void 0,n=this.args.full.trim(),a=void 0,i=!0,o=Config.macros.maxLoopIterations;if(0===n.length)n=!0;else if(n.indexOf(";")!==-1){var s=n.match(/^([^;]*?)\s*;\s*([^;]*?)\s*;\s*([^;]*?)$/);if(null===s)return this.error("invalid 3-part syntax, format: init ; condition ; post");r=s[1],n=s[2],a=s[3]}if("string"==typeof n){if(/^\S+\s+in\s+\S+/i.test(n))return this.error("invalid syntax, for…in is not supported");if(/^\S+\s+of\s+\S+/i.test(n))return this.error("invalid syntax, for…of is not supported")}Config.debug&&this.debugView.modes({block:!0});try{if(TempState.break=null,r)try{e(r)}catch(e){return this.error("bad init expression: "+("object"===("undefined"==typeof e?"undefined":_typeof(e))?e.message:e))}for(;e(n);){if(--o<0)return this.error("exceeded configured maximum loop iterations ("+Config.macros.maxLoopIterations+")");if(new Wikifier(this.output,i?t.replace(/^\n/,""):t),i&&(i=!1),null!=TempState.break)if(1===TempState.break)TempState.break=null;else if(2===TempState.break){TempState.break=null;break}if(a)try{e(a)}catch(e){return this.error("bad post expression: "+("object"===("undefined"==typeof e?"undefined":_typeof(e))?e.message:e))}}}catch(e){return this.error("bad conditional expression: "+("object"===("undefined"==typeof e?"undefined":_typeof(e))?e.message:e))}finally{TempState.break=null}}}),Macro.add(["break","continue"],{skipArgs:!0,handler:function(){return this.contextHas(function(e){return"for"===e.name})?(TempState.break="continue"===this.name?1:2,void(Config.debug&&this.debugView.modes({hidden:!0}))):this.error("must only be used in conjunction with its parent macro <<for>>")}}),Macro.add(["button","link"],{tags:null,handler:function(){var t=this;if(0===this.args.length)return this.error("no "+("button"===this.name?"button":"link")+" text specified");Config.debug&&this.createDebugView(this.name,this.source+this.payload[0].contents+"<</"+this.name+">>");var r=jQuery(document.createElement("button"===this.name?"button":"a")),n=function(){var e=void 0;return State.variables.hasOwnProperty("args")&&t.contextHas(function(e){return e.self.isWidget})&&(e=State.variables.args),e}(),a=void 0;if("object"===_typeof(this.args[0]))if(this.args[0].isImage){var i=jQuery(document.createElement("img")).attr("src",this.args[0].source).appendTo(r);this.args[0].hasOwnProperty("passage")&&i.attr("data-passage",this.args[0].passage),this.args[0].hasOwnProperty("title")&&i.attr("title",this.args[0].title),this.args[0].hasOwnProperty("align")&&i.attr("align",this.args[0].align),this.args[0].hasOwnProperty("link")&&(a=this.args[0].link),a=this.args[0].link}else r.append(document.createTextNode(this.args[0].text)),a=this.args[0].link;else r.wikiWithOptions({profile:"core"},this.args[0]),a=this.args.length>1?this.args[1]:undefined;null!=a?(r.attr("data-passage",a),Story.has(a)?(r.addClass("link-internal"),Config.addVisitedLinkClass&&State.hasPlayed(a)&&r.addClass("link-visited")):r.addClass("link-broken")):r.addClass("link-internal"),r.addClass("macro-"+this.name).ariaClick({namespace:".macros",one:null!=a},e(n,this.payload[0].contents.trim(),null,a)).appendTo(this.output)}}),Macro.add("checkbox",{handler:function(){if(this.args.length<3){var e=[];return this.args.length<1&&e.push("variable name"),this.args.length<2&&e.push("unchecked value"),this.args.length<3&&e.push("checked value"),this.error("no "+e.join(" or ")+" specified")}if("string"!=typeof this.args[0])return this.error("variable name argument is not a string");var t=this.args[0].trim();if("$"!==t[0]&&"_"!==t[0])return this.error('variable name "'+this.args[0]+'" is missing its sigil ($ or _)');var r=Util.slugify(t),n=this.args[1],a=this.args[2],i=document.createElement("input");jQuery(i).attr({id:this.name+"-"+r,name:this.name+"-"+r,type:"checkbox",tabindex:0}).addClass("macro-"+this.name).on("change",function(){Wikifier.setValue(t,this.checked?a:n)}).appendTo(this.output),this.args.length>3&&"checked"===this.args[3]?(i.checked=!0,Wikifier.setValue(t,a)):Wikifier.setValue(t,n)}}),Macro.add(["linkappend","linkprepend","linkreplace"],{tags:null,handler:function(){var t=this;if(0===this.args.length)return this.error("no link text specified");Config.debug&&this.createDebugView(this.name,this.source+this.payload[0].contents+"<</"+this.name+">>");var r=jQuery(document.createElement("a")),n=jQuery(document.createElement("span")),a=this.args.length>1&&/^(?:transition|t8n)$/.test(this.args[1]),i=function(){var e=void 0;return State.variables.hasOwnProperty("args")&&t.contextHas(function(e){return e.self.isWidget})&&(e=State.variables.args),e}();r.wikiWithOptions({profile:"core"},this.args[0]).addClass("link-internal macro-"+this.name).ariaClick({namespace:".macros",one:!0},e(i,null,function(){if("linkreplace"===t.name?r.remove():r.wrap('<span class="macro-'+t.name+'"></span>').replaceWith(function(){return r.html()}),""!==t.payload[0].contents){var e=document.createDocumentFragment();new Wikifier(e,t.payload[0].contents),n.append(e)}a&&setTimeout(function(){return n.removeClass("macro-"+t.name+"-in")},Engine.minDomActionDelay)})).appendTo(this.output),n.addClass("macro-"+this.name+"-insert"),a&&n.addClass("macro-"+this.name+"-in"),"linkprepend"===this.name?n.insertBefore(r):n.insertAfter(r)}}),Macro.add("radiobutton",{handler:function(){if(this.args.length<2){var e=[];return this.args.length<1&&e.push("variable name"),this.args.length<2&&e.push("checked value"),this.error("no "+e.join(" or ")+" specified")}if("string"!=typeof this.args[0])return this.error("variable name argument is not a string");var t=this.args[0].trim();if("$"!==t[0]&&"_"!==t[0])return this.error('variable name "'+this.args[0]+'" is missing its sigil ($ or _)');var r=Util.slugify(t),n=this.args[1],a=document.createElement("input");TempState.hasOwnProperty(this.name)||(TempState[this.name]={},TempState[this.name][r]=0),jQuery(a).attr({id:this.name+"-"+r+"-"+TempState[this.name][r]++,name:this.name+"-"+r,type:"radio",tabindex:0}).addClass("macro-"+this.name).on("change",function(){this.checked&&Wikifier.setValue(t,n)}).appendTo(this.output),this.args.length>2&&"checked"===this.args[2]&&(a.checked=!0,Wikifier.setValue(t,n))}}),Macro.add("textarea",{handler:function(){if(this.args.length<2){var e=[];return this.args.length<1&&e.push("variable name"),this.args.length<2&&e.push("default value"),this.error("no "+e.join(" or ")+" specified")}if("string"!=typeof this.args[0])return this.error("variable name argument is not a string");var t=this.args[0].trim();if("$"!==t[0]&&"_"!==t[0])return this.error('variable name "'+this.args[0]+'" is missing its sigil ($ or _)');Config.debug&&this.debugView.modes({block:!0});var r=Util.slugify(t),n=this.args[1],a="autofocus"===this.args[2],i=document.createElement("textarea");jQuery(i).attr({id:this.name+"-"+r,name:this.name+"-"+r,rows:4,tabindex:0}).addClass("macro-"+this.name).on("change",function(){Wikifier.setValue(t,this.value)}).appendTo(this.output),Wikifier.setValue(t,n),i.textContent=n,a&&(i.setAttribute("autofocus","autofocus"),postdisplay["#autofocus:"+i.id]=function(e){setTimeout(function(){return i.focus()},Engine.minDomActionDelay),delete postdisplay[e]})}}),Macro.add("textbox",{handler:function(){if(this.args.length<2){var e=[];return this.args.length<1&&e.push("variable name"),this.args.length<2&&e.push("default value"),this.error("no "+e.join(" or ")+" specified")}if("string"!=typeof this.args[0])return this.error("variable name argument is not a string");var t=this.args[0].trim();if("$"!==t[0]&&"_"!==t[0])return this.error('variable name "'+this.args[0]+'" is missing its sigil ($ or _)');Config.debug&&this.debugView.modes({block:!0});var r=Util.slugify(t),n=this.args[1],a=document.createElement("input"),i=!1,o=void 0;this.args.length>3?(o=this.args[2],i="autofocus"===this.args[3]):this.args.length>2&&("autofocus"===this.args[2]?i=!0:o=this.args[2]),jQuery(a).attr({id:this.name+"-"+r,name:this.name+"-"+r,type:"text",tabindex:0}).addClass("macro-"+this.name).on("change",function(){Wikifier.setValue(t,this.value)}).on("keypress",function(e){13===e.which&&(e.preventDefault(),Wikifier.setValue(t,this.value),null!=o&&Engine.play(o))}).appendTo(this.output),Wikifier.setValue(t,n),a.value=n,i&&(a.setAttribute("autofocus","autofocus"),postdisplay["#autofocus:"+a.id]=function(e){setTimeout(function(){return a.focus()},Engine.minDomActionDelay),delete postdisplay[e]})}}),Macro.add("click","link"),Macro.add("actions",{handler:function(){var e=jQuery(document.createElement("ul")).addClass(this.name).appendTo(this.output);State.variables["#actions"]||(State.variables["#actions"]={});for(var t=0;t<this.args.length;++t){var r=void 0,n=void 0,a=void 0,i=void 0;"object"===_typeof(this.args[t])?this.args[t].isImage?(a=jQuery(document.createElement("img")).attr("src",this.args[t].source),this.args[t].hasOwnProperty("passage")&&a.attr("data-passage",this.args[t].passage),this.args[t].hasOwnProperty("title")&&a.attr("title",this.args[t].title),this.args[t].hasOwnProperty("align")&&a.attr("align",this.args[t].align),r=this.args[t].link,i=this.args[t].setFn):(n=this.args[t].text,r=this.args[t].link,i=this.args[t].setFn):n=r=this.args[t],State.variables["#actions"].hasOwnProperty(r)&&State.variables["#actions"][r]||jQuery(Wikifier.createInternalLink(jQuery(document.createElement("li")).appendTo(e),r,null,function(e,t){return function(){State.variables["#actions"][e]=!0,"function"==typeof t&&t()}}(r,i))).addClass("macro-"+this.name).append(a||document.createTextNode(n))}}}),Macro.add(["back","return"],{handler:function(){if(this.args.length>1)return this.error("too many arguments specified, check the documentation for details");var e=-1,t=void 0,r=void 0,n=void 0;if(1===this.args.length&&("object"===_typeof(this.args[0])?this.args[0].isImage?(n=jQuery(document.createElement("img")).attr("src",this.args[0].source),this.args[0].hasOwnProperty("passage")&&n.attr("data-passage",this.args[0].passage),this.args[0].hasOwnProperty("title")&&n.attr("title",this.args[0].title),this.args[0].hasOwnProperty("align")&&n.attr("align",this.args[0].align),this.args[0].hasOwnProperty("link")&&(t=this.args[0].link)):1===this.args[0].count?t=this.args[0].link:(r=this.args[0].text,t=this.args[0].link):1===this.args.length&&(r=this.args[0])),null==t){for(var a=State.length-2;a>=0;--a)if(State.history[a].title!==State.passage){e=a,t=State.history[a].title;break}if(null==t&&"return"===this.name)for(var i=State.expired.length-1;i>=0;--i)if(State.expired[i]!==State.passage){t=State.expired[i];break}}else{if(!Story.has(t))return this.error('passage "'+t+'" does not exist');if("back"===this.name){for(var o=State.length-2;o>=0;--o)if(State.history[o].title===t){e=o;break}if(e===-1)return this.error('cannot find passage "'+t+'" in the current story history')}}if(null==t)return this.error("cannot find passage");var s=void 0;s="back"!==this.name||e!==-1?jQuery(document.createElement("a")).addClass("link-internal").ariaClick({one:!0},"return"===this.name?function(){return Engine.play(t)}:function(){return Engine.goTo(e)}):jQuery(document.createElement("span")).addClass("link-disabled"),s.addClass("macro-"+this.name).append(n||document.createTextNode(r||L10n.get("macro"+this.name.toUpperFirst()+"Text"))).appendTo(this.output)}}),Macro.add("choice",{handler:function(){if(0===this.args.length)return this.error("no passage specified");var e=State.passage,t=void 0,r=void 0,n=void 0,a=void 0;if(1===this.args.length?"object"===_typeof(this.args[0])?this.args[0].isImage?(n=jQuery(document.createElement("img")).attr("src",this.args[0].source),this.args[0].hasOwnProperty("passage")&&n.attr("data-passage",this.args[0].passage),this.args[0].hasOwnProperty("title")&&n.attr("title",this.args[0].title),this.args[0].hasOwnProperty("align")&&n.attr("align",this.args[0].align),t=this.args[0].link,a=this.args[0].setFn):(r=this.args[0].text,t=this.args[0].link,a=this.args[0].setFn):r=t=this.args[0]:(t=this.args[0],r=this.args[1]),State.variables.hasOwnProperty("#choice")){if(State.variables["#choice"].hasOwnProperty(e)&&State.variables["#choice"][e])return void jQuery(document.createElement("span")).addClass("link-disabled macro-"+this.name).attr("tabindex",-1).append(n||document.createTextNode(r)).appendTo(this.output)}else State.variables["#choice"]={};jQuery(Wikifier.createInternalLink(this.output,t,null,function(){State.variables["#choice"][e]=!0,"function"==typeof a&&a()})).addClass("macro-"+this.name).append(n||document.createTextNode(r))}}),Macro.add(["addclass","toggleclass"],{handler:function(){if(this.args.length<2){var e=[];return this.args.length<1&&e.push("selector"),this.args.length<2&&e.push("class names"),this.error("no "+e.join(" or ")+" specified")}var t=jQuery(this.args[0]);if(0===t.length)return this.error('no elements matched the selector "'+this.args[0]+'"');switch(this.name){case"addclass":t.addClass(this.args[1].trim());break;case"toggleclass":t.toggleClass(this.args[1].trim())}}}),Macro.add("removeclass",{handler:function(){if(0===this.args.length)return this.error("no selector specified");var e=jQuery(this.args[0]);return 0===e.length?this.error('no elements matched the selector "'+this.args[0]+'"'):void(this.args.length>1?e.removeClass(this.args[1].trim()):e.removeClass())}}),Macro.add("copy",{handler:function(){if(0===this.args.length)return this.error("no selector specified");var e=jQuery(this.args[0]);return 0===e.length?this.error('no elements matched the selector "'+this.args[0]+'"'):void jQuery(this.output).append(e.html())}}),Macro.add(["append","prepend","replace"],{tags:null,handler:function(){if(0===this.args.length)return this.error("no selector specified");var e=jQuery(this.args[0]);if(0===e.length)return this.error('no elements matched the selector "'+this.args[0]+'"');if(""!==this.payload[0].contents){var t=document.createDocumentFragment();switch(new Wikifier(t,this.payload[0].contents),this.name){case"replace":e.empty();case"append":e.append(t);break;case"prepend":e.prepend(t)}}else"replace"===this.name&&e.empty()}}),Macro.add("remove",{handler:function(){if(0===this.args.length)return this.error("no selector specified");var e=jQuery(this.args[0]);return 0===e.length?this.error('no elements matched the selector "'+this.args[0]+'"'):void e.remove()}}),Has.audio?(Macro.add("audio",{handler:function(){if(this.args.length<2){var e=[];return this.args.length<1&&e.push("track ID"),this.args.length<2&&e.push("actions"),this.error("no "+e.join(" or ")+" specified")}var t=Macro.get("cacheaudio").tracks,r=[":all",":looped",":muted",":paused",":playing"],n=String(this.args[0]).trim();if(!r.includes(n)&&!t.hasOwnProperty(n))return this.error('track "'+n+'" does not exist');for(var a=this.args.slice(1),i=void 0,o=void 0,s=void 0,u=void 0,l=void 0,c=void 0,d=5,h=void 0,p=void 0;a.length>0;){var f=a.shift();switch(f){case"play":case"pause":case"stop":i=f;break;case"fadein":i="fade",c=1;break;case"fadeout":i="fade",c=0;break;case"fadeto":if(0===a.length)return this.error("fadeto missing required level value");if(i="fade",p=a.shift(),c=Number.parseFloat(p),Number.isNaN(c)||!Number.isFinite(c))return this.error("cannot parse fadeto: "+p);break;case"fadeoverto":if(a.length<2){var g=[];return a.length<1&&g.push("seconds"),a.length<2&&g.push("level"),this.error("fadeoverto missing required "+g.join(" and ")+" value"+(g.length>1?"s":""))}if(i="fade",p=a.shift(),d=Number.parseFloat(p),Number.isNaN(d)||!Number.isFinite(d))return this.error("cannot parse fadeoverto: "+p);if(p=a.shift(),c=Number.parseFloat(p),Number.isNaN(c)||!Number.isFinite(c))return this.error("cannot parse fadeoverto: "+p);break;case"volume":if(0===a.length)return this.error("volume missing required level value");if(p=a.shift(),o=Number.parseFloat(p),Number.isNaN(o)||!Number.isFinite(o))return this.error("cannot parse volume: "+p);break;case"mute":case"unmute":s="mute"===f;break;case"time":if(0===a.length)return this.error("time missing required seconds value");if(p=a.shift(),u=Number.parseFloat(p),Number.isNaN(u)||!Number.isFinite(u))return this.error("cannot parse time: "+p);break;case"loop":case"unloop":l="loop"===f;break;case"goto":if(0===a.length)return this.error("goto missing required passage title");if(p=a.shift(),h="object"===("undefined"==typeof p?"undefined":_typeof(p))?p.link:p,!Story.has(h))return this.error('passage "'+h+'" does not exist');break;default:return this.error("unknown action: "+f)}}var m=void 0;switch(n){case":all":m=Object.keys(t);break;case":looped":m=Object.keys(t).filter(function(e){return t[e].isLooped()});break;case":muted":m=Object.keys(t).filter(function(e){return t[e].isMuted()});break;case":paused":m=Object.keys(t).filter(function(e){return t[e].isPaused()});break;case":playing":m=Object.keys(t).filter(function(e){return t[e].isPlaying()});break;default:m=[n]}try{m.forEach(function(e){var r=t[e];switch(null!=o&&(r.volume=o),null!=u&&(r.time=u),null!=s&&(r.mute=s),null!=l&&(r.loop=l),null!=h&&r.one("end",function(){return Engine.play(h)}),i){case"play":r.play();break;case"pause":r.pause();break;case"stop":r.stop();break;case"fade":r.fadeWithDuration(d,c)}}),Config.debug&&this.createDebugView()}catch(e){return this.error("error executing audio action: "+e.message)}}}),Macro.add("cacheaudio",{tracks:{},handler:function(){if(this.args.length<2){var e=[];return this.args.length<1&&e.push("track ID"),this.args.length<2&&e.push("sources"),this.error("no "+e.join(" or ")+" specified")}var t=String(this.args[0]).trim(),r=/^:|\s/;if(r.test(t))return this.error('invalid track ID "'+t+'": track IDs may not start with a colon or contain whitespace');var n=/^format:\s*([\w-]+)\s*;\s*(\S.*)$/i,a=void 0;try{a=SimpleAudio.create(this.args.slice(1).map(function(e){var t=n.exec(e);return null===t?e:{format:t[1],src:t[2]}}))}catch(e){return this.error('error during track initialization for "'+t+'": '+e.message)}if(Config.debug&&!a.hasSource())return this.error('no supported audio sources found for "'+t+'"');var i=this.self.tracks;i.hasOwnProperty(t)&&i[t].destroy(),i[t]=a,Config.debug&&this.createDebugView()}}),Macro.add("createplaylist",{tags:["track"],lists:{},handler:function(){if(0===this.args.length)return this.error("no list ID specified");var e=Macro.get("playlist");if(null!==e.from&&"createplaylist"!==e.from)return this.error("a playlist has already been defined with <<setplaylist>>");var t=Macro.get("cacheaudio").tracks,r=String(this.args[0]).trim(),n=/^:|\s/;if(n.test(r))return this.error('invalid list ID "'+r+'": list IDs may not start with a colon or contain whitespace');if(1===this.payload.length)return this.error("no tracks defined via <<track>>");Config.debug&&this.debugView.modes({nonvoid:!1,hidden:!0});for(var a=SimpleAudio.createList(),i=1,o=this.payload.length;i<o;++i){if(this.payload[i].args.length<2){var s=[];return this.payload[i].args.length<1&&s.push("track ID"),this.payload[i].args.length<2&&s.push("actions"),this.error("no "+s.join(" or ")+" specified")}var u=String(this.payload[i].args[0]).trim();if(!t.hasOwnProperty(u))return this.error('track "'+u+'" does not exist');for(var l=this.payload[i].args.slice(1),c=!1,d=void 0;l.length>0;){var h=l.shift(),p=void 0;switch(h){case"copy":c=!0;break;case"rate":l.length>0&&l.shift();break;case"volume":if(0===l.length)return this.error("volume missing required level value");if(p=l.shift(),d=Number.parseFloat(p),Number.isNaN(d)||!Number.isFinite(d))return this.error("cannot parse volume: "+p);break;default:return this.error("unknown action: "+h)}}var f=t[u];a.add({copy:c,track:f,volume:null!=d?d:f.volume}),Config.debug&&this.createDebugView(this.payload[i].name,this.payload[i].source).modes({nonvoid:!1,hidden:!0})}var g=this.self.lists;g.hasOwnProperty(r)&&g[r].destroy(),g[r]=a,null===e.from&&(e.from="createplaylist"),this.createDebugView("/"+this.name,"<</"+this.name+">>").modes({nonvoid:!1,hidden:!0})}}),Macro.add("masteraudio",{handler:function(){if(0===this.args.length)return this.error("no actions specified");for(var e=this.args.slice(0),t=!1,r=void 0,n=void 0;e.length>0;){var a=e.shift(),i=void 0;switch(a){case"stop":t=!0;break;case"mute":case"unmute":r="mute"===a;break;case"volume":if(0===e.length)return this.error("volume missing required level value");if(i=e.shift(),n=Number.parseFloat(i),Number.isNaN(n)||!Number.isFinite(n))return this.error("cannot parse volume: "+i);break;default:return this.error("unknown action: "+a)}}try{null!=r&&(SimpleAudio.mute=r),null!=n&&(SimpleAudio.volume=n),t&&SimpleAudio.stop(),Config.debug&&this.createDebugView()}catch(e){return this.error("error executing master audio action: "+e.message)}}}),Macro.add("playlist",{from:null,handler:function(){var e=this.self.from;if(null===e)return this.error("no playlists have been created");var t=void 0,r=void 0;if("createplaylist"===e){if(this.args.length<2){var n=[];return this.args.length<1&&n.push("list ID"),this.args.length<2&&n.push("actions"),this.error("no "+n.join(" or ")+" specified")}var a=Macro.get("createplaylist").lists,i=String(this.args[0]).trim();if(!a.hasOwnProperty(i))return this.error('playlist "'+i+'" does not exist');t=a[i],r=this.args.slice(1)}else{if(0===this.args.length)return this.error("no actions specified");t=Macro.get("setplaylist").list,r=this.args.slice(0)}for(var o=void 0,s=void 0,u=void 0,l=void 0,c=void 0,d=void 0,h=5,p=void 0;r.length>0;){var f=r.shift();switch(f){case"play":case"pause":case"stop":case"skip":o=f;break;case"fadein":o="fade",d=1;break;case"fadeout":o="fade",d=0;break;case"fadeto":if(0===r.length)return this.error("fadeto missing required level value");if(o="fade",p=r.shift(),d=Number.parseFloat(p),Number.isNaN(d)||!Number.isFinite(d))return this.error("cannot parse fadeto: "+p);break;case"fadeoverto":if(r.length<2){var g=[];return r.length<1&&g.push("seconds"),r.length<2&&g.push("level"),this.error("fadeoverto missing required "+g.join(" and ")+" value"+(g.length>1?"s":""))}if(o="fade",p=r.shift(),h=Number.parseFloat(p),Number.isNaN(h)||!Number.isFinite(h))return this.error("cannot parse fadeoverto: "+p);if(p=r.shift(),d=Number.parseFloat(p),Number.isNaN(d)||!Number.isFinite(d))return this.error("cannot parse fadeoverto: "+p);break;case"volume":if(0===r.length)return this.error("volume missing required level value");if(p=r.shift(),s=Number.parseFloat(p),Number.isNaN(s)||!Number.isFinite(s))return this.error("cannot parse volume: "+p);break;case"mute":case"unmute":u="mute"===f;break;case"loop":case"unloop":l="loop"===f;break;case"shuffle":case"unshuffle":c="shuffle"===f;break;default:return this.error("unknown action: "+f)}}try{switch(null!=s&&(t.volume=s),null!=u&&(t.mute=u),null!=l&&(t.loop=l),null!=c&&(t.shuffle=c),o){case"play":t.play();break;case"pause":t.pause();break;case"stop":t.stop();break;case"skip":t.skip();break;case"fade":t.fadeWithDuration(h,d)}Config.debug&&this.createDebugView()}catch(e){return this.error("error playing audio: "+e.message)}}}),Macro.add("removeplaylist",{handler:function(){if(0===this.args.length)return this.error("no list ID specified");var e=Macro.get("createplaylist").lists,t=String(this.args[0]).trim();return e.hasOwnProperty(t)?(e[t].destroy(),delete e[t],void(Config.debug&&this.createDebugView())):this.error('playlist "'+t+'" does not exist')}}),Macro.add("waitforaudio",{skipArgs:!0,queue:[],handler:function(){function e(){if(0===t.length)return LoadScreen.unlock();var r=t.shift();return r.hasData()?e():void r.one("canplay.waitforaudio error.waitforaudio",function(){jQuery(this).off(".waitforaudio"),e()}).load()}var t=this.self.queue;t.length>0||(this.self.fillQueue(t), -t.length>0&&(LoadScreen.lock(),e()))},fillQueue:function(e){var t=Macro.get("cacheaudio").tracks;Object.keys(t).forEach(function(r){return e.push(t[r])});var r=Macro.get("createplaylist").lists;if(Object.keys(r).map(function(e){return r[e].tracks}).flatten().filter(function(e){return e.copy}).forEach(function(t){return e.push(t.track)}),Macro.has("setplaylist")){var n=Macro.get("setplaylist").list;null!==n&&n.tracks.forEach(function(t){return e.push(t.track)})}}}),Macro.add("setplaylist",{list:null,handler:function(){if(0===this.args.length)return this.error("no track ID(s) specified");var e=Macro.get("playlist");if(null!==e.from&&"setplaylist"!==e.from)return this.error("playlists have already been defined with <<createplaylist>>");var t=this.self,r=Macro.get("cacheaudio").tracks;null!==t.list&&t.list.destroy(),t.list=SimpleAudio.createList();for(var n=0;n<this.args.length;++n){var a=this.args[n];if(!r.hasOwnProperty(a))return this.error('track "'+a+'" does not exist');t.list.add(r[a])}null===e.from&&(e.from="setplaylist"),Config.debug&&this.createDebugView()}}),Macro.add("stopallaudio",{skipArgs:!0,handler:function(){var e=Macro.get("cacheaudio").tracks;Object.keys(e).forEach(function(t){return e[t].stop()}),Config.debug&&this.createDebugView()}})):Macro.add(["audio","cacheaudio","createplaylist","masteraudio","playlist","removeplaylist","waitforaudio","setplaylist","stopallaudio"],{skipArgs:!0,handler:function(){}}),Macro.add("goto",{handler:function(){if(0===this.args.length)return this.error("no passage specified");var e=void 0;return e="object"===_typeof(this.args[0])?this.args[0].link:this.args[0],Story.has(e)?void setTimeout(function(){return Engine.play(e)},Engine.minDomActionDelay):this.error('passage "'+e+'" does not exist')}}),Macro.add("timed",{tags:["next"],timers:new Set,handler:function(){if(0===this.args.length)return this.error("no time value specified in <<timed>>");var e=[];try{e.push({name:this.name,source:this.source,delay:Math.max(Engine.minDomActionDelay,Util.fromCssTime(this.args[0])),content:this.payload[0].contents})}catch(e){return this.error(e.message+" in <<timed>>")}if(this.payload.length>1){var t=void 0;try{var r=void 0;for(t=1,r=this.payload.length;t<r;++t)e.push({name:this.payload[t].name,source:this.payload[t].source,delay:0===this.payload[t].args.length?e[e.length-1].delay:Math.max(Engine.minDomActionDelay,Util.fromCssTime(this.payload[t].args[0])),content:this.payload[t].contents})}catch(e){return this.error(e.message+" in <<next>> (#"+t+")")}}Config.debug&&this.debugView.modes({block:!0}),this.self.registerTimeout(jQuery(document.createElement("span")).addClass("macro-"+this.name).appendTo(this.output),e,this.args.length>1&&/^(?:transition|t8n)$/.test(this.args[1]))},registerTimeout:function(e,t,r){var n=State.turns,a=this.timers,i=null,o=t.shift(),s=function s(){if(a.delete(i),n===State.turns){var u=o;null!=(o=t.shift())&&(i=setTimeout(s,o.delay),a.add(i));var l=document.createDocumentFragment();new Wikifier(l,u.content);var c=e;Config.debug&&"next"===u.name&&(c=jQuery(new DebugView(c[0],"macro",u.name,u.source).output)),r&&(c=jQuery(document.createElement("span")).addClass("macro-timed-insert macro-timed-in").appendTo(c)),c.append(l),r&&setTimeout(function(){return c.removeClass("macro-timed-in")},Engine.minDomActionDelay)}};i=setTimeout(s,o.delay),a.add(i),prehistory.hasOwnProperty("#timed-timers-cleanup")||(prehistory["#timed-timers-cleanup"]=function(e){delete prehistory[e],a.forEach(function(e){return clearTimeout(e)}),a.clear()})}}),Macro.add("repeat",{tags:null,timers:new Set,handler:function(){if(0===this.args.length)return this.error("no time value specified");var e=void 0;try{e=Math.max(Engine.minDomActionDelay,Util.fromCssTime(this.args[0]))}catch(e){return this.error(e.message)}Config.debug&&this.debugView.modes({block:!0}),this.self.registerInterval(jQuery(document.createElement("span")).addClass("macro-"+this.name).appendTo(this.output),this.payload[0].contents,e,this.args.length>1&&/^(?:transition|t8n)$/.test(this.args[1]))},registerInterval:function(e,t,r,n){var a=State.turns,i=this.timers,o=null;o=setInterval(function(){if(a!==State.turns)return clearInterval(o),void i.delete(o);var r=void 0;try{!function(){TempState.break=null,TempState.hasOwnProperty("repeatTimerId")&&(r=TempState.repeatTimerId),TempState.repeatTimerId=o;var a=document.createDocumentFragment();new Wikifier(a,t);var i=e;n&&(i=jQuery(document.createElement("span")).addClass("macro-repeat-insert macro-repeat-in").appendTo(i)),i.append(a),n&&setTimeout(function(){return i.removeClass("macro-repeat-in")},Engine.minDomActionDelay)}()}finally{"undefined"!=typeof r?TempState.repeatTimerId=r:delete TempState.repeatTimerId,TempState.break=null}},r),i.add(o),prehistory.hasOwnProperty("#repeat-timers-cleanup")||(prehistory["#repeat-timers-cleanup"]=function(e){delete prehistory[e],i.forEach(function(e){return clearInterval(e)}),i.clear()})}}),Macro.add("stop",{skipArgs:!0,handler:function(){if(!TempState.hasOwnProperty("repeatTimerId"))return this.error("must only be used in conjunction with its parent macro <<repeat>>");var e=Macro.get("repeat").timers,t=TempState.repeatTimerId;clearInterval(t),e.delete(t),TempState.break=2,Config.debug&&this.debugView.modes({hidden:!0})}}),Macro.add("widget",{tags:null,handler:function(){if(0===this.args.length)return this.error("no widget name specified");var e=this.args[0];if(Macro.has(e)){if(!Macro.get(e).isWidget)return this.error('cannot clobber existing macro "'+e+'"');Macro.delete(e)}try{Macro.add(e,{isWidget:!0,handler:function(e){return function(){var t=this,r=void 0;try{var n=function(){State.variables.hasOwnProperty("args")&&(r=State.variables.args),State.variables.args=[];for(var n=0,a=t.args.length;n<a;++n)State.variables.args[n]=t.args[n];State.variables.args.raw=t.args.raw,State.variables.args.full=t.args.full;var i=document.createDocumentFragment(),o=[];return new Wikifier(i,e),Array.from(i.querySelectorAll(".error")).forEach(function(e){o.push(e.textContent)}),0!==o.length?{v:t.error("error"+(o.length>1?"s":"")+" within widget contents ("+o.join("; ")+")")}:void t.output.appendChild(i)}();if("object"===("undefined"==typeof n?"undefined":_typeof(n)))return n.v}catch(e){return this.error("cannot execute widget: "+e.message)}finally{"undefined"!=typeof r?State.variables.args=r:delete State.variables.args}}}(this.payload[0].contents)}),Config.debug&&this.createDebugView(this.name,this.source+this.payload[0].contents+"<</"+this.name+">>")}catch(t){return this.error('cannot create widget macro "'+e+'": '+t.message)}}})}();var Dialog=function(){function e(){m=function(){var e=void 0;try{var t=document.createElement("p"),r=document.createElement("div");t.style.width="100%",t.style.height="200px",r.style.position="absolute",r.style.left="0px",r.style.top="0px",r.style.width="100px",r.style.height="100px",r.style.visibility="hidden",r.style.overflow="hidden",r.appendChild(t),document.body.appendChild(r);var n=t.offsetWidth;r.style.overflow="auto";var a=t.offsetWidth;n===a&&(a=r.clientWidth),document.body.removeChild(r),e=n-a}catch(e){}return e||17}();var e=jQuery(document.createDocumentFragment()).append('<div id="ui-overlay" class="ui-close"></div><div id="ui-dialog" tabindex="0" role="dialog" aria-labelledby="ui-dialog-title"><div id="ui-dialog-titlebar"><h1 id="ui-dialog-title"></h1>'+('<button id="ui-dialog-close" class="ui-close" tabindex="0" aria-label="'+L10n.get("close")+'">î „</button>')+'</div><div id="ui-dialog-body"></div></div>');d=jQuery(e.find("#ui-overlay").get(0)),h=jQuery(e.find("#ui-dialog").get(0)),p=jQuery(e.find("#ui-dialog-title").get(0)),f=jQuery(e.find("#ui-dialog-body").get(0)),e.insertBefore("#store-area")}function t(e){return h.hasClass("open")&&(!e||e.splitOrEmpty(/\s+/).every(function(e){return f.hasClass(e)}))}function r(e,t){return f.empty().removeClass(),null!=t&&f.addClass(t),p.empty().append((null!=e?String(e):"")||" "),f.get(0)}function n(){return f.get(0)}function a(){var e;return(e=f).append.apply(e,arguments),Dialog}function i(){var e;return(e=f).wiki.apply(e,arguments),Dialog}function o(e,t,r,n,a){return jQuery(e).ariaClick(function(e){e.preventDefault(),"function"==typeof r&&r(e),s(t,a),"function"==typeof n&&n(e)})}function s(e,r){var n=jQuery.extend({top:50},e),a=n.top;t()||(g=safeActiveElement()),jQuery(document.documentElement).addClass("ui-dialog-open"),d.addClass("open"),null!==f[0].querySelector("img")&&f.imagesLoaded().always(function(){return l({data:{top:a}})}),jQuery("body>:not(script,#store-area,#ui-bar,#ui-overlay,#ui-dialog)").attr("tabindex",-3).attr("aria-hidden",!0),jQuery("#ui-bar,#story").find("[tabindex]:not([tabindex^=-])").attr("tabindex",-2).attr("aria-hidden",!0);var i=c(a);return h.css(i).addClass("open").focus(),jQuery(window).on("resize.ui-resize",null,{top:a},jQuery.throttle(40,l)),jQuery(document).on("click.ui-close",".ui-close",{closeFn:r},u).on("keypress.ui-close",".ui-close",function(e){13!==e.which&&32!==e.which||jQuery(this).trigger("click")}),setTimeout(function(){return jQuery.event.trigger("tw:dialogopened")},Engine.minDomActionDelay),Dialog}function u(e){return jQuery(document).off(".ui-close"),jQuery(window).off("resize.ui-resize"),h.removeClass("open").css({left:"",right:"",top:"",bottom:""}),jQuery("#ui-bar,#story").find("[tabindex=-2]").removeAttr("aria-hidden").attr("tabindex",0),jQuery("body>[tabindex=-3]").removeAttr("aria-hidden").removeAttr("tabindex"),p.empty(),f.empty().removeClass(),d.removeClass("open"),jQuery(document.documentElement).removeClass("ui-dialog-open"),null!==g&&(jQuery(g).focus(),g=null),e&&e.data&&"function"==typeof e.data.closeFn&&e.data.closeFn(e),setTimeout(function(){return jQuery.event.trigger("tw:dialogclosed")},Engine.minDomActionDelay),Dialog}function l(e){var t=e&&e.data&&"undefined"!=typeof e.data.top?e.data.top:50;"block"===h.css("display")&&(h.css({display:"none"}),h.css(jQuery.extend({display:""},c(t))))}function c(e){var t=null!=e?e:50,r=jQuery(window),n={left:"",right:"",top:"",bottom:""};h.css(n);var a=r.width()-h.outerWidth(!0)-1,i=r.height()-h.outerHeight(!0)-1;return a<=32+m&&(i-=m),i<=32+m&&(a-=m),a<=32?n.left=n.right=16:n.left=n.right=~~(a/2),i<=32?n.top=n.bottom=16:i/2>t?n.top=t:n.top=n.bottom=~~(i/2),Object.keys(n).forEach(function(e){""!==n[e]&&(n[e]+="px")}),n}var d=null,h=null,p=null,f=null,g=null,m=0;return Object.freeze(Object.defineProperties({},{init:{value:e},isOpen:{value:t},setup:{value:r},body:{value:n},append:{value:a},wiki:{value:i},addClickHandler:{value:o},open:{value:s},close:{value:u},resize:{value:function(){return l()}}}))}(),Engine=function(){function e(){if(Story.has("StoryInit"))try{var e=Wikifier.wikifyEval(Story.get("StoryInit").text);if(Config.debug){var t=new DebugView(document.createDocumentFragment(),"special","StoryInit","StoryInit");t.modes({hidden:!0}),t.append(e),f=t.output}}catch(e){Alert.error("StoryInit",e.message)}if(Config.history.maxStates=Math.max(0,Config.history.maxStates),Number.isSafeInteger(Config.history.maxStates)||(Config.history.maxStates=100),1===Config.history.maxStates&&(Config.history.controls=!1),Config.debug&&DebugView.init(),null==Config.passages.start)throw new Error("starting passage not selected");if(!Story.has(Config.passages.start))throw new Error('starting passage ("'+Config.passages.start+'") not found');if(State.restore())u();else{var r=!0;switch(_typeof(Config.saves.autoload)){case"boolean":Config.saves.autoload&&Save.autosave.ok()&&Save.autosave.has()&&(r=!Save.autosave.load());break;case"string":"prompt"===Config.saves.autoload&&Save.autosave.ok()&&Save.autosave.has()&&(r=!1,UI.buildDialogAutoload(),UI.open());break;case"function":Save.autosave.ok()&&Save.autosave.has()&&Config.saves.autoload()&&(r=!Save.autosave.load())}r&&l(Config.passages.start)}}function t(){LoadScreen.show(),window.scroll(0,0),State.reset(),window.location.reload()}function r(){return h}function n(){return p}function a(e){var t=State.goTo(e);return t&&u(),t}function i(e){var t=State.go(e);return t&&u(),t}function o(){return i(-1)}function s(){return i(1)}function u(){return l(State.passage,!0)}function l(e,t){h="playing",TempState={},TempVariables={},window.SugarCube.TempVariables=TempVariables;var r=void 0,n=void 0,a=Story.get(e);if(Object.keys(prehistory).forEach(function(e){"function"==typeof prehistory[e]&&prehistory[e].call(this,e)},a),t||State.create(a.title),document.body.className&&(document.body.className=""),Object.keys(predisplay).forEach(function(e){"function"==typeof predisplay[e]&&predisplay[e].call(this,e)},a),Story.has("PassageReady"))try{r=Wikifier.wikifyEval(Story.get("PassageReady").text)}catch(e){Alert.error("PassageReady",e.message)}h="rendering";var i=jQuery(a.render()),o=document.getElementById("passages");if(o.hasChildNodes()&&("number"==typeof Config.passages.transitionOut||"string"==typeof Config.passages.transitionOut&&""!==Config.passages.transitionOut&&""!==Config.transitionEndEventName?[].concat(_toConsumableArray(o.childNodes)).forEach(function(e){var t=jQuery(e);if(e.nodeType===Node.ELEMENT_NODE&&t.hasClass("passage")){if(t.hasClass("passage-out"))return;t.attr("id","out-"+t.attr("id")).addClass("passage-out"),"string"==typeof Config.passages.transitionOut?t.on(Config.transitionEndEventName,function(e){e.originalEvent.propertyName===Config.passages.transitionOut&&t.remove()}):setTimeout(function(){return t.remove()},Math.max(d,Config.passages.transitionOut))}else t.remove()}):jQuery(o).empty()),i.addClass("passage-in").appendTo(o),setTimeout(function(){return i.removeClass("passage-in")},d),document.title=Config.passages.displayTitles&&a.title!==Config.passages.start?a.title+" | "+Story.title:Story.title,window.scroll(0,0),h="playing",Story.has("PassageDone"))try{n=Wikifier.wikifyEval(Story.get("PassageDone").text)}catch(e){Alert.error("PassageDone",e.message)}if(Object.keys(postdisplay).forEach(function(e){"function"==typeof postdisplay[e]&&postdisplay[e].call(this,e)},a),Config.ui.updateStoryElements&&UI.setStoryElements(),Config.debug){var s=void 0;null!=r&&(s=new DebugView(document.createDocumentFragment(),"special","PassageReady","PassageReady"),s.modes({hidden:!0}),s.append(r),i.prepend(s.output)),null!=n&&(s=new DebugView(document.createDocumentFragment(),"special","PassageDone","PassageDone"),s.modes({hidden:!0}),s.append(n),i.append(s.output)),1===State.turns&&null!=f&&i.prepend(f)}switch(p=Date.now(),UI.hideOutlines(),jQuery("#story").find("a[href]:not(.link-external)").addClass("link-external").end().find("a,link,button,input,select,textarea").not("[tabindex]").attr("tabindex",0),_typeof(Config.saves.autosave)){case"boolean":Config.saves.autosave&&Save.autosave.save();break;case"string":a.tags.includes(Config.saves.autosave)&&Save.autosave.save();break;case"object":Array.isArray(Config.saves.autosave)&&a.tags.some(function(e){return Config.saves.autosave.includes(e)})&&Save.autosave.save()}return h="idle",i[0]}function c(e,t,r){var n=!1;switch(r){case undefined:break;case"replace":case"back":n=!0;break;default:throw new Error('Engine.display option parameter called with obsolete value "'+r+'"; please notify the developer')}l(e,n)}var d=40,h="idle",p=null,f=null;return Object.freeze(Object.defineProperties({},{minDomActionDelay:{value:d},start:{value:e},restart:{value:t},state:{get:r},lastPlay:{get:n},goTo:{value:a},go:{value:i},backward:{value:o},forward:{value:s},show:{value:u},play:{value:l},display:{value:c}}))}(),Passage=function(){var e=void 0,t=void 0;e=/^(?:debug|nobr|passage|script|stylesheet|widget|twine\..*)$/i,!function(){var e=/(?:\\n|\\t|\\s|\\|\r)/g,r=new RegExp(e.source),n=Object.freeze({"\\n":"\n","\\t":"\t","\\s":"\\","\\":"\\","\r":""});t=function(t){if(null==t)return"";var a=String(t);return a&&r.test(a)?a.replace(e,function(e){return n[e]}):a}}();var r=function(){function r(t,n){var a=this;_classCallCheck(this,r),Object.defineProperties(this,{title:{value:Util.unescape(t)},element:{value:n||null},tags:{value:Object.freeze(n&&n.hasAttribute("tags")?n.getAttribute("tags").trim().splitOrEmpty(/\s+/).sort().filter(function(e,t,r){return 0===t||r[t-1]!==e}):[])},_excerpt:{writable:!0,value:null}}),Object.defineProperties(this,{domId:{value:"passage-"+Util.slugify(this.title)},classes:{value:Object.freeze(0===this.tags.length?[]:function(){return a.tags.filter(function(t){return!e.test(t)}).map(function(e){return Util.slugify(e)})}())}})}return _createClass(r,[{key:"description",value:function(){var e=Config.passages.descriptions;if(null!=e)switch("undefined"==typeof e?"undefined":_typeof(e)){case"boolean":if(e)return this.title;break;case"object":if(e instanceof Map&&e.has(this.title))return e.get(this.title);if(e.hasOwnProperty(this.title))return e[this.title];break;case"function":var t=e.call(this);if(t)return t;break;default:throw new TypeError("Config.passages.descriptions must be a boolean, object, or function")}return null===this._excerpt&&(this._excerpt=r.getExcerptFromText(this.text)),this._excerpt}},{key:"processText",value:function(){var e=this.text;return this.tags.includes("nobr")&&(e=e.replace(/^\n+|\n+$/g,"").replace(/\n+/g," ")),this.tags.includes("Twine.image")&&(e="[img["+e+"]]"),e}},{key:"render",value:function(){var e=this,t=document.createElement("div");return jQuery(t).attr({id:this.domId,"data-passage":this.title,"data-tags":this.tags.join(" ")}).addClass("passage "+this.className),jQuery(document.body).addClass(this.className),Object.keys(prerender).forEach(function(r){"function"==typeof prerender[r]&&prerender[r].call(e,t,r)}),Story.has("PassageHeader")&&new Wikifier(t,Story.get("PassageHeader").processText()),new Wikifier(t,this.processText()),Story.has("PassageFooter")&&new Wikifier(t,Story.get("PassageFooter").processText()),Object.keys(postrender).forEach(function(r){"function"==typeof postrender[r]&&postrender[r].call(e,t,r)}),this._excerpt=r.getExcerptFromNode(t),t}},{key:"className",get:function(){return this.classes.join(" ")}},{key:"text",get:function(){if(null==this.element){var e=Util.escape(this.title);return'<span class="error" title="'+e+'">'+L10n.get("errorTitle")+": "+L10n.get("errorNonexistentPassage",{passage:e})+"</span>"}return t(this.element.textContent)}}],[{key:"getExcerptFromNode",value:function(e,t){if(!e.hasChildNodes())return"";var r=e.textContent.trim();if(""!==r){var n=new RegExp("(\\S+(?:\\s+\\S+){0,"+(t>0?t-1:7)+"})");r=r.replace(/\s+/g," ").match(n)}return r?r[1]+"…":"…"}},{key:"getExcerptFromText",value:function(e,t){if(""===e)return"";var r=new RegExp("(\\S+(?:\\s+\\S+){0,"+(t>0?t-1:7)+"})"),n=e.replace(/<<.*?>>/g," ").replace(/<.*?>/g," ").trim().replace(/^\s*\|.*\|.*?$/gm,"").replace(/\[[<>]?img\[[^\]]*\]\]/g,"").replace(/\[\[([^|\]]*)(?:|[^\]]*)?\]\]/g,"$1").replace(/^\s*!+(.*?)$/gm,"$1").replace(/'{2}|\/{2}|_{2}|@{2}/g,"").trim().replace(/\s+/g," ").match(r);return n?n[1]+"…":"…"}}]),r}();return r}(),Save=function(){function e(){if("cookie"===storage.name)return n(),Config.saves.autosave=undefined,Config.saves.slots=0,!1;Config.saves.slots=Math.max(0,Config.saves.slots),Number.isSafeInteger(Config.saves.slots)||(Config.saves.slots=8);var e=r(),t=!1;Array.isArray(e)&&(e={autosave:null,slots:e},t=!0),Config.saves.slots!==e.slots.length&&(Config.saves.slots<e.slots.length?(e.slots.reverse(),e.slots=e.slots.filter(function(e){return!(null===e&&this.count>0)||(--this.count,!1)},{count:e.slots.length-Config.saves.slots}),e.slots.reverse()):Config.saves.slots>e.slots.length&&S(e.slots,Config.saves.slots-e.slots.length),t=!0),j(e.autosave)&&(t=!0);for(var a=0;a<e.slots.length;++a)j(e.slots[a])&&(t=!0);return x(e)&&(storage.delete("saves"),t=!1),t&&E(e),O=e.slots.length-1,!0}function t(){return{autosave:null,slots:S([],Config.saves.slots)}}function r(){var e=storage.get("saves");return null===e?t():e}function n(){return storage.delete("saves"),!0}function a(){return i()||d()}function i(){return"cookie"!==storage.name&&"undefined"!=typeof Config.saves.autosave}function o(){var e=r();return null!==e.autosave}function s(){var e=r();return e.autosave}function u(){var e=r();return null!==e.autosave&&T(e.autosave)}function l(e,t){if("function"==typeof Config.saves.isAllowed&&!Config.saves.isAllowed())return!1;var n=r(),a={title:e||Story.get(State.passage).description(),date:Date.now()};return null!=t&&(a.metadata=t),n.autosave=C(a),E(n)}function c(){var e=r();return e.autosave=null,E(e)}function d(){return"cookie"!==storage.name&&O!==-1}function h(){return O+1}function p(){if(!d())return 0;for(var e=r(),t=0,n=0,a=e.slots.length;n<a;++n)null!==e.slots[n]&&++t;return t}function f(){return 0===p()}function g(e){if(e<0||e>O)return!1;var t=r();return!(e>=t.slots.length||null===t.slots[e])}function m(e){if(e<0||e>O)return null;var t=r();return e>=t.slots.length?null:t.slots[e]}function v(e){if(e<0||e>O)return!1;var t=r();return!(e>=t.slots.length||null===t.slots[e])&&T(t.slots[e])}function y(e,t,n){if("function"==typeof Config.saves.isAllowed&&!Config.saves.isAllowed())return UI.alert(L10n.get("savesDisallowed")),!1;if(e<0||e>O)return!1;var a=r();if(e>=a.slots.length)return!1;var i={title:t||Story.get(State.passage).description(),date:Date.now()};return null!=n&&(i.metadata=n),a.slots[e]=C(i),E(a)}function b(e){if(e<0||e>O)return!1;var t=r();return!(e>=t.slots.length)&&(t.slots[e]=null,E(t))}function w(e,t){function r(){var e=new Date,t=e.getMonth()+1,r=e.getDate(),n=e.getHours(),a=e.getMinutes(),i=e.getSeconds();return t<10&&(t="0"+t),r<10&&(r="0"+r),n<10&&(n="0"+n),a<10&&(a="0"+a),i<10&&(i="0"+i),""+e.getFullYear()+t+r+"-"+n+a+i}if("function"==typeof Config.saves.isAllowed&&!Config.saves.isAllowed())return void UI.alert(L10n.get("savesDisallowed"));var n=null==e?Story.domId:Util.slugify(e),a=n+"-"+r()+".save",i=null==t?{}:{metadata:t},o=LZString.compressToBase64(JSON.stringify(C(i)));saveAs(new Blob([o],{type:"text/plain;charset=UTF-8"}),a)}function k(e){var t=e.target.files[0],r=new FileReader;jQuery(r).on("load",function(e){var r=e.currentTarget;if(r.result){var n=void 0;try{n=JSON.parse(/\.json$/i.test(t.name)||/^\{/.test(r.result)?r.result:LZString.decompressFromBase64(r.result))}catch(e){}T(n)}}),r.readAsText(t)}function S(e,t){for(var r=0;r<t;++r)e.push(null);return e}function x(e){for(var t=e.slots,r=!0,n=0,a=t.length;n<a;++n)if(null!==t[n]){r=!1;break}return null===e.autosave&&r}function E(e){return x(e)?(storage.delete("saves"),!0):storage.set("saves",e)}function j(e){if(null===e)return!1;var t=!1;return e.hasOwnProperty("state")&&e.state.hasOwnProperty("delta")&&e.state.hasOwnProperty("index")||(e.hasOwnProperty("data")?(delete e.mode,e.state={delta:State.deltaEncode(e.data)},delete e.data):e.state.hasOwnProperty("delta")?e.state.hasOwnProperty("index")||delete e.state.mode:(delete e.state.mode,e.state.delta=State.deltaEncode(e.state.history),delete e.state.history),e.state.index=e.state.delta.length-1,t=!0),e.state.hasOwnProperty("rseed")&&(e.state.seed=e.state.rseed,delete e.state.rseed,e.state.delta.forEach(function(e,t,r){r[t].hasOwnProperty("rcount")&&(r[t].pull=r[t].rcount,delete r[t].rcount)}),t=!0),(e.state.hasOwnProperty("expired")&&"number"==typeof e.state.expired||e.state.hasOwnProperty("unique")||e.state.hasOwnProperty("last"))&&(e.state.hasOwnProperty("expired")&&"number"==typeof e.state.expired&&delete e.state.expired,(e.state.hasOwnProperty("unique")||e.state.hasOwnProperty("last"))&&(e.state.expired=[],e.state.hasOwnProperty("unique")&&(e.state.expired.push(e.state.unique),delete e.state.unique),e.state.hasOwnProperty("last")&&(e.state.expired.push(e.state.last),delete e.state.last)),t=!0),t}function C(e){if(null!=e&&"object"!==("undefined"==typeof e?"undefined":_typeof(e)))throw new Error("supplemental parameter must be an object");var t=Object.assign({},e,{id:Config.saves.id,state:State.marshalForSave()});return Config.saves.version&&(t.version=Config.saves.version),"function"==typeof Config.saves.onSave&&Config.saves.onSave(t),t.state.delta=State.deltaEncode(t.state.history),delete t.state.history,t}function T(e){try{if(j(e),!e||!e.hasOwnProperty("id")||!e.hasOwnProperty("state"))throw new Error(L10n.get("errorSaveMissingData"));if(e.state.history=State.deltaDecode(e.state.delta),delete e.state.delta,"function"==typeof Config.saves.onLoad&&Config.saves.onLoad(e),e.id!==Config.saves.id)throw new Error(L10n.get("errorSaveIdMismatch"));State.unmarshalForSave(e.state),Engine.show()}catch(e){return UI.alert(e.message.toUpperFirst()+".</p><p>"+L10n.get("aborting")+"."),!1}return!0}var O=-1;return Object.freeze(Object.defineProperties({},{init:{value:e},get:{value:r},clear:{value:n},ok:{value:a},autosave:{value:Object.freeze(Object.defineProperties({},{ok:{value:i},has:{value:o},get:{value:s},load:{value:u},save:{value:l},delete:{value:c}}))},slots:{value:Object.freeze(Object.defineProperties({},{ok:{value:d},length:{get:h},isEmpty:{value:f},count:{value:p},has:{value:g},get:{value:m},load:{value:v},save:{value:y},delete:{value:b}}))},export:{value:w},import:{value:k}}))}(),Setting=function(){function e(){if(storage.has("options")){var e=storage.get("options");null!==e&&(window.SugarCube.settings=settings=Object.assign(t(),e)),r(),storage.delete("options")}n(),g.forEach(function(e){if(e.hasOwnProperty("onInit")){var t={name:e.name,value:settings[e.name],default:e.default};e.hasOwnProperty("list")&&(t.list=e.list),e.onInit.call(t)}})}function t(){return Object.create(null)}function r(){var e=t();return Object.keys(settings).length>0&&g.filter(function(e){return e.type!==m.Header&&settings[e.name]!==e.default}).forEach(function(t){return e[t.name]=settings[t.name]}),0===Object.keys(e).length?(storage.delete("settings"),!0):storage.set("settings",e)}function n(){var e=t(),r=storage.get("settings")||t();g.filter(function(e){return e.type!==m.Header}).forEach(function(t){return e[t.name]=t.default}),window.SugarCube.settings=settings=Object.assign(e,r)}function a(){return window.SugarCube.settings=settings=t(),storage.delete("settings"),!0}function i(e){if(0===arguments.length)a(),n();else{if(null==e||!h(e))throw new Error('nonexistent setting "'+e+'"');var t=p(e);t.type!==m.Header&&(settings[e]=t.default)}return r()}function o(e,t){g.forEach(e,t)}function s(e,t,r){if(arguments.length<3){var n=[];throw arguments.length<1&&n.push("type"),arguments.length<2&&n.push("name"),arguments.length<3&&n.push("definition"),new Error("missing parameters, no "+n.join(" or ")+" specified")}if("object"!==("undefined"==typeof r?"undefined":_typeof(r)))throw new TypeError("definition parameter must be an object");if(h(t))throw new Error('cannot clobber existing setting "'+t+'"');var a={type:e,name:t,label:null==r.label?"":String(r.label).trim()};switch(e){case m.Header:break;case m.Toggle:a.default=!!r.default;break;case m.List:if(!r.hasOwnProperty("list"))throw new Error("no list specified");if(!Array.isArray(r.list))throw new TypeError("list must be an array");if(0===r.list.length)throw new Error("list must not be empty");if(a.list=Object.freeze(r.list),null==r.default)a.default=r.list[0];else{var i=r.list.indexOf(r.default);if(i===-1)throw new Error("list does not contain default");a.default=r.list[i]}break;default:throw new Error("unknown Setting type: "+e)}"function"==typeof r.onInit&&(a.onInit=Object.freeze(r.onInit)),"function"==typeof r.onChange&&(a.onChange=Object.freeze(r.onChange)),g.push(Object.freeze(a))}function u(e,t){s(m.Header,e,{label:t})}function l(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];s.apply(undefined,[m.Toggle].concat(t))}function c(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];s.apply(undefined,[m.List].concat(t))}function d(){return 0===g.length}function h(e){return g.some(function(t){return t.name===e})}function p(e){return g.find(function(t){return t.name===e})}function f(e){h(e)&&delete settings[e];for(var t=0;t<g.length;++t)if(g[t].name===e){g.splice(t,1),f(e);break}}var g=[],m=Object.freeze({Header:0,Toggle:1,List:2});return Object.freeze(Object.defineProperties({},{Types:{value:m},init:{value:e},create:{value:t},save:{value:r},load:{value:n},clear:{value:a},reset:{value:i},forEach:{value:o},add:{value:s},addHeader:{value:u},addToggle:{value:l},addList:{value:c},isEmpty:{value:d},has:{value:h},get:{value:p},delete:{value:f}}))}(),State=function(){function e(){session.delete("state"),M=[],N=c(),L=-1,Q=[],I=null===I?null:new PRNGWrapper(I.seed,!1)}function t(){if(session.has("state")){var e=session.get("state");return null!=e&&(n(e),!0)}return!1}function r(e){var t={index:L};return e?t.history=clone(M):t.delta=A(M),Q.length>0&&(t.expired=[].concat(_toConsumableArray(Q))),null!==I&&(t.seed=I.seed),t}function n(e,t){if(null==e)throw new Error("state object is null or undefined");if(!e.hasOwnProperty(t?"history":"delta")||0===e[t?"history":"delta"].length)throw new Error("state object has no history or history is empty");if(!e.hasOwnProperty("index"))throw new Error("state object has no index");if(null!==I&&!e.hasOwnProperty("seed"))throw new Error("state object has no seed, but PRNG is enabled");if(null===I&&e.hasOwnProperty("seed"))throw new Error("state object has seed, but PRNG is disabled");M=t?clone(e.history):_(e.delta),L=e.index,Q=e.hasOwnProperty("expired")?[].concat(_toConsumableArray(e.expired)):[],e.hasOwnProperty("seed")&&(I.seed=e.seed),g(L)}function a(){return r(!0)}function i(e){return n(e,!0)}function o(){return Q}function s(){return Q.length+v()}function u(){return Q.concat(M.slice(0,v()).map(function(e){return e.title}))}function l(e){return null!=e&&""!==e&&(!!Q.includes(e)||!!M.slice(0,v()).some(function(t){return t.title===e}))}function c(e,t){return{title:null==e?"":String(e),variables:null==t?{}:clone(t)}}function d(){return N}function h(){return L}function p(){return N.title}function f(){return N.variables}function g(e){if(null==e)throw new Error("moment activation attempted with null or undefined");switch("undefined"==typeof e?"undefined":_typeof(e)){case"object":N=clone(e);break;case"number":if(b())throw new Error("moment activation attempted with index on empty history");if(e<0||e>=y())throw new RangeError("moment activation attempted with out-of-bounds index; need [0, "+(y()-1)+"], got "+e);N=clone(M[e]);break;default:throw new TypeError('moment activation attempted with a "'+("undefined"==typeof e?"undefined":_typeof(e))+'"; must be an object or valid history stack index')}return null!==I&&(I=PRNGWrapper.unmarshal({seed:I.seed,pull:N.pull})),session.set("state",r()),jQuery.event.trigger("tw:historyupdate"),N}function m(){return M}function v(){return L+1}function y(){return M.length}function b(){return 0===M.length}function w(){return M.length>0?M[L]:null}function k(){return M.length>0?M[M.length-1]:null}function S(){return M.length>0?M[0]:null}function x(e){return b()||e<0||e>L?null:M[e]}function E(e){if(b())return null;var t=1+(e?Math.abs(e):0);return t>v()?null:M[v()-t]}function j(e){if(b()||null==e||""===e)return!1;for(var t=L;t>=0;--t)if(M[t].title===e)return!0;return!1}function C(e){if(v()<y()&&M.splice(v(),y()-v()),M.push(c(e,N.variables)),I&&(k().pull=I.pull),Config.history.maxStates>0)for(;y()>Config.history.maxStates;)Q.push(M.shift().title);return L=y()-1,g(L),v()}function T(e){return!(null==e||e<0||e>=y()||e===L)&&(L=e,g(L),!0)}function O(e){return null!=e&&0!==e&&T(L+e)}function A(e){if(!Array.isArray(e))return null;if(0===e.length)return[];for(var t=[clone(e[0])],r=1,n=e.length;r<n;++r)t.push(Util.diff(e[r-1],e[r]));return t}function _(e){if(!Array.isArray(e))return null;if(0===e.length)return[];for(var t=[clone(e[0])],r=1,n=e.length;r<n;++r)t.push(Util.patch(t[r-1],e[r]));return t}function P(e,t){if(!b()){var r=void 0;throw r="a script-tagged passage",new Error("State.initPRNG must be called during initialization, within either "+r+" or the StoryInit special passage")}I=new PRNGWrapper(e,t),N.pull=I.pull}function D(){return I?I.random():Math.random()}var M=[],N=c(),L=-1,Q=[],I=null;return Object.freeze(Object.defineProperties({},{reset:{value:e -},restore:{value:t},marshalForSave:{value:a},unmarshalForSave:{value:i},expired:{get:o},turns:{get:s},passages:{get:u},hasPlayed:{value:l},active:{get:d},activeIndex:{get:h},passage:{get:p},variables:{get:f},history:{get:m},length:{get:v},size:{get:y},isEmpty:{value:b},current:{get:w},top:{get:k},bottom:{get:S},index:{value:x},peek:{value:E},has:{value:j},create:{value:C},goTo:{value:T},go:{value:O},deltaEncode:{value:A},deltaDecode:{value:_},initPRNG:{value:P},random:{value:D},restart:{value:function(){return Engine.restart()}},backward:{value:function(){return Engine.backward()}},forward:{value:function(){return Engine.forward()}},display:{value:function(){return Engine.display.apply(Engine,arguments)}},show:{value:function(){return Engine.show.apply(Engine,arguments)}},play:{value:function(){return Engine.play.apply(Engine,arguments)}}}))}(),Story=function(){function e(){if(Config.passages.start=function(){var e="START_AT";return""!==e?(Config.debug=!0,e):"Start"}(),jQuery("#store-area").children(':not([tags~="Twine.private"],[tags~="annotation"])').each(function(){var e=jQuery(this),t=new Passage(e.attr("tiddler"),this);t.tags.includes("stylesheet")?d.push(t):t.tags.includes("script")?h.push(t):t.tags.includes("widget")?p.push(t):c[t.title]=t}),!c.hasOwnProperty("StoryTitle"))throw new Error('cannot find the "StoryTitle" special passage');var e=document.createDocumentFragment();new Wikifier(e,c.StoryTitle.processText().trim()),r(e.textContent.trim()),Config.saves.id=Story.domId}function t(){for(var e=0;e<d.length;++e)addStyle(d[e].text);for(var t=0;t<h.length;++t)try{Scripting.evalJavaScript(h[t].text)}catch(e){Alert.error(h[t].title,"object"===("undefined"==typeof e?"undefined":_typeof(e))?e.message:e)}for(var r=0;r<p.length;++r)try{Wikifier.wikifyEval(p[r].processText())}catch(e){Alert.error(p[r].title,"object"===("undefined"==typeof e?"undefined":_typeof(e))?e.message:e)}}function r(e){if(null==e||""===e)throw new Error("story title cannot be null or empty");document.title=f=Util.unescape(e),m=Util.slugify(f)}function n(){return f}function a(){return m}function i(){return g}function o(e){var t="undefined"==typeof e?"undefined":_typeof(e);switch(t){case"number":case"string":var r=String(e);return c.hasOwnProperty(r);case"boolean":case"function":t="a "+t;break;case"undefined":break;default:t=null===e?"null":"an "+t}throw new TypeError("Story.has title parameter cannot be "+t)}function s(e){var t="undefined"==typeof e?"undefined":_typeof(e);switch(t){case"number":case"string":var r=String(e);return c.hasOwnProperty(r)?c[r]:new Passage(r||"(unknown)");case"boolean":case"function":t="a "+t;break;case"undefined":break;default:t=null===e?"null":"an "+t}throw new TypeError("Story.get title parameter cannot be "+t)}function u(e,t){for(var r=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"title",n=Object.keys(c),a=[],i=0;i<n.length;++i){var o=c[n[i]];if(o.hasOwnProperty(e))switch(_typeof(o[e])){case"undefined":break;case"object":for(var s=0,u=o[e].length;s<u;++s)if(o[e][s]==t){a.push(o);break}break;default:o[e]==t&&a.push(o)}}return a.sort(function(e,t){return e[r]==t[r]?0:e[r]<t[r]?-1:1}),a}function l(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"title";if("function"!=typeof e)throw new Error("Story.lookupWith filter parameter must be a function");for(var r=Object.keys(c),n=[],a=0;a<r.length;++a){var i=c[r[a]];e(i)&&n.push(i)}return n.sort(function(e,r){return e[t]==r[t]?0:e[t]<r[t]?-1:1}),n}var c={},d=[],h=[],p=[],f="",g="",m="";return Object.freeze(Object.defineProperties({},{passages:{value:c},styles:{value:d},scripts:{value:h},widgets:{value:p},load:{value:e},init:{value:t},title:{get:n},domId:{get:a},ifId:{get:i},has:{value:o},get:{value:s},lookup:{value:u},lookupWith:{value:l}}))}(),UI=function(){function e(){jQuery("#init-no-js,#init-lacking").remove(),w=new StyleWrapper(function(){return jQuery(document.createElement("style")).attr({id:"style-outline-patch",type:"text/css"}).appendTo(document.head).get(0)}()),function(){var e=jQuery(document.createDocumentFragment()),t=L10n.get("uiBarToggle"),r=L10n.get("uiBarBackward"),n=L10n.get("uiBarJumpto"),a=L10n.get("uiBarForward");e.append('<div id="ui-bar"><div id="ui-bar-tray">'+('<button id="ui-bar-toggle" tabindex="0" title="'+t+'" aria-label="'+t+'"></button>')+'<div id="ui-bar-history">'+('<button id="history-backward" tabindex="0" title="'+r+'" aria-label="'+r+'">î ¡</button>')+('<button id="history-jumpto" tabindex="0" title="'+n+'" aria-label="'+n+'">î ¹</button>')+('<button id="history-forward" tabindex="0" title="'+a+'" aria-label="'+a+'">î ¢</button>')+'</div></div><div id="ui-bar-body"><header id="title" role="banner"><div id="story-banner"></div><h1 id="story-title"></h1><div id="story-subtitle"></div><div id="story-title-separator"></div><p id="story-author"></p></header><div id="story-caption"></div><nav id="menu" role="navigation"><ul id="menu-story"></ul><ul id="menu-core">'+('<li id="menu-item-saves"><a tabindex="0">'+L10n.get("savesTitle")+"</a></li>")+('<li id="menu-item-settings"><a tabindex="0">'+L10n.get("settingsTitle")+"</a></li>")+('<li id="menu-item-restart"><a tabindex="0">'+L10n.get("restartTitle")+"</a></li>")+('<li id="menu-item-share"><a tabindex="0">'+L10n.get("shareTitle")+"</a></li>")+'</ul></nav></div></div><div id="story" role="main"><div id="passages"></div></div>').insertBefore("#store-area")}(),jQuery(document).on("tw:historyupdate",function(e,t){return function(){e.prop("disabled",State.length<2),t.prop("disabled",State.length===State.size)}}(jQuery("#history-backward"),jQuery("#history-forward"))).on("mousedown.outline-handler keydown.outline-handler",function(e){switch(e.type){case"mousedown":i();break;case"keydown":o()}})}function t(){var e=jQuery("#ui-bar");("boolean"==typeof Config.ui.stowBarInitially?Config.ui.stowBarInitially:jQuery(window).width()<=Config.ui.stowBarInitially)&&!function(){var t=jQuery(e).add("#story");t.addClass("no-transition"),e.addClass("stowed"),setTimeout(function(){return t.removeClass("no-transition")},Engine.minDomActionDelay)}(),jQuery("#ui-bar-toggle").ariaClick({label:L10n.get("uiBarToggle")},function(){return e.toggleClass("stowed")}),Config.history.controls?(jQuery("#history-backward").prop("disabled",State.length<2).ariaClick({label:L10n.get("uiBarBackward")},function(){return Engine.backward()}),Story.lookup("tags","bookmark").length>0?jQuery("#history-jumpto").ariaClick({label:L10n.get("uiBarJumpto")},function(){return UI.jumpto()}):jQuery("#history-jumpto").remove(),jQuery("#history-forward").prop("disabled",State.length===State.size).ariaClick({label:L10n.get("uiBarForward")},function(){return Engine.forward()})):jQuery("#ui-bar-history").remove(),setPageElement("story-title","StoryTitle",Story.title),Story.has("StoryCaption")||jQuery("#story-caption").remove(),Story.has("StoryMenu")||jQuery("#menu-story").remove(),Config.ui.updateStoryElements||a(),Dialog.addClickHandler("#menu-item-saves a",null,v).text(L10n.get("savesTitle")),Setting.isEmpty()?jQuery("#menu-item-settings").remove():Dialog.addClickHandler("#menu-item-settings a",null,y).text(L10n.get("settingsTitle")),Dialog.addClickHandler("#menu-item-restart a",null,m).text(L10n.get("restartTitle")),Story.has("StoryShare")?Dialog.addClickHandler("#menu-item-share a",null,b).text(L10n.get("shareTitle")):jQuery("#menu-item-share").remove(),jQuery(document.documentElement).focus()}function r(){jQuery("#ui-bar").addClass("stow")}function n(){jQuery("#ui-bar").removeClass("stow")}function a(){setPageElement("story-banner","StoryBanner"),setPageElement("story-subtitle","StorySubtitle"),setPageElement("story-author","StoryAuthor"),setPageElement("story-caption","StoryCaption");var e=document.getElementById("menu-story");null!==e&&(jQuery(e).empty(),Story.has("StoryMenu")&&s("StoryMenu",e))}function i(){w.set("*:focus{outline:none}")}function o(){w.clear()}function s(e,t){var r=t,n=Config.debug;Config.debug=!1;try{null==r&&(r=document.createElement("ul"));var a=document.createDocumentFragment();if(new Wikifier(a,Story.get(e).processText().trim()),a.hasChildNodes())for(var i=null;a.hasChildNodes();){var o=a.firstChild;o.nodeType!==Node.ELEMENT_NODE||"A"!==o.nodeName.toUpperCase()?(a.removeChild(o),null!==i&&(i=null)):(null===i&&(i=document.createElement("li"),r.appendChild(i)),i.appendChild(o))}}finally{Config.debug=n}return r}function u(e){jQuery(Dialog.setup("Alert","alert")).append("<p>"+e+'</p><ul class="buttons">'+('<li><button id="alert-ok" class="ui-close">'+L10n.get(["alertOk","ok"])+"</button></li>")+"</ul>");for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];Dialog.open.apply(Dialog,r)}function l(){g(),Dialog.open.apply(Dialog,arguments)}function c(){m(),Dialog.open.apply(Dialog,arguments)}function d(){v(),Dialog.open.apply(Dialog,arguments)}function h(){y(),Dialog.open.apply(Dialog,arguments)}function p(){b(),Dialog.open.apply(Dialog,arguments)}function f(){return jQuery(Dialog.setup(L10n.get("autoloadTitle"),"autoload")).append("<p>"+L10n.get("autoloadPrompt")+'</p><ul class="buttons">'+('<li><button id="autoload-ok" class="ui-close">'+L10n.get(["autoloadOk","ok"])+"</button></li>")+('<li><button id="autoload-cancel" class="ui-close">'+L10n.get(["autoloadCancel","cancel"])+"</button></li>")+"</ul>"),jQuery(document).one("click.autoload",".ui-close",function(e){var t="autoload-ok"===e.target.id;jQuery(document).one("tw:dialogclosed",function(){t&&Save.autosave.load()||Engine.play(Config.passages.start)})}),!0}function g(){var e=document.createElement("ul");jQuery(Dialog.setup(L10n.get("jumptoTitle"),"jumpto list")).append(e);for(var t=State.expired.length,r=State.size-1;r>=0;--r)if(r!==State.activeIndex){var n=Story.get(State.history[r].title);n&&n.tags.includes("bookmark")&&jQuery(document.createElement("li")).append(jQuery(document.createElement("a")).ariaClick({one:!0},function(e){return function(){return jQuery(document).one("tw:dialogclosed",function(){return Engine.goTo(e)})}}(r)).addClass("ui-close").text(L10n.get("jumptoTurn")+" "+(t+r+1)+": "+n.description())).appendTo(e)}e.hasChildNodes()||jQuery(e).append("<li><a><em>"+L10n.get("jumptoUnavailable")+"</em></a></li>")}function m(){return jQuery(Dialog.setup(L10n.get("restartTitle"),"restart")).append("<p>"+L10n.get("restartPrompt")+'</p><ul class="buttons">'+('<li><button id="restart-ok">'+L10n.get(["restartOk","ok"])+"</button></li>")+('<li><button id="restart-cancel" class="ui-close">'+L10n.get(["restartCancel","cancel"])+"</button></li>")+"</ul>").find("#restart-ok").ariaClick({one:!0},function(){jQuery(document).one("tw:dialogclosed",function(){return Engine.restart()}),Dialog.close()}),!0}function v(){function e(e,t,r,n){var a=jQuery(document.createElement("button")).attr("id","saves-"+e).html(r);return t&&a.addClass(t),n?a.ariaClick(n):a.prop("disabled",!0),jQuery(document.createElement("li")).append(a)}function t(){function e(e,t,r,n,a){var i=jQuery(document.createElement("button")).attr("id","saves-"+e+"-"+n).addClass(e).html(r);return t&&i.addClass(t),a?"auto"===n?i.ariaClick({label:r+" "+L10n.get("savesLabelAuto")},function(){return a()}):i.ariaClick({label:r+" "+L10n.get("savesLabelSlot")+" "+(n+1)},function(){return a(n)}):i.prop("disabled",!0),i}var t=Save.get(),r=jQuery(document.createElement("tbody"));if(Save.autosave.ok()){var n=jQuery(document.createElement("td")),a=jQuery(document.createElement("td")),i=jQuery(document.createElement("td")),o=jQuery(document.createElement("td"));jQuery(document.createElement("b")).attr({title:L10n.get("savesLabelAuto"),"aria-label":L10n.get("savesLabelAuto")}).text("A").appendTo(n),t.autosave?(a.append(e("load","ui-close",L10n.get("savesLabelLoad"),"auto",function(){jQuery(document).one("tw:dialogclosed",function(){return Save.autosave.load()})})),jQuery(document.createElement("div")).text(t.autosave.title).appendTo(i),jQuery(document.createElement("div")).addClass("datestamp").html(t.autosave.date?L10n.get("savesSavedOn")+" "+new Date(t.autosave.date).toLocaleString():L10n.get("savesSavedOn")+" <em>"+L10n.get("savesUnknownDate")+"</em>").appendTo(i),o.append(e("delete",null,L10n.get("savesLabelDelete"),"auto",function(){Save.autosave.delete(),v(),Dialog.resize()}))):(a.append(e("load",null,L10n.get("savesLabelLoad"),"auto")),jQuery(document.createElement("em")).text(L10n.get("savesEmptySlot")).appendTo(i),i.addClass("empty"),o.append(e("delete",null,L10n.get("savesLabelDelete"),"auto"))),jQuery(document.createElement("tr")).append(n).append(a).append(i).append(o).appendTo(r)}for(var s=0,u=t.slots.length;s<u;++s){var l=jQuery(document.createElement("td")),c=jQuery(document.createElement("td")),d=jQuery(document.createElement("td")),h=jQuery(document.createElement("td"));l.append(document.createTextNode(s+1)),t.slots[s]?(c.append(e("load","ui-close",L10n.get("savesLabelLoad"),s,function(e){jQuery(document).one("tw:dialogclosed",function(){return Save.slots.load(e)})})),jQuery(document.createElement("div")).text(t.slots[s].title).appendTo(d),jQuery(document.createElement("div")).addClass("datestamp").html(t.slots[s].date?L10n.get("savesSavedOn")+" "+new Date(t.slots[s].date).toLocaleString():L10n.get("savesSavedOn")+" <em>"+L10n.get("savesUnknownDate")+"</em>").appendTo(d),h.append(e("delete",null,L10n.get("savesLabelDelete"),s,function(e){Save.slots.delete(e),v(),Dialog.resize()}))):(c.append(e("save","ui-close",L10n.get("savesLabelSave"),s,Save.slots.save)),jQuery(document.createElement("em")).text(L10n.get("savesEmptySlot")).appendTo(d),d.addClass("empty"),h.append(e("delete",null,L10n.get("savesLabelDelete"),s))),jQuery(document.createElement("tr")).append(l).append(c).append(d).append(h).appendTo(r)}return jQuery(document.createElement("table")).attr("id","saves-list").append(r)}var r=jQuery(Dialog.setup(L10n.get("savesTitle"),"saves")),n=Save.ok();if(n&&r.append(t()),n||Has.fileAPI){var a=jQuery(document.createElement("ul")).addClass("buttons").appendTo(r);return Has.fileAPI&&(a.append(e("export","ui-close",L10n.get("savesLabelExport"),function(){return Save.export()})),a.append(e("import",null,L10n.get("savesLabelImport"),function(){return r.find("#saves-import-file").trigger("click")})),jQuery(document.createElement("input")).css({display:"block",visibility:"hidden",position:"fixed",left:"-9999px",top:"-9999px",width:"1px",height:"1px"}).attr({type:"file",id:"saves-import-file",tabindex:-1,"aria-hidden":!0}).on("change",function(e){jQuery(document).one("tw:dialogclosed",function(){return Save.import(e)}),Dialog.close()}).appendTo(r)),n&&a.append(e("clear",null,L10n.get("savesLabelClear"),Save.autosave.has()||!Save.slots.isEmpty()?function(){Save.clear(),v(),Dialog.resize()}:null)),!0}return u(L10n.get("savesIncapable")),!1}function y(){var e=jQuery(Dialog.setup(L10n.get("settingsTitle"),"settings"));return Setting.forEach(function(t){if(t.type===Setting.Types.Header){var r=t.name,n=Util.slugify(r),a=jQuery(document.createElement("div")),i=jQuery(document.createElement("h2")),o=jQuery(document.createElement("p"));return a.attr("id","header-body-"+n).append(i).append(o).appendTo(e),i.attr("id","header-heading-"+n).wiki(r),void o.attr("id","header-label-"+n).wiki(t.label)}var s=t.name,u=Util.slugify(s),l=jQuery(document.createElement("div")),c=jQuery(document.createElement("label")),d=jQuery(document.createElement("div")),h=void 0;switch(l.attr("id","setting-body-"+u).append(c).append(d).appendTo(e),c.attr({id:"setting-label-"+u,for:"setting-control-"+u}).wiki(t.label),null==settings[s]&&(settings[s]=t.default),t.type){case Setting.Types.Toggle:h=jQuery(document.createElement("button")),settings[s]?h.addClass("enabled").text(L10n.get("settingsOn")):h.text(L10n.get("settingsOff")),h.ariaClick(function(){settings[s]?(jQuery(this).removeClass("enabled").text(L10n.get("settingsOff")),settings[s]=!1):(jQuery(this).addClass("enabled").text(L10n.get("settingsOn")),settings[s]=!0),Setting.save(),t.hasOwnProperty("onChange")&&t.onChange.call({name:s,value:settings[s],default:t.default})});break;case Setting.Types.List:h=jQuery(document.createElement("select"));for(var p=0,f=t.list.length;p<f;++p)jQuery(document.createElement("option")).val(p).text(t.list[p]).appendTo(h);h.val(t.list.indexOf(settings[s])).attr("tabindex",0).on("change",function(){settings[s]=t.list[Number(this.value)],Setting.save(),t.hasOwnProperty("onChange")&&t.onChange.call({name:s,value:settings[s],default:t.default,list:t.list})})}h.attr("id","setting-control-"+u).appendTo(d)}),e.append('<ul class="buttons">'+('<li><button id="settings-ok" class="ui-close">'+L10n.get(["settingsOk","ok"])+"</button></li>")+('<li><button id="settings-reset">'+L10n.get("settingsReset")+"</button></li>")+"</ul>").find("#settings-reset").ariaClick({one:!0},function(){jQuery(document).one("tw:dialogclosed",function(){Setting.reset(),window.location.reload()}),Dialog.close()}),!0}function b(){return jQuery(Dialog.setup(L10n.get("shareTitle"),"share list")).append(s("StoryShare")),!0}var w=null;return Object.freeze(Object.defineProperties({},{init:{value:e},start:{value:t},stow:{value:r},unstow:{value:n},setStoryElements:{value:a},hideOutlines:{value:i},showOutlines:{value:o},assembleLinkList:{value:s},alert:{value:u},jumpto:{value:l},restart:{value:c},saves:{value:d},settings:{value:h},share:{value:p},buildAutoload:{value:f},buildJumpto:{value:g},buildRestart:{value:m},buildSaves:{value:v},buildSettings:{value:y},buildShare:{value:b},isOpen:{value:function(){return Dialog.isOpen.apply(Dialog,arguments)}},body:{value:function(){return Dialog.body()}},setup:{value:function(){return Dialog.setup.apply(Dialog,arguments)}},addClickHandler:{value:function(){return Dialog.addClickHandler.apply(Dialog,arguments)}},open:{value:function(){return Dialog.open.apply(Dialog,arguments)}},close:{value:function(){return Dialog.close.apply(Dialog,arguments)}},resize:{value:function(){return Dialog.resize()}},buildDialogAutoload:{value:f},buildDialogJumpto:{value:g},buildDialogRestart:{value:m},buildDialogSaves:{value:v},buildDialogSettings:{value:y},buildDialogShare:{value:b},buildLinkListFromPassage:{value:s}}))}(),LoadScreen=function(){function e(){jQuery(document.documentElement).removeClass("init-loading")}function t(){jQuery(document.documentElement).addClass("init-loading")}function r(){a=!0,t()}function n(){a=!1,jQuery(document).trigger("readystatechange")}var a=!1;return jQuery(document).on("readystatechange.SugarCube",function(){if(!a){var e=jQuery(document.documentElement);"complete"===document.readyState?e.hasClass("init-loading")&&(Config.loadDelay>0?setTimeout(function(){return e.removeClass("init-loading")},Math.max(Engine.minDomActionDelay,Config.loadDelay)):e.removeClass("init-loading")):e.addClass("init-loading")}}),Object.freeze(Object.defineProperties({},{hide:{value:e},show:{value:t},lock:{value:r},unlock:{value:n}}))}(),version=Object.freeze({title:"SugarCube",major:2,minor:12,patch:2,prerelease:null,build:7665,date:new Date("2017-02-06T17:09:51.598Z"),extensions:{},toString:function(){var e=this.prerelease?"-"+this.prerelease:"";return this.major+"."+this.minor+"."+this.patch+e+"+"+this.build},short:function(){var e=this.prerelease?"-"+this.prerelease:"";return this.title+" (v"+this.major+"."+this.minor+"."+this.patch+e+")"},long:function(){return this.title+" v"+this.toString()+" ("+this.date.toUTCString()+")"}}),TempState={},TempVariables={},macros={},postdisplay={},postrender={},predisplay={},prehistory={},prerender={},session=null,settings={},setup={},storage=null,browser=Browser,config=Config,has=Has,History=State,state=State,tale=Story;window.SugarCube={},jQuery(function(){try{document.normalize&&document.normalize(),Story.load(),storage=new KeyValueStore("webStorage",!0,Story.domId),session=new KeyValueStore("webStorage",!1,Story.domId),Dialog.init(),UI.init(),Story.init(),L10n.init(),session.has("rcWarn")||"cookie"!==storage.name||(session.set("rcWarn",1),window.alert(L10n.get("warningNoWebStorage"))),Save.init(),Setting.init(),Macro.init(),Engine.start(),UI.start(),window.SugarCube={Browser:Browser,Config:Config,Dialog:Dialog,DebugView:DebugView,Engine:Engine,Has:Has,L10n:L10n,Macro:Macro,Passage:Passage,Save:Save,Scripting:Scripting,Setting:Setting,SimpleAudio:SimpleAudio,State:State,Story:Story,TempVariables:TempVariables,UI:UI,Util:Util,Wikifier:Wikifier,macros:macros,session:session,settings:settings,setup:setup,storage:storage,version:version}}catch(e){return jQuery(document).off("readystatechange.SugarCube"),Alert.fatal(null,e.message,e)}})}(window,window.document,jQuery);} + if(document.documentElement.classList.contains("init-loading")){!function(window,document,jQuery,undefined){"use strict";function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _toConsumableArray(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t<e.length;t++)r[t]=e[t];return r}return Array.from(e)}function safeActiveElement(){try{return document.activeElement||null}catch(e){return null}}var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}}(),_slicedToArray=function(){function e(e,t){var r=[],n=!0,a=!1,i=undefined;try{for(var o,s=e[Symbol.iterator]();!(n=(o=s.next()).done)&&(r.push(o.value),!t||r.length!==t);n=!0);}catch(e){a=!0,i=e}finally{try{!n&&s.return&&s.return()}finally{if(a)throw i}}return r}return function(t,r){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,r);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Alert=function(){function e(e,t,r,n){var a="fatal"===e,i="Apologies! "+(a?"A fatal":"An")+" error has occurred.";i+=a?" Aborting.":" You may be able to continue, but some parts may not work properly.",null==t&&null==r||(i+="\n\nError",null!=t&&(i+=" ["+t+"]"),i+=null!=r?": "+r.replace(/^(?:(?:uncaught\s+(?:exception:\s+)?)?error:\s+)+/i,"")+".":": unknown error."),n&&n.stack&&(i+="\n\nStack Trace:\n"+n.stack),window.alert(i)}function t(t,r,n){e(null,t,r,n)}function r(t,r,n){e("fatal",t,r,n)}return function(e){window.onerror=function(n,a,i,o,s){"complete"===document.readyState?t(null,n,s):(r(null,n,s),window.onerror=e,"function"==typeof window.onerror&&window.onerror.apply(this,arguments))}}(window.onerror),Object.freeze(Object.defineProperties({},{error:{value:t},fatal:{value:r}}))}();!function(){function e(e,t){var a=String(e);switch(t){case"start":return a&&r.test(a)?a.replace(r,""):a;case"end":return a&&n.test(a)?a.replace(n,""):a;default:throw new Error('_trimFrom called with incorrect where parameter value: "'+t+'"')}}function t(e,t){var r=Number.parseInt(e,10)||0;if(r<1)return"";var n="undefined"==typeof t?"":String(t);for(""===n&&(n=" ");n.length<r;){var a=n.length,i=r-a;n+=a>i?n.slice(0,i):n}return n.length>r&&(n=n.slice(0,r)),n}var r=/^[\s\u00A0\uFEFF][\s\u00A0\uFEFF]*/,n=/[\s\u00A0\uFEFF][\s\u00A0\uFEFF]*$/;Array.prototype.includes||Object.defineProperty(Array.prototype,"includes",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.includes called on null or undefined");if(0===arguments.length)return!1;var e=this.length>>>0;if(0===e)return!1;var t=arguments[0],r=Number(arguments[1])||0;for(r<0&&(r=Math.max(0,e+r));r<e;++r){var n=this[r];if(t===n||t!==t&&n!==n)return!0}return!1}}),String.prototype.padStart||Object.defineProperty(String.prototype,"padStart",{configurable:!0,writable:!0,value:function(e,r){if(null==this)throw new TypeError("String.prototype.padStart called on null or undefined");var n=String(this),a=n.length,i=Number.parseInt(e,10);return i<=a?n:t(i-a,r)+n}}),String.prototype.padEnd||Object.defineProperty(String.prototype,"padEnd",{configurable:!0,writable:!0,value:function(e,r){if(null==this)throw new TypeError("String.prototype.padEnd called on null or undefined");var n=String(this),a=n.length,i=Number.parseInt(e,10);return i<=a?n:n+t(i-a,r)}}),String.prototype.trimStart||Object.defineProperty(String.prototype,"trimStart",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.trimStart called on null or undefined");return e(this,"start")}}),String.prototype.trimLeft||Object.defineProperty(String.prototype,"trimLeft",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.trimLeft called on null or undefined");return e(this,"start")}}),String.prototype.trimEnd||Object.defineProperty(String.prototype,"trimEnd",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.trimEnd called on null or undefined");return e(this,"end")}}),String.prototype.trimRight||Object.defineProperty(String.prototype,"trimRight",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.trimRight called on null or undefined");return e(this,"end")}})}(),function(){function _random(){if(0===arguments.length)throw new Error("_random called with insufficient parameters");var e=void 0,t=void 0;if(1===arguments.length?(e=0,t=arguments[0]):(e=arguments[0],t=arguments[1]),e>t){var r=[t,e];e=r[0],t=r[1]}return Math.floor(_nativeMathRandom()*(t-e+1))+e}function _getCodePointStartAndEnd(e,t){var r=e.charCodeAt(t);if(Number.isNaN(r))return{char:"",start:-1,end:-1};if(r<55296||r>57343)return{char:e.charAt(t),start:t,end:t};if(r>=55296&&r<=56319){var n=t+1;if(n>=e.length)throw new Error("high surrogate without trailing low surrogate");var a=e.charCodeAt(n);if(a<56320||a>57343)throw new Error("high surrogate without trailing low surrogate");return{char:e.charAt(t)+e.charAt(n),start:t,end:n}}if(0===t)throw new Error("low surrogate without leading high surrogate");var i=t-1,o=e.charCodeAt(i);if(o<55296||o>56319)throw new Error("low surrogate without leading high surrogate");return{char:e.charAt(i)+e.charAt(t),start:i,end:t}}var _nativeMathRandom=Math.random;Object.defineProperty(Array,"random",{configurable:!0,writable:!0,value:function(e,t,r){var n=t,a=r;return 2===arguments.length&&(a=n,n=0),Array.isArray(e)?e.random(n,a):e.hasOwnProperty("length")?[].concat(_toConsumableArray(e)).random(n,a):void 0}}),Object.defineProperty(Array.prototype,"count",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.count called on null or undefined");for(var e=Array.prototype.indexOf,t=arguments[0],r=Number(arguments[1])||0,n=0;(r=e.call(this,t,r))!==-1;)++n,++r;return n}}),Object.defineProperty(Array.prototype,"delete",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.delete called on null or undefined");if(0===arguments.length)return[];var e=this.length>>>0;if(0===e)return[];for(var t=Array.prototype.indexOf,r=Array.prototype.push,n=Array.prototype.splice,a=Array.prototype.concat.apply([],arguments),i=[],o=0,s=a.length;o<s;++o)for(var u=a[o],l=0;(l=t.call(this,u,l))!==-1;)r.apply(i,n.call(this,l,1));return i}}),Object.defineProperty(Array.prototype,"deleteAt",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.deleteAt called on null or undefined");if(0===arguments.length)return[];var e=this.length>>>0;if(0===e)return[];for(var t=Array.prototype.splice,r=[].concat(_toConsumableArray(new Set(Array.prototype.concat.apply([],arguments).map(function(t){return t<0?Math.max(0,e+t):t})).values())),n=[].concat(_toConsumableArray(r)).sort(function(e,t){return t-e}),a=[],i=0,o=r.length;i<o;++i)a[i]=this[r[i]];for(var s=0,u=n.length;s<u;++s)t.call(this,n[s],1);return a}}),Object.defineProperty(Array.prototype,"flatten",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.flatten called on null or undefined");return Array.prototype.reduce.call(this,function(e,t){return e.concat(Array.isArray(t)?t.flatten():t)},[])}}),Object.defineProperty(Array.prototype,"includesAll",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.includesAll called on null or undefined");if(1===arguments.length)return Array.isArray(arguments[0])?Array.prototype.includesAll.apply(this,arguments[0]):Array.prototype.includes.apply(this,arguments);for(var e=0,t=arguments.length;e<t;++e)if(!Array.prototype.some.call(this,function(e){return e===this.val||e!==e&&this.val!==this.val},{val:arguments[e]}))return!1;return!0}}),Object.defineProperty(Array.prototype,"includesAny",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.includesAny called on null or undefined");if(1===arguments.length)return Array.isArray(arguments[0])?Array.prototype.includesAny.apply(this,arguments[0]):Array.prototype.includes.apply(this,arguments);for(var e=0,t=arguments.length;e<t;++e)if(Array.prototype.some.call(this,function(e){return e===this.val||e!==e&&this.val!==this.val},{val:arguments[e]}))return!0;return!1}}),Object.defineProperty(Array.prototype,"pluck",{configurable:!0,writable:!0,value:function(e,t){if(null==this)throw new TypeError("Array.prototype.pluck called on null or undefined");var r=this.length>>>0;if(0!==r){var n=e,a=t;return 1===arguments.length&&(a=n,n=0),null==n?n=0:n<0?(n=r+n,n<0&&(n=0)):n>=r&&(n=r-1),null==a?a=r-1:a<0?(a=r+a,a<0&&(a=r-1)):a>=r&&(a=r-1),Array.prototype.splice.call(this,_random(n,a),1)[0]}}}),Object.defineProperty(Array.prototype,"random",{configurable:!0,writable:!0,value:function(e,t){if(null==this)throw new TypeError("Array.prototype.random called on null or undefined");var r=this.length>>>0;if(0!==r){var n=e,a=t;return 1===arguments.length&&(a=n,n=0),null==n?n=0:n<0?(n=r+n,n<0&&(n=0)):n>=r&&(n=r-1),null==a?a=r-1:a<0?(a=r+a,a<0&&(a=r-1)):a>=r&&(a=r-1),this[_random(n,a)]}}}),Object.defineProperty(Array.prototype,"shuffle",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.shuffle called on null or undefined");var e=this.length>>>0;if(0!==e){for(var t=e-1;t>0;--t){var r=Math.floor(_nativeMathRandom()*(t+1)),n=[this[r],this[t]];this[t]=n[0],this[r]=n[1]}return this}}}),Object.defineProperty(Function.prototype,"partial",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Function.prototype.partial called on null or undefined");var e=Array.prototype.slice,t=this,r=e.call(arguments,0);return function(){for(var n=[],a=0,i=0;i<r.length;++i)n.push(r[i]===undefined?arguments[a++]:r[i]);return t.apply(this,n.concat(e.call(arguments,a)))}}}),Object.defineProperty(Math,"clamp",{configurable:!0,writable:!0,value:function e(t,r,n){var e=Number(t);return Number.isNaN(e)?NaN:e.clamp(r,n)}}),Object.defineProperty(Math,"easeInOut",{configurable:!0,writable:!0,value:function(e){return 1-(Math.cos(Number(e)*Math.PI)+1)/2}}),Object.defineProperty(Number.prototype,"clamp",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Number.prototype.clamp called on null or undefined");if(2!==arguments.length)throw new Error("Number.prototype.clamp called with an incorrect number of parameters");var e=Number(arguments[0]),t=Number(arguments[1]);if(e>t){var r=[t,e];e=r[0],t=r[1]}return Math.min(Math.max(this,e),t)}}),RegExp.escape||!function(){var e=/[\\^$*+?.()|[\]{}]/g,t=new RegExp(e.source);Object.defineProperty(RegExp,"escape",{configurable:!0,writable:!0,value:function(r){var n=String(r);return n&&t.test(n)?n.replace(e,"\\$&"):n}})}(),function(){var e=/{(\d+)(?:,([+-]?\d+))?}/g,t=new RegExp(e.source);Object.defineProperty(String,"format",{configurable:!0,writable:!0,value:function(r){function n(e,t,r){if(!t)return e;var n=Math.abs(t)-e.length;if(n<1)return e;var a=String(r).repeat(n);return t<0?e+a:a+e}if(arguments.length<2)return 0===arguments.length?"":r;var a=2===arguments.length&&Array.isArray(arguments[1])?[].concat(_toConsumableArray(arguments[1])):Array.prototype.slice.call(arguments,1);return 0===a.length?r:t.test(r)?(e.lastIndex=0,r.replace(e,function(e,t,r){var i=a[t];if(null==i)return"";for(;"function"==typeof i;)i=i();switch("undefined"==typeof i?"undefined":_typeof(i)){case"string":break;case"object":i=JSON.stringify(i);break;default:i=String(i)}return n(i,r?Number.parseInt(r,10):0," ")})):r}})}(),Object.defineProperty(String.prototype,"contains",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.contains called on null or undefined");return String.prototype.indexOf.apply(this,arguments)!==-1}}),Object.defineProperty(String.prototype,"count",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.count called on null or undefined");var e=String(arguments[0]||"");if(""===e)return 0;for(var t=String.prototype.indexOf,r=e.length,n=Number(arguments[1])||0,a=0;(n=t.call(this,e,n))!==-1;)++a,n+=r;return a}}),Object.defineProperty(String.prototype,"splice",{configurable:!0,writable:!0,value:function(e,t,r){if(null==this)throw new TypeError("String.prototype.splice called on null or undefined");var n=this.length>>>0;if(0===n)return"";var a=Number(e);Number.isSafeInteger(a)?a<0&&(a+=n,a<0&&(a=0)):a=0,a>n&&(a=n);var i=Number(t);(!Number.isSafeInteger(i)||i<0)&&(i=0);var o=this.slice(0,a);return"undefined"!=typeof r&&(o+=r),a+i<n&&(o+=this.slice(a+i)),o}}),Object.defineProperty(String.prototype,"splitOrEmpty",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.splitOrEmpty called on null or undefined");return""===String(this)?[]:String.prototype.split.apply(this,arguments)}}),Object.defineProperty(String.prototype,"toLocaleUpperFirst",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.toLocaleUpperFirst called on null or undefined");var e=String(this),t=_getCodePointStartAndEnd(e,0),r=t.char,n=t.end;return n===-1?"":r.toLocaleUpperCase()+e.slice(n+1)}}),Object.defineProperty(String.prototype,"toUpperFirst",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.toUpperFirst called on null or undefined");var e=String(this),t=_getCodePointStartAndEnd(e,0),r=t.char,n=t.end;return n===-1?"":r.toUpperCase()+e.slice(n+1)}}),Object.defineProperty(Date.prototype,"toJSON",{configurable:!0,writable:!0,value:function(){return["(revive:date)",this.toISOString()]}}),Object.defineProperty(Function.prototype,"toJSON",{configurable:!0,writable:!0,value:function(){return["(revive:eval)","("+this.toString()+")"]}}),Object.defineProperty(Map.prototype,"toJSON",{configurable:!0,writable:!0,value:function(){return["(revive:map)",[].concat(_toConsumableArray(this))]}}),Object.defineProperty(RegExp.prototype,"toJSON",{configurable:!0,writable:!0,value:function(){return["(revive:eval)",this.toString()]}}),Object.defineProperty(Set.prototype,"toJSON",{configurable:!0,writable:!0,value:function(){return["(revive:set)",[].concat(_toConsumableArray(this))]}}),Object.defineProperty(JSON,"reviveWrapper",{configurable:!0,writable:!0,value:function(e,t){if("string"!=typeof e)throw new TypeError("JSON.reviveWrapper code parameter must be a string");return["(revive:eval)",[e,t]]}}),Object.defineProperty(JSON,"_real_parse",{value:JSON.parse}),Object.defineProperty(JSON,"parse",{configurable:!0,writable:!0,value:function value(text,reviver){return JSON._real_parse(text,function(key,val){var value=val;if(Array.isArray(value)&&2===value.length)switch(value[0]){case"(revive:set)":value=new Set(value[1]);break;case"(revive:map)":value=new Map(value[1]);break;case"(revive:date)":value=new Date(value[1]);break;case"(revive:eval)":try{if(Array.isArray(value[1])){var $ReviveData$=value[1][1];value=eval(value[1][0])}else value=eval(value[1])}catch(e){}}else if("string"==typeof value&&"@@revive@@"===value.slice(0,10))try{value=eval(value.slice(10))}catch(e){}if("function"==typeof reviver)try{value=reviver(key,value)}catch(e){}return value})}}),Object.defineProperty(Array.prototype,"contains",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.contains called on null or undefined");return Array.prototype.includes.apply(this,arguments)}}),Object.defineProperty(Array.prototype,"containsAll",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.containsAll called on null or undefined");return Array.prototype.includesAll.apply(this,arguments)}}),Object.defineProperty(Array.prototype,"containsAny",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.containsAny called on null or undefined");return Array.prototype.includesAny.apply(this,arguments)}}),Object.defineProperty(String.prototype,"readBracketedList",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.readBracketedList called on null or undefined");for(var e=new RegExp("(?:\\[\\[((?:\\s|\\S)*?)\\]\\])|([^\"'\\s]\\S*)","gm"),t=[],r=void 0;null!==(r=e.exec(this));)r[1]?t.push(r[1]):r[2]&&t.push(r[2]);return t}})}(),function(){function e(e){13!==e.which&&32!==e.which||(e.preventDefault(),jQuery(safeActiveElement()||this).trigger("click"))}function t(e){return function(){var t=jQuery(this);t.is("[aria-pressed]")&&t.attr("aria-pressed","true"===t.attr("aria-pressed")?"false":"true"),e.apply(this,arguments)}}function r(e){return t(function(){jQuery(this).off(".aria-clickable").removeAttr("tabindex aria-controls aria-pressed").not("a,button").removeAttr("role").end().filter("button").prop("disabled",!0),e.apply(this,arguments)})}jQuery.fn.extend({ariaClick:function(n,a){if(0===this.length||0===arguments.length)return this;var i=n,o=a;return null==o&&(o=i,i=undefined),i=jQuery.extend({namespace:undefined,one:!1,selector:undefined,data:undefined,controls:undefined,pressed:undefined,label:undefined},i),"string"!=typeof i.namespace?i.namespace="":"."!==i.namespace[0]&&(i.namespace="."+i.namespace),"boolean"==typeof i.pressed&&(i.pressed=i.pressed?"true":"false"),this.filter("button").prop("type","button"),this.not("a,button").attr("role","button"),this.attr("tabindex",0),null!=i.controls&&this.attr("aria-controls",i.controls),null!=i.pressed&&this.attr("aria-pressed",i.pressed),null!=i.label&&this.attr({"aria-label":i.label,title:i.label}),this.not("button").on("keypress.aria-clickable"+i.namespace,i.selector,e),this.on("click.aria-clickable"+i.namespace,i.selector,i.data,i.one?r(o):t(o)),this}})}(),function(){jQuery.fn.extend({wikiWithOptions:function(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];if(0===this.length||0===r.length)return this;var a=document.createDocumentFragment();return r.forEach(function(t){return new Wikifier(a,t,e)}),this.append(a),this},wiki:function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return this.wikiWithOptions.apply(this,[undefined].concat(t))}})}();var Browser=function(){var e={userAgent:navigator.userAgent.toLowerCase()};return e.isGecko=navigator&&"Gecko"===navigator.product&&!/webkit|trident/.test(e.userAgent),e.isIE=/msie|trident/.test(e.userAgent)&&!e.userAgent.includes("opera"),e.ieVersion=function(){var t=/(?:msie\s+|rv:)(\d{1,2}\.\d)/.exec(e.userAgent);return t?Number([1]):0}(),e.isOpera=e.userAgent.includes("opera")||e.userAgent.includes(" opr/"),e.operaVersion=function(){var t=new RegExp((/applewebkit|chrome/.test(e.userAgent)?"opr":"version")+"\\/(\\d{1,2}\\.\\d+)"),r=t.exec(e.userAgent);return r?Number(r[1]):0}(),e.isMobile=Object.freeze({Android:/android/.test(e.userAgent),BlackBerry:/blackberry/.test(e.userAgent),iOS:/ip(?:hone|ad|od)/.test(e.userAgent),Windows:/iemobile/.test(e.userAgent),any:function(){var t=e.isMobile;return t.Android||t.BlackBerry||t.iOS||t.Windows}}),Object.freeze(e)}(),Has=function(){function e(e){try{if(null!=e&&e.length>=0){var t="SugarCube.WebStorage.Test",r="1701 Guilty Scott";if(e.setItem(t,r),e.getItem(t)===r)return e.removeItem(t),!0}}catch(e){}return!1}return Object.freeze({audio:"function"==typeof document.createElement("audio").canPlayType,fileAPI:"File"in window&&"FileList"in window&&"FileReader"in window&&!Browser.isMobile.any()&&(!Browser.isOpera||Browser.operaVersion>=15),geolocation:"geolocation"in navigator&&"function"==typeof navigator.geolocation.getCurrentPosition&&"function"==typeof navigator.geolocation.watchPosition,localStorage:"localStorage"in window&&e(window.localStorage),sessionStorage:"sessionStorage"in window&&e(window.sessionStorage)})}(),_ref4=function(){function e(e){var t=document.getElementById("style-story");null===t&&(t=document.createElement("style"),t.id="style-story",t.type="text/css",document.head.appendChild(t)),t=new StyleWrapper(t),t.add(e)}function t(e){if("object"!==("undefined"==typeof e?"undefined":_typeof(e))||null==e)return e;if("function"==typeof e.clone)return e.clone(!0);if(e.nodeType&&"function"==typeof e.cloneNode)return e.cloneNode(!0);var r=void 0;return Array.isArray(e)?r=[]:e instanceof Date?r=new Date(e.getTime()):e instanceof Map?(r=new Map,e.forEach(function(e,n){r.set(n,t(e))})):e instanceof RegExp?r=new RegExp(e):e instanceof Set?(r=new Set,e.forEach(function(e){r.add(t(e))})):r=Object.create(Object.getPrototypeOf(e)),Object.keys(e).forEach(function(n){return r[n]=t(e[n])}),r}function r(e){for(var t=document.createDocumentFragment(),r=document.createElement("p"),n=void 0;null!==(n=e.firstChild);){if(n.nodeType===Node.ELEMENT_NODE){var a=n.nodeName.toUpperCase();switch(a){case"BR":if(null!==n.nextSibling&&n.nextSibling.nodeType===Node.ELEMENT_NODE&&"BR"===n.nextSibling.nodeName.toUpperCase()){e.removeChild(n.nextSibling),e.removeChild(n),t.appendChild(r),r=document.createElement("p");continue}if(!r.hasChildNodes()){e.removeChild(n);continue}break;case"ADDRESS":case"ARTICLE":case"ASIDE":case"BLOCKQUOTE":case"CENTER":case"DIV":case"DL":case"FIGURE":case"FOOTER":case"FORM":case"H1":case"H2":case"H3":case"H4":case"H5":case"H6":case"HEADER":case"HR":case"MAIN":case"NAV":case"OL":case"P":case"PRE":case"SECTION":case"TABLE":case"UL":r.hasChildNodes()&&(t.appendChild(r),r=document.createElement("p")),t.appendChild(n);continue}}r.appendChild(n)}r.hasChildNodes()&&t.appendChild(r),e.appendChild(t)}function n(e,t,r){var n="object"===("undefined"==typeof e?"undefined":_typeof(e))?e:document.getElementById(e);if(null==n)return null;var a=Array.isArray(t)?t:[t];jQuery(n).empty();for(var i=0,o=a.length;i<o;++i)if(Story.has(a[i]))return new Wikifier(n,Story.get(a[i]).processText().trim()),n;if(null!=r){var s=String(r).trim();""!==s&&new Wikifier(n,s)}return n}function a(e,t,r){return jQuery(document.createElement("span")).addClass("error").attr("title",r).text(L10n.get("errorTitle")+": "+(t||"unknown error")).appendTo(e),!1}function i(e,t){switch("undefined"==typeof e?"undefined":_typeof(e)){case"number":if(Number.isNaN(e))return t;break;case"object":if(null===e)return t;if(Array.isArray(e)||e instanceof Set)return[].concat(_toConsumableArray(e)).map(function(e){return i(e,t)}).join(", ");if(e instanceof Map){var r=function(){var r=i,n=[].concat(_toConsumableArray(e)).map(function(e){return r(e[0],t)+" ⇒ "+r(e[1],t)}).join("; ");return{v:"( "+n+" )"}}();if("object"===("undefined"==typeof r?"undefined":_typeof(r)))return r.v}else{if(e instanceof Date)return e.toLocaleString();if("function"==typeof e.toString)return e.toString()}return Object.prototype.toString.call(e);case"function":case"undefined":return t}return String(e)}return Object.freeze(Object.defineProperties({},{addStyle:{value:e},clone:{value:t},convertBreaks:{value:r},setPageElement:{value:n},throwError:{value:a},toStringOrDefault:{value:i}}))}(),addStyle=_ref4.addStyle,clone=_ref4.clone,convertBreaks=_ref4.convertBreaks,setPageElement=_ref4.setPageElement,throwError=_ref4.throwError,toStringOrDefault=_ref4.toStringOrDefault,Util=function(){function e(e){var t=void 0;switch("undefined"==typeof e?"undefined":_typeof(e)){case"number":t=e;break;case"string":t=Number(e);break;default:return!1}return!Number.isNaN(t)&&Number.isFinite(t)}function t(e){return"boolean"==typeof e||"string"==typeof e&&("true"===e||"false"===e)}function r(e){return String(e).trim().replace(/[^\w\s\u2013\u2014-]+/g,"").replace(/[_\s\u2013\u2014-]+/g,"-").toLocaleLowerCase()}function n(e){if(null==e)return"";var t=String(e);return t&&p.test(t)?t.replace(d,function(e){return f[e]}):t}function a(e){if(null==e)return"";var t=String(e);return t&&g.test(t)?t.replace(h,function(e){return m[e]}):t}function i(e){var t=/^([+-]?(?:\d*\.)?\d+)([Mm]?[Ss])$/,r=t.exec(String(e));if(null===r)throw new SyntaxError('invalid time value syntax: "'+e+'"');var n=Number(r[1]);if(/^[Ss]$/.test(r[2])&&(n*=1e3),Number.isNaN(n)||!Number.isFinite(n))throw new RangeError('invalid time value: "'+e+'"');return n}function o(e){if("number"!=typeof e||Number.isNaN(e)||!Number.isFinite(e)){var t=void 0;switch("undefined"==typeof e?"undefined":_typeof(e)){case"string":t='"'+e+'"';break;case"number":t=String(e);break;default:t=Object.prototype.toString.call(e)}throw new Error("invalid milliseconds: "+t)}return e+"ms"}function s(e){if(!e.includes("-"))switch(e){case"bgcolor":return"backgroundColor";case"float":return"cssFloat";default:return e}var t="-ms-"===e.slice(0,4)?e.slice(1):e;return t.split("-").map(function(e,t){return 0===t?e:e.toUpperFirst()}).join("")}function u(e){var t=document.createElement("a"),r=Object.create(null);t.href=e,t.search&&t.search.replace(/^\?/,"").splitOrEmpty(/(?:&(?:amp;)?|;)/).forEach(function(e){var t=e.split("="),n=_slicedToArray(t,2),a=n[0],i=n[1];r[a]=i});var n=t.host&&"/"!==t.pathname[0]?"/"+t.pathname:t.pathname;return{href:t.href,protocol:t.protocol,host:t.host,hostname:t.hostname,port:t.port,path:""+n+t.search,pathname:n,query:t.search,search:t.search,queries:r,searches:r,hash:t.hash}}function l(e,t){for(var r=Object.prototype.toString,n=Array.isArray(e),a=[].concat(Object.keys(e),Object.keys(t)).sort().filter(function(e,t,r){return 0===t||r[t-1]!==e}),i={},o=void 0,s=function(e){return e===o},u=0,l=a.length;u<l;++u){var c=a[u],d=e[c],p=t[c];if(e.hasOwnProperty(c))if(t.hasOwnProperty(c)){if(d===p)continue;if(("undefined"==typeof d?"undefined":_typeof(d))===("undefined"==typeof p?"undefined":_typeof(p)))if("function"==typeof d)d.toString()!==p.toString()&&(i[c]=[v.Copy,p]);else if("object"!==("undefined"==typeof d?"undefined":_typeof(d))||null===d)i[c]=[v.Copy,p];else{var f=r.call(d),h=r.call(p);if(f===h)if("[object Date]"===f){var g=Number(p);Number(d)!==g&&(i[c]=[v.CopyDate,g])}else if("[object RegExp]"===f)d.toString()!==p.toString()&&(i[c]=[v.Copy,clone(p)]);else{var m=Util.diff(d,p);null!==m&&(i[c]=m)}else i[c]=[v.Copy,clone(p)]}else i[c]=[v.Copy,"object"!==("undefined"==typeof p?"undefined":_typeof(p))||null===p?p:clone(p)]}else if(n&&Util.isNumeric(c)){var y=Number(c);if(!o){o="";do o+="~";while(a.some(s));i[o]=[v.SpliceArray,y,y]}y<i[o][1]&&(i[o][1]=y),y>i[o][2]&&(i[o][2]=y)}else i[c]=v.Delete;else i[c]=[v.Copy,"object"!==("undefined"==typeof p?"undefined":_typeof(p))||null===p?p:clone(p)]}return Object.keys(i).length>0?i:null}function c(e,t){for(var r=Object.keys(t||{}),n=clone(e),a=0,i=r.length;a<i;++a){var o=r[a],s=t[o];if(s===v.Delete)delete n[o];else if(Array.isArray(s))switch(s[0]){case v.SpliceArray:n.splice(s[1],1+(s[2]-s[1]));break;case v.Copy:n[o]=clone(s[1]);break;case v.CopyDate:n[o]=new Date(s[1])}else n[o]=Util.patch(n[o],s)}return n}var d=/[&<>"'`]/g,p=new RegExp(d.source),f=Object.freeze({"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"}),h=/&(?:amp|lt|gt|quot|apos|#39|#x27|#96|#x60);/g,g=new RegExp(h.source),m=Object.freeze({"&":"&","<":"<",">":">",""":'"',"'":"'","'":"'","'":"'","`":"`","`":"`"}),v=Object.freeze({Delete:0,SpliceArray:1,Copy:2,CopyDate:3});return Object.freeze(Object.defineProperties({},{isNumeric:{value:e},isBoolean:{value:t},slugify:{value:r},escape:{value:n},unescape:{value:a},fromCssTime:{value:i},toCssTime:{value:o},fromCssProperty:{value:s},parseUrl:{value:u},DiffOp:{value:v},diff:{value:l},patch:{value:c},random:{value:Math.random},entityEncode:{value:n},entityDecode:{value:a},evalExpression:{value:function(){return Scripting.evalJavaScript.apply(Scripting,arguments)}},evalStatements:{value:function(){return Scripting.evalJavaScript.apply(Scripting,arguments)}}}))}(),SimpleAudio=function(){function e(){return g}function t(e){g=!!e,l("mute",g)}function r(){return f}function n(e){f=Math.clamp(e,.2,5),l("rate",f)}function a(){return h}function i(e){h=Math.clamp(e,0,1),l("volume",h)}function o(){l("stop")}function s(e,t){if("function"!=typeof t)throw new Error("callback parameter must be a function");p.set(e,t)}function u(e){p.delete(e)}function l(e,t){p.forEach(function(r){return r(e,t)})}function c(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return new(Function.prototype.bind.apply(m,[null].concat(t)))}function d(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return new(Function.prototype.bind.apply(v,[null].concat(t)))}var p=new Map,f=1,h=1,g=!1,m=function(){function e(t){if(_classCallCheck(this,e),Array.isArray(t))this._create(t);else{if(!(t instanceof e))throw new Error("sources parameter must be an array of either URLs or source objects");this._copy(t)}}return _createClass(e,[{key:"_create",value:function(t){if(!Array.isArray(t)||0===t.length)throw new Error("sources parameter must be an array of either URLs or source objects");var r=/^data:\s*audio\/([^;,]+)\s*[;,]/i,n=/\.([^.\/\\]+)$/,a=e.getType,i=[],o=document.createElement("audio");if(t.forEach(function(e){var t=null;switch("undefined"==typeof e?"undefined":_typeof(e)){case"string":var s=void 0;if("data:"===e.slice(0,5)){if(s=r.exec(e),null===s)throw new Error("source data URI missing media type")}else if(s=n.exec(Util.parseUrl(e).pathname),null===s)throw new Error("source URL missing file extension");var u=a(s[1]);null!==u&&(t={src:e,type:u});break;case"object":if(null===e)throw new Error("source object cannot be null");if(!e.hasOwnProperty("src"))throw new Error('source object missing required "src" property');if(!e.hasOwnProperty("format"))throw new Error('source object missing required "format" property');var l=a(e.format);null!==l&&(t={src:e.src,type:l});break;default:throw new Error("invalid source value (type: "+("undefined"==typeof e?"undefined":_typeof(e))+")")}if(null!==t){var c=document.createElement("source");c.src=t.src,c.type=t.type,o.appendChild(c),i.push(t)}}),!o.hasChildNodes())if(Browser.isIE)o.src=undefined;else{var s=document.createElement("source");s.src=undefined,s.type=undefined,o.appendChild(s)}this._finalize(o,i,clone(t))}},{key:"_copy",value:function(t){if(!(t instanceof e))throw new Error("original parameter must be an instance of AudioWrapper");this._finalize(t.audio.cloneNode(!0),clone(t.sources),clone(t.originalSources))}},{key:"_finalize",value:function(e,t,r){var n=this;Object.defineProperties(this,{audio:{configurable:!0,value:e},sources:{configurable:!0,value:Object.freeze(t)},originalSources:{configurable:!0,value:Object.freeze(r)},_error:{writable:!0,value:!1},_faderId:{writable:!0,value:null},_mute:{writable:!0,value:!1},_rate:{writable:!0,value:1},_volume:{writable:!0,value:1}}),jQuery(this.audio).on("loadstart",function(){return n._error=!1}).on("error",function(){return n._error=!0}).find("source:last-of-type").on("error",function(){return n._trigger("error")}),SimpleAudio.subscribe(this,function(e){if(!n.audio)return void SimpleAudio.unsubscribe(n);switch(e){case"mute":n._updateAudioMute();break;case"rate":n._updateAudioRate();break;case"stop":n.stop();break;case"volume":n._updateAudioVolume()}}),this.load()}},{key:"_trigger",value:function(e){jQuery(this.audio).triggerHandler(e)}},{key:"clone",value:function(){return new e(this)}},{key:"destroy",value:function(){SimpleAudio.unsubscribe(this),this.fadeStop(),this.stop();var e=this.audio;for(jQuery(e).off();e.hasChildNodes();)e.removeChild(e.firstChild);e.load(),this._error=!0,delete this.audio,delete this.sources,delete this.originalSources}},{key:"_updateAudioMute",value:function(){this.audio.muted=this._mute||SimpleAudio.mute}},{key:"_updateAudioRate",value:function(){this.audio.playbackRate=this._rate*SimpleAudio.rate}},{key:"_updateAudioVolume",value:function(){this.audio.volume=this._volume*SimpleAudio.volume}},{ +key:"hasSource",value:function(){return this.sources.length>0}},{key:"hasNoData",value:function(){return this.audio.readyState===HTMLMediaElement.HAVE_NOTHING}},{key:"hasMetadata",value:function(){return this.audio.readyState>=HTMLMediaElement.HAVE_METADATA}},{key:"hasSomeData",value:function(){return this.audio.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA}},{key:"hasData",value:function(){return this.audio.readyState===HTMLMediaElement.HAVE_ENOUGH_DATA}},{key:"isFailed",value:function(){return this._error}},{key:"isLoading",value:function(){return this.audio.networkState===HTMLMediaElement.NETWORK_LOADING}},{key:"isPlaying",value:function(){return!(this.audio.ended||this.audio.paused||!this.hasSomeData())}},{key:"isPaused",value:function(){return this.audio.paused&&(this.audio.duration===1/0||this.audio.currentTime>0)&&!this.audio.ended}},{key:"isEnded",value:function(){return this.audio.ended}},{key:"isFading",value:function(){return null!==this._faderId}},{key:"isMuted",value:function(){return this._mute}},{key:"isLooped",value:function(){return this.audio.loop}},{key:"load",value:function(){"auto"!==this.audio.preload&&(this.audio.preload="auto"),this.isLoading()||this.audio.load()}},{key:"play",value:function(){this.audio.play()}},{key:"pause",value:function(){this.audio.pause()}},{key:"stop",value:function(){this.audio.pause(),this.time=0,this._trigger("aw:stop")}},{key:"fadeWithDuration",value:function(e,t,r){var n=this;this.fadeStop();var a=Math.clamp(null==r?this.volume:r,0,1),i=Math.clamp(t,0,1);a!==i&&(this.volume=a,jQuery(this.audio).off("timeupdate.AudioWrapper:fadeWithDuration").one("timeupdate.AudioWrapper:fadeWithDuration",function(){var t=void 0,r=void 0;a<i?(t=a,r=i):(t=i,r=a);var o=Number(e);o<1&&(o=1);var s=25,u=(i-a)/(o/(s/1e3));n._faderId=setInterval(function(){return n.isPlaying()?(n.volume=Math.clamp(n.volume+u,t,r),0===n.volume&&n.pause(),void(n.volume===i&&(n.fadeStop(),n._trigger("aw:fade")))):void n.fadeStop()},s)}),this.play())}},{key:"fade",value:function(e,t){this.fadeWithDuration(5,e,t)}},{key:"fadeIn",value:function(){this.fade(1)}},{key:"fadeOut",value:function(){this.fade(0)}},{key:"fadeStop",value:function(){null!==this._faderId&&(clearInterval(this._faderId),this._faderId=null)}},{key:"on",value:function(t,r){if("function"!=typeof r)throw new Error("listener parameter must be a function");var n=e._events,a=t.trim().splitOrEmpty(/\s+/).map(function(e){var t=e.split(".",1)[0];if(!n.hasOwnProperty(t))throw new Error('unknown event "'+t+'"; valid: '+Object.keys(n).join(", "));return e.replace(t,n[t])+".AudioWrapperEvent"}).join(" ");if(""===a)throw new Error('invalid eventNames parameter "'+t+'"');return jQuery(this.audio).on(a,r),this}},{key:"one",value:function(t,r){if("function"!=typeof r)throw new Error("listener parameter must be a function");var n=e._events,a=t.trim().splitOrEmpty(/\s+/).map(function(e){var t=e.split(".",1)[0];if(!n.hasOwnProperty(t))throw new Error('unknown event "'+t+'"; valid: '+Object.keys(n).join(", "));return e.replace(t,n[t])+".AudioWrapperEvent"}).join(" ");if(""===a)throw new Error('invalid eventNames parameter "'+t+'"');return jQuery(this.audio).one(a,r),this}},{key:"off",value:function(t,r){if(r&&"function"!=typeof r)throw new Error("listener parameter must be a function");if(!t)return jQuery(this.audio).off(".AudioWrapperEvent",r);var n=e._events,a=t.trim().splitOrEmpty(/\s+/).map(function(e){var t=e.split(".",1)[0];if(t){if(!n.hasOwnProperty(t))throw new Error('unknown event "'+t+'"; valid: '+Object.keys(n).join(", "));return e.replace(t,n[t])+".AudioWrapperEvent"}return e+".AudioWrapperEvent"}).join(" ");if(""===a)throw new Error('invalid eventNames parameter "'+t+'"');return jQuery(this.audio).off(a,r),this}},{key:"duration",get:function(){return this.audio.duration}},{key:"ended",get:function(){return this.audio.ended}},{key:"loop",get:function(){return this.audio.loop},set:function(e){this.audio.loop=!!e}},{key:"mute",get:function(){return this._mute},set:function(e){this._mute=!!e,this._updateAudioMute()}},{key:"paused",get:function(){return this.audio.paused}},{key:"rate",get:function(){return this._rate},set:function(e){this._rate=Math.clamp(e,.2,5),this._updateAudioRate()}},{key:"remaining",get:function(){return this.audio.duration-this.audio.currentTime}},{key:"time",get:function(){return this.audio.currentTime},set:function(e){var t=this;try{this.audio.currentTime=e}catch(r){jQuery(this.audio).off("loadedmetadata.AudioWrapper:time").one("loadedmetadata.AudioWrapper:time",function(){return t.audio.currentTime=e})}}},{key:"volume",get:function(){return this._volume},set:function(e){this._volume=Math.clamp(e,0,1),this._updateAudioVolume()}}],[{key:"_verifyType",value:function(t){if(!t||!Has.audio)return null;var r=e._types;if(!r.hasOwnProperty(t)){var n=document.createElement("audio");r[t]=""!==n.canPlayType(t).replace(/^no$/i,"")}return r[t]?t:null}},{key:"getType",value:function(t){if(!t||!Has.audio)return null;var r=e.formats,n=t.toLowerCase(),a=r.hasOwnProperty(n)?r[n]:"audio/"+n;return e._verifyType(a)}},{key:"canPlayFormat",value:function(t){return null!==e.getType(t)}},{key:"canPlayType",value:function(t){return null!==e._verifyType(t)}}]),e}();Object.defineProperties(m,{formats:{value:{aac:"audio/aac",caf:"audio/x-caf","x-caf":"audio/x-caf",mp3:'audio/mpeg; codecs="mp3"',mpeg:'audio/mpeg; codecs="mp3"',m4a:"audio/mp4",mp4:"audio/mp4","x-m4a":"audio/mp4","x-mp4":"audio/mp4",oga:"audio/ogg",ogg:"audio/ogg",opus:'audio/ogg; codecs="opus"',wav:"audio/wav",wave:"audio/wav",weba:"audio/webm",webm:"audio/webm"}},_types:{value:{}},_events:{value:Object.freeze({canplay:"canplaythrough",end:"ended",error:"error",fade:"aw:fade",pause:"pause",play:"playing",rate:"ratechange",seek:"seeked",stop:"aw:stop",volume:"volumechange"})}});var v=function(){function e(t){var r=this;_classCallCheck(this,e),Object.defineProperties(this,{tracks:{configurable:!0,value:[]},queue:{configurable:!0,value:[]},current:{writable:!0,value:null},_rate:{writable:!0,value:1},_volume:{writable:!0,value:1},_mute:{writable:!0,value:!1},_loop:{writable:!0,value:!1},_shuffle:{writable:!0,value:!1}}),Array.isArray(t)?t.forEach(function(e){return r.add(e)}):t instanceof e&&t.tracks.forEach(function(e){return r.add(e)})}return _createClass(e,[{key:"add",value:function(e){var t=this;if(null==e||"object"!==("undefined"==typeof e?"undefined":_typeof(e)))throw new Error("track parameter must be an object");var r=void 0,n=void 0,a=void 0,i=void 0;if(e instanceof m)r=!0,n=e.clone(),a=e.volume,i=e.rate;else{if(!e.hasOwnProperty("track"))throw new Error('track object missing required "track" property');if(!(e.track instanceof m))throw new Error('track object\'s "track" property must be an AudioWrapper object');r=e.hasOwnProperty("copy")&&e.copy,n=r?e.track.clone():e.track,a=e.hasOwnProperty("volume")?e.volume:e.track.volume,i=e.hasOwnProperty("rate")?e.rate:e.track.rate}n.stop(),n.loop=!1,n.mute=!1,n.volume=a,n.rate=i,n.on("end.AudioListEvent",function(){return t._onEnd()}),this.tracks.push({copy:r,track:n,volume:a,rate:i})}},{key:"destroy",value:function(){this.stop(),this.tracks.filter(function(e){return e.copy}).forEach(function(e){return e.track.destroy()}),delete this.tracks,delete this.queue}},{key:"isPlaying",value:function(){return null!==this.current&&this.current.track.isPlaying()}},{key:"isEnded",value:function(){return 0===this.queue.length&&(null===this.current||this.current.track.isEnded())}},{key:"isPaused",value:function(){return null===this.current||this.current.track.isPaused()}},{key:"isMuted",value:function(){return this._mute}},{key:"isLooped",value:function(){return this._loop}},{key:"isShuffled",value:function(){return this._shuffle}},{key:"play",value:function(){(null!==this.current&&!this.current.track.isEnded()||(0===this.queue.length&&this._buildList(),this._next()))&&this.current.track.play()}},{key:"pause",value:function(){null!==this.current&&this.current.track.pause()}},{key:"stop",value:function(){null!==this.current&&(this.current.track.stop(),this.current=null),this.queue.splice(0)}},{key:"skip",value:function(){this._next()?this.current.track.play():this._loop&&this.play()}},{key:"fadeWithDuration",value:function(e,t,r){if(0===this.queue.length&&this._buildList(),null!==this.current&&!this.current.track.isEnded()||this._next()){var n=Math.clamp(t,0,1)*this.current.volume,a=void 0;null!=r&&(a=Math.clamp(r,0,1)*this.current.volume),this.current.track.fadeWithDuration(e,n,a),this._volume=t}}},{key:"fade",value:function(e,t){this.fadeWithDuration(5,e,t)}},{key:"fadeIn",value:function(){this.fade(1)}},{key:"fadeOut",value:function(){this.fade(0)}},{key:"_next",value:function(){return null!==this.current&&this.current.track.stop(),0===this.queue.length?(this.current=null,!1):(this.current=this.queue.shift(),!this.current.track.hasSource()||this.current.track.isFailed()?this._next():(this.current.track.mute=this._mute,this.current.track.rate=this.rate*this.current.rate,this.current.track.volume=this.volume*this.current.volume,!0))}},{key:"_onEnd",value:function(){if(0===this.queue.length){if(!this._loop)return;this._buildList()}this._next()&&this.current.track.play()}},{key:"_buildList",value:function(){var e;this.queue.splice(0),(e=this.queue).push.apply(e,_toConsumableArray(this.tracks)),0!==this.queue.length&&this._shuffle&&(this.queue.shuffle(),this.queue.length>1&&this.queue[0]===this.current&&this.queue.push(this.queue.shift()))}},{key:"duration",get:function(){return this.tracks.map(function(e){return e.track.duration}).reduce(function(e,t){return e+t},0)}},{key:"loop",get:function(){return this._loop},set:function(e){this._loop=!!e}},{key:"mute",get:function(){return this._mute},set:function(e){this._mute=!!e,null!==this.current&&(this.current.track.mute=this._mute)}},{key:"rate",get:function(){return this._rate},set:function(e){this._rate=Math.clamp(e,.2,5),null!==this.current&&(this.current.track.rate=this.rate*this.current.rate)}},{key:"remaining",get:function(){var e=this.queue.map(function(e){return e.track.duration}).reduce(function(e,t){return e+t},0);return null!==this.current&&(e+=this.current.track.remaining),e}},{key:"shuffle",get:function(){return this._shuffle},set:function(e){this._shuffle=!!e}},{key:"time",get:function(){return this.duration-this.remaining}},{key:"volume",get:function(){return this._volume},set:function(e){this._volume=Math.clamp(e,0,1),null!==this.current&&(this.current.track.volume=this.volume*this.current.volume)}}]),e}();return Object.freeze(Object.defineProperties({},{mute:{get:e,set:t},rate:{get:r,set:n},volume:{get:a,set:i},stop:{value:o},subscribe:{value:s},unsubscribe:{value:u},publish:{value:l},create:{value:c},createList:{value:d}}))}(),SimpleStore=function(){function e(e,n){if(r)return r.create(e,n);for(var a=0;a<t.length;++a)if(t[a].init(e,n))return r=t[a],r.create(e,n);throw new Error("no valid adapters found")}var t=[],r=null;return Object.freeze(Object.defineProperties({},{adapters:{value:t},create:{value:e}}))}();SimpleStore.adapters.push(function(){function e(){return r=Has.localStorage&&Has.sessionStorage}function t(e,t){if(!r)throw new Error("adapter not initialized");return new n(e,t)}var r=!1,n=function(){function e(t,r){_classCallCheck(this,e);var n=t+".",a=null,i=null;r?(a=window.localStorage,i="localStorage"):(a=window.sessionStorage,i="sessionStorage"),Object.defineProperties(this,{_engine:{value:a},_prefix:{value:n},_prefixRe:{value:new RegExp("^"+RegExp.escape(n))},name:{value:i},id:{value:t},persistent:{value:!!r}})}return _createClass(e,[{key:"size",value:function(){return this.keys().length}},{key:"keys",value:function e(){for(var e=[],t=0;t<this._engine.length;++t){var r=this._engine.key(t);this._prefixRe.test(r)&&e.push(r.replace(this._prefixRe,""))}return e}},{key:"has",value:function(e){return!("string"!=typeof e||!e)&&this._engine.hasOwnProperty(this._prefix+e)}},{key:"get",value:function(t){if("string"!=typeof t||!t)return null;var r=this._engine.getItem(this._prefix+t);return null==r?null:e._deserialize(r)}},{key:"set",value:function(t,r){if("string"!=typeof t||!t)return!1;try{this._engine.setItem(this._prefix+t,e._serialize(r))}catch(e){throw/quota_?(?:exceeded|reached)/i.test(e.name)&&(e.message=this.name+" quota exceeded"),e}return!0}},{key:"delete",value:function(e){return!("string"!=typeof e||!e)&&(this._engine.removeItem(this._prefix+e),!0)}},{key:"clear",value:function(){for(var e=this.keys(),t=0,r=e.length;t<r;++t)this.delete(e[t]);return!0}},{key:"length",get:function(){return this.keys().length}}],[{key:"_serialize",value:function(e){return LZString.compressToUTF16(JSON.stringify(e))}},{key:"_deserialize",value:function(e){return JSON.parse(LZString.decompressFromUTF16(e))}}]),e}();return Object.freeze(Object.defineProperties({},{init:{value:e},create:{value:t}}))}()),SimpleStore.adapters.push(function(){function e(e){return n="cookie"in document,n&&r(e),n}function t(e,t){if(!n)throw new Error("adapter not initialized");return new a(e,t)}function r(e){if(""!==document.cookie)for(var t=e+".",r=new RegExp("^"+RegExp.escape(t)),n=e+"!.",i=e+"*.",o=/\.(?:state|rcWarn)$/,s=document.cookie.split(/;\s*/),u=0;u<s.length;++u){var l=s[u].split("="),c=decodeURIComponent(l[0]);if(r.test(c)){var d=decodeURIComponent(l[1]);""!==d&&!function(){var e=!o.test(c);a._setCookie(c,undefined,"Thu, 01 Jan 1970 00:00:00 GMT"),a._setCookie(c.replace(r,function(){return e?n:i}),d,e?"Tue, 19 Jan 2038 03:14:07 GMT":undefined)}()}}}var n=!1,a=function(){function e(t,r){_classCallCheck(this,e);var n=""+t+(r?"!":"*")+".";Object.defineProperties(this,{_prefix:{value:n},_prefixRe:{value:new RegExp("^"+RegExp.escape(n))},name:{value:"cookie"},id:{value:t},persistent:{value:!!r}})}return _createClass(e,[{key:"size",value:function(){return this.keys().length}},{key:"keys",value:function e(){if(""===document.cookie)return[];for(var t=document.cookie.split(/;\s*/),e=[],r=0;r<t.length;++r){var n=t[r].split("="),a=decodeURIComponent(n[0]);if(this._prefixRe.test(a)){var i=decodeURIComponent(n[1]);""!==i&&e.push(a.replace(this._prefixRe,""))}}return e}},{key:"has",value:function(t){return!("string"!=typeof t||!t)&&null!==e._getCookie(this._prefix+t)}},{key:"get",value:function(t){if("string"!=typeof t||!t)return null;var r=e._getCookie(this._prefix+t);return null===r?null:e._deserialize(r)}},{key:"set",value:function(t,r){if("string"!=typeof t||!t)return!1;try{if(e._setCookie(this._prefix+t,e._serialize(r),this.persistent?"Tue, 19 Jan 2038 03:14:07 GMT":undefined),!this.has(t))throw new Error("unknown validation error during set")}catch(e){throw e.message="cookie error: "+e.message,e}return!0}},{key:"delete",value:function(t){if("string"!=typeof t||!t||!this.has(t))return!1;try{if(e._setCookie(this._prefix+t,undefined,"Thu, 01 Jan 1970 00:00:00 GMT"),this.has(t))throw new Error("unknown validation error during delete")}catch(e){throw e.message="cookie error: "+e.message,e}return!0}},{key:"clear",value:function(){for(var e=this.keys(),t=0,r=e.length;t<r;++t)this.delete(e[t]);return!0}},{key:"length",get:function(){return this.keys().length}}],[{key:"_getCookie",value:function(e){if(!e||""===document.cookie)return null;for(var t=document.cookie.split(/;\s*/),r=0;r<t.length;++r){var n=t[r].split("="),a=decodeURIComponent(n[0]);if(e===a){var i=decodeURIComponent(n[1]);return i||null}}return null}},{key:"_setCookie",value:function(e,t,r){if(e){var n=encodeURIComponent(e)+"=";null!=t&&(n+=encodeURIComponent(t)),null!=r&&(n+="; "+r),n+="; path=/",document.cookie=n}}},{key:"_serialize",value:function(e){return LZString.compressToBase64(JSON.stringify(e))}},{key:"_deserialize",value:function(e){return JSON.parse(LZString.decompressFromBase64(e))}}]),e}();return Object.freeze(Object.defineProperties({},{init:{value:e},create:{value:t}}))}());var DebugView=function(){var e=function(){function e(t,r,n,a){_classCallCheck(this,e),Object.defineProperties(this,{parent:{value:t},view:{value:document.createElement("span")},break:{value:document.createElement("wbr")}}),jQuery(this.view).attr({title:a,"aria-label":a,"data-type":null!=r?r:"","data-name":null!=n?n:""}).addClass("debug"),this.parent.appendChild(this.view),this.parent.appendChild(this.break)}return _createClass(e,[{key:"append",value:function(e){return jQuery(this.view).append(e),this}},{key:"modes",value:function(e){var t=this;if(null==e){var r=function(){var e={};return t.view.className.splitOrEmpty(/\s+/).forEach(function(t){"debug"!==t&&(e[t]=!0)}),{v:e}}();if("object"===("undefined"==typeof r?"undefined":_typeof(r)))return r.v}else if("object"===("undefined"==typeof e?"undefined":_typeof(e)))return Object.keys(e).forEach(function(t){this[e[t]?"addClass":"removeClass"](t)},jQuery(this.view)),this;throw new Error("DebugView.prototype.modes options parameter must be an object or null/undefined")}},{key:"remove",value:function(){var e=jQuery(this.view);this.view.hasChildNodes()&&e.contents().appendTo(this.parent),e.remove(),jQuery(this.break).remove()}},{key:"output",get:function(){return this.view}},{key:"type",get:function(){return this.view.getAttribute("data-type")},set:function(e){this.view.setAttribute("data-type",null!=e?e:"")}},{key:"name",get:function(){return this.view.getAttribute("data-name")},set:function(e){this.view.setAttribute("data-name",null!=e?e:"")}},{key:"title",get:function(){return this.view.title},set:function(e){this.view.title=e}}],[{key:"init",value:function(){jQuery('<button id="debug-view-toggle">'+L10n.get("debugViewTitle")+"</button>").ariaClick({label:L10n.get("debugViewToggle")},function(){return e.toggle()}).prependTo("#ui-bar-body"),e.enable()}},{key:"enable",value:function(){jQuery(document.documentElement).addClass("debug-view"),jQuery.event.trigger("tw:debugviewupdate")}},{key:"disable",value:function(){jQuery(document.documentElement).removeClass("debug-view"),jQuery.event.trigger("tw:debugviewupdate")}},{key:"toggle",value:function(){jQuery(document.documentElement).toggleClass("debug-view"),jQuery.event.trigger("tw:debugviewupdate")}}]),e}();return e}(),PRNGWrapper=function(){var e=function(){function e(t,r){_classCallCheck(this,e),Object.defineProperties(this,new Math.seedrandom(t,r,function(e,t){return{_prng:{value:e},seed:{writable:!0,value:t},pull:{writable:!0,value:0},random:{value:function(){return++this.pull,this._prng()}}}}))}return _createClass(e,null,[{key:"marshal",value:function(e){if(!e||!e.hasOwnProperty("seed")||!e.hasOwnProperty("pull"))throw new Error("PRNG is missing required data");return{seed:e.seed,pull:e.pull}}},{key:"unmarshal",value:function(t){if(!t||!t.hasOwnProperty("seed")||!t.hasOwnProperty("pull"))throw new Error("PRNG object is missing required data");for(var r=new e(t.seed,!1),n=t.pull;n>0;--n)r.random();return r}}]),e}();return e}(),StyleWrapper=function(){var e=/\[[<>]?[Ii][Mm][Gg]\[(?:\s|\S)*?\]\]+/g,t=new RegExp(e.source),r=function(){function r(e){if(_classCallCheck(this,r),null==e)throw new TypeError("StyleWrapper style parameter must be an HTMLStyleElement object");Object.defineProperties(this,{style:{value:e}})}return _createClass(r,[{key:"isEmpty",value:function(){return 0===this.style.cssRules.length}},{key:"set",value:function(e){this.clear(),this.add(e)}},{key:"add",value:function(r){var n=r;t.test(n)&&(e.lastIndex=0,n=n.replace(e,function(e){var t=Wikifier.helpers.parseSquareBracketedMarkup({source:e,matchStart:0});if(t.hasOwnProperty("error")||t.pos<e.length)return e;var r=t.source;if("data:"!==r.slice(0,5)&&Story.has(r)){var n=Story.get(r);n.tags.includes("Twine.image")&&(r=n.text)}return'url("'+r.replace(/"/g,"%22")+'")'})),this.style.styleSheet?this.style.styleSheet.cssText+=n:this.style.appendChild(document.createTextNode(n))}},{key:"clear",value:function(){this.style.styleSheet?this.style.styleSheet.cssText="":jQuery(this.style).empty()}}]),r}();return r}(),L10n=function(){function e(){r()}function t(e,t){if(!e)return"";var r=function(e){var t=void 0;return e.some(function(e){return!!l10nStrings.hasOwnProperty(e)&&(t=e,!0)}),t}(Array.isArray(e)?e:[e]);if(!r)return"";for(var i=50,o=l10nStrings[r],s=0;a.test(o);){if(++s>i)throw new Error("L10n.get exceeded maximum replacement iterations, probable infinite loop");n.lastIndex=0,o=o.replace(n,function(e){var r=e.slice(1,-1);return t&&t.hasOwnProperty(r)?t[r]:l10nStrings.hasOwnProperty(r)?l10nStrings[r]:void 0})}return o}function r(){strings&&Object.keys(strings).length>0&&Object.keys(l10nStrings).forEach(function(e){try{var t=void 0;switch(e){case"identity":t=strings.identity;break;case"aborting":t=strings.aborting;break;case"cancel":t=strings.cancel;break;case"close":t=strings.close;break;case"ok":t=strings.ok;break;case"errorTitle":t=strings.errors.title;break;case"errorNonexistentPassage":t=strings.errors.nonexistentPassage;break;case"errorSaveMissingData":t=strings.errors.saveMissingData;break;case"errorSaveIdMismatch":t=strings.errors.saveIdMismatch;break;case"warningDegraded":t=strings.warnings.degraded;break;case"debugViewTitle":t=strings.debugView.title;break;case"debugViewToggle":t=strings.debugView.toggle;break;case"uiBarToggle":t=strings.uiBar.toggle;break;case"uiBarBackward":t=strings.uiBar.backward;break;case"uiBarForward":t=strings.uiBar.forward;break;case"uiBarJumpto":t=strings.uiBar.jumpto;break;case"jumptoTitle":t=strings.jumpto.title;break;case"jumptoTurn":t=strings.jumpto.turn;break;case"jumptoUnavailable":t=strings.jumpto.unavailable;break;case"savesTitle":t=strings.saves.title;break;case"savesDisallowed":t=strings.saves.disallowed;break;case"savesEmptySlot":t=strings.saves.emptySlot;break;case"savesIncapable":t=strings.saves.incapable;break;case"savesLabelAuto":t=strings.saves.labelAuto;break;case"savesLabelDelete":t=strings.saves.labelDelete;break;case"savesLabelExport":t=strings.saves.labelExport;break;case"savesLabelImport":t=strings.saves.labelImport;break;case"savesLabelLoad":t=strings.saves.labelLoad;break;case"savesLabelClear":t=strings.saves.labelClear;break;case"savesLabelSave":t=strings.saves.labelSave;break;case"savesLabelSlot":t=strings.saves.labelSlot;break;case"savesSavedOn":t=strings.saves.savedOn;break;case"savesUnavailable":t=strings.saves.unavailable;break;case"savesUnknownDate":t=strings.saves.unknownDate;break;case"settingsTitle":t=strings.settings.title;break;case"settingsOff":t=strings.settings.off;break;case"settingsOn":t=strings.settings.on;break;case"settingsReset":t=strings.settings.reset;break;case"restartTitle":t=strings.restart.title;break;case"restartPrompt":t=strings.restart.prompt;break;case"shareTitle":t=strings.share.title;break;case"autoloadTitle":t=strings.autoload.title;break;case"autoloadCancel":t=strings.autoload.cancel;break;case"autoloadOk":t=strings.autoload.ok;break;case"autoloadPrompt":t=strings.autoload.prompt;break;case"macroBackText":t=strings.macros.back.text;break;case"macroReturnText":t=strings.macros.return.text}t&&(l10nStrings[e]=t.replace(/%\w+%/g,function(e){return"{"+e.slice(1,-1)+"}"}))}catch(e){}})}var n=/\{\w+\}/g,a=new RegExp(n.source);return Object.freeze(Object.defineProperties({},{init:{value:e},get:{value:t}}))}(),strings={errors:{},warnings:{},debugView:{},uiBar:{},jumpto:{},saves:{},settings:{},restart:{},share:{},autoload:{},macros:{back:{},return:{}}},l10nStrings={identity:"game",aborting:"Aborting",cancel:"Cancel",close:"Close",ok:"OK",errorTitle:"Error",errorNonexistentPassage:'the passage "{passage}" does not exist',errorSaveMissingData:"save is missing required data. Either the loaded file is not a save or the save has become corrupted",errorSaveIdMismatch:"save is from the wrong {identity}",_warningIntroLacking:"Your browser either lacks or has disabled",_warningOutroDegraded:", so this {identity} is running in a degraded mode. You may be able to continue, however, some parts may not work properly.",warningNoWebStorage:"{_warningIntroLacking} the Web Storage API{_warningOutroDegraded}",warningDegraded:"{_warningIntroLacking} some of the capabilities required by this {identity}{_warningOutroDegraded}",debugViewTitle:"Debug View",debugViewToggle:"Toggle the debug view",uiBarToggle:"Toggle the UI bar",uiBarBackward:"Go backward within the {identity} history",uiBarForward:"Go forward within the {identity} history",uiBarJumpto:"Jump to a specific point within the {identity} history",jumptoTitle:"Jump To",jumptoTurn:"Turn",jumptoUnavailable:"No jump points currently available…",savesTitle:"Saves",savesDisallowed:"Saving has been disallowed on this passage.",savesEmptySlot:"— slot empty —",savesIncapable:"{_warningIntroLacking} the capabilities required to support saves, so saves have been disabled for this session.",savesLabelAuto:"Autosave",savesLabelDelete:"Delete",savesLabelExport:"Save to Disk…",savesLabelImport:"Load from Disk…",savesLabelLoad:"Load",savesLabelClear:"Delete All",savesLabelSave:"Save",savesLabelSlot:"Slot",savesSavedOn:"Saved on",savesUnavailable:"No save slots found…",savesUnknownDate:"unknown",settingsTitle:"Settings",settingsOff:"Off",settingsOn:"On",settingsReset:"Reset to Defaults",restartTitle:"Restart",restartPrompt:"Are you sure that you want to restart? Unsaved progress will be lost.",shareTitle:"Share",autoloadTitle:"Autoload",autoloadCancel:"Go to start",autoloadOk:"Load autosave",autoloadPrompt:"An autosave exists. Load it now or go to the start?",macroBackText:"Back",macroReturnText:"Return"},Config=function(){function e(){throw new Error("Config.history.mode has been deprecated and is no longer used by SugarCube, please remove it from your code")}function t(){throw new Error("Config.history.tracking has been deprecated, use Config.history.maxStates instead")}var r=Object.seal({debug:!1,addVisitedLinkClass:!1,cleanupWikifierOutput:!1,loadDelay:0,history:Object.seal({controls:!0,maxStates:100,get mode(){e()},set mode(t){e()},get tracking(){t()},set tracking(e){t()}}),macros:Object.seal({ifAssignmentError:!0,maxLoopIterations:1e3}),navigation:Object.seal({override:undefined}),passages:Object.seal({descriptions:undefined,displayTitles:!1,start:undefined,transitionOut:undefined}),saves:Object.seal({autoload:undefined,autosave:undefined,id:"untitled-story",isAllowed:undefined,onLoad:undefined,onSave:undefined,slots:8,version:undefined}),ui:Object.seal({stowBarInitially:800,updateStoryElements:!0}),transitionEndEventName:function(){for(var e=new Map([["transition","transitionend"],["MSTransition","msTransitionEnd"],["WebkitTransition","webkitTransitionEnd"],["MozTransition","transitionend"]]),t=[].concat(_toConsumableArray(e.keys())),r=document.createElement("div"),n=0;n<t.length;++n)if(r.style[t[n]]!==undefined)return e.get(t[n]);return""}()});return r}(),Patterns=function(){var e=/[\u0150\u0170]/g.test("Å"),t="[\\s\\u00A0\\u2028\\u2029]",r="[0-9A-Z_a-z\\-\\u00C0-\\u00D6\\u00D8-\\u00DE\\u00DF-\\u00F6\\u00F8-\\u00FF"+(e?"\\u0150\\u0170\\u0151\\u0171":"")+"]",n=r.replace("\\-",""),a="[$A-Z_a-z]",i=a+"[$0-9A-Z_a-z]*",o="[$_]",s=o+i,u="[A-Za-z][\\w-]*|[=-]",l="("+r+"+)\\(([^\\)\\|\\n]+)\\):",c="("+r+"+):([^;\\|\\n]+);",d="((?:\\."+r+"+)+);",p="((?:#"+r+"+)+);",f=l+"|"+c+"|"+d+"|"+p,h="(?:file|https?|mailto|ftp|javascript|irc|news|data):[^\\s'\"]+";return Object.freeze({space:t,anyLetter:r,anyLetterStrict:n,identifierFirstChar:a,identifier:i,variableSigil:o,variable:s,macroName:u,inlineCss:f,url:h})}(),Scripting=function(){function addAccessibleClickHandler(e,t,r,n,a){if(arguments.length<2)throw new Error("addAccessibleClickHandler insufficient number of parameters");var i=void 0,o=void 0;if("function"==typeof t?(i=t,o={namespace:n,one:!!r}):(i=r,o={namespace:a,one:!!n,selector:t}),"function"!=typeof i)throw new TypeError("addAccessibleClickHandler handler parameter must be a function");return jQuery(e).ariaClick(o,i)}function insertElement(e,t,r,n,a,i){var o=jQuery(document.createElement(t));return r&&o.attr("id",r),n&&o.addClass(n),i&&o.attr("title",i),a&&o.text(a),e&&o.appendTo(e),o[0]}function insertText(e,t){jQuery(e).append(document.createTextNode(t))}function removeChildren(e){jQuery(e).empty()}function removeElement(e){jQuery(e).remove()}function fade(e,t){function r(){i+=.05*a,n(o,Math.easeInOut(i)),(1===a&&i>=1||a===-1&&i<=0)&&(e.style.visibility="in"===t.fade?"visible":"hidden",o.parentNode.replaceChild(e,o),o=null,window.clearInterval(s),t.onComplete&&t.onComplete())}function n(e,t){e.style.zoom=1,e.style.filter="alpha(opacity="+Math.floor(100*t)+")",e.style.opacity=t}var a="in"===t.fade?1:-1,i=void 0,o=e.cloneNode(!0),s=void 0;e.parentNode.replaceChild(o,e),"in"===t.fade?(i=0,o.style.visibility="visible"):i=1,n(o,i),s=window.setInterval(r,25)}function scrollWindowTo(e,t){function r(){c+=i,window.scroll(0,o+l*(u*Math.easeInOut(c))),c>=1&&window.clearInterval(d)}function n(e){for(var t=0;e.offsetParent;)t+=e.offsetTop,e=e.offsetParent;return t}function a(e){var t=n(e),r=t+e.offsetHeight,a=window.scrollY?window.scrollY:document.body.scrollTop,i=window.innerHeight?window.innerHeight:document.body.clientHeight,o=a+i;return t>=a&&r>o&&e.offsetHeight<i?t-(i-e.offsetHeight)+20:t}var i=null!=t?Number(t):.1;Number.isNaN(i)||!Number.isFinite(i)||i<0?i=.1:i>1&&(i=1);var o=window.scrollY?window.scrollY:document.body.scrollTop,s=a(e),u=Math.abs(o-s),l=o>s?-1:1,c=0,d=void 0;d=window.setInterval(r,25)}function either(){if(0!==arguments.length)return Array.prototype.concat.apply([],arguments).random()}function hasVisited(){if(0===arguments.length)throw new Error("hasVisited called with insufficient parameters");if(State.isEmpty())return!1;for(var e=Array.prototype.concat.apply([],arguments),t=State.passages,r=0,n=e.length;r<n;++r)if(!t.includes(e[r]))return!1;return!0}function lastVisited(){if(0===arguments.length)throw new Error("lastVisited called with insufficient parameters");if(State.isEmpty())return-1;for(var e=Array.prototype.concat.apply([],arguments),t=State.passages,r=t.length-1,n=State.turns,a=0,i=e.length;a<i&&n>-1;++a){var o=t.lastIndexOf(e[a]);n=Math.min(n,o===-1?-1:r-o)}return n}function passage(){return State.passage}function previous(){var e=State.passages;if(arguments.length>0){var t=Number(arguments[0]);if(!Number.isSafeInteger(t)||t<1)throw new RangeError("previous offset parameter must be a positive integer greater than zero");return e.length>t?e[e.length-1-t]:""}for(var r=e.length-2;r>=0;--r)if(e[r]!==State.passage)return e[r];return""}function random(){if(0===arguments.length)throw new Error("random called with insufficient parameters");var e=void 0,t=void 0;if(1===arguments.length?(e=0,t=arguments[0]):(e=arguments[0],t=arguments[1]),e>t){var r=[t,e];e=r[0],t=r[1]}return Math.floor(State.random()*(t-e+1))+e}function randomFloat(){if(0===arguments.length)throw new Error("randomFloat called with insufficient parameters");var e=void 0,t=void 0;if(1===arguments.length?(e=0,t=arguments[0]):(e=arguments[0],t=arguments[1]),e>t){var r=[t,e];e=r[0],t=r[1]}return State.random()*(t-e)+e}function tags(){if(0===arguments.length)return Story.get(State.passage).tags.slice(0);for(var e=Array.prototype.concat.apply([],arguments),t=[],r=0,n=e.length;r<n;++r)t=t.concat(Story.get(e[r]).tags);return t}function time(){return null===Engine.lastPlay?0:Date.now()-Engine.lastPlay}function turns(){return State.turns}function variables(){return State.variables}function visited(){if(State.isEmpty())return 0;for(var e=Array.prototype.concat.apply([],0===arguments.length?[State.passage]:arguments),t=State.passages,r=State.turns,n=0,a=e.length;n<a&&r>0;++n)r=Math.min(r,t.count(e[n]));return r}function visitedTags(){if(0===arguments.length)throw new Error("visitedTags called with insufficient parameters");if(State.isEmpty())return 0;for(var e=Array.prototype.concat.apply([],arguments),t=e.length,r=State.passages,n=new Map,a=0,i=0,o=r.length;i<o;++i){var s=r[i];if(n.has(s))n.get(s)&&++a;else{var u=Story.get(s).tags;if(u.length>0){for(var l=0,c=0;c<t;++c)u.includes(e[c])&&++l;l===t?(++a,n.set(s,!0)):n.set(s,!1)}}}return a}function evalJavaScript(code,output){return function(code,output){return eval(code); +}.call(output?{output:output}:null,String(code),output)}function evalTwineScript(code,output){return function(code,output){return eval(code)}.call(output?{output:output}:null,parse(String(code)),output)}var parse=function(){function e(e){if(0!==r.lastIndex)throw new RangeError("Scripting.parse last index is non-zero at start");for(var a=e,i=void 0;null!==(i=r.exec(a));)if(i[5]){var o=i[5];if("$"===o||"_"===o)continue;if(n.test(o))o=o[0];else if("is"===o){var s=r.lastIndex,u=a.slice(s);/^\s+not\b/.test(u)&&(a=a.splice(s,u.search(/\S/)),o="isnot")}t.hasOwnProperty(o)&&(a=a.splice(i.index,o.length,t[o]),r.lastIndex+=t[o].length-o.length)}return a}var t=Object.freeze({$:"State.variables.",_:"State.temporary.",to:"=",eq:"==",neq:"!=",is:"===",isnot:"!==",gt:">",gte:">=",lt:"<",lte:"<=",and:"&&",or:"||",not:"!",def:'"undefined" !== typeof',ndef:'"undefined" === typeof'}),r=new RegExp(["(\"\"|'')",'("(?:\\\\.|[^"\\\\])+")',"('(?:\\\\.|[^'\\\\])+')","([=+\\-*\\/%<>&\\|\\^~!?:,;\\(\\)\\[\\]{}]+)","([^\"'=+\\-*\\/%<>&\\|\\^~!?:,;\\(\\)\\[\\]{}\\s]+)"].join("|"),"g"),n=new RegExp("^"+Patterns.variable);return e}();return Object.freeze(Object.defineProperties({},{parse:{value:parse},evalJavaScript:{value:evalJavaScript},evalTwineScript:{value:evalTwineScript}}))}(),Wikifier=function(){var e=void 0,t=0,r=function(){function r(n,a,i){_classCallCheck(this,r),"object"!==("undefined"==typeof e?"undefined":_typeof(e))&&r.compileFormatters(),Object.defineProperties(this,{source:{value:String(a)},options:{writable:!0,value:Object.assign({profile:"all"},i)},nextMatch:{writable:!0,value:0},output:{writable:!0,value:null},_rawArgs:{writable:!0,value:""}}),null==n?this.output=document.createDocumentFragment():n.jquery?this.output=n[0]:this.output=n;try{++t,this.subWikify(this.output),1===t&&Config.cleanupWikifierOutput&&convertBreaks(this.output)}finally{--t}}return _createClass(r,[{key:"subWikify",value:function(e,t,r){var n=this.output,a=void 0;this.output=e,null!=r&&"object"===("undefined"==typeof r?"undefined":_typeof(r))&&(a=this.options,this.options=Object.assign({},this.options,r));var i=t?new RegExp("(?:"+t+")",this.options.ignoreTerminatorCase?"gim":"gm"):null,o=void 0,s=void 0;do{if(this.formatter.formatterRegExp.lastIndex=this.nextMatch,i&&(i.lastIndex=this.nextMatch),s=this.formatter.formatterRegExp.exec(this.source),o=i?i.exec(this.source):null,o&&(!s||o.index<=s.index))return o.index>this.nextMatch&&this.outputText(this.output,this.nextMatch,o.index),this.matchStart=o.index,this.matchLength=o[0].length,this.matchText=o[0],this.nextMatch=i.lastIndex,this.output=n,void(a&&(this.options=a));if(s){s.index>this.nextMatch&&this.outputText(this.output,this.nextMatch,s.index),this.matchStart=s.index,this.matchLength=s[0].length,this.matchText=s[0],this.nextMatch=this.formatter.formatterRegExp.lastIndex;for(var u=void 0,l=1,c=s.length;l<c;++l)if(s[l]){u=l-1;break}if(this.formatter.formatters[u].handler(this),null!=TempState.break)break}}while(o||s);null==TempState.break?this.nextMatch<this.source.length&&(this.outputText(this.output,this.nextMatch,this.source.length),this.nextMatch=this.source.length):this.output.lastChild&&this.output.lastChild.nodeType===Node.ELEMENT_NODE&&"BR"===this.output.lastChild.nodeName.toUpperCase()&&jQuery(this.output.lastChild).remove(),this.output=n,a&&(this.options=a)}},{key:"outputText",value:function(e,t,r){jQuery(e).append(document.createTextNode(this.source.substring(t,r)))}},{key:"rawArgs",value:function(){return this._rawArgs}},{key:"fullArgs",value:function(){return Scripting.parse(this.rawArgs())}},{key:"formatter",get:function(){if(!e.hasOwnProperty(this.options.profile))throw new Error('nonexistent formatter profile "'+this.options.profile+'"');return e[this.options.profile]}}],[{key:"compileFormatters",value:function(){var t=r.formatters,n=t.filter(function(e){return!Array.isArray(e.profiles)||e.profiles.includes("core")});return e={all:{formatters:t,formatterRegExp:new RegExp(t.map(function(e){return"("+e.match+")"}).join("|"),"gm")},core:{formatters:n,formatterRegExp:new RegExp(n.map(function(e){return"("+e.match+")"}).join("|"),"gm")}}}},{key:"getValue",value:function(e){var t=r.parseStoryVariable(e),n=void 0;if(null!==t){n=t.store;for(var a=t.names,i=0,o=a.length;i<o;++i){if("undefined"==typeof n[a[i]]){n=undefined;break}n=n[a[i]]}}return n}},{key:"setValue",value:function(e,t){var n=r.parseStoryVariable(e);if(null!==n){for(var a=n.names,i=a.pop(),o=n.store,s=0,u=a.length;s<u;++s){if("undefined"==typeof o[a[s]]){o=undefined;break}o=o[a[s]]}if(o!==undefined)return o[i]=t,!0}return!1}},{key:"parseStoryVariable",value:function(e){for(var t={store:"$"===e[0]?State.variables:State.temporary,names:[]},n=e,a=void 0;null!==(a=r._parseVarRegExp.exec(n));)n=n.slice(a[0].length),a[1]?t.names.push(a[1]):a[2]?t.names.push(a[2]):a[3]?t.names.push(a[3]):a[4]?t.names.push(a[4]):a[5]?t.names.push(r.getValue(a[5])):a[6]&&t.names.push(Number(a[6]));return""===n?t:null}},{key:"wikifyEval",value:function(e){var t=document.createDocumentFragment();new r(t,e);var n=t.querySelector(".error");if(null!==n)throw new Error(n.textContent.replace(/^(?:(?:Uncaught\s+)?Error:\s+)+/,""));return t}},{key:"createInternalLink",value:function(e,t,r,n){var a=jQuery(document.createElement("a"));return null!=t&&(a.attr("data-passage",t),Story.has(t)?(a.addClass("link-internal"),Config.addVisitedLinkClass&&State.hasPlayed(t)&&a.addClass("link-visited")):a.addClass("link-broken"),a.ariaClick({one:!0},function(){"function"==typeof n&&n(),Engine.play(t)})),r&&a.append(document.createTextNode(r)),e&&a.appendTo(e),a[0]}},{key:"createExternalLink",value:function(e,t,r){var n=jQuery(document.createElement("a")).attr("target","_blank").addClass("link-external").text(r).appendTo(e);return null!=t&&n.attr({href:t,tabindex:0}),n[0]}},{key:"isExternalLink",value:function(e){if(Story.has(e))return!1;var t=new RegExp("^"+Patterns.url,"gim");return t.test(e)||/[\/.?#]/.test(e)}}]),r}();return Object.defineProperties(r,{_parseVarRegExp:{value:new RegExp(["^(?:",Patterns.variableSigil,"(",Patterns.identifier,")|\\.(",Patterns.identifier,")|\\[(?:(?:\"((?:\\\\.|[^\"\\\\])+)\")|(?:'((?:\\\\.|[^'\\\\])+)')|(",Patterns.variableSigil,Patterns.identifierFirstChar,".*)|(\\d+))\\])"].join(""))},helpers:{value:{}},parse:{value:Scripting.parse},evalExpression:{value:Scripting.evalTwineScript},evalStatements:{value:Scripting.evalTwineScript},textPrimitives:{value:Patterns}}),Object.defineProperties(r.helpers,{_inlineCssLookahead:{value:new RegExp(Patterns.inlineCss,"gm")},inlineCss:{value:function(e){var t={classes:[],id:"",styles:{}},r=this._inlineCssLookahead,n=void 0;do{r.lastIndex=e.nextMatch;var a=r.exec(e.source);n=a&&a.index===e.nextMatch,n&&(a[1]?t.styles[Util.fromCssProperty(a[1])]=a[2].trim():a[3]?t.styles[Util.fromCssProperty(a[3])]=a[4].trim():a[5]?t.classes=t.classes.concat(a[5].slice(1).split(/\./)):a[6]&&(t.id=a[6].slice(1).split(/#/).pop()),e.nextMatch=r.lastIndex)}while(n);return t}},evalText:{value:function(e){var t=void 0;try{t=Scripting.evalTwineScript(e),null==t||"function"==typeof t?t=e:(t=String(t),/\[(?:object(?:\s+[^\]]+)?|native\s+code)\]/.test(t)&&(t=e))}catch(r){t=e}return t}},evalPassageId:{value:function(e){return null==e||Story.has(e)?e:r.helpers.evalText(e)}},hasBlockContext:{value:function(e){for(var t="function"==typeof window.getComputedStyle,r=e.length-1;r>=0;--r){var n=e[r];switch(n.nodeType){case Node.ELEMENT_NODE:var a=n.nodeName.toUpperCase();if("BR"===a)return!0;var i=t?window.getComputedStyle(n,null):n.currentStyle;if(i&&i.display){if("none"===i.display)continue;return"block"===i.display}switch(a){case"ADDRESS":case"ARTICLE":case"ASIDE":case"BLOCKQUOTE":case"CENTER":case"DIV":case"DL":case"FIGURE":case"FOOTER":case"FORM":case"H1":case"H2":case"H3":case"H4":case"H5":case"H6":case"HEADER":case"HR":case"MAIN":case"NAV":case"OL":case"P":case"PRE":case"SECTION":case"TABLE":case"UL":return!0}return!1;case Node.COMMENT_NODE:continue;default:return!1}}return!0}},parseSquareBracketedMarkup:{value:function(e){function t(){return d>=e.source.length?u:e.source[d++]}function r(){return d>=e.source.length?u:e.source[d]}function n(t){return t<1||d+t>=e.source.length?u:e.source[d+t]}function a(){return{error:String.format.apply(String,arguments),pos:d}}function i(){c=d}function o(t){var r=e.source.slice(c,d).trim();if(""===r)throw new Error("malformed wiki "+(h?"link":"image")+", empty "+t+" component");"link"===t&&"~"===r[0]?(l.forceInternal=!0,l.link=r.slice(1)):l[t]=r,c=d}function s(e){++d;e:for(;;){switch(r()){case"\\":++d;var t=r();if(t!==u&&"\n"!==t)break;case u:case"\n":return u;case e:break e}++d}return d}var u=-1,l={},c=e.matchStart,d=c+1,p=void 0,f=void 0,h=void 0,g=void 0;if(g=r(),"["===g)h=l.isLink=!0;else{switch(h=!1,g){case"<":l.align="left",++d;break;case">":l.align="right",++d}if(!/^[Ii][Mm][Gg]$/.test(e.source.slice(d,d+3)))return a("malformed square-bracketed wiki markup");d+=3,l.isImage=!0}if("["!==t())return a("malformed wiki {0}",h?"link":"image");p=1,f=0,i();try{e:for(;;){switch(g=r()){case u:case"\n":return a("unterminated wiki {0}",h?"link":"image");case'"':if(s(g)===u)return a("unterminated double quoted string in wiki {0}",h?"link":"image");break;case"'":if((4===f||3===f&&h)&&s(g)===u)return a("unterminated single quoted string in wiki {0}",h?"link":"image");break;case"|":0===f&&(o(h?"text":"title"),++c,f=1);break;case"-":0===f&&">"===n(1)&&(o(h?"text":"title"),++d,c+=2,f=1);break;case"<":0===f&&"-"===n(1)&&(o(h?"link":"source"),++d,c+=2,f=2);break;case"[":if(f===-1)return a("unexpected left square bracket '['");++p,1===p&&(i(),++c);break;case"]":if(--p,0===p){switch(f){case 0:case 1:o(h?"link":"source"),f=3;break;case 2:o(h?"text":"title"),f=3;break;case 3:h?(o("setter"),f=-1):(o("link"),f=4);break;case 4:o("setter"),f=-1}if(++d,"]"===r()){++d;break e}--d}}++d}}catch(e){return a(e.message)}return l.pos=d,l}}}),Object.defineProperty(r,"formatters",{value:[{name:"macro",profiles:["core"],match:"<<",lookahead:new RegExp("<<(\\/?"+Patterns.macroName+")(?:\\s*)((?:(?:\"(?:\\\\.|[^\"\\\\])*\")|(?:'(?:\\\\.|[^'\\\\])*')|(?:\\[(?:[<>]?[Ii][Mm][Gg])?\\[[^\\r\\n]*?\\]\\]+)|[^>]|(?:>(?!>)))*)>>","gm"),argsPattern:["(``)","`((?:\\\\.|[^`\\\\])+)`","(\"\"|'')",'("(?:\\\\.|[^"\\\\])+")',"('(?:\\\\.|[^'\\\\])+')","(\\[(?:[<>]?[Ii][Mm][Gg])?\\[[^\\r\\n]*?\\]\\]+)","([^`\"'\\s]+)","(`|\"|')"].join("|"),working:{source:"",name:"",arguments:"",index:0},context:null,handler:function(e){var t=this.lookahead.lastIndex=e.matchStart;if(this.parseTag(e)){var r=e.nextMatch,n=this.working.source,a=this.working.name,i=this.working.arguments,o=void 0;try{if(o=Macro.get(a),!o){if(Macro.tags.has(a)){var s=Macro.tags.get(a);return throwError(e.output,"child tag <<"+a+">> was found outside of a call to its parent macro"+(1===s.length?"":"s")+" <<"+s.join(">>, <<")+">>",e.source.slice(t,e.nextMatch))}return throwError(e.output,"macro <<"+a+">> does not exist",e.source.slice(t,e.nextMatch))}var u=null;if(o.hasOwnProperty("tags")&&(u=this.parseBody(e,o),!u))return e.nextMatch=r,throwError(e.output,"cannot find a closing tag for macro <<"+a+">>",e.source.slice(t,e.nextMatch)+"…");if("function"!=typeof o.handler)return throwError(e.output,"macro <<"+a+">> handler function "+(o.hasOwnProperty("handler")?"is not a function":"does not exist"),e.source.slice(t,e.nextMatch));var l=u?u[0].args:this.createArgs(i,o.hasOwnProperty("skipArgs")&&!!o.skipArgs||o.hasOwnProperty("skipArg0")&&!!o.skipArg0);if(o.hasOwnProperty("_MACRO_API")){this.context=new MacroContext({parent:this.context,macro:o,name:a,args:l,payload:u,parser:e,source:n});try{o.handler.call(this.context)}finally{this.context=this.context.parent}}else{var c=e._rawArgs;e._rawArgs=i,o.handler(e.output,a,l,e,u),e._rawArgs=c}}catch(r){return throwError(e.output,"cannot execute "+(o&&o.isWidget?"widget":"macro")+" <<"+a+">>: "+r.message,e.source.slice(t,e.nextMatch))}finally{this.working.source="",this.working.name="",this.working.arguments="",this.working.index=0}}else e.outputText(e.output,e.matchStart,e.nextMatch)},parseTag:function(e){var t=this.lookahead.exec(e.source);return!(!t||t.index!==e.matchStart||!t[1])&&(e.nextMatch=this.lookahead.lastIndex,this.working.source=e.source.slice(t.index,this.lookahead.lastIndex),this.working.name=t[1],this.working.arguments=t[2],this.working.index=t.index,!0)},parseBody:function(e,t){for(var r=this.working.name,n="/"+r,a="end"+r,i=!!Array.isArray(t.tags)&&t.tags,o=[],s=t.hasOwnProperty("skipArgs")&&t.skipArgs,u=t.hasOwnProperty("skipArg0")&&t.skipArg0,l=-1,c=1,d=this.working.source,p=this.working.name,f=this.working.arguments,h=e.nextMatch;(e.matchStart=e.source.indexOf(this.match,e.nextMatch))!==-1;)if(this.parseTag(e)){var g=this.working.source,m=this.working.name,v=this.working.arguments,y=this.working.index,b=e.nextMatch;switch(m){case r:++c;break;case a:case n:--c;break;default:if(1===c&&i)for(var w=0,k=i.length;w<k;++w)m===i[w]&&(o.push({source:d,name:p,arguments:f,args:this.createArgs(f,s||0===o.length&&u),contents:e.source.slice(h,y)}),d=g,p=m,f=v,h=b)}if(0===c){o.push({source:d,name:p,arguments:f,args:this.createArgs(f,s||0===o.length&&u),contents:e.source.slice(h,y)}),l=b;break}}else this.lookahead.lastIndex=e.nextMatch=e.matchStart+this.match.length;return l!==-1?(e.nextMatch=l,o):null},createArgs:function(e,t){var r=t?[]:this.parseArgs(e);return Object.defineProperties(r,{raw:{value:e},full:{value:Scripting.parse(e)}}),r},parseArgs:function(e){for(var t=new RegExp(this.argsPattern,"gm"),n=[],a=new RegExp("^"+Patterns.variable),i=void 0;null!==(i=t.exec(e));){var o=void 0;if(i[1])o=undefined;else if(i[2]){o=i[2];try{o=Scripting.evalTwineScript(o)}catch(e){throw new Error('unable to parse macro argument "'+o+'": '+e.message)}}else if(i[3])o="";else if(i[4]){o=i[4];try{o=Scripting.evalJavaScript(o)}catch(e){throw new Error("unable to parse macro argument '"+o+"': "+e.message)}}else if(i[5]){o=i[5];try{o=Scripting.evalJavaScript(o)}catch(e){throw new Error('unable to parse macro argument "'+o+'": '+e.message)}}else if(i[6]){o=i[6];var s=r.helpers.parseSquareBracketedMarkup({source:o,matchStart:0});if(s.hasOwnProperty("error"))throw new Error('unable to parse macro argument "'+o+'": '+s.error);if(s.pos<o.length)throw new Error('unable to parse macro argument "'+o+'": unexpected character(s) "'+o.slice(s.pos)+'" (pos: '+s.pos+")");s.isLink?(o={isLink:!0},o.count=s.hasOwnProperty("text")?2:1,o.link=r.helpers.evalPassageId(s.link),o.text=s.hasOwnProperty("text")?r.helpers.evalText(s.text):o.link,o.external=!s.forceInternal&&r.isExternalLink(o.link),o.setFn=s.hasOwnProperty("setter")?function(e){return function(){return Scripting.evalJavaScript(e)}}(Scripting.parse(s.setter)):null):s.isImage&&(o=function(e){var t={source:e,isImage:!0};if("data:"!==e.slice(0,5)&&Story.has(e)){var r=Story.get(e);r.tags.includes("Twine.image")&&(t.source=r.text,t.passage=r.title)}return t}(r.helpers.evalPassageId(s.source)),s.hasOwnProperty("align")&&(o.align=s.align),s.hasOwnProperty("title")&&(o.title=r.helpers.evalText(s.title)),s.hasOwnProperty("link")&&(o.link=r.helpers.evalPassageId(s.link),o.external=!s.forceInternal&&r.isExternalLink(o.link)),o.setFn=s.hasOwnProperty("setter")?function(e){return function(){return Scripting.evalJavaScript(e)}}(Scripting.parse(s.setter)):null)}else if(i[7])if(o=i[7],a.test(o))o=r.getValue(o);else if(/^(?:settings|setup)[.[]/.test(o))try{o=Scripting.evalTwineScript(o)}catch(e){throw new Error('unable to parse macro argument "'+o+'": '+e.message)}else if("null"===o)o=null;else if("undefined"===o)o=undefined;else if("true"===o)o=!0;else if("false"===o)o=!1;else{var u=Number(o);Number.isNaN(u)||(o=u)}else if(i[8]){var l=void 0;switch(i[8]){case"`":l="backtick expression";break;case'"':l="double quoted string";break;case"'":l="single quoted string"}throw new Error("unterminated "+l+" in macro argument string")}n.push(o)}return n}},{name:"prettyLink",profiles:["core"],match:"\\[\\[[^[]",handler:function(e){var t=r.helpers.parseSquareBracketedMarkup(e);if(t.hasOwnProperty("error"))return void e.outputText(e.output,e.matchStart,e.nextMatch);e.nextMatch=t.pos;var n=r.helpers.evalPassageId(t.link),a=t.hasOwnProperty("text")?r.helpers.evalText(t.text):n,i=t.hasOwnProperty("setter")?function(e){return function(){return Scripting.evalJavaScript(e)}}(Scripting.parse(t.setter)):null,o=(Config.debug?new DebugView(e.output,"wiki-link","[[link]]",e.source.slice(e.matchStart,e.nextMatch)):e).output;t.forceInternal||!r.isExternalLink(n)?r.createInternalLink(o,n,a,i):r.createExternalLink(o,n,a)}},{name:"urlLink",profiles:["core"],match:Patterns.url,handler:function(e){e.outputText(r.createExternalLink(e.output,e.matchText),e.matchStart,e.nextMatch)}},{name:"image",profiles:["core"],match:"\\[[<>]?[Ii][Mm][Gg]\\[",handler:function(e){var t=r.helpers.parseSquareBracketedMarkup(e);if(t.hasOwnProperty("error"))return void e.outputText(e.output,e.matchStart,e.nextMatch);e.nextMatch=t.pos;var n=void 0;Config.debug&&(n=new DebugView(e.output,"wiki-image",t.hasOwnProperty("link")?"[img[][link]]":"[img[]]",e.source.slice(e.matchStart,e.nextMatch)),n.modes({block:!0}));var a=t.hasOwnProperty("setter")?function(e){return function(){return Scripting.evalJavaScript(e)}}(Scripting.parse(t.setter)):null,i=(Config.debug?n:e).output,o=void 0;if(t.hasOwnProperty("link")){var s=r.helpers.evalPassageId(t.link);i=t.forceInternal||!r.isExternalLink(s)?r.createInternalLink(i,s,null,a):r.createExternalLink(i,s),i.classList.add("link-image")}if(i=jQuery(document.createElement("img")).appendTo(i).get(0),o=r.helpers.evalPassageId(t.source),"data:"!==o.slice(0,5)&&Story.has(o)){var u=Story.get(o);u.tags.includes("Twine.image")&&(i.setAttribute("data-passage",u.title),o=u.text)}i.src=o,t.hasOwnProperty("title")&&(i.title=r.helpers.evalText(t.title)),t.hasOwnProperty("align")&&(i.align=t.align)}},{name:"monospacedByBlock",profiles:["block"],match:"^\\{\\{\\{\\n",lookahead:/^\{\{\{\n((?:^[^\n]*\n)+?)(^\}\}\}$\n?)/gm,handler:function(e){this.lookahead.lastIndex=e.matchStart;var t=this.lookahead.exec(e.source);t&&t.index===e.matchStart&&(jQuery(document.createElement("pre")).text(t[1]).appendTo(e.output),e.nextMatch=this.lookahead.lastIndex)}},{name:"formatByChar",profiles:["core"],match:"''|//|__|\\^\\^|~~|==|\\{\\{\\{",handler:function(e){switch(e.matchText){case"''":e.subWikify(jQuery(document.createElement("strong")).appendTo(e.output).get(0),"''");break;case"//":e.subWikify(jQuery(document.createElement("em")).appendTo(e.output).get(0),"//");break;case"__":e.subWikify(jQuery(document.createElement("u")).appendTo(e.output).get(0),"__");break;case"^^":e.subWikify(jQuery(document.createElement("sup")).appendTo(e.output).get(0),"\\^\\^");break;case"~~":e.subWikify(jQuery(document.createElement("sub")).appendTo(e.output).get(0),"~~");break;case"==":e.subWikify(jQuery(document.createElement("s")).appendTo(e.output).get(0),"==");break;case"{{{":var t=/\{\{\{((?:.|\n)*?)\}\}\}/gm;t.lastIndex=e.matchStart;var r=t.exec(e.source);r&&r.index===e.matchStart&&(jQuery(document.createElement("code")).text(r[1]).appendTo(e.output),e.nextMatch=t.lastIndex)}}},{name:"customStyle",profiles:["core"],match:"@@",terminator:"@@",blockRegExp:/\s*\n/gm,handler:function(e){var t=r.helpers.inlineCss(e);this.blockRegExp.lastIndex=e.nextMatch;var n=this.blockRegExp.exec(e.source),a=n&&n.index===e.nextMatch,i=jQuery(document.createElement(a?"div":"span")).appendTo(e.output);0===t.classes.length&&""===t.id&&0===Object.keys(t.styles).length?i.addClass("marked"):(t.classes.forEach(function(e){return i.addClass(e)}),""!==t.id&&i.attr("id",t.id),i.css(t.styles)),a?(e.nextMatch+=n[0].length,e.subWikify(i[0],"\\n?"+this.terminator)):e.subWikify(i[0],this.terminator)}},{name:"verbatimText",profiles:["core"],match:'"{3}|<nowiki>',lookahead:/(?:"{3}((?:.|\n)*?)"{3})|(?:<nowiki>((?:.|\n)*?)<\/nowiki>)/gm,handler:function(e){this.lookahead.lastIndex=e.matchStart;var t=this.lookahead.exec(e.source);t&&t.index===e.matchStart&&(jQuery(document.createElement("span")).addClass("verbatim").text(t[1]||t[2]).appendTo(e.output),e.nextMatch=this.lookahead.lastIndex)}},{name:"horizontalRule",profiles:["core"],match:"^----+$\\n?|<hr\\s*/?>\\n?",handler:function(e){jQuery(document.createElement("hr")).appendTo(e.output)}},{name:"emdash",profiles:["core"],match:"--",handler:function(e){jQuery(document.createTextNode("—")).appendTo(e.output)}},{name:"doubleDollarSign",profiles:["core"],match:"\\${2}",handler:function(e){jQuery(document.createTextNode("$")).appendTo(e.output)}},{name:"nakedVariable",profiles:["core"],match:Patterns.variable+"(?:(?:\\."+Patterns.identifier+")|(?:\\[\\d+\\])|(?:\\[\"(?:\\\\.|[^\"\\\\])+\"\\])|(?:\\['(?:\\\\.|[^'\\\\])+'\\])|(?:\\["+Patterns.variable+"\\]))*",handler:function(e){var t=toStringOrDefault(r.getValue(e.matchText),null);null===t?jQuery(document.createTextNode(e.matchText)).appendTo(e.output):new r((Config.debug?new DebugView(e.output,"variable",e.matchText,e.matchText):e).output,t)}},{name:"heading",profiles:["block"],match:"^!{1,6}",terminator:"\\n",handler:function(e){return r.helpers.hasBlockContext(e.output.childNodes)?void e.subWikify(jQuery(document.createElement("h"+e.matchLength)).appendTo(e.output).get(0),this.terminator):void jQuery(e.output).append(document.createTextNode(e.matchText))}},{name:"table",profiles:["block"],match:"^\\|(?:[^\\n]*)\\|(?:[fhck]?)$",lookahead:/^\|([^\n]*)\|([fhck]?)$/gm,rowTerminator:"\\|(?:[cfhk]?)$\\n?",cellPattern:"(?:\\|([^\\n\\|]*)\\|)|(\\|[cfhk]?$\\n?)",cellTerminator:"(?:\\u0020*)\\|",rowTypes:{c:"caption",f:"tfoot",h:"thead","":"tbody"},handler:function(e){if(!r.helpers.hasBlockContext(e.output.childNodes))return void jQuery(e.output).append(document.createTextNode(e.matchText));var t=jQuery(document.createElement("table")).appendTo(e.output).get(0),n=[],a=null,i=null,o=0,s=void 0;e.nextMatch=e.matchStart;do{this.lookahead.lastIndex=e.nextMatch;var u=this.lookahead.exec(e.source);if(s=u&&u.index===e.nextMatch){var l=u[2];"k"===l?(t.className=u[1],e.nextMatch+=u[0].length+1):(l!==a&&(a=l,i=jQuery(document.createElement(this.rowTypes[l])).appendTo(t)),"c"===a?(i.css("caption-side",0===o?"top":"bottom"),e.nextMatch+=1,e.subWikify(i[0],this.rowTerminator)):this.rowHandler(e,jQuery(document.createElement("tr")).appendTo(i).get(0),n),++o)}}while(s)},rowHandler:function(e,t,n){var a=this,i=new RegExp(this.cellPattern,"gm"),o=0,s=1,u=void 0;do{i.lastIndex=e.nextMatch;var l=i.exec(e.source);if(u=l&&l.index===e.nextMatch){if("~"===l[1]){var c=n[o];c&&(++c.rowCount,c.$element.attr("rowspan",c.rowCount).css("vertical-align","middle")),e.nextMatch=l.index+l[0].length-1}else if(">"===l[1])++s,e.nextMatch=l.index+l[0].length-1;else{if(l[2]){e.nextMatch=l.index+l[0].length;break}!function(){++e.nextMatch;for(var i=r.helpers.inlineCss(e),u=!1,l=!1,c=void 0;" "===e.source.substr(e.nextMatch,1);)u=!0,++e.nextMatch;"!"===e.source.substr(e.nextMatch,1)?(c=jQuery(document.createElement("th")).appendTo(t),++e.nextMatch):c=jQuery(document.createElement("td")).appendTo(t),n[o]={rowCount:1,$element:c},s>1&&(c.attr("colspan",s),s=1),e.subWikify(c[0],a.cellTerminator)," "===e.matchText.substr(e.matchText.length-2,1)&&(l=!0),i.classes.forEach(function(e){return c.addClass(e)}),""!==i.id&&c.attr("id",i.id),u&&l?i.styles["text-align"]="center":u?i.styles["text-align"]="right":l&&(i.styles["text-align"]="left"),c.css(i.styles),e.nextMatch=e.nextMatch-1}()}++o}}while(u)}},{name:"list",profiles:["block"],match:"^(?:(?:\\*+)|(?:#+))",lookahead:/^(?:(\*+)|(#+))/gm,terminator:"\\n",handler:function(e){if(!r.helpers.hasBlockContext(e.output.childNodes))return void jQuery(e.output).append(document.createTextNode(e.matchText));e.nextMatch=e.matchStart;var t=[e.output],n=null,a=0,i=void 0,o=void 0;do{this.lookahead.lastIndex=e.nextMatch;var s=this.lookahead.exec(e.source);if(i=s&&s.index===e.nextMatch){var u=s[2]?"ol":"ul",l=s[0].length;if(e.nextMatch+=s[0].length,l>a)for(o=a;o<l;++o)t.push(jQuery(document.createElement(u)).appendTo(t[t.length-1]).get(0));else if(l<a)for(o=a;o>l;--o)t.pop();else l===a&&u!==n&&(t.pop(),t.push(jQuery(document.createElement(u)).appendTo(t[t.length-1]).get(0)));a=l,n=u,e.subWikify(jQuery(document.createElement("li")).appendTo(t[t.length-1]).get(0),this.terminator)}}while(i)}},{name:"quoteByBlock",profiles:["block"],match:"^<<<\\n",terminator:"^<<<\\n",handler:function(e){return r.helpers.hasBlockContext(e.output.childNodes)?void e.subWikify(jQuery(document.createElement("blockquote")).appendTo(e.output).get(0),this.terminator):void jQuery(e.output).append(document.createTextNode(e.matchText))}},{name:"quoteByLine",profiles:["block"],match:"^>+",lookahead:/^>+/gm,terminator:"\\n",handler:function(e){if(!r.helpers.hasBlockContext(e.output.childNodes))return void jQuery(e.output).append(document.createTextNode(e.matchText));var t=[e.output],n=0,a=e.matchLength,i=void 0,o=void 0;do{if(a>n)for(o=n;o<a;++o)t.push(jQuery(document.createElement("blockquote")).appendTo(t[t.length-1]).get(0));else if(a<n)for(o=n;o>a;--o)t.pop();n=a,e.subWikify(t[t.length-1],this.terminator),jQuery(document.createElement("br")).appendTo(t[t.length-1]),this.lookahead.lastIndex=e.nextMatch;var s=this.lookahead.exec(e.source);i=s&&s.index===e.nextMatch,i&&(a=s[0].length,e.nextMatch+=s[0].length)}while(i)}},{name:"html",profiles:["core"],match:"<[Hh][Tt][Mm][Ll]>",lookahead:/<[Hh][Tt][Mm][Ll]>((?:.|\n)*?)<\/[Hh][Tt][Mm][Ll]>/gm,handler:function(e){this.lookahead.lastIndex=e.matchStart;var t=this.lookahead.exec(e.source);t&&t.index===e.matchStart&&(e.nextMatch=this.lookahead.lastIndex,jQuery(document.createDocumentFragment()).append(t[1]).appendTo(e.output))}},{name:"commentByBlock",profiles:["core"],match:"(?:/(?:%|\\*))|(?:<!--)",lookahead:/(?:\/(%|\*)(?:(?:.|\n)*?)\1\/)|(?:<!--(?:(?:.|\n)*?)-->)/gm,handler:function(e){this.lookahead.lastIndex=e.matchStart;var t=this.lookahead.exec(e.source);t&&t.index===e.matchStart&&(e.nextMatch=this.lookahead.lastIndex)}},{name:"lineContinuation",profiles:["core"],match:"\\\\"+Patterns.space+"*?(?:\\n|$)|(?:^|\\n)"+Patterns.space+"*?\\\\",handler:function(e){e.nextMatch=e.matchStart+e.matchLength}},{name:"lineBreak",profiles:["core"],match:"\\n|<br\\s*/?>",handler:function(e){e.options.nobr||jQuery(document.createElement("br")).appendTo(e.output)}},{name:"htmlCharacterReference",profiles:["core"],match:"(?:(?:&#?[0-9A-Za-z]{2,8};|.)(?:&#?(?:x0*(?:3[0-6][0-9A-Fa-f]|1D[C-Fc-f][0-9A-Fa-f]|20[D-Fd-f][0-9A-Fa-f]|FE2[0-9A-Fa-f])|0*(?:76[89]|7[7-9][0-9]|8[0-7][0-9]|761[6-9]|76[2-7][0-9]|84[0-3][0-9]|844[0-7]|6505[6-9]|6506[0-9]|6507[0-1]));)+|&#?[0-9A-Za-z]{2,8};)",handler:function(e){jQuery(document.createDocumentFragment()).append(e.matchText).appendTo(e.output)}},{name:"htmlTag",profiles:["core"],match:"<\\w+(?:\\s+[^\\u0000-\\u001F\\u007F-\\u009F\\s\"'>\\/=]+(?:\\s*=\\s*(?:\"[^\"]*?\"|'[^']*?'|[^\\s\"'=<>`]+))?)*\\s*\\/?>",tagPattern:"<(\\w+)",voidElements:["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"],nobrElements:["colgroup","datalist","dl","figure","ol","optgroup","select","table","tbody","tfoot","thead","tr","ul"],handler:function(e){var t=new RegExp(this.tagPattern).exec(e.matchText),r=t&&t[1],n=r&&r.toLowerCase();if(n){var a=this.voidElements.includes(n),i=this.nobrElements.includes(n),o=void 0,s=void 0;if(!a){o="<\\/"+n+"\\s*>";var u=new RegExp(o,"gim");u.lastIndex=e.matchStart,s=u.exec(e.source)}if(a||s){var l=e.output,c=document.createElement(e.output.tagName),d=void 0;for(c.innerHTML=e.matchText;c.firstChild;)c=c.firstChild;c.hasAttribute("data-passage")&&(this.processDataAttributes(c),Config.debug&&(d=new DebugView(e.output,"html-"+n,n,e.matchText),d.modes({block:"img"===n,nonvoid:s}),l=d.output)),s&&(e.subWikify(c,o,{ignoreTerminatorCase:!0,nobr:i}),d&&jQuery(c).find(".debug.block").length>0&&d.modes({block:!0})),l.appendChild(c)}else throwError(e.output,'HTML tag "'+r+'" is not closed',e.matchText+"…")}},processDataAttributes:function(e){var t=e.getAttribute("data-passage");if(null!=t){var n=r.helpers.evalPassageId(t);n!==t&&(t=n,e.setAttribute("data-passage",n)),""!==t&&("IMG"===e.tagName.toUpperCase()?"data:"!==t.slice(0,5)&&Story.has(t)&&(t=Story.get(t),t.tags.includes("Twine.image")&&(e.src=t.text.trim())):!function(){var r=e.getAttribute("data-setter"),n=void 0;null!=r&&(r=String(r).trim(),""!==r&&(n=function(e){return function(){return Scripting.evalJavaScript(e)}}(Scripting.parse(r)))),Story.has(t)?(e.classList.add("link-internal"),Config.addVisitedLinkClass&&State.hasPlayed(t)&&e.classList.add("link-visited")):e.classList.add("link-broken"),jQuery(e).ariaClick({one:!0},function(){"function"==typeof n&&n.call(this),Engine.play(t)})}())}}}]}),r}(),Macro=function(){function e(t,r,a){if(Array.isArray(t))return void t.forEach(function(t){return e(t,r,a)});if(!p.test(t))throw new Error('invalid macro name "'+t+'"');if(n(t))throw new Error("cannot clobber existing macro <<"+t+">>");if(u(t))throw new Error("cannot clobber child tag <<"+t+">> of parent macro"+(1===d[t].length?"":"s")+" <<"+d[t].join(">>, <<")+">>");try{if("object"===("undefined"==typeof r?"undefined":_typeof(r)))c[t]=a?clone(r):r;else{if(!n(r))throw new Error("cannot create alias of nonexistent macro <<"+r+">>");c[t]=a?clone(c[r]):c[r]}Object.defineProperty(c,t,{writable:!1}),c[t]._MACRO_API=!0}catch(e){throw"TypeError"===e.name?new Error("cannot clobber protected macro <<"+t+">>"):new Error("unknown error when attempting to add macro <<"+t+">>: ["+e.name+"] "+e.message)}if(c[t].hasOwnProperty("tags"))if(null==c[t].tags)o(t);else{if(!Array.isArray(c[t].tags))throw new Error('bad value for "tags" property of macro <<'+t+">>");o(t,c[t].tags)}}function t(e){if(Array.isArray(e))return void e.forEach(function(e){return t(e)});if(n(e)){c[e].hasOwnProperty("tags")&&s(e);try{Object.defineProperty(c,e,{writable:!0}),delete c[e]}catch(t){throw new Error("unknown error removing macro <<"+e+">>: "+t.message)}}else if(u(e))throw new Error("cannot remove child tag <<"+e+">> of parent macro <<"+d[e]+">>")}function r(){return 0===Object.keys(c).length}function n(e){return c.hasOwnProperty(e)}function a(e){var t=null;return n(e)&&"function"==typeof c[e].handler?t=c[e]:macros.hasOwnProperty(e)&&"function"==typeof macros[e].handler&&(t=macros[e]),t}function i(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"init";Object.keys(c).forEach(function(t){"function"==typeof c[t][e]&&c[t][e](t)}),Object.keys(macros).forEach(function(t){"function"==typeof macros[t][e]&¯os[t][e](t)})}function o(e,t){if(!e)throw new Error("no parent specified");for(var r=["/"+e,"end"+e],a=[].concat(r,Array.isArray(t)?t:[]),i=0;i<a.length;++i){var o=a[i];if(n(o))throw new Error("cannot register tag for an existing macro");u(o)?d[o].includes(e)||(d[o].push(e),d[o].sort()):d[o]=[e]}}function s(e){if(!e)throw new Error("no parent specified");Object.keys(d).forEach(function(t){var r=d[t].indexOf(e);r!==-1&&(1===d[t].length?delete d[t]:d[t].splice(r,1))})}function u(e){return d.hasOwnProperty(e)}function l(e){return u(e)?d[e]:null}var c={},d={},p=new RegExp("^(?:"+Patterns.macroName+")$");return Object.freeze(Object.defineProperties({},{add:{value:e},delete:{value:t},isEmpty:{value:r},has:{value:n},get:{value:a},init:{value:i},tags:{value:Object.freeze(Object.defineProperties({},{register:{value:o},unregister:{value:s},has:{value:u},get:{value:l}}))},evalStatements:{value:function(){return Scripting.evalJavaScript.apply(Scripting,arguments)}}}))}(),MacroContext=function(){var e=function(){function e(t){_classCallCheck(this,e);var r=Object.assign({parent:null,macro:null,name:"",args:null,payload:null,parser:null,source:""},t);if(null===r.macro||""===r.name||null===r.parser)throw new TypeError("context object missing required properties");Object.defineProperties(this,{parent:{value:r.parent},self:{value:r.macro},name:{value:r.name},args:{value:r.args},payload:{value:r.payload},source:{value:r.source},parser:{ +value:r.parser},_output:{value:r.parser.output},_shadows:{writable:!0,value:null},_debugView:{writable:!0,value:null},_debugViewEnabled:{writable:!0,value:Config.debug}})}return _createClass(e,[{key:"contextHas",value:function(e){for(var t=this;null!==(t=t.parent);)if(e(t))return!0;return!1}},{key:"contextSelect",value:function(e){for(var t=this;null!==(t=t.parent);)if(e(t))return t;return null}},{key:"contextSelectAll",value:function(e){for(var t=[],r=this;null!==(r=r.parent);)e(r)&&t.push(r);return t}},{key:"addShadow",value:function(){var e=this;this._shadows||(this._shadows=new Set);for(var t=new RegExp("^"+Patterns.variable+"$"),r=arguments.length,n=Array(r),a=0;a<r;a++)n[a]=arguments[a];n.flatten().forEach(function(r){if("string"!=typeof r)throw new TypeError("variable name must be a string; type: "+("undefined"==typeof r?"undefined":_typeof(r)));if(!t.test(r))throw new Error('invalid variable name "'+r+'"');e._shadows.add(r)})}},{key:"createShadowWrapper",value:function(e,t,r){var n=void 0;return"function"==typeof e&&(n={},this.shadowView.forEach(function(e){var t=e.slice(1),r="$"===e[0]?State.variables:State.temporary;n[e]=r[t]})),function(){for(var a=this,i=arguments.length,o=Array(i),s=0;s<i;s++)o[s]=arguments[s];"function"==typeof r&&r.apply(this,o),"function"==typeof e&&!function(){var t=Object.keys(n),r=t.length>0?{}:null;try{t.forEach(function(e){var t=e.slice(1),a="$"===e[0]?State.variables:State.temporary;a.hasOwnProperty(t)&&(r[t]=a[t]),a[t]=n[e]}),e.apply(a,o)}finally{t.forEach(function(e){var t=e.slice(1),a="$"===e[0]?State.variables:State.temporary;n[e]=a[t],r.hasOwnProperty(t)?a[t]=r[t]:delete a[t]})}}(),"function"==typeof t&&t.apply(this,o)}}},{key:"createDebugView",value:function(e,t){return this._debugView=new DebugView(this._output,"macro",e?e:this.name,t?t:this.source),null!==this.payload&&this.payload.length>0&&this._debugView.modes({nonvoid:!0}),this._debugViewEnabled=!0,this._debugView}},{key:"removeDebugView",value:function(){null!==this._debugView&&(this._debugView.remove(),this._debugView=null),this._debugViewEnabled=!1}},{key:"error",value:function(e,t){return throwError(this._output,"<<"+this.name+">>: "+e,t?t:this.source)}},{key:"output",get:function(){return this._debugViewEnabled?this.debugView.output:this._output}},{key:"shadows",get:function(){return[].concat(_toConsumableArray(this._shadows))}},{key:"shadowView",get:function(){var e=new Set;return this.contextSelectAll(function(e){return e._shadows}).forEach(function(t){return t._shadows.forEach(function(t){return e.add(t)})}),[].concat(_toConsumableArray(e))}},{key:"debugView",get:function(){return this._debugViewEnabled?null!==this._debugView?this._debugView:this.createDebugView():null}}]),e}();return e}();!function(){Macro.add("capture",{skipArgs:!0,tags:null,handler:function(){if(0===this.args.raw.length)return this.error("no story/temporary variable list specified");var e={};try{for(var t=new RegExp("("+Patterns.variable+")","g"),r=void 0;null!==(r=t.exec(this.args.raw));){var n=r[1],a=n.slice(1),i="$"===n[0]?State.variables:State.temporary;i.hasOwnProperty(a)&&(e[a]=i[a]),this.addShadow(n)}new Wikifier(this.output,this.payload[0].contents)}finally{this.shadows.forEach(function(t){var r=t.slice(1),n="$"===t[0]?State.variables:State.temporary;e.hasOwnProperty(r)?n[r]=e[r]:delete n[r]})}}}),Macro.add("set",{skipArgs:!0,handler:function(){if(0===this.args.full.length)return this.error("no expression specified");try{Scripting.evalJavaScript(this.args.full)}catch(e){return this.error("bad evaluation: "+("object"===("undefined"==typeof e?"undefined":_typeof(e))?e.message:e))}Config.debug&&this.debugView.modes({hidden:!0})}}),Macro.add("unset",{skipArgs:!0,handler:function(){if(0===this.args.full.length)return this.error("no story/temporary variable list specified");for(var e=new RegExp("State\\.(variables|temporary)\\.("+Patterns.identifier+")","g"),t=void 0;null!==(t=e.exec(this.args.full));){var r=State[t[1]],n=t[2];r.hasOwnProperty(n)&&delete r[n]}Config.debug&&this.debugView.modes({hidden:!0})}}),Macro.add("remember",{skipArgs:!0,handler:function(){if(0===this.args.full.length)return this.error("no expression specified");try{Scripting.evalJavaScript(this.args.full)}catch(e){return this.error("bad evaluation: "+("object"===("undefined"==typeof e?"undefined":_typeof(e))?e.message:e))}for(var e=storage.get("remember")||{},t=new RegExp("State\\.variables\\.("+Patterns.identifier+")","g"),r=void 0;null!==(r=t.exec(this.args.full));){var n=r[1];e[n]=State.variables[n]}return storage.set("remember",e)?void(Config.debug&&this.debugView.modes({hidden:!0})):this.error("unknown error, cannot remember: "+this.args.raw)},init:function(){var e=storage.get("remember");e&&Object.keys(e).forEach(function(t){return State.variables[t]=e[t]})}}),Macro.add("forget",{skipArgs:!0,handler:function(){if(0===this.args.full.length)return this.error("no story variable list specified");for(var e=storage.get("remember"),t=new RegExp("State\\.variables\\.("+Patterns.identifier+")","g"),r=void 0,n=!1;null!==(r=t.exec(this.args.full));){var a=r[1];State.variables.hasOwnProperty(a)&&delete State.variables[a],e&&e.hasOwnProperty(a)&&(n=!0,delete e[a])}return n&&!storage.set("remember",e)?this.error("unknown error, cannot update remember store"):void(Config.debug&&this.debugView.modes({hidden:!0}))}}),Macro.add("run","set"),Macro.add("script",{skipArgs:!0,tags:null,handler:function(){var e=document.createDocumentFragment();try{Scripting.evalJavaScript(this.payload[0].contents,e),Config.debug&&this.createDebugView(this.name,this.source+this.payload[0].contents+"<</"+this.name+">>")}catch(e){return this.error("bad evaluation: "+("object"===("undefined"==typeof e?"undefined":_typeof(e))?e.message:e),this.source+this.payload[0].contents+"<</"+this.name+">>")}e.hasChildNodes()&&this.output.appendChild(e)}}),Macro.add("display",{handler:function(){if(0===this.args.length)return this.error("no passage specified");var e=void 0;if(e="object"===_typeof(this.args[0])?this.args[0].link:this.args[0],!Story.has(e))return this.error('passage "'+e+'" does not exist');Config.debug&&this.debugView.modes({block:!0}),e=Story.get(e);var t=void 0;t=this.args[1]?jQuery(document.createElement(this.args[1])).addClass(e.domId+" macro-"+this.name).attr("data-passage",e.title).appendTo(this.output):jQuery(this.output),t.wiki(e.processText())}}),Macro.add("nobr",{skipArgs:!0,tags:null,handler:function(){new Wikifier(this.output,this.payload[0].contents.replace(/^\n+|\n+$/g,"").replace(/\n+/g," "))}}),Macro.add(["print","=","-"],{skipArgs:!0,handler:function(){if(0===this.args.full.length)return this.error("no expression specified");try{var e=toStringOrDefault(Scripting.evalJavaScript(this.args.full),null);null!==e&&new Wikifier(this.output,"-"===this.name?Util.escape(e):e)}catch(e){return this.error("bad evaluation: "+("object"===("undefined"==typeof e?"undefined":_typeof(e))?e.message:e))}}}),Macro.add("silently",{skipArgs:!0,tags:null,handler:function(){var e=document.createDocumentFragment();if(new Wikifier(e,this.payload[0].contents.trim()),Config.debug)this.debugView.modes({hidden:!0}),this.output.appendChild(e);else{var t=[].concat(_toConsumableArray(e.querySelectorAll(".error"))).map(function(e){return e.textContent});if(t.length>0)return this.error("error"+(1===t.length?"":"s")+" within contents ("+t.join("; ")+")",this.source+this.payload[0].contents+"<</"+this.name+">>")}}}),Macro.add("if",{skipArgs:!0,tags:["elseif","else"],handler:function(){var e=0;try{for(var t=Scripting.evalJavaScript,r=this.payload.length,n=!1;e<r;++e){switch(this.payload[e].name){case"else":if(e+1!==r)return this.error("<<else>> must be the final clause");if(this.payload[e].args.raw.length>0)return/^\s*if\b/i.test(this.payload[e].args.raw)?this.error('whitespace is not allowed between the "else" and "if" in <<elseif>> clause'+(e>0?" (#"+e+")":"")):this.error("<<else>> does not accept a conditional expression (perhaps you meant to use <<elseif>>), invalid: "+this.payload[e].args.raw);break;default:if(0===this.payload[e].args.full.length)return this.error("no conditional expression specified for <<"+this.payload[e].name+">> clause"+(e>0?" (#"+e+")":""));if(Config.macros.ifAssignmentError&&/[^!=&^|<>*\/%+-]=[^=]/.test(this.payload[e].args.full))return this.error("assignment operator found within <<"+this.payload[e].name+">> clause"+(e>0?" (#"+e+")":"")+" (perhaps you meant to use an equality operator: ==, ===, eq, is), invalid: "+this.payload[e].args.raw)}if(Config.debug&&this.createDebugView(this.payload[e].name,this.payload[e].source).modes({nonvoid:!1}),"else"===this.payload[e].name||t(this.payload[e].args.full)){n=!0,new Wikifier(this.output,this.payload[e].contents);break}Config.debug&&this.debugView.modes({hidden:!0,invalid:!0})}if(Config.debug){for(++e;e<r;++e)this.createDebugView(this.payload[e].name,this.payload[e].source).modes({nonvoid:!1,hidden:!0,invalid:!0});this.createDebugView("/"+this.name,"<</"+this.name+">>").modes({nonvoid:!1,hidden:!n,invalid:!n})}}catch(t){return this.error("bad conditional expression in <<"+(0===e?"if":"elseif")+">> clause"+(e>0?" (#"+e+")":"")+": "+("object"===("undefined"==typeof t?"undefined":_typeof(t))?t.message:t))}}}),Macro.add("switch",{skipArg0:!0,tags:["case","default"],handler:function(){if(0===this.args.full.length)return this.error("no expression specified");var e=this.payload.length,t=void 0;if(1===e)return this.error("no cases specified");try{t=Scripting.evalJavaScript(this.args.full)}catch(e){return this.error("bad evaluation: "+("object"===("undefined"==typeof e?"undefined":_typeof(e))?e.message:e))}var r=this.debugView,n=1,a=!1;for(Config.debug&&r.modes({nonvoid:!1,hidden:!0});n<e;++n){switch(this.payload[n].name){case"default":if(n+1!==e)return this.error("<<default>> must be the final case");if(this.payload[n].args.length>0)return this.error("<<default>> does not accept values, invalid: "+this.payload[n].args.raw);break;default:if(0===this.payload[n].args.length)return this.error("no value(s) specified for <<"+this.payload[n].name+">> (#"+n+")")}if(Config.debug&&this.createDebugView(this.payload[n].name,this.payload[n].source).modes({nonvoid:!1}),"default"===this.payload[n].name||this.payload[n].args.some(function(e){return e===t})){a=!0,new Wikifier(this.output,this.payload[n].contents);break}Config.debug&&this.debugView.modes({hidden:!0,invalid:!0})}if(Config.debug){for(++n;n<e;++n)this.createDebugView(this.payload[n].name,this.payload[n].source).modes({nonvoid:!1,hidden:!0,invalid:!0});r.modes({nonvoid:!1,hidden:!0,invalid:!a}),this.createDebugView("/"+this.name,"<</"+this.name+">>").modes({nonvoid:!1,hidden:!0,invalid:!a})}}}),Macro.add("for",{skipArgs:!0,tags:null,handler:function(){var e=Scripting.evalJavaScript,t=this.payload[0].contents.replace(/\n$/,""),r=void 0,n=this.args.full.trim(),a=void 0,i=!0,o=Config.macros.maxLoopIterations;if(0===n.length)n=!0;else if(n.indexOf(";")!==-1){var s=n.match(/^([^;]*?)\s*;\s*([^;]*?)\s*;\s*([^;]*?)$/);if(null===s)return this.error("invalid 3-part syntax, format: init ; condition ; post");r=s[1],n=s[2],a=s[3]}if("string"==typeof n){if(/^\S+\s+in\s+\S+/i.test(n))return this.error("invalid syntax, for…in is not supported");if(/^\S+\s+of\s+\S+/i.test(n))return this.error("invalid syntax, for…of is not supported")}Config.debug&&this.debugView.modes({block:!0});try{if(TempState.break=null,r)try{e(r)}catch(e){return this.error("bad init expression: "+("object"===("undefined"==typeof e?"undefined":_typeof(e))?e.message:e))}for(;e(n);){if(--o<0)return this.error("exceeded configured maximum loop iterations ("+Config.macros.maxLoopIterations+")");if(new Wikifier(this.output,i?t.replace(/^\n/,""):t),i&&(i=!1),null!=TempState.break)if(1===TempState.break)TempState.break=null;else if(2===TempState.break){TempState.break=null;break}if(a)try{e(a)}catch(e){return this.error("bad post expression: "+("object"===("undefined"==typeof e?"undefined":_typeof(e))?e.message:e))}}}catch(e){return this.error("bad conditional expression: "+("object"===("undefined"==typeof e?"undefined":_typeof(e))?e.message:e))}finally{TempState.break=null}}}),Macro.add(["break","continue"],{skipArgs:!0,handler:function(){return this.contextHas(function(e){return"for"===e.name})?(TempState.break="continue"===this.name?1:2,void(Config.debug&&this.debugView.modes({hidden:!0}))):this.error("must only be used in conjunction with its parent macro <<for>>")}}),Macro.add(["button","link"],{isAsync:!0,tags:null,handler:function(){var e=this;if(0===this.args.length)return this.error("no "+("button"===this.name?"button":"link")+" text specified");Config.debug&&this.createDebugView(this.name,this.source+this.payload[0].contents+"<</"+this.name+">>");var t=jQuery(document.createElement("button"===this.name?"button":"a")),r=void 0;if("object"===_typeof(this.args[0]))if(this.args[0].isImage){var n=jQuery(document.createElement("img")).attr("src",this.args[0].source).appendTo(t);this.args[0].hasOwnProperty("passage")&&n.attr("data-passage",this.args[0].passage),this.args[0].hasOwnProperty("title")&&n.attr("title",this.args[0].title),this.args[0].hasOwnProperty("align")&&n.attr("align",this.args[0].align),this.args[0].hasOwnProperty("link")&&(r=this.args[0].link),r=this.args[0].link}else t.append(document.createTextNode(this.args[0].text)),r=this.args[0].link;else t.wikiWithOptions({profile:"core"},this.args[0]),r=this.args.length>1?this.args[1]:undefined;null!=r?(t.attr("data-passage",r),Story.has(r)?(t.addClass("link-internal"),Config.addVisitedLinkClass&&State.hasPlayed(r)&&t.addClass("link-visited")):t.addClass("link-broken")):t.addClass("link-internal"),t.addClass("macro-"+this.name).ariaClick({namespace:".macros",one:null!=r},this.createShadowWrapper(""!==this.payload[0].contents?function(){return Wikifier.wikifyEval(e.payload[0].contents.trim())}:null,null!=r?function(){return Engine.play(r)}:null)).appendTo(this.output)}}),Macro.add("checkbox",{handler:function(){if(this.args.length<3){var e=[];return this.args.length<1&&e.push("variable name"),this.args.length<2&&e.push("unchecked value"),this.args.length<3&&e.push("checked value"),this.error("no "+e.join(" or ")+" specified")}if("string"!=typeof this.args[0])return this.error("variable name argument is not a string");var t=this.args[0].trim();if("$"!==t[0]&&"_"!==t[0])return this.error('variable name "'+this.args[0]+'" is missing its sigil ($ or _)');var r=Util.slugify(t),n=this.args[1],a=this.args[2],i=document.createElement("input");jQuery(i).attr({id:this.name+"-"+r,name:this.name+"-"+r,type:"checkbox",tabindex:0}).addClass("macro-"+this.name).on("change",function(){Wikifier.setValue(t,this.checked?a:n)}).appendTo(this.output),this.args.length>3&&"checked"===this.args[3]?(i.checked=!0,Wikifier.setValue(t,a)):Wikifier.setValue(t,n)}}),Macro.add(["linkappend","linkprepend","linkreplace"],{isAsync:!0,tags:null,handler:function(){var e=this;if(0===this.args.length)return this.error("no link text specified");Config.debug&&this.createDebugView(this.name,this.source+this.payload[0].contents+"<</"+this.name+">>");var t=jQuery(document.createElement("a")),r=jQuery(document.createElement("span")),n=this.args.length>1&&/^(?:transition|t8n)$/.test(this.args[1]);t.wikiWithOptions({profile:"core"},this.args[0]).addClass("link-internal macro-"+this.name).ariaClick({namespace:".macros",one:!0},this.createShadowWrapper(function(){if("linkreplace"===e.name?t.remove():t.wrap('<span class="macro-'+e.name+'"></span>').replaceWith(function(){return t.html()}),""!==e.payload[0].contents){var a=document.createDocumentFragment();new Wikifier(a,e.payload[0].contents),r.append(a)}n&&setTimeout(function(){return r.removeClass("macro-"+e.name+"-in")},Engine.minDomActionDelay)})).appendTo(this.output),r.addClass("macro-"+this.name+"-insert"),n&&r.addClass("macro-"+this.name+"-in"),"linkprepend"===this.name?r.insertBefore(t):r.insertAfter(t)}}),Macro.add("radiobutton",{handler:function(){if(this.args.length<2){var e=[];return this.args.length<1&&e.push("variable name"),this.args.length<2&&e.push("checked value"),this.error("no "+e.join(" or ")+" specified")}if("string"!=typeof this.args[0])return this.error("variable name argument is not a string");var t=this.args[0].trim();if("$"!==t[0]&&"_"!==t[0])return this.error('variable name "'+this.args[0]+'" is missing its sigil ($ or _)');var r=Util.slugify(t),n=this.args[1],a=document.createElement("input");TempState.hasOwnProperty(this.name)||(TempState[this.name]={}),TempState[this.name].hasOwnProperty(r)||(TempState[this.name][r]=0),jQuery(a).attr({id:this.name+"-"+r+"-"+TempState[this.name][r]++,name:this.name+"-"+r,type:"radio",tabindex:0}).addClass("macro-"+this.name).on("change",function(){this.checked&&Wikifier.setValue(t,n)}).appendTo(this.output),this.args.length>2&&"checked"===this.args[2]&&(a.checked=!0,Wikifier.setValue(t,n))}}),Macro.add("textarea",{handler:function(){if(this.args.length<2){var e=[];return this.args.length<1&&e.push("variable name"),this.args.length<2&&e.push("default value"),this.error("no "+e.join(" or ")+" specified")}if("string"!=typeof this.args[0])return this.error("variable name argument is not a string");var t=this.args[0].trim();if("$"!==t[0]&&"_"!==t[0])return this.error('variable name "'+this.args[0]+'" is missing its sigil ($ or _)');Config.debug&&this.debugView.modes({block:!0});var r=Util.slugify(t),n=this.args[1],a="autofocus"===this.args[2],i=document.createElement("textarea");jQuery(i).attr({id:this.name+"-"+r,name:this.name+"-"+r,rows:4,tabindex:0}).addClass("macro-"+this.name).on("change",function(){Wikifier.setValue(t,this.value)}).appendTo(this.output),Wikifier.setValue(t,n),i.textContent=n,a&&(i.setAttribute("autofocus","autofocus"),postdisplay["#autofocus:"+i.id]=function(e){setTimeout(function(){return i.focus()},Engine.minDomActionDelay),delete postdisplay[e]})}}),Macro.add("textbox",{handler:function(){if(this.args.length<2){var e=[];return this.args.length<1&&e.push("variable name"),this.args.length<2&&e.push("default value"),this.error("no "+e.join(" or ")+" specified")}if("string"!=typeof this.args[0])return this.error("variable name argument is not a string");var t=this.args[0].trim();if("$"!==t[0]&&"_"!==t[0])return this.error('variable name "'+this.args[0]+'" is missing its sigil ($ or _)');Config.debug&&this.debugView.modes({block:!0});var r=Util.slugify(t),n=this.args[1],a=document.createElement("input"),i=!1,o=void 0;this.args.length>3?(o=this.args[2],i="autofocus"===this.args[3]):this.args.length>2&&("autofocus"===this.args[2]?i=!0:o=this.args[2]),jQuery(a).attr({id:this.name+"-"+r,name:this.name+"-"+r,type:"text",tabindex:0}).addClass("macro-"+this.name).on("change",function(){Wikifier.setValue(t,this.value)}).on("keypress",function(e){13===e.which&&(e.preventDefault(),Wikifier.setValue(t,this.value),null!=o&&Engine.play(o))}).appendTo(this.output),Wikifier.setValue(t,n),a.value=n,i&&(a.setAttribute("autofocus","autofocus"),postdisplay["#autofocus:"+a.id]=function(e){delete postdisplay[e],setTimeout(function(){return a.focus()},Engine.minDomActionDelay)})}}),Macro.add("click","link"),Macro.add("actions",{handler:function(){var e=jQuery(document.createElement("ul")).addClass(this.name).appendTo(this.output);State.variables["#actions"]||(State.variables["#actions"]={});for(var t=0;t<this.args.length;++t){var r=void 0,n=void 0,a=void 0,i=void 0;"object"===_typeof(this.args[t])?this.args[t].isImage?(a=jQuery(document.createElement("img")).attr("src",this.args[t].source),this.args[t].hasOwnProperty("passage")&&a.attr("data-passage",this.args[t].passage),this.args[t].hasOwnProperty("title")&&a.attr("title",this.args[t].title),this.args[t].hasOwnProperty("align")&&a.attr("align",this.args[t].align),r=this.args[t].link,i=this.args[t].setFn):(n=this.args[t].text,r=this.args[t].link,i=this.args[t].setFn):n=r=this.args[t],State.variables["#actions"].hasOwnProperty(r)&&State.variables["#actions"][r]||jQuery(Wikifier.createInternalLink(jQuery(document.createElement("li")).appendTo(e),r,null,function(e,t){return function(){State.variables["#actions"][e]=!0,"function"==typeof t&&t()}}(r,i))).addClass("macro-"+this.name).append(a||document.createTextNode(n))}}}),Macro.add(["back","return"],{handler:function(){if(this.args.length>1)return this.error("too many arguments specified, check the documentation for details");var e=-1,t=void 0,r=void 0,n=void 0;if(1===this.args.length&&("object"===_typeof(this.args[0])?this.args[0].isImage?(n=jQuery(document.createElement("img")).attr("src",this.args[0].source),this.args[0].hasOwnProperty("passage")&&n.attr("data-passage",this.args[0].passage),this.args[0].hasOwnProperty("title")&&n.attr("title",this.args[0].title),this.args[0].hasOwnProperty("align")&&n.attr("align",this.args[0].align),this.args[0].hasOwnProperty("link")&&(t=this.args[0].link)):1===this.args[0].count?t=this.args[0].link:(r=this.args[0].text,t=this.args[0].link):1===this.args.length&&(r=this.args[0])),null==t){for(var a=State.length-2;a>=0;--a)if(State.history[a].title!==State.passage){e=a,t=State.history[a].title;break}if(null==t&&"return"===this.name)for(var i=State.expired.length-1;i>=0;--i)if(State.expired[i]!==State.passage){t=State.expired[i];break}}else{if(!Story.has(t))return this.error('passage "'+t+'" does not exist');if("back"===this.name){for(var o=State.length-2;o>=0;--o)if(State.history[o].title===t){e=o;break}if(e===-1)return this.error('cannot find passage "'+t+'" in the current story history')}}if(null==t)return this.error("cannot find passage");var s=void 0;s="back"!==this.name||e!==-1?jQuery(document.createElement("a")).addClass("link-internal").ariaClick({one:!0},"return"===this.name?function(){return Engine.play(t)}:function(){return Engine.goTo(e)}):jQuery(document.createElement("span")).addClass("link-disabled"),s.addClass("macro-"+this.name).append(n||document.createTextNode(r||L10n.get("macro"+this.name.toUpperFirst()+"Text"))).appendTo(this.output)}}),Macro.add("choice",{handler:function(){if(0===this.args.length)return this.error("no passage specified");var e=State.passage,t=void 0,r=void 0,n=void 0,a=void 0;if(1===this.args.length?"object"===_typeof(this.args[0])?this.args[0].isImage?(n=jQuery(document.createElement("img")).attr("src",this.args[0].source),this.args[0].hasOwnProperty("passage")&&n.attr("data-passage",this.args[0].passage),this.args[0].hasOwnProperty("title")&&n.attr("title",this.args[0].title),this.args[0].hasOwnProperty("align")&&n.attr("align",this.args[0].align),t=this.args[0].link,a=this.args[0].setFn):(r=this.args[0].text,t=this.args[0].link,a=this.args[0].setFn):r=t=this.args[0]:(t=this.args[0],r=this.args[1]),State.variables.hasOwnProperty("#choice")){if(State.variables["#choice"].hasOwnProperty(e)&&State.variables["#choice"][e])return void jQuery(document.createElement("span")).addClass("link-disabled macro-"+this.name).attr("tabindex",-1).append(n||document.createTextNode(r)).appendTo(this.output)}else State.variables["#choice"]={};jQuery(Wikifier.createInternalLink(this.output,t,null,function(){State.variables["#choice"][e]=!0,"function"==typeof a&&a()})).addClass("macro-"+this.name).append(n||document.createTextNode(r))}}),Macro.add(["addclass","toggleclass"],{handler:function(){if(this.args.length<2){var e=[];return this.args.length<1&&e.push("selector"),this.args.length<2&&e.push("class names"),this.error("no "+e.join(" or ")+" specified")}var t=jQuery(this.args[0]);if(0===t.length)return this.error('no elements matched the selector "'+this.args[0]+'"');switch(this.name){case"addclass":t.addClass(this.args[1].trim());break;case"toggleclass":t.toggleClass(this.args[1].trim())}}}),Macro.add("removeclass",{handler:function(){if(0===this.args.length)return this.error("no selector specified");var e=jQuery(this.args[0]);return 0===e.length?this.error('no elements matched the selector "'+this.args[0]+'"'):void(this.args.length>1?e.removeClass(this.args[1].trim()):e.removeClass())}}),Macro.add("copy",{handler:function(){if(0===this.args.length)return this.error("no selector specified");var e=jQuery(this.args[0]);return 0===e.length?this.error('no elements matched the selector "'+this.args[0]+'"'):void jQuery(this.output).append(e.html())}}),Macro.add(["append","prepend","replace"],{tags:null,handler:function(){if(0===this.args.length)return this.error("no selector specified");var e=jQuery(this.args[0]);if(0===e.length)return this.error('no elements matched the selector "'+this.args[0]+'"');if(""!==this.payload[0].contents){var t=document.createDocumentFragment();switch(new Wikifier(t,this.payload[0].contents),this.name){case"replace":e.empty();case"append":e.append(t);break;case"prepend":e.prepend(t)}}else"replace"===this.name&&e.empty()}}),Macro.add("remove",{handler:function(){if(0===this.args.length)return this.error("no selector specified");var e=jQuery(this.args[0]);return 0===e.length?this.error('no elements matched the selector "'+this.args[0]+'"'):void e.remove()}}),Has.audio?(Macro.add("audio",{handler:function(){if(this.args.length<2){var e=[];return this.args.length<1&&e.push("track ID"),this.args.length<2&&e.push("actions"),this.error("no "+e.join(" or ")+" specified")}var t=Macro.get("cacheaudio").tracks,r=[":all",":looped",":muted",":paused",":playing"],n=String(this.args[0]).trim();if(!r.includes(n)&&!t.hasOwnProperty(n))return this.error('track "'+n+'" does not exist');for(var a=this.args.slice(1),i=void 0,o=void 0,s=void 0,u=void 0,l=void 0,c=void 0,d=5,p=void 0,f=void 0;a.length>0;){var h=a.shift();switch(h){case"play":case"pause":case"stop":i=h;break;case"fadein":i="fade",c=1;break;case"fadeout":i="fade",c=0;break;case"fadeto":if(0===a.length)return this.error("fadeto missing required level value");if(i="fade",f=a.shift(),c=Number.parseFloat(f),Number.isNaN(c)||!Number.isFinite(c))return this.error("cannot parse fadeto: "+f);break;case"fadeoverto":if(a.length<2){var g=[];return a.length<1&&g.push("seconds"),a.length<2&&g.push("level"),this.error("fadeoverto missing required "+g.join(" and ")+" value"+(g.length>1?"s":""))}if(i="fade",f=a.shift(),d=Number.parseFloat(f),Number.isNaN(d)||!Number.isFinite(d))return this.error("cannot parse fadeoverto: "+f);if(f=a.shift(),c=Number.parseFloat(f),Number.isNaN(c)||!Number.isFinite(c))return this.error("cannot parse fadeoverto: "+f);break;case"volume":if(0===a.length)return this.error("volume missing required level value");if(f=a.shift(),o=Number.parseFloat(f),Number.isNaN(o)||!Number.isFinite(o))return this.error("cannot parse volume: "+f);break;case"mute":case"unmute":s="mute"===h;break;case"time":if(0===a.length)return this.error("time missing required seconds value");if(f=a.shift(),u=Number.parseFloat(f),Number.isNaN(u)||!Number.isFinite(u))return this.error("cannot parse time: "+f);break;case"loop":case"unloop":l="loop"===h;break;case"goto":if(0===a.length)return this.error("goto missing required passage title");if(f=a.shift(),p="object"===("undefined"==typeof f?"undefined":_typeof(f))?f.link:f,!Story.has(p))return this.error('passage "'+p+'" does not exist');break;default:return this.error("unknown action: "+h)}}var m=void 0;switch(n){case":all":m=Object.keys(t);break;case":looped":m=Object.keys(t).filter(function(e){return t[e].isLooped()});break;case":muted":m=Object.keys(t).filter(function(e){return t[e].isMuted()});break;case":paused":m=Object.keys(t).filter(function(e){return t[e].isPaused()});break;case":playing":m=Object.keys(t).filter(function(e){return t[e].isPlaying()});break;default:m=[n]}try{m.forEach(function(e){var r=t[e];switch(null!=o&&(r.volume=o),null!=u&&(r.time=u),null!=s&&(r.mute=s),null!=l&&(r.loop=l),null!=p&&r.one("end",function(){return Engine.play(p)}),i){case"play":r.play();break;case"pause":r.pause();break;case"stop":r.stop();break;case"fade":r.fadeWithDuration(d,c)}}),Config.debug&&this.createDebugView()}catch(e){return this.error("error executing audio action: "+e.message)}}}),Macro.add("cacheaudio",{tracks:{},handler:function(){if(this.args.length<2){var e=[];return this.args.length<1&&e.push("track ID"),this.args.length<2&&e.push("sources"),this.error("no "+e.join(" or ")+" specified")}var t=String(this.args[0]).trim(),r=/^:|\s/;if(r.test(t))return this.error('invalid track ID "'+t+'": track IDs may not start with a colon or contain whitespace');var n=/^format:\s*([\w-]+)\s*;\s*(\S.*)$/i,a=void 0;try{a=SimpleAudio.create(this.args.slice(1).map(function(e){var t=n.exec(e);return null===t?e:{format:t[1],src:t[2]}}))}catch(e){return this.error('error during track initialization for "'+t+'": '+e.message)}if(Config.debug&&!a.hasSource())return this.error('no supported audio sources found for "'+t+'"');var i=this.self.tracks;i.hasOwnProperty(t)&&i[t].destroy(),i[t]=a,Config.debug&&this.createDebugView()}}),Macro.add("createplaylist",{tags:["track"],lists:{},handler:function(){if(0===this.args.length)return this.error("no list ID specified");var e=Macro.get("playlist");if(null!==e.from&&"createplaylist"!==e.from)return this.error("a playlist has already been defined with <<setplaylist>>");var t=Macro.get("cacheaudio").tracks,r=String(this.args[0]).trim(),n=/^:|\s/;if(n.test(r))return this.error('invalid list ID "'+r+'": list IDs may not start with a colon or contain whitespace');if(1===this.payload.length)return this.error("no tracks defined via <<track>>");Config.debug&&this.debugView.modes({nonvoid:!1,hidden:!0});for(var a=SimpleAudio.createList(),i=1,o=this.payload.length;i<o;++i){if(this.payload[i].args.length<2){var s=[];return this.payload[i].args.length<1&&s.push("track ID"),this.payload[i].args.length<2&&s.push("actions"),this.error("no "+s.join(" or ")+" specified")}var u=String(this.payload[i].args[0]).trim();if(!t.hasOwnProperty(u))return this.error('track "'+u+'" does not exist');for(var l=this.payload[i].args.slice(1),c=!1,d=void 0;l.length>0;){var p=l.shift(),f=void 0;switch(p){case"copy":c=!0;break;case"rate":l.length>0&&l.shift();break;case"volume":if(0===l.length)return this.error("volume missing required level value");if(f=l.shift(),d=Number.parseFloat(f),Number.isNaN(d)||!Number.isFinite(d))return this.error("cannot parse volume: "+f);break;default:return this.error("unknown action: "+p)}}var h=t[u];a.add({copy:c,track:h,volume:null!=d?d:h.volume}),Config.debug&&this.createDebugView(this.payload[i].name,this.payload[i].source).modes({nonvoid:!1,hidden:!0})}var g=this.self.lists;g.hasOwnProperty(r)&&g[r].destroy(),g[r]=a,null===e.from&&(e.from="createplaylist"),this.createDebugView("/"+this.name,"<</"+this.name+">>").modes({nonvoid:!1,hidden:!0})}}),Macro.add("masteraudio",{handler:function(){if(0===this.args.length)return this.error("no actions specified");for(var e=this.args.slice(0),t=!1,r=void 0,n=void 0;e.length>0;){var a=e.shift(),i=void 0;switch(a){case"stop":t=!0;break;case"mute":case"unmute":r="mute"===a;break;case"volume":if(0===e.length)return this.error("volume missing required level value");if(i=e.shift(),n=Number.parseFloat(i),Number.isNaN(n)||!Number.isFinite(n))return this.error("cannot parse volume: "+i);break;default:return this.error("unknown action: "+a)}}try{null!=r&&(SimpleAudio.mute=r),null!=n&&(SimpleAudio.volume=n),t&&SimpleAudio.stop(),Config.debug&&this.createDebugView()}catch(e){return this.error("error executing master audio action: "+e.message)}}}),Macro.add("playlist",{from:null,handler:function(){var e=this.self.from;if(null===e)return this.error("no playlists have been created");var t=void 0,r=void 0;if("createplaylist"===e){if(this.args.length<2){var n=[];return this.args.length<1&&n.push("list ID"),this.args.length<2&&n.push("actions"),this.error("no "+n.join(" or ")+" specified")}var a=Macro.get("createplaylist").lists,i=String(this.args[0]).trim();if(!a.hasOwnProperty(i))return this.error('playlist "'+i+'" does not exist');t=a[i],r=this.args.slice(1)}else{if(0===this.args.length)return this.error("no actions specified");t=Macro.get("setplaylist").list,r=this.args.slice(0)}for(var o=void 0,s=void 0,u=void 0,l=void 0,c=void 0,d=void 0,p=5,f=void 0;r.length>0;){ +var h=r.shift();switch(h){case"play":case"pause":case"stop":case"skip":o=h;break;case"fadein":o="fade",d=1;break;case"fadeout":o="fade",d=0;break;case"fadeto":if(0===r.length)return this.error("fadeto missing required level value");if(o="fade",f=r.shift(),d=Number.parseFloat(f),Number.isNaN(d)||!Number.isFinite(d))return this.error("cannot parse fadeto: "+f);break;case"fadeoverto":if(r.length<2){var g=[];return r.length<1&&g.push("seconds"),r.length<2&&g.push("level"),this.error("fadeoverto missing required "+g.join(" and ")+" value"+(g.length>1?"s":""))}if(o="fade",f=r.shift(),p=Number.parseFloat(f),Number.isNaN(p)||!Number.isFinite(p))return this.error("cannot parse fadeoverto: "+f);if(f=r.shift(),d=Number.parseFloat(f),Number.isNaN(d)||!Number.isFinite(d))return this.error("cannot parse fadeoverto: "+f);break;case"volume":if(0===r.length)return this.error("volume missing required level value");if(f=r.shift(),s=Number.parseFloat(f),Number.isNaN(s)||!Number.isFinite(s))return this.error("cannot parse volume: "+f);break;case"mute":case"unmute":u="mute"===h;break;case"loop":case"unloop":l="loop"===h;break;case"shuffle":case"unshuffle":c="shuffle"===h;break;default:return this.error("unknown action: "+h)}}try{switch(null!=s&&(t.volume=s),null!=u&&(t.mute=u),null!=l&&(t.loop=l),null!=c&&(t.shuffle=c),o){case"play":t.play();break;case"pause":t.pause();break;case"stop":t.stop();break;case"skip":t.skip();break;case"fade":t.fadeWithDuration(p,d)}Config.debug&&this.createDebugView()}catch(e){return this.error("error playing audio: "+e.message)}}}),Macro.add("removeplaylist",{handler:function(){if(0===this.args.length)return this.error("no list ID specified");var e=Macro.get("createplaylist").lists,t=String(this.args[0]).trim();return e.hasOwnProperty(t)?(e[t].destroy(),delete e[t],void(Config.debug&&this.createDebugView())):this.error('playlist "'+t+'" does not exist')}}),Macro.add("waitforaudio",{skipArgs:!0,queue:[],handler:function(){function e(){if(0===t.length)return LoadScreen.unlock();var r=t.shift();return r.hasData()?e():void r.one("canplay.waitforaudio error.waitforaudio",function(){jQuery(this).off(".waitforaudio"),e()}).load()}var t=this.self.queue;t.length>0||(this.self.fillQueue(t),t.length>0&&(LoadScreen.lock(),e()))},fillQueue:function(e){var t=Macro.get("cacheaudio").tracks;Object.keys(t).forEach(function(r){return e.push(t[r])});var r=Macro.get("createplaylist").lists;if(Object.keys(r).map(function(e){return r[e].tracks}).flatten().filter(function(e){return e.copy}).forEach(function(t){return e.push(t.track)}),Macro.has("setplaylist")){var n=Macro.get("setplaylist").list;null!==n&&n.tracks.forEach(function(t){return e.push(t.track)})}}}),Macro.add("setplaylist",{list:null,handler:function(){if(0===this.args.length)return this.error("no track ID(s) specified");var e=Macro.get("playlist");if(null!==e.from&&"setplaylist"!==e.from)return this.error("playlists have already been defined with <<createplaylist>>");var t=this.self,r=Macro.get("cacheaudio").tracks;null!==t.list&&t.list.destroy(),t.list=SimpleAudio.createList();for(var n=0;n<this.args.length;++n){var a=this.args[n];if(!r.hasOwnProperty(a))return this.error('track "'+a+'" does not exist');t.list.add(r[a])}null===e.from&&(e.from="setplaylist"),Config.debug&&this.createDebugView()}}),Macro.add("stopallaudio",{skipArgs:!0,handler:function(){var e=Macro.get("cacheaudio").tracks;Object.keys(e).forEach(function(t){return e[t].stop()}),Config.debug&&this.createDebugView()}})):Macro.add(["audio","cacheaudio","createplaylist","masteraudio","playlist","removeplaylist","waitforaudio","setplaylist","stopallaudio"],{skipArgs:!0,handler:function(){}}),Macro.add("goto",{handler:function(){if(0===this.args.length)return this.error("no passage specified");var e=void 0;return e="object"===_typeof(this.args[0])?this.args[0].link:this.args[0],Story.has(e)?void setTimeout(function(){return Engine.play(e)},Engine.minDomActionDelay):this.error('passage "'+e+'" does not exist')}}),Macro.add("timed",{isAsync:!0,tags:["next"],timers:new Set,handler:function(){if(0===this.args.length)return this.error("no time value specified in <<timed>>");var e=[];try{e.push({name:this.name,source:this.source,delay:Math.max(Engine.minDomActionDelay,Util.fromCssTime(this.args[0])),content:this.payload[0].contents})}catch(e){return this.error(e.message+" in <<timed>>")}if(this.payload.length>1){var t=void 0;try{var r=void 0;for(t=1,r=this.payload.length;t<r;++t)e.push({name:this.payload[t].name,source:this.payload[t].source,delay:0===this.payload[t].args.length?e[e.length-1].delay:Math.max(Engine.minDomActionDelay,Util.fromCssTime(this.payload[t].args[0])),content:this.payload[t].contents})}catch(e){return this.error(e.message+" in <<next>> (#"+t+")")}}Config.debug&&this.debugView.modes({block:!0});var n=this.args.length>1&&/^(?:transition|t8n)$/.test(this.args[1]),a=jQuery(document.createElement("span")).addClass("macro-"+this.name).appendTo(this.output);this.self.registerTimeout(this.createShadowWrapper(function(e){var t=document.createDocumentFragment();new Wikifier(t,e.content);var r=a;Config.debug&&"next"===e.name&&(r=jQuery(new DebugView(r[0],"macro",e.name,e.source).output)),n&&(r=jQuery(document.createElement("span")).addClass("macro-timed-insert macro-timed-in").appendTo(r)),r.append(t),n&&setTimeout(function(){return r.removeClass("macro-timed-in")},Engine.minDomActionDelay)}),e)},registerTimeout:function(e,t){if("function"!=typeof e)throw new TypeError("callback parameter must be a function");var r=State.turns,n=this.timers,a=null,i=t.shift(),o=function o(){if(n.delete(a),r===State.turns){var s=i;null!=(i=t.shift())&&(a=setTimeout(o,i.delay),n.add(a)),e.call(this,s)}};a=setTimeout(o,i.delay),n.add(a),prehistory.hasOwnProperty("#timed-timers-cleanup")||(prehistory["#timed-timers-cleanup"]=function(e){delete prehistory[e],n.forEach(function(e){return clearTimeout(e)}),n.clear()})}}),Macro.add("repeat",{isAsync:!0,tags:null,timers:new Set,handler:function(){var e=this;if(0===this.args.length)return this.error("no time value specified");var t=void 0;try{t=Math.max(Engine.minDomActionDelay,Util.fromCssTime(this.args[0]))}catch(e){return this.error(e.message)}Config.debug&&this.debugView.modes({block:!0});var r=this.args.length>1&&/^(?:transition|t8n)$/.test(this.args[1]),n=jQuery(document.createElement("span")).addClass("macro-"+this.name).appendTo(this.output);this.self.registerInterval(this.createShadowWrapper(function(){var t=document.createDocumentFragment();new Wikifier(t,e.payload[0].contents);var a=n;r&&(a=jQuery(document.createElement("span")).addClass("macro-repeat-insert macro-repeat-in").appendTo(a)),a.append(t),r&&setTimeout(function(){return a.removeClass("macro-repeat-in")},Engine.minDomActionDelay)}),t)},registerInterval:function(e,t){var r=this;if("function"!=typeof e)throw new TypeError("callback parameter must be a function");var n=State.turns,a=this.timers,i=null;i=setInterval(function(){if(n!==State.turns)return clearInterval(i),void a.delete(i);var t=void 0;try{TempState.break=null,TempState.hasOwnProperty("repeatTimerId")&&(t=TempState.repeatTimerId),TempState.repeatTimerId=i,e.call(r)}finally{"undefined"!=typeof t?TempState.repeatTimerId=t:delete TempState.repeatTimerId,TempState.break=null}},t),a.add(i),prehistory.hasOwnProperty("#repeat-timers-cleanup")||(prehistory["#repeat-timers-cleanup"]=function(e){delete prehistory[e],a.forEach(function(e){return clearInterval(e)}),a.clear()})}}),Macro.add("stop",{skipArgs:!0,handler:function(){if(!TempState.hasOwnProperty("repeatTimerId"))return this.error("must only be used in conjunction with its parent macro <<repeat>>");var e=Macro.get("repeat").timers,t=TempState.repeatTimerId;clearInterval(t),e.delete(t),TempState.break=2,Config.debug&&this.debugView.modes({hidden:!0})}}),Macro.add("widget",{tags:null,handler:function(){if(0===this.args.length)return this.error("no widget name specified");var e=this.args[0];if(Macro.has(e)){if(!Macro.get(e).isWidget)return this.error('cannot clobber existing macro "'+e+'"');Macro.delete(e)}try{Macro.add(e,{isWidget:!0,handler:function(e){return function(){var t=this,r=void 0;try{var n=function(){State.variables.hasOwnProperty("args")&&(r=State.variables.args),State.variables.args=[].concat(_toConsumableArray(t.args)),State.variables.args.raw=t.args.raw,State.variables.args.full=t.args.full,t.addShadow("$args");var n=document.createDocumentFragment(),a=[];return new Wikifier(n,e),Array.from(n.querySelectorAll(".error")).forEach(function(e){a.push(e.textContent)}),0!==a.length?{v:t.error("error"+(a.length>1?"s":"")+" within widget contents ("+a.join("; ")+")")}:void t.output.appendChild(n)}();if("object"===("undefined"==typeof n?"undefined":_typeof(n)))return n.v}catch(e){return this.error("cannot execute widget: "+e.message)}finally{"undefined"!=typeof r?State.variables.args=r:delete State.variables.args}}}(this.payload[0].contents)}),Config.debug&&this.createDebugView(this.name,this.source+this.payload[0].contents+"<</"+this.name+">>")}catch(t){return this.error('cannot create widget macro "'+e+'": '+t.message)}}})}();var Dialog=function(){function e(){m=function(){var e=void 0;try{var t=document.createElement("p"),r=document.createElement("div");t.style.width="100%",t.style.height="200px",r.style.position="absolute",r.style.left="0px",r.style.top="0px",r.style.width="100px",r.style.height="100px",r.style.visibility="hidden",r.style.overflow="hidden",r.appendChild(t),document.body.appendChild(r);var n=t.offsetWidth;r.style.overflow="auto";var a=t.offsetWidth;n===a&&(a=r.clientWidth),document.body.removeChild(r),e=n-a}catch(e){}return e||17}();var e=jQuery(document.createDocumentFragment()).append('<div id="ui-overlay" class="ui-close"></div><div id="ui-dialog" tabindex="0" role="dialog" aria-labelledby="ui-dialog-title"><div id="ui-dialog-titlebar"><h1 id="ui-dialog-title"></h1>'+('<button id="ui-dialog-close" class="ui-close" tabindex="0" aria-label="'+L10n.get("close")+'">î „</button>')+'</div><div id="ui-dialog-body"></div></div>');d=jQuery(e.find("#ui-overlay").get(0)),p=jQuery(e.find("#ui-dialog").get(0)),f=jQuery(e.find("#ui-dialog-title").get(0)),h=jQuery(e.find("#ui-dialog-body").get(0)),e.insertBefore("#store-area")}function t(e){return p.hasClass("open")&&(!e||e.splitOrEmpty(/\s+/).every(function(e){return h.hasClass(e)}))}function r(e,t){return h.empty().removeClass(),null!=t&&h.addClass(t),f.empty().append((null!=e?String(e):"")||" "),h.get(0)}function n(){return h.get(0)}function a(){var e;return(e=h).append.apply(e,arguments),Dialog}function i(){var e;return(e=h).wiki.apply(e,arguments),Dialog}function o(e,t,r,n,a){return jQuery(e).ariaClick(function(e){e.preventDefault(),"function"==typeof r&&r(e),s(t,a),"function"==typeof n&&n(e)})}function s(e,r){var n=jQuery.extend({top:50},e),a=n.top;t()||(g=safeActiveElement()),jQuery(document.documentElement).addClass("ui-dialog-open"),d.addClass("open"),null!==h[0].querySelector("img")&&h.imagesLoaded().always(function(){return l({data:{top:a}})}),jQuery("body>:not(script,#store-area,#ui-bar,#ui-overlay,#ui-dialog)").attr("tabindex",-3).attr("aria-hidden",!0),jQuery("#ui-bar,#story").find("[tabindex]:not([tabindex^=-])").attr("tabindex",-2).attr("aria-hidden",!0);var i=c(a);return p.css(i).addClass("open").focus(),jQuery(window).on("resize.ui-resize",null,{top:a},jQuery.throttle(40,l)),jQuery(document).on("click.ui-close",".ui-close",{closeFn:r},u).on("keypress.ui-close",".ui-close",function(e){13!==e.which&&32!==e.which||jQuery(this).trigger("click")}),setTimeout(function(){return jQuery.event.trigger("tw:dialogopened")},Engine.minDomActionDelay),Dialog}function u(e){return jQuery(document).off(".ui-close"),jQuery(window).off("resize.ui-resize"),p.removeClass("open").css({left:"",right:"",top:"",bottom:""}),jQuery("#ui-bar,#story").find("[tabindex=-2]").removeAttr("aria-hidden").attr("tabindex",0),jQuery("body>[tabindex=-3]").removeAttr("aria-hidden").removeAttr("tabindex"),f.empty(),h.empty().removeClass(),d.removeClass("open"),jQuery(document.documentElement).removeClass("ui-dialog-open"),null!==g&&(jQuery(g).focus(),g=null),e&&e.data&&"function"==typeof e.data.closeFn&&e.data.closeFn(e),setTimeout(function(){return jQuery.event.trigger("tw:dialogclosed")},Engine.minDomActionDelay),Dialog}function l(e){var t=e&&e.data&&"undefined"!=typeof e.data.top?e.data.top:50;"block"===p.css("display")&&(p.css({display:"none"}),p.css(jQuery.extend({display:""},c(t))))}function c(e){var t=null!=e?e:50,r=jQuery(window),n={left:"",right:"",top:"",bottom:""};p.css(n);var a=r.width()-p.outerWidth(!0)-1,i=r.height()-p.outerHeight(!0)-1;return a<=32+m&&(i-=m),i<=32+m&&(a-=m),a<=32?n.left=n.right=16:n.left=n.right=~~(a/2),i<=32?n.top=n.bottom=16:i/2>t?n.top=t:n.top=n.bottom=~~(i/2),Object.keys(n).forEach(function(e){""!==n[e]&&(n[e]+="px")}),n}var d=null,p=null,f=null,h=null,g=null,m=0;return Object.freeze(Object.defineProperties({},{init:{value:e},isOpen:{value:t},setup:{value:r},body:{value:n},append:{value:a},wiki:{value:i},addClickHandler:{value:o},open:{value:s},close:{value:u},resize:{value:function(){return l()}}}))}(),Engine=function(){function e(){if(Story.has("StoryInit"))try{var e=Wikifier.wikifyEval(Story.get("StoryInit").text);if(Config.debug){var t=new DebugView(document.createDocumentFragment(),"special","StoryInit","StoryInit");t.modes({hidden:!0}),t.append(e),h=t.output}}catch(e){Alert.error("StoryInit",e.message)}if(Config.history.maxStates=Math.max(0,Config.history.maxStates),Number.isSafeInteger(Config.history.maxStates)||(Config.history.maxStates=100),1===Config.history.maxStates&&(Config.history.controls=!1),Config.debug&&DebugView.init(),null==Config.passages.start)throw new Error("starting passage not selected");if(!Story.has(Config.passages.start))throw new Error('starting passage ("'+Config.passages.start+'") not found');if(State.restore())u();else{var r=!0;switch(_typeof(Config.saves.autoload)){case"boolean":Config.saves.autoload&&Save.autosave.ok()&&Save.autosave.has()&&(r=!Save.autosave.load());break;case"string":"prompt"===Config.saves.autoload&&Save.autosave.ok()&&Save.autosave.has()&&(r=!1,UI.buildDialogAutoload(),UI.open());break;case"function":Save.autosave.ok()&&Save.autosave.has()&&Config.saves.autoload()&&(r=!Save.autosave.load())}r&&l(Config.passages.start)}}function t(){LoadScreen.show(),window.scroll(0,0),State.reset(),window.location.reload()}function r(){return p}function n(){return f}function a(e){var t=State.goTo(e);return t&&u(),t}function i(e){var t=State.go(e);return t&&u(),t}function o(){return i(-1)}function s(){return i(1)}function u(){return l(State.passage,!0)}function l(e,t){var r=e;p="playing",TempState={},State.clearTemporary();var n=void 0,a=void 0;if("function"==typeof Config.navigation.override)try{var i=Config.navigation.override(r);i&&(r=i)}catch(e){}var o=Story.get(r);if(Object.keys(prehistory).forEach(function(e){"function"==typeof prehistory[e]&&prehistory[e].call(this,e)},o),t||State.create(o.title),document.body.className&&(document.body.className=""),Object.keys(predisplay).forEach(function(e){"function"==typeof predisplay[e]&&predisplay[e].call(this,e)},o),Story.has("PassageReady"))try{n=Wikifier.wikifyEval(Story.get("PassageReady").text)}catch(e){Alert.error("PassageReady",e.message)}p="rendering";var s=jQuery(o.render()),u=document.getElementById("passages");if(u.hasChildNodes()&&("number"==typeof Config.passages.transitionOut||"string"==typeof Config.passages.transitionOut&&""!==Config.passages.transitionOut&&""!==Config.transitionEndEventName?[].concat(_toConsumableArray(u.childNodes)).forEach(function(e){var t=jQuery(e);if(e.nodeType===Node.ELEMENT_NODE&&t.hasClass("passage")){if(t.hasClass("passage-out"))return;t.attr("id","out-"+t.attr("id")).addClass("passage-out"),"string"==typeof Config.passages.transitionOut?t.on(Config.transitionEndEventName,function(e){e.originalEvent.propertyName===Config.passages.transitionOut&&t.remove()}):setTimeout(function(){return t.remove()},Math.max(d,Config.passages.transitionOut))}else t.remove()}):jQuery(u).empty()),s.addClass("passage-in").appendTo(u),setTimeout(function(){return s.removeClass("passage-in")},d),document.title=Config.passages.displayTitles&&o.title!==Config.passages.start?o.title+" | "+Story.title:Story.title,window.scroll(0,0),p="playing",Story.has("PassageDone"))try{a=Wikifier.wikifyEval(Story.get("PassageDone").text)}catch(e){Alert.error("PassageDone",e.message)}if(Object.keys(postdisplay).forEach(function(e){"function"==typeof postdisplay[e]&&postdisplay[e].call(this,e)},o),Config.ui.updateStoryElements&&UI.setStoryElements(),Config.debug){var l=void 0;null!=n&&(l=new DebugView(document.createDocumentFragment(),"special","PassageReady","PassageReady"),l.modes({hidden:!0}),l.append(n),s.prepend(l.output)),null!=a&&(l=new DebugView(document.createDocumentFragment(),"special","PassageDone","PassageDone"),l.modes({hidden:!0}),l.append(a),s.append(l.output)),1===State.turns&&null!=h&&s.prepend(h)}switch(f=Date.now(),UI.hideOutlines(),jQuery("#story").find("a[href]:not(.link-external)").addClass("link-external").end().find("a,link,button,input,select,textarea").not("[tabindex]").attr("tabindex",0),_typeof(Config.saves.autosave)){case"boolean":Config.saves.autosave&&Save.autosave.save();break;case"string":o.tags.includes(Config.saves.autosave)&&Save.autosave.save();break;case"object":Array.isArray(Config.saves.autosave)&&o.tags.some(function(e){return Config.saves.autosave.includes(e)})&&Save.autosave.save()}return p="idle",s[0]}function c(e,t,r){var n=!1;switch(r){case undefined:break;case"replace":case"back":n=!0;break;default:throw new Error('Engine.display option parameter called with obsolete value "'+r+'"; please notify the developer')}l(e,n)}var d=40,p="idle",f=null,h=null;return Object.freeze(Object.defineProperties({},{minDomActionDelay:{value:d},start:{value:e},restart:{value:t},state:{get:r},lastPlay:{get:n},goTo:{value:a},go:{value:i},backward:{value:o},forward:{value:s},show:{value:u},play:{value:l},display:{value:c}}))}(),Passage=function(){var e=void 0,t=void 0;e=/^(?:debug|nobr|passage|script|stylesheet|widget|twine\..*)$/i,!function(){var e=/(?:\\n|\\t|\\s|\\|\r)/g,r=new RegExp(e.source),n=Object.freeze({"\\n":"\n","\\t":"\t","\\s":"\\","\\":"\\","\r":""});t=function(t){if(null==t)return"";var a=String(t);return a&&r.test(a)?a.replace(e,function(e){return n[e]}):a}}();var r=function(){function r(t,n){var a=this;_classCallCheck(this,r),Object.defineProperties(this,{title:{value:Util.unescape(t)},element:{value:n||null},tags:{value:Object.freeze(n&&n.hasAttribute("tags")?n.getAttribute("tags").trim().splitOrEmpty(/\s+/).sort().filter(function(e,t,r){return 0===t||r[t-1]!==e}):[])},_excerpt:{writable:!0,value:null}}),Object.defineProperties(this,{domId:{value:"passage-"+Util.slugify(this.title)},classes:{value:Object.freeze(0===this.tags.length?[]:function(){return a.tags.filter(function(t){return!e.test(t)}).map(function(e){return Util.slugify(e)})}())}})}return _createClass(r,[{key:"description",value:function(){var e=Config.passages.descriptions;if(null!=e)switch("undefined"==typeof e?"undefined":_typeof(e)){case"boolean":if(e)return this.title;break;case"object":if(e instanceof Map&&e.has(this.title))return e.get(this.title);if(e.hasOwnProperty(this.title))return e[this.title];break;case"function":var t=e.call(this);if(t)return t;break;default:throw new TypeError("Config.passages.descriptions must be a boolean, object, or function")}return null===this._excerpt&&(this._excerpt=r.getExcerptFromText(this.text)),this._excerpt}},{key:"processText",value:function(){var e=this.text;return this.tags.includes("nobr")&&(e=e.replace(/^\n+|\n+$/g,"").replace(/\n+/g," ")),this.tags.includes("Twine.image")&&(e="[img["+e+"]]"),e}},{key:"render",value:function(){var e=this,t=document.createElement("div");return jQuery(t).attr({id:this.domId,"data-passage":this.title,"data-tags":this.tags.join(" ")}).addClass("passage "+this.className),jQuery(document.body).addClass(this.className),Object.keys(prerender).forEach(function(r){"function"==typeof prerender[r]&&prerender[r].call(e,t,r)}),Story.has("PassageHeader")&&new Wikifier(t,Story.get("PassageHeader").processText()),new Wikifier(t,this.processText()),Story.has("PassageFooter")&&new Wikifier(t,Story.get("PassageFooter").processText()),Object.keys(postrender).forEach(function(r){"function"==typeof postrender[r]&&postrender[r].call(e,t,r)}),this._excerpt=r.getExcerptFromNode(t),t}},{key:"className",get:function(){return this.classes.join(" ")}},{key:"text",get:function(){if(null==this.element){var e=Util.escape(this.title);return'<span class="error" title="'+e+'">'+L10n.get("errorTitle")+": "+L10n.get("errorNonexistentPassage",{passage:e})+"</span>"}return t(this.element.textContent)}}],[{key:"getExcerptFromNode",value:function(e,t){if(!e.hasChildNodes())return"";var r=e.textContent.trim();if(""!==r){var n=new RegExp("(\\S+(?:\\s+\\S+){0,"+(t>0?t-1:7)+"})");r=r.replace(/\s+/g," ").match(n)}return r?r[1]+"…":"…"}},{key:"getExcerptFromText",value:function(e,t){if(""===e)return"";var r=new RegExp("(\\S+(?:\\s+\\S+){0,"+(t>0?t-1:7)+"})"),n=e.replace(/<<.*?>>/g," ").replace(/<.*?>/g," ").trim().replace(/^\s*\|.*\|.*?$/gm,"").replace(/\[[<>]?img\[[^\]]*\]\]/g,"").replace(/\[\[([^|\]]*)(?:|[^\]]*)?\]\]/g,"$1").replace(/^\s*!+(.*?)$/gm,"$1").replace(/'{2}|\/{2}|_{2}|@{2}/g,"").trim().replace(/\s+/g," ").match(r);return n?n[1]+"…":"…"}}]),r}();return r}(),Save=function(){function e(){if("cookie"===storage.name)return n(),Config.saves.autosave=undefined,Config.saves.slots=0,!1;Config.saves.slots=Math.max(0,Config.saves.slots),Number.isSafeInteger(Config.saves.slots)||(Config.saves.slots=8);var e=r(),t=!1;Array.isArray(e)&&(e={autosave:null,slots:e},t=!0),Config.saves.slots!==e.slots.length&&(Config.saves.slots<e.slots.length?(e.slots.reverse(),e.slots=e.slots.filter(function(e){return!(null===e&&this.count>0)||(--this.count,!1)},{count:e.slots.length-Config.saves.slots}),e.slots.reverse()):Config.saves.slots>e.slots.length&&S(e.slots,Config.saves.slots-e.slots.length),t=!0),j(e.autosave)&&(t=!0);for(var a=0;a<e.slots.length;++a)j(e.slots[a])&&(t=!0);return E(e)&&(storage.delete("saves"),t=!1),t&&x(e),T=e.slots.length-1,!0}function t(){return{autosave:null,slots:S([],Config.saves.slots)}}function r(){var e=storage.get("saves");return null===e?t():e}function n(){return storage.delete("saves"),!0}function a(){return i()||d()}function i(){return"cookie"!==storage.name&&"undefined"!=typeof Config.saves.autosave}function o(){var e=r();return null!==e.autosave}function s(){var e=r();return e.autosave}function u(){var e=r();return null!==e.autosave&&O(e.autosave)}function l(e,t){if("function"==typeof Config.saves.isAllowed&&!Config.saves.isAllowed())return!1;var n=r(),a={title:e||Story.get(State.passage).description(),date:Date.now()};return null!=t&&(a.metadata=t),n.autosave=C(a),x(n)}function c(){var e=r();return e.autosave=null,x(e)}function d(){return"cookie"!==storage.name&&T!==-1}function p(){return T+1}function f(){if(!d())return 0;for(var e=r(),t=0,n=0,a=e.slots.length;n<a;++n)null!==e.slots[n]&&++t;return t}function h(){return 0===f()}function g(e){if(e<0||e>T)return!1;var t=r();return!(e>=t.slots.length||null===t.slots[e])}function m(e){if(e<0||e>T)return null;var t=r();return e>=t.slots.length?null:t.slots[e]}function v(e){if(e<0||e>T)return!1;var t=r();return!(e>=t.slots.length||null===t.slots[e])&&O(t.slots[e])}function y(e,t,n){if("function"==typeof Config.saves.isAllowed&&!Config.saves.isAllowed())return UI.alert(L10n.get("savesDisallowed")),!1;if(e<0||e>T)return!1;var a=r();if(e>=a.slots.length)return!1;var i={title:t||Story.get(State.passage).description(),date:Date.now()};return null!=n&&(i.metadata=n),a.slots[e]=C(i),x(a)}function b(e){if(e<0||e>T)return!1;var t=r();return!(e>=t.slots.length)&&(t.slots[e]=null,x(t))}function w(e,t){function r(){var e=new Date,t=e.getMonth()+1,r=e.getDate(),n=e.getHours(),a=e.getMinutes(),i=e.getSeconds();return t<10&&(t="0"+t),r<10&&(r="0"+r),n<10&&(n="0"+n),a<10&&(a="0"+a),i<10&&(i="0"+i),""+e.getFullYear()+t+r+"-"+n+a+i}if("function"==typeof Config.saves.isAllowed&&!Config.saves.isAllowed())return void UI.alert(L10n.get("savesDisallowed"));var n=null==e?Story.domId:Util.slugify(e),a=n+"-"+r()+".save",i=null==t?{}:{metadata:t},o=LZString.compressToBase64(JSON.stringify(C(i)));saveAs(new Blob([o],{type:"text/plain;charset=UTF-8"}),a)}function k(e){var t=e.target.files[0],r=new FileReader;jQuery(r).on("load",function(e){var r=e.currentTarget;if(r.result){var n=void 0;try{n=JSON.parse(/\.json$/i.test(t.name)||/^\{/.test(r.result)?r.result:LZString.decompressFromBase64(r.result))}catch(e){}O(n)}}),r.readAsText(t)}function S(e,t){for(var r=0;r<t;++r)e.push(null);return e}function E(e){for(var t=e.slots,r=!0,n=0,a=t.length;n<a;++n)if(null!==t[n]){r=!1;break}return null===e.autosave&&r}function x(e){return E(e)?(storage.delete("saves"),!0):storage.set("saves",e)}function j(e){if(null===e)return!1;var t=!1;return e.hasOwnProperty("state")&&e.state.hasOwnProperty("delta")&&e.state.hasOwnProperty("index")||(e.hasOwnProperty("data")?(delete e.mode,e.state={delta:State.deltaEncode(e.data)},delete e.data):e.state.hasOwnProperty("delta")?e.state.hasOwnProperty("index")||delete e.state.mode:(delete e.state.mode,e.state.delta=State.deltaEncode(e.state.history),delete e.state.history),e.state.index=e.state.delta.length-1,t=!0),e.state.hasOwnProperty("rseed")&&(e.state.seed=e.state.rseed,delete e.state.rseed,e.state.delta.forEach(function(e,t,r){r[t].hasOwnProperty("rcount")&&(r[t].pull=r[t].rcount,delete r[t].rcount)}),t=!0),(e.state.hasOwnProperty("expired")&&"number"==typeof e.state.expired||e.state.hasOwnProperty("unique")||e.state.hasOwnProperty("last"))&&(e.state.hasOwnProperty("expired")&&"number"==typeof e.state.expired&&delete e.state.expired,(e.state.hasOwnProperty("unique")||e.state.hasOwnProperty("last"))&&(e.state.expired=[],e.state.hasOwnProperty("unique")&&(e.state.expired.push(e.state.unique),delete e.state.unique),e.state.hasOwnProperty("last")&&(e.state.expired.push(e.state.last),delete e.state.last)),t=!0),t}function C(e){if(null!=e&&"object"!==("undefined"==typeof e?"undefined":_typeof(e)))throw new Error("supplemental parameter must be an object");var t=Object.assign({},e,{id:Config.saves.id,state:State.marshalForSave()});return Config.saves.version&&(t.version=Config.saves.version),"function"==typeof Config.saves.onSave&&Config.saves.onSave(t),t.state.delta=State.deltaEncode(t.state.history),delete t.state.history,t}function O(e){try{if(j(e),!e||!e.hasOwnProperty("id")||!e.hasOwnProperty("state"))throw new Error(L10n.get("errorSaveMissingData"));if(e.state.history=State.deltaDecode(e.state.delta),delete e.state.delta,"function"==typeof Config.saves.onLoad&&Config.saves.onLoad(e),e.id!==Config.saves.id)throw new Error(L10n.get("errorSaveIdMismatch"));State.unmarshalForSave(e.state),Engine.show()}catch(e){return UI.alert(e.message.toUpperFirst()+".</p><p>"+L10n.get("aborting")+"."),!1}return!0}var T=-1;return Object.freeze(Object.defineProperties({},{init:{value:e},get:{value:r},clear:{value:n},ok:{value:a},autosave:{value:Object.freeze(Object.defineProperties({},{ok:{value:i},has:{value:o},get:{value:s},load:{value:u},save:{value:l},delete:{value:c}}))},slots:{value:Object.freeze(Object.defineProperties({},{ok:{value:d},length:{get:p},isEmpty:{value:h},count:{value:f},has:{value:g},get:{value:m},load:{value:v},save:{value:y},delete:{value:b}}))},export:{value:w},import:{value:k}}))}(),Setting=function(){function e(){if(storage.has("options")){var e=storage.get("options");null!==e&&(window.SugarCube.settings=settings=Object.assign(t(),e)),r(),storage.delete("options")}n(),g.forEach(function(e){if(e.hasOwnProperty("onInit")){var t={name:e.name,value:settings[e.name],default:e.default};e.hasOwnProperty("list")&&(t.list=e.list),e.onInit.call(t)}})}function t(){return Object.create(null)}function r(){var e=t();return Object.keys(settings).length>0&&g.filter(function(e){return e.type!==m.Header&&settings[e.name]!==e.default}).forEach(function(t){return e[t.name]=settings[t.name]}),0===Object.keys(e).length?(storage.delete("settings"),!0):storage.set("settings",e)}function n(){var e=t(),r=storage.get("settings")||t();g.filter(function(e){return e.type!==m.Header}).forEach(function(t){return e[t.name]=t.default}),window.SugarCube.settings=settings=Object.assign(e,r)}function a(){return window.SugarCube.settings=settings=t(),storage.delete("settings"),!0}function i(e){if(0===arguments.length)a(),n();else{if(null==e||!p(e))throw new Error('nonexistent setting "'+e+'"');var t=f(e);t.type!==m.Header&&(settings[e]=t.default)}return r()}function o(e,t){g.forEach(e,t)}function s(e,t,r){if(arguments.length<3){var n=[];throw arguments.length<1&&n.push("type"),arguments.length<2&&n.push("name"),arguments.length<3&&n.push("definition"),new Error("missing parameters, no "+n.join(" or ")+" specified")}if("object"!==("undefined"==typeof r?"undefined":_typeof(r)))throw new TypeError("definition parameter must be an object");if(p(t))throw new Error('cannot clobber existing setting "'+t+'"');var a={type:e,name:t,label:null==r.label?"":String(r.label).trim()};switch(e){case m.Header:break;case m.Toggle:a.default=!!r.default;break;case m.List:if(!r.hasOwnProperty("list"))throw new Error("no list specified");if(!Array.isArray(r.list))throw new TypeError("list must be an array");if(0===r.list.length)throw new Error("list must not be empty");if(a.list=Object.freeze(r.list),null==r.default)a.default=r.list[0];else{var i=r.list.indexOf(r.default);if(i===-1)throw new Error("list does not contain default");a.default=r.list[i]}break;default:throw new Error("unknown Setting type: "+e)}"function"==typeof r.onInit&&(a.onInit=Object.freeze(r.onInit)),"function"==typeof r.onChange&&(a.onChange=Object.freeze(r.onChange)),g.push(Object.freeze(a))}function u(e,t){s(m.Header,e,{label:t})}function l(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];s.apply(undefined,[m.Toggle].concat(t))}function c(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];s.apply(undefined,[m.List].concat(t))}function d(){return 0===g.length}function p(e){return g.some(function(t){return t.name===e})}function f(e){return g.find(function(t){return t.name===e})}function h(e){p(e)&&delete settings[e];for(var t=0;t<g.length;++t)if(g[t].name===e){g.splice(t,1),h(e);break}}var g=[],m=Object.freeze({Header:0,Toggle:1,List:2});return Object.freeze(Object.defineProperties({},{Types:{value:m},init:{value:e},create:{value:t},save:{value:r},load:{value:n},clear:{value:a},reset:{value:i},forEach:{value:o},add:{value:s},addHeader:{value:u},addToggle:{value:l},addList:{value:c},isEmpty:{value:d},has:{value:p},get:{value:f},delete:{value:h}}))}(),State=function(){function e(){session.delete("state"),L=[],Q=c(),I=-1,R=[],F=null===F?null:new PRNGWrapper(F.seed,!1)}function t(){if(session.has("state")){var e=session.get("state");return null!=e&&(n(e),!0)}return!1}function r(e){var t={index:I};return e?t.history=clone(L):t.delta=A(L),R.length>0&&(t.expired=[].concat(_toConsumableArray(R))),null!==F&&(t.seed=F.seed),t}function n(e,t){if(null==e)throw new Error("state object is null or undefined");if(!e.hasOwnProperty(t?"history":"delta")||0===e[t?"history":"delta"].length)throw new Error("state object has no history or history is empty");if(!e.hasOwnProperty("index"))throw new Error("state object has no index");if(null!==F&&!e.hasOwnProperty("seed"))throw new Error("state object has no seed, but PRNG is enabled");if(null===F&&e.hasOwnProperty("seed"))throw new Error("state object has seed, but PRNG is disabled");L=t?clone(e.history):_(e.delta),I=e.index,R=e.hasOwnProperty("expired")?[].concat(_toConsumableArray(e.expired)):[],e.hasOwnProperty("seed")&&(F.seed=e.seed),g(I)}function a(){return r(!0)}function i(e){return n(e,!0)}function o(){return R}function s(){ +return R.length+v()}function u(){return R.concat(L.slice(0,v()).map(function(e){return e.title}))}function l(e){return null!=e&&""!==e&&(!!R.includes(e)||!!L.slice(0,v()).some(function(t){return t.title===e}))}function c(e,t){return{title:null==e?"":String(e),variables:null==t?{}:clone(t)}}function d(){return Q}function p(){return I}function f(){return Q.title}function h(){return Q.variables}function g(e){if(null==e)throw new Error("moment activation attempted with null or undefined");switch("undefined"==typeof e?"undefined":_typeof(e)){case"object":Q=clone(e);break;case"number":if(b())throw new Error("moment activation attempted with index on empty history");if(e<0||e>=y())throw new RangeError("moment activation attempted with out-of-bounds index; need [0, "+(y()-1)+"], got "+e);Q=clone(L[e]);break;default:throw new TypeError('moment activation attempted with a "'+("undefined"==typeof e?"undefined":_typeof(e))+'"; must be an object or valid history stack index')}return null!==F&&(F=PRNGWrapper.unmarshal({seed:F.seed,pull:Q.pull})),session.set("state",r()),jQuery.event.trigger("tw:historyupdate"),Q}function m(){return L}function v(){return I+1}function y(){return L.length}function b(){return 0===L.length}function w(){return L.length>0?L[I]:null}function k(){return L.length>0?L[L.length-1]:null}function S(){return L.length>0?L[0]:null}function E(e){return b()||e<0||e>I?null:L[e]}function x(e){if(b())return null;var t=1+(e?Math.abs(e):0);return t>v()?null:L[v()-t]}function j(e){if(b()||null==e||""===e)return!1;for(var t=I;t>=0;--t)if(L[t].title===e)return!0;return!1}function C(e){if(v()<y()&&L.splice(v(),y()-v()),L.push(c(e,Q.variables)),F&&(k().pull=F.pull),Config.history.maxStates>0)for(;y()>Config.history.maxStates;)R.push(L.shift().title);return I=y()-1,g(I),v()}function O(e){return!(null==e||e<0||e>=y()||e===I)&&(I=e,g(I),!0)}function T(e){return null!=e&&0!==e&&O(I+e)}function A(e){if(!Array.isArray(e))return null;if(0===e.length)return[];for(var t=[clone(e[0])],r=1,n=e.length;r<n;++r)t.push(Util.diff(e[r-1],e[r]));return t}function _(e){if(!Array.isArray(e))return null;if(0===e.length)return[];for(var t=[clone(e[0])],r=1,n=e.length;r<n;++r)t.push(Util.patch(t[r-1],e[r]));return t}function P(e,t){if(!b()){var r=void 0;throw r="a script-tagged passage",new Error("State.initPRNG must be called during initialization, within either "+r+" or the StoryInit special passage")}F=new PRNGWrapper(e,t),Q.pull=F.pull}function D(){return F?F.random():Math.random()}function M(){V={},TempVariables=V}function N(){return V}var L=[],Q=c(),I=-1,R=[],F=null,V={};return Object.freeze(Object.defineProperties({},{reset:{value:e},restore:{value:t},marshalForSave:{value:a},unmarshalForSave:{value:i},expired:{get:o},turns:{get:s},passages:{get:u},hasPlayed:{value:l},active:{get:d},activeIndex:{get:p},passage:{get:f},variables:{get:h},history:{get:m},length:{get:v},size:{get:y},isEmpty:{value:b},current:{get:w},top:{get:k},bottom:{get:S},index:{value:E},peek:{value:x},has:{value:j},create:{value:C},goTo:{value:O},go:{value:T},deltaEncode:{value:A},deltaDecode:{value:_},initPRNG:{value:P},random:{value:D},clearTemporary:{value:M},temporary:{get:N},restart:{value:function(){return Engine.restart()}},backward:{value:function(){return Engine.backward()}},forward:{value:function(){return Engine.forward()}},display:{value:function(){return Engine.display.apply(Engine,arguments)}},show:{value:function(){return Engine.show.apply(Engine,arguments)}},play:{value:function(){return Engine.play.apply(Engine,arguments)}}}))}(),Story=function(){function e(){if(Config.passages.start=function(){var e="START_AT";return""!==e?(Config.debug=!0,e):"Start"}(),jQuery("#store-area").children(':not([tags~="Twine.private"],[tags~="annotation"])').each(function(){var e=jQuery(this),t=new Passage(e.attr("tiddler"),this);t.tags.includes("stylesheet")?d.push(t):t.tags.includes("script")?p.push(t):t.tags.includes("widget")?f.push(t):c[t.title]=t}),!c.hasOwnProperty("StoryTitle"))throw new Error('cannot find the "StoryTitle" special passage');var e=document.createDocumentFragment();new Wikifier(e,c.StoryTitle.processText().trim()),r(e.textContent.trim()),Config.saves.id=Story.domId}function t(){for(var e=0;e<d.length;++e)addStyle(d[e].text);for(var t=0;t<p.length;++t)try{Scripting.evalJavaScript(p[t].text)}catch(e){Alert.error(p[t].title,"object"===("undefined"==typeof e?"undefined":_typeof(e))?e.message:e)}for(var r=0;r<f.length;++r)try{Wikifier.wikifyEval(f[r].processText())}catch(e){Alert.error(f[r].title,"object"===("undefined"==typeof e?"undefined":_typeof(e))?e.message:e)}}function r(e){if(null==e||""===e)throw new Error("story title cannot be null or empty");document.title=h=Util.unescape(e),m=Util.slugify(h)}function n(){return h}function a(){return m}function i(){return g}function o(e){var t="undefined"==typeof e?"undefined":_typeof(e);switch(t){case"number":case"string":var r=String(e);return c.hasOwnProperty(r);case"boolean":case"function":t="a "+t;break;case"undefined":break;default:t=null===e?"null":"an "+t}throw new TypeError("Story.has title parameter cannot be "+t)}function s(e){var t="undefined"==typeof e?"undefined":_typeof(e);switch(t){case"number":case"string":var r=String(e);return c.hasOwnProperty(r)?c[r]:new Passage(r||"(unknown)");case"boolean":case"function":t="a "+t;break;case"undefined":break;default:t=null===e?"null":"an "+t}throw new TypeError("Story.get title parameter cannot be "+t)}function u(e,t){for(var r=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"title",n=Object.keys(c),a=[],i=0;i<n.length;++i){var o=c[n[i]];if(o.hasOwnProperty(e))switch(_typeof(o[e])){case"undefined":break;case"object":for(var s=0,u=o[e].length;s<u;++s)if(o[e][s]==t){a.push(o);break}break;default:o[e]==t&&a.push(o)}}return a.sort(function(e,t){return e[r]==t[r]?0:e[r]<t[r]?-1:1}),a}function l(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"title";if("function"!=typeof e)throw new Error("Story.lookupWith filter parameter must be a function");for(var r=Object.keys(c),n=[],a=0;a<r.length;++a){var i=c[r[a]];e(i)&&n.push(i)}return n.sort(function(e,r){return e[t]==r[t]?0:e[t]<r[t]?-1:1}),n}var c={},d=[],p=[],f=[],h="",g="",m="";return Object.freeze(Object.defineProperties({},{passages:{value:c},styles:{value:d},scripts:{value:p},widgets:{value:f},load:{value:e},init:{value:t},title:{get:n},domId:{get:a},ifId:{get:i},has:{value:o},get:{value:s},lookup:{value:u},lookupWith:{value:l}}))}(),UI=function(){function e(){jQuery("#init-no-js,#init-lacking").remove(),w=new StyleWrapper(function(){return jQuery(document.createElement("style")).attr({id:"style-outline-patch",type:"text/css"}).appendTo(document.head).get(0)}()),function(){var e=jQuery(document.createDocumentFragment()),t=L10n.get("uiBarToggle"),r=L10n.get("uiBarBackward"),n=L10n.get("uiBarJumpto"),a=L10n.get("uiBarForward");e.append('<div id="ui-bar"><div id="ui-bar-tray">'+('<button id="ui-bar-toggle" tabindex="0" title="'+t+'" aria-label="'+t+'"></button>')+'<div id="ui-bar-history">'+('<button id="history-backward" tabindex="0" title="'+r+'" aria-label="'+r+'">î ¡</button>')+('<button id="history-jumpto" tabindex="0" title="'+n+'" aria-label="'+n+'">î ¹</button>')+('<button id="history-forward" tabindex="0" title="'+a+'" aria-label="'+a+'">î ¢</button>')+'</div></div><div id="ui-bar-body"><header id="title" role="banner"><div id="story-banner"></div><h1 id="story-title"></h1><div id="story-subtitle"></div><div id="story-title-separator"></div><p id="story-author"></p></header><div id="story-caption"></div><nav id="menu" role="navigation"><ul id="menu-story"></ul><ul id="menu-core">'+('<li id="menu-item-saves"><a tabindex="0">'+L10n.get("savesTitle")+"</a></li>")+('<li id="menu-item-settings"><a tabindex="0">'+L10n.get("settingsTitle")+"</a></li>")+('<li id="menu-item-restart"><a tabindex="0">'+L10n.get("restartTitle")+"</a></li>")+('<li id="menu-item-share"><a tabindex="0">'+L10n.get("shareTitle")+"</a></li>")+'</ul></nav></div></div><div id="story" role="main"><div id="passages"></div></div>').insertBefore("#store-area")}(),jQuery(document).on("tw:historyupdate",function(e,t){return function(){e.prop("disabled",State.length<2),t.prop("disabled",State.length===State.size)}}(jQuery("#history-backward"),jQuery("#history-forward"))).on("mousedown.outline-handler keydown.outline-handler",function(e){switch(e.type){case"mousedown":i();break;case"keydown":o()}})}function t(){var e=jQuery("#ui-bar");("boolean"==typeof Config.ui.stowBarInitially?Config.ui.stowBarInitially:jQuery(window).width()<=Config.ui.stowBarInitially)&&!function(){var t=jQuery(e).add("#story");t.addClass("no-transition"),e.addClass("stowed"),setTimeout(function(){return t.removeClass("no-transition")},Engine.minDomActionDelay)}(),jQuery("#ui-bar-toggle").ariaClick({label:L10n.get("uiBarToggle")},function(){return e.toggleClass("stowed")}),Config.history.controls?(jQuery("#history-backward").prop("disabled",State.length<2).ariaClick({label:L10n.get("uiBarBackward")},function(){return Engine.backward()}),Story.lookup("tags","bookmark").length>0?jQuery("#history-jumpto").ariaClick({label:L10n.get("uiBarJumpto")},function(){return UI.jumpto()}):jQuery("#history-jumpto").remove(),jQuery("#history-forward").prop("disabled",State.length===State.size).ariaClick({label:L10n.get("uiBarForward")},function(){return Engine.forward()})):jQuery("#ui-bar-history").remove(),setPageElement("story-title","StoryTitle",Story.title),Story.has("StoryCaption")||jQuery("#story-caption").remove(),Story.has("StoryMenu")||jQuery("#menu-story").remove(),Config.ui.updateStoryElements||a(),Dialog.addClickHandler("#menu-item-saves a",null,v).text(L10n.get("savesTitle")),Setting.isEmpty()?jQuery("#menu-item-settings").remove():Dialog.addClickHandler("#menu-item-settings a",null,y).text(L10n.get("settingsTitle")),Dialog.addClickHandler("#menu-item-restart a",null,m).text(L10n.get("restartTitle")),Story.has("StoryShare")?Dialog.addClickHandler("#menu-item-share a",null,b).text(L10n.get("shareTitle")):jQuery("#menu-item-share").remove(),jQuery(document.documentElement).focus()}function r(){jQuery("#ui-bar").addClass("stow")}function n(){jQuery("#ui-bar").removeClass("stow")}function a(){setPageElement("story-banner","StoryBanner"),setPageElement("story-subtitle","StorySubtitle"),setPageElement("story-author","StoryAuthor"),setPageElement("story-caption","StoryCaption");var e=document.getElementById("menu-story");null!==e&&(jQuery(e).empty(),Story.has("StoryMenu")&&s("StoryMenu",e))}function i(){w.set("*:focus{outline:none}")}function o(){w.clear()}function s(e,t){var r=t,n=Config.debug;Config.debug=!1;try{null==r&&(r=document.createElement("ul"));var a=document.createDocumentFragment();if(new Wikifier(a,Story.get(e).processText().trim()),a.hasChildNodes())for(var i=null;a.hasChildNodes();){var o=a.firstChild;o.nodeType!==Node.ELEMENT_NODE||"A"!==o.nodeName.toUpperCase()?(a.removeChild(o),null!==i&&(i=null)):(null===i&&(i=document.createElement("li"),r.appendChild(i)),i.appendChild(o))}}finally{Config.debug=n}return r}function u(e){jQuery(Dialog.setup("Alert","alert")).append("<p>"+e+'</p><ul class="buttons">'+('<li><button id="alert-ok" class="ui-close">'+L10n.get(["alertOk","ok"])+"</button></li>")+"</ul>");for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];Dialog.open.apply(Dialog,r)}function l(){g(),Dialog.open.apply(Dialog,arguments)}function c(){m(),Dialog.open.apply(Dialog,arguments)}function d(){v(),Dialog.open.apply(Dialog,arguments)}function p(){y(),Dialog.open.apply(Dialog,arguments)}function f(){b(),Dialog.open.apply(Dialog,arguments)}function h(){return jQuery(Dialog.setup(L10n.get("autoloadTitle"),"autoload")).append("<p>"+L10n.get("autoloadPrompt")+'</p><ul class="buttons">'+('<li><button id="autoload-ok" class="ui-close">'+L10n.get(["autoloadOk","ok"])+"</button></li>")+('<li><button id="autoload-cancel" class="ui-close">'+L10n.get(["autoloadCancel","cancel"])+"</button></li>")+"</ul>"),jQuery(document).one("click.autoload",".ui-close",function(e){var t="autoload-ok"===e.target.id;jQuery(document).one("tw:dialogclosed",function(){t&&Save.autosave.load()||Engine.play(Config.passages.start)})}),!0}function g(){var e=document.createElement("ul");jQuery(Dialog.setup(L10n.get("jumptoTitle"),"jumpto list")).append(e);for(var t=State.expired.length,r=State.size-1;r>=0;--r)if(r!==State.activeIndex){var n=Story.get(State.history[r].title);n&&n.tags.includes("bookmark")&&jQuery(document.createElement("li")).append(jQuery(document.createElement("a")).ariaClick({one:!0},function(e){return function(){return jQuery(document).one("tw:dialogclosed",function(){return Engine.goTo(e)})}}(r)).addClass("ui-close").text(L10n.get("jumptoTurn")+" "+(t+r+1)+": "+n.description())).appendTo(e)}e.hasChildNodes()||jQuery(e).append("<li><a><em>"+L10n.get("jumptoUnavailable")+"</em></a></li>")}function m(){return jQuery(Dialog.setup(L10n.get("restartTitle"),"restart")).append("<p>"+L10n.get("restartPrompt")+'</p><ul class="buttons">'+('<li><button id="restart-ok">'+L10n.get(["restartOk","ok"])+"</button></li>")+('<li><button id="restart-cancel" class="ui-close">'+L10n.get(["restartCancel","cancel"])+"</button></li>")+"</ul>").find("#restart-ok").ariaClick({one:!0},function(){jQuery(document).one("tw:dialogclosed",function(){return Engine.restart()}),Dialog.close()}),!0}function v(){function e(e,t,r,n){var a=jQuery(document.createElement("button")).attr("id","saves-"+e).html(r);return t&&a.addClass(t),n?a.ariaClick(n):a.prop("disabled",!0),jQuery(document.createElement("li")).append(a)}function t(){function e(e,t,r,n,a){var i=jQuery(document.createElement("button")).attr("id","saves-"+e+"-"+n).addClass(e).html(r);return t&&i.addClass(t),a?"auto"===n?i.ariaClick({label:r+" "+L10n.get("savesLabelAuto")},function(){return a()}):i.ariaClick({label:r+" "+L10n.get("savesLabelSlot")+" "+(n+1)},function(){return a(n)}):i.prop("disabled",!0),i}var t=Save.get(),r=jQuery(document.createElement("tbody"));if(Save.autosave.ok()){var n=jQuery(document.createElement("td")),a=jQuery(document.createElement("td")),i=jQuery(document.createElement("td")),o=jQuery(document.createElement("td"));jQuery(document.createElement("b")).attr({title:L10n.get("savesLabelAuto"),"aria-label":L10n.get("savesLabelAuto")}).text("A").appendTo(n),t.autosave?(a.append(e("load","ui-close",L10n.get("savesLabelLoad"),"auto",function(){jQuery(document).one("tw:dialogclosed",function(){return Save.autosave.load()})})),jQuery(document.createElement("div")).text(t.autosave.title).appendTo(i),jQuery(document.createElement("div")).addClass("datestamp").html(t.autosave.date?L10n.get("savesSavedOn")+" "+new Date(t.autosave.date).toLocaleString():L10n.get("savesSavedOn")+" <em>"+L10n.get("savesUnknownDate")+"</em>").appendTo(i),o.append(e("delete",null,L10n.get("savesLabelDelete"),"auto",function(){Save.autosave.delete(),v(),Dialog.resize()}))):(a.append(e("load",null,L10n.get("savesLabelLoad"),"auto")),jQuery(document.createElement("em")).text(L10n.get("savesEmptySlot")).appendTo(i),i.addClass("empty"),o.append(e("delete",null,L10n.get("savesLabelDelete"),"auto"))),jQuery(document.createElement("tr")).append(n).append(a).append(i).append(o).appendTo(r)}for(var s=0,u=t.slots.length;s<u;++s){var l=jQuery(document.createElement("td")),c=jQuery(document.createElement("td")),d=jQuery(document.createElement("td")),p=jQuery(document.createElement("td"));l.append(document.createTextNode(s+1)),t.slots[s]?(c.append(e("load","ui-close",L10n.get("savesLabelLoad"),s,function(e){jQuery(document).one("tw:dialogclosed",function(){return Save.slots.load(e)})})),jQuery(document.createElement("div")).text(t.slots[s].title).appendTo(d),jQuery(document.createElement("div")).addClass("datestamp").html(t.slots[s].date?L10n.get("savesSavedOn")+" "+new Date(t.slots[s].date).toLocaleString():L10n.get("savesSavedOn")+" <em>"+L10n.get("savesUnknownDate")+"</em>").appendTo(d),p.append(e("delete",null,L10n.get("savesLabelDelete"),s,function(e){Save.slots.delete(e),v(),Dialog.resize()}))):(c.append(e("save","ui-close",L10n.get("savesLabelSave"),s,Save.slots.save)),jQuery(document.createElement("em")).text(L10n.get("savesEmptySlot")).appendTo(d),d.addClass("empty"),p.append(e("delete",null,L10n.get("savesLabelDelete"),s))),jQuery(document.createElement("tr")).append(l).append(c).append(d).append(p).appendTo(r)}return jQuery(document.createElement("table")).attr("id","saves-list").append(r)}var r=jQuery(Dialog.setup(L10n.get("savesTitle"),"saves")),n=Save.ok();if(n&&r.append(t()),n||Has.fileAPI){var a=jQuery(document.createElement("ul")).addClass("buttons").appendTo(r);return Has.fileAPI&&(a.append(e("export","ui-close",L10n.get("savesLabelExport"),function(){return Save.export()})),a.append(e("import",null,L10n.get("savesLabelImport"),function(){return r.find("#saves-import-file").trigger("click")})),jQuery(document.createElement("input")).css({display:"block",visibility:"hidden",position:"fixed",left:"-9999px",top:"-9999px",width:"1px",height:"1px"}).attr({type:"file",id:"saves-import-file",tabindex:-1,"aria-hidden":!0}).on("change",function(e){jQuery(document).one("tw:dialogclosed",function(){return Save.import(e)}),Dialog.close()}).appendTo(r)),n&&a.append(e("clear",null,L10n.get("savesLabelClear"),Save.autosave.has()||!Save.slots.isEmpty()?function(){Save.clear(),v(),Dialog.resize()}:null)),!0}return u(L10n.get("savesIncapable")),!1}function y(){var e=jQuery(Dialog.setup(L10n.get("settingsTitle"),"settings"));return Setting.forEach(function(t){if(t.type===Setting.Types.Header){var r=t.name,n=Util.slugify(r),a=jQuery(document.createElement("div")),i=jQuery(document.createElement("h2")),o=jQuery(document.createElement("p"));return a.attr("id","header-body-"+n).append(i).append(o).appendTo(e),i.attr("id","header-heading-"+n).wiki(r),void o.attr("id","header-label-"+n).wiki(t.label)}var s=t.name,u=Util.slugify(s),l=jQuery(document.createElement("div")),c=jQuery(document.createElement("label")),d=jQuery(document.createElement("div")),p=void 0;switch(l.attr("id","setting-body-"+u).append(c).append(d).appendTo(e),c.attr({id:"setting-label-"+u,for:"setting-control-"+u}).wiki(t.label),null==settings[s]&&(settings[s]=t.default),t.type){case Setting.Types.Toggle:p=jQuery(document.createElement("button")),settings[s]?p.addClass("enabled").text(L10n.get("settingsOn")):p.text(L10n.get("settingsOff")),p.ariaClick(function(){settings[s]?(jQuery(this).removeClass("enabled").text(L10n.get("settingsOff")),settings[s]=!1):(jQuery(this).addClass("enabled").text(L10n.get("settingsOn")),settings[s]=!0),Setting.save(),t.hasOwnProperty("onChange")&&t.onChange.call({name:s,value:settings[s],default:t.default})});break;case Setting.Types.List:p=jQuery(document.createElement("select"));for(var f=0,h=t.list.length;f<h;++f)jQuery(document.createElement("option")).val(f).text(t.list[f]).appendTo(p);p.val(t.list.indexOf(settings[s])).attr("tabindex",0).on("change",function(){settings[s]=t.list[Number(this.value)],Setting.save(),t.hasOwnProperty("onChange")&&t.onChange.call({name:s,value:settings[s],default:t.default,list:t.list})})}p.attr("id","setting-control-"+u).appendTo(d)}),e.append('<ul class="buttons">'+('<li><button id="settings-ok" class="ui-close">'+L10n.get(["settingsOk","ok"])+"</button></li>")+('<li><button id="settings-reset">'+L10n.get("settingsReset")+"</button></li>")+"</ul>").find("#settings-reset").ariaClick({one:!0},function(){jQuery(document).one("tw:dialogclosed",function(){Setting.reset(),window.location.reload()}),Dialog.close()}),!0}function b(){return jQuery(Dialog.setup(L10n.get("shareTitle"),"share list")).append(s("StoryShare")),!0}var w=null;return Object.freeze(Object.defineProperties({},{init:{value:e},start:{value:t},stow:{value:r},unstow:{value:n},setStoryElements:{value:a},hideOutlines:{value:i},showOutlines:{value:o},assembleLinkList:{value:s},alert:{value:u},jumpto:{value:l},restart:{value:c},saves:{value:d},settings:{value:p},share:{value:f},buildAutoload:{value:h},buildJumpto:{value:g},buildRestart:{value:m},buildSaves:{value:v},buildSettings:{value:y},buildShare:{value:b},isOpen:{value:function(){return Dialog.isOpen.apply(Dialog,arguments)}},body:{value:function(){return Dialog.body()}},setup:{value:function(){return Dialog.setup.apply(Dialog,arguments)}},addClickHandler:{value:function(){return Dialog.addClickHandler.apply(Dialog,arguments)}},open:{value:function(){return Dialog.open.apply(Dialog,arguments)}},close:{value:function(){return Dialog.close.apply(Dialog,arguments)}},resize:{value:function(){return Dialog.resize()}},buildDialogAutoload:{value:h},buildDialogJumpto:{value:g},buildDialogRestart:{value:m},buildDialogSaves:{value:v},buildDialogSettings:{value:y},buildDialogShare:{value:b},buildLinkListFromPassage:{value:s}}))}(),LoadScreen=function(){function e(){jQuery(document.documentElement).removeClass("init-loading")}function t(){jQuery(document.documentElement).addClass("init-loading")}function r(){a=!0,t()}function n(){a=!1,jQuery(document).trigger("readystatechange")}var a=!1;return jQuery(document).on("readystatechange.SugarCube",function(){if(!a){var e=jQuery(document.documentElement);"complete"===document.readyState?e.hasClass("init-loading")&&(Config.loadDelay>0?setTimeout(function(){return e.removeClass("init-loading")},Math.max(Engine.minDomActionDelay,Config.loadDelay)):e.removeClass("init-loading")):e.addClass("init-loading")}}),Object.freeze(Object.defineProperties({},{hide:{value:e},show:{value:t},lock:{value:r},unlock:{value:n}}))}(),version=Object.freeze({title:"SugarCube",major:2,minor:14,patch:0,prerelease:null,build:7780,date:new Date("2017-02-23T19:19:51.191Z"),extensions:{},toString:function(){var e=this.prerelease?"-"+this.prerelease:"";return this.major+"."+this.minor+"."+this.patch+e+"+"+this.build},short:function(){var e=this.prerelease?"-"+this.prerelease:"";return this.title+" (v"+this.major+"."+this.minor+"."+this.patch+e+")"},long:function(){return this.title+" v"+this.toString()+" ("+this.date.toUTCString()+")"}}),TempState={},macros={},postdisplay={},postrender={},predisplay={},prehistory={},prerender={},session=null,settings={},setup={},storage=null,browser=Browser,config=Config,has=Has,History=State,state=State,tale=Story,TempVariables=State.temporary;window.SugarCube={},jQuery(function(){try{document.normalize&&document.normalize(),Story.load(),storage=SimpleStore.create(Story.domId,!0),session=SimpleStore.create(Story.domId,!1),Dialog.init(),UI.init(),Story.init(),L10n.init(),session.has("rcWarn")||"cookie"!==storage.name||(session.set("rcWarn",1),window.alert(L10n.get("warningNoWebStorage"))),Save.init(),Setting.init(),Macro.init(),Engine.start(),UI.start(),window.SugarCube={Browser:Browser,Config:Config,Dialog:Dialog,DebugView:DebugView,Engine:Engine,Has:Has,L10n:L10n,Macro:Macro,Passage:Passage,Save:Save,Scripting:Scripting,Setting:Setting,SimpleAudio:SimpleAudio,State:State,Story:Story,UI:UI,Util:Util,Wikifier:Wikifier,macros:macros,session:session,settings:settings,setup:setup,storage:storage,version:version}}catch(e){return jQuery(document).off("readystatechange.SugarCube"),Alert.fatal(null,e.message,e)}})}(window,window.document,jQuery);} </script> </body> </html> diff --git a/devTools/tweeGo/targets/sugarcube-2/sugarcube-2.py b/devTools/tweeGo/targets/sugarcube-2/sugarcube-2.py index 4a2a5de94022212997b0ae67971db4659ebfec19..276ed30df5e9ba7bf1dae7f221ca685de670afcb 100644 --- a/devTools/tweeGo/targets/sugarcube-2/sugarcube-2.py +++ b/devTools/tweeGo/targets/sugarcube-2/sugarcube-2.py @@ -2,7 +2,7 @@ # # sugarcube-2.py # -# Copyright (c) 2013-2016 Thomas Michael Edwards <tmedwards@motoslave.net>. All rights reserved. +# Copyright (c) 2013-2017 Thomas Michael Edwards <tmedwards@motoslave.net>. All rights reserved. # Use of this source code is governed by a Simplified BSD License which can be found in the LICENSE file. # ######################################################################################################################## @@ -32,6 +32,7 @@ class Header (header.Header): # standard macros 'append', 'button', + 'capture', 'createplaylist', 'for', 'if', diff --git a/readme.txt b/readme.txt index c74150439d90cf2e3d2f7bbc5b1c11d074bffd6c..c0ecf90dd7ca01e9b34f9a501c2b58db6c638f34 100644 --- a/readme.txt +++ b/readme.txt @@ -17,8 +17,9 @@ How to mod (basic doc): Second run of compile.but will overwrite bin/FC.html without prompt. Linux: - Ensure executable permission on file devTools/tweeGo/tweego (not tweego.exe!) - in the root dir of sources (where you see src, devTools, bin...) run command "make" from console. Should be installed "build-essential" or at least "make" package. + Ensure executable permission on file "devTools/tweeGo/tweego" (not tweego.exe!) + Ensure executable permission on file "compile" + In the root dir of sources (where you see src, devTools, bin...) run command "./compile" from console 4. Simple comparing and merging with original FC: diff --git a/slave variables documentation - Pregmod.txt b/slave variables documentation - Pregmod.txt index cfe2e95299a0a11c728ae4f1c1f65aefa4e69a3e..7bceba2263b5b497328181f53b5d80bb2dee5bd3 100644 --- a/slave variables documentation - Pregmod.txt +++ b/slave variables documentation - Pregmod.txt @@ -109,6 +109,7 @@ $HGCareers "a politician" "a model-UN star" "a student council president" +"a leading arcology citizen" $recruiterCareers "a military recruiter" @@ -2162,6 +2163,10 @@ Making your slave; add their name to the following, then go down the documentati <<set _HS.slaveName = "STANDARD", _HS.birthName = "STANDARD", _HS.ID = _i++>> <<set $heroSlaves.push(clone(_HS))>> +*Potential alternative syntax: +<<set _HS = jQuery.extend(clone($activeSlave), {slaveName: "STANDARD", birthName: "STANDARD", ID: _i++})>> +<<set $heroSlaves.push(clone(_HS))>> + Once finished, add it into "customSlavesDatabase". To test if your slave is functioning, start up a normal game, swap to cheat mode, max your rep, and view other slave owner's stock in the slave market. If you can not find your slave in the list, and you didn't start the game with your slave, you should double check your slave for errors. If a slave named "Blank" is present, then you likely messed up. Once you find your slave, check their description to make sure it is correct. If it is not, you messed up somewhere in setting them up. diff --git a/src/events/intro/economyIntro.tw b/src/events/intro/economyIntro.tw index ee48cf641ab1596ebdb9a4d608212153938314c5..eb288d0f571253033dfb2ca86273555d0eb1aaa4 100644 --- a/src/events/intro/economyIntro.tw +++ b/src/events/intro/economyIntro.tw @@ -1,9 +1,16 @@ -:: Economy Intro - +:: Economy Intro [nobr] + +<<if $PC.career == "arcology owner">> + <<goto "Takeover Target">> +<<else>> + It is the year 2037, and the past 21 years have not been kind. The world is starting to fall apart. The climate is deteriorating, resources are being exhausted, and there are more people to feed every year. Technology is advancing, but not fast enough to save everyone. @@color:orange;Exactly how bad is the situation?@@ +<br> -[[Very serious.|Terrain Intro][$economy to 1]] //Default difficulty.// -[[Not truly dire. Not yet.|Terrain Intro][$economy to 0.5]] //Easy economics.// -[[This is the last dance.|Terrain Intro][$economy to 1.5]] //Crushing challenge.// +<br>[[Very serious.|Trade Intro][$economy to 1]] //Default difficulty.// +<br>[[Not truly dire. Not yet.|Trade Intro][$economy to 0.5]] //Easy economics.// +<br>[[This is the last dance.|Trade Intro][$economy to 1.5]] //Crushing challenge.// +<br> +<br>[[Skip Intro|Intro Summary]] //This will preclude you from taking over an established arcology.// -[[Skip Intro|Intro Summary]] +<</if>> diff --git a/src/events/intro/extremeIntro.tw b/src/events/intro/extremeIntro.tw index a416185a5b6df772235be91a19bef8bb970ee7d2..b273ff8e67b225d7d89268b4ed9b0e114121612d 100644 --- a/src/events/intro/extremeIntro.tw +++ b/src/events/intro/extremeIntro.tw @@ -2,8 +2,8 @@ The early Free Cities were wild places where the writ of law did not run. In some of the most depraved, slaves' bodies, minds and even lives were playthings of the wealthy and powerful. Though modern Free Cities are tremendously varied, a majority of the new communities made a choice about whether extreme practices were a flaw in a lawless society or one of its benefits. @@color:orange;How did most Free Cities react to the excesses of the early days?@@ -[[They drew back from them.|Slave Age Intro][$seeExtreme to 0]] //Extreme content such as amputation and castration will not appear.// -[[They reveled in them.|Slave Age Intro][$seeExtreme to 1]] //Extreme content will appear.// -[[They reveled in them and were particularly inventive.|Slave Age Intro][$seeExtreme to 1,$seeHyperPreg to 1]] //Extreme content will appear, including hyper-pregnancy related content// -[[They drew back from them, but remained creative.|Slave Age Intro][$seeExtreme to 0,$seeHyperPreg to 1]] //Extreme content will not appear, but hyper-pregnancy related content might appear.// +[[They drew back from them.|Gender Intro][$seeExtreme to 0]] //Extreme content such as amputation and castration will not appear.// +[[They reveled in them.|Gender Intro][$seeExtreme to 1]] //Extreme content will appear.// +[[They reveled in them and were particularly inventive.|Gender Intro][$seeExtreme to 1,$seeHyperPreg to 1]] //Extreme content will appear, including hyper-pregnancy related content// +[[They drew back from them, but remained creative.|Gender Intro][$seeExtreme to 0,$seeHyperPreg to 1]] //Extreme content will not appear, but hyper-pregnancy related content might appear.// diff --git a/src/events/intro/genderIntro.tw b/src/events/intro/genderIntro.tw index bc6d18acb618ad7b37c7b791a70df02b3d5bf21f..52c7c77bde296cef744009a266bef8257868db1a 100644 --- a/src/events/intro/genderIntro.tw +++ b/src/events/intro/genderIntro.tw @@ -1,10 +1,10 @@ :: Gender Intro - -The Free Cities are sexually libertine places, and sexual slavery is ubiquitous. Some Free Cities have upheld or even strengthened traditional gender roles, expecting men to be men and women to be women. Others subscribe to an interesting refinement of those gender roles, considering any sex slave female, regardless of her biology. A small minority even go so far as to strongly favor societal feminization of slaves born male; in these, biologically female slaves are a rare sight. @@color:orange;Which kind of Free City is your new arcology located in?@@ -[[A city that's open-minded about who can be a slave girl.|PC Experience Intro][$seeDicks to 25]] +The Free Cities are sexually libertine places, and sexual slavery is ubiquitous. Some of the early Free Cities upheld or even strengthened traditional gender roles, expecting men to be men and women to be women. Others subscribed to an interesting refinement of those gender roles, considering any sex slave female, regardless of her biology. A small minority even went so far as to strongly favor societal feminization of slaves born male; in these, biologically female slaves were a rare sight. @@color:orange;Which kind of Free City came to predominate?@@ + +[[Free Cities that were open-minded about who could be a slave girl.|Slave Age Intro][$seeDicks to 25]] //Default setting. A majority of slaves will be biologically female, and all content will be available.// -[[A city that understands that girls are girls.|PC Experience Intro][$seeDicks to 0]] +[[Free Cities that understood that girls are girls.|Slave Age Intro][$seeDicks to 0]] //Almost all slaves will be biologically female, restricting some content.// -[[A city that likes its girls with dicks.|PC Experience Intro][$seeDicks to 100]] +[[Free Cities that preferred girls with dicks.|Slave Age Intro][$seeDicks to 100]] //Almost all slaves will be biologically male, restricting some content.// diff --git a/src/events/intro/initNationalities.tw b/src/events/intro/initNationalities.tw index a2fe23ea81affe557f87d44b292822a54de414ac..bae413208949c03a4743760a78df962f39e6bbdf 100644 --- a/src/events/intro/initNationalities.tw +++ b/src/events/intro/initNationalities.tw @@ -9,6 +9,7 @@ <<set $upgradeMultiplierArcology to 1>> <<set $upgradeMultiplierMedicine to 1>> + <<if $PC.career is "wealth">> <<set $trinkets.push("a collection of diplomas from expensive schools")>> <<set $cash += 10000>> @@ -29,6 +30,10 @@ <<elseif $PC.career is "celebrity">> <<set $trinkets.push("a framed copy of the first news story featuring yourself")>> <<set $rep += 4000>> +<<elseif $PC.career is "arcology owner">> + <<set $trinkets.push("a miniature model of your first arcology")>> + <<set $upgradeMultiplierArcology to 0.8>> + <<set $rep += 2000>> <<elseif $PC.career is "escort">> <<set $trinkets.push("a copy the first porno you starred in")>> <<elseif $PC.career is "servant">> @@ -60,7 +65,7 @@ /* SET HEROES */ <<set $heroSlaves = []>> -<<set $activeSlave to {slaveName: "blank", birthName: "blank", weekAcquired: 1, origin: 0, career: 0, ID: 0, prestige: 0, pornFame: 0, pornFameSpending: 0, prestigeDesc: 0, recruiter: 0, relation: 0, relationTarget: 0, relationship: 0, relationshipTarget: 0, rivalry: 0, rivalryTarget: 0, subTarget: 0, choosesOwnAssignment: 0, assignment: "rest", assignmentVisible: 1, sentence: 0, training: 0, toyHole: "all her holes", indenture: -1, indentureRestrictions: 0, birthWeek: random(0,51), actualAge: 18, visualAge: 18, physicalAge: 18, ageImplant: 0, health: 0, minorInjury: 0, trust: 0, oldTrust: 0, devotion: 0, oldDevotion: 0, weight: 0, muscles: 0, height: 170, heightImplant: 0, nationality: "slave", race: "white", markings: "none", eyes: 1, eyeColor: "brown", eyewear: "none", hColor: "brown", pubicHColor: "brown", skin: "light", hLength: 60, hStyle: "short", pubicHStyle: "neat", waist: 0, corsetPiercing: 0, amp: 0, heels:0, voice: 2, voiceImplant: 0, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 0, boobsImplant: 0, boobsImplantType: 0, boobShape: "normal", nipples: "cute", nipplesPiercing: 0, areolae: 0, areolaePiercing: 0, boobsTat: 0, lactation: 0, lactationAdaptation: 0, milk: 0, cum: 0, hips: 0, hipsImplant: 0, butt: 0, buttImplant: 0, buttImplantType: 0, buttTat: 0, face: 0, faceImplant: 0, faceShape: "normal", lips: 15, lipsImplant: 0, lipsPiercing: 0, lipsTat: 0, teeth: "normal", tonguePiercing: 0, vagina: 0, vaginaLube: 0, vaginaPiercing: 0, vaginaTat: 0, preg: -1, pregSource: 0, pregType: 0, labor: 0, births: 0, cSec: 0, bellyAccessory: "none", labia: 0, clit: 0, clitPiercing: 0, clitSetting: "vanilla", foreskin: 0, anus: 0, dick: 0, analArea: 1, dickPiercing: 0, dickTat: 0, balls: 0, scrotum: 0, ovaries: 0, anusPiercing: 0, anusTat: 0, makeup: 0, nails: 0, brand: 0, brandLocation: 0, earPiercing: 0, nosePiercing: 0, eyebrowPiercing: 0, navelPiercing: 0, shouldersTat: 0, armsTat: 0, legsTat: 0, backTat: 0, stampTat: 0, vaginalSkill: 0, oralSkill: 0, analSkill: 0, whoreSkill: 0, entertainSkill: 0, combatSkill: 0, livingRules: "spare", speechRules: "restrictive", releaseRules:"restrictive", relationshipRules: "restrictive", standardPunishment: "situational", standardReward: "situational", useRulesAssistant: 1, diet: "healthy", dietCum: 0, dietMilk: 0, tired: 0, hormones: 0, drugs: "no drugs", curatives: 0, chem: 0, aphrodisiacs: 0, addict: 0, fuckdoll: 0, choosesOwnClothes: 0, clothes: "no clothing", collar: "none", shoes: "none", vaginalAccessory: "none", dickAccessory: "none", buttplug: "none", intelligence: 0, intelligenceImplant: 0, energy: 50, attrXX: 0, attrXY: 0, attrKnown: 0, fetish: "none", fetishStrength: 70, fetishKnown: 0, behavioralFlaw: "none", behavioralQuirk: "none", sexualFlaw: "none", sexualQuirk: "none", oralCount: 0, vaginalCount: 0, analCount: 0, mammaryCount: 0, penetrativeCount: 0, publicCount: 0, pitKills: 0, customTat: "", customLabel: "", customDesc: "", currentRules: [], bellyTat: 0, induce: 0, mpreg: 0, inflation: 0, inflationType: 0, inflationMethod: 0, milkSource: 0, cumSource: 0, burst: 0, bellyImplant: 0, bellySag: 0, birthsTotal: 0, pubertyAgeXX: 13, pubertyAgeXY: 13, father: 0, mother: 0, daughters: 0, sisters: 0, canRecruit: 0, HGExclude: 0, ballType: "human", eggType: "human"}>> +<<set $activeSlave to {slaveName: "blank", birthName: "blank", weekAcquired: 1, origin: 0, career: 0, ID: 0, prestige: 0, pornFame: 0, pornFameSpending: 0, prestigeDesc: 0, recruiter: 0, relation: 0, relationTarget: 0, relationship: 0, relationshipTarget: 0, rivalry: 0, rivalryTarget: 0, subTarget: 0, choosesOwnAssignment: 0, assignment: "rest", assignmentVisible: 1, sentence: 0, training: 0, toyHole: "all her holes", indenture: -1, indentureRestrictions: 0, birthWeek: random(0,51), actualAge: 18, visualAge: 18, physicalAge: 18, ageImplant: 0, health: 0, minorInjury: 0, trust: 0, oldTrust: 0, devotion: 0, oldDevotion: 0, weight: 0, muscles: 0, height: 170, heightImplant: 0, nationality: "slave", race: "white", markings: "none", eyes: 1, eyeColor: "brown", eyewear: "none", hColor: "brown", pubicHColor: "brown", skin: "light", hLength: 60, hStyle: "short", pubicHStyle: "neat", waist: 0, corsetPiercing: 0, amp: 0, heels:0, voice: 2, voiceImplant: 0, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 0, boobsImplant: 0, boobsImplantType: 0, boobShape: "normal", nipples: "cute", nipplesPiercing: 0, areolae: 0, areolaePiercing: 0, boobsTat: 0, lactation: 0, lactationAdaptation: 0, milk: 0, cum: 0, hips: 0, hipsImplant: 0, butt: 0, buttImplant: 0, buttImplantType: 0, buttTat: 0, face: 0, faceImplant: 0, faceShape: "normal", lips: 15, lipsImplant: 0, lipsPiercing: 0, lipsTat: 0, teeth: "normal", tonguePiercing: 0, vagina: 0, vaginaLube: 0, vaginaPiercing: 0, vaginaTat: 0, preg: -1, pregSource: 0, pregType: 0, labor: 0, births: 0, cSec: 0, bellyAccessory: "none", labia: 0, clit: 0, clitPiercing: 0, clitSetting: "vanilla", foreskin: 0, anus: 0, dick: 0, analArea: 1, dickPiercing: 0, dickTat: 0, balls: 0, scrotum: 0, ovaries: 0, anusPiercing: 0, anusTat: 0, makeup: 0, nails: 0, brand: 0, brandLocation: 0, earPiercing: 0, nosePiercing: 0, eyebrowPiercing: 0, navelPiercing: 0, shouldersTat: 0, armsTat: 0, legsTat: 0, backTat: 0, stampTat: 0, vaginalSkill: 0, oralSkill: 0, analSkill: 0, whoreSkill: 0, entertainSkill: 0, combatSkill: 0, livingRules: "spare", speechRules: "restrictive", releaseRules:"restrictive", relationshipRules: "restrictive", standardPunishment: "situational", standardReward: "situational", useRulesAssistant: 1, diet: "healthy", dietCum: 0, dietMilk: 0, tired: 0, hormones: 0, drugs: "no drugs", curatives: 0, chem: 0, aphrodisiacs: 0, addict: 0, fuckdoll: 0, choosesOwnClothes: 0, clothes: "no clothing", collar: "none", shoes: "none", vaginalAccessory: "none", dickAccessory: "none", buttplug: "none", intelligence: 0, intelligenceImplant: 0, energy: 50, attrXX: 0, attrXY: 0, attrKnown: 0, fetish: "none", fetishStrength: 70, fetishKnown: 0, behavioralFlaw: "none", behavioralQuirk: "none", sexualFlaw: "none", sexualQuirk: "none", oralCount: 0, vaginalCount: 0, analCount: 0, mammaryCount: 0, penetrativeCount: 0, publicCount: 0, pitKills: 0, customTat: "", customLabel: "", customDesc: "", customImage: 0, currentRules: [], bellyTat: 0, induce: 0, mpreg: 0, inflation: 0, inflationType: 0, inflationMethod: 0, milkSource: 0, cumSource: 0, burst: 0, bellyImplant: 0, bellySag: 0, birthsTotal: 0, pubertyAgeXX: 13, pubertyAgeXY: 13, father: 0, mother: 0, daughters: 0, sisters: 0, canRecruit: 0, HGExclude: 0, ballType: "human", eggType: "human", reservedChildren: 0}>> <<if ($seeDicks > 0) && ($seeDicks < 100)>> <<display "D Slaves Database">> <<display "DD Slaves Database">> @@ -76,15 +81,11 @@ /*Nationalities Setup*/ -<<set $basenationalities to []>> -<<set $basenationalities.push("American", "Afghan", "Algerian","Argentinian", "Armenian", "Australian", "Austrian", "Bangladeshi", "Belarusian", "Belgian", "Bolivian", "Brazilian", "British", "Burmese", "Canadian", "Chilean", "Chinese", "Czech", "Colombian", "Congolese", "Cuban", "Danish", "Dominican", "Dutch", "Egyptian", "Emirati", "Estonian", "Ethiopian", "Filipina", "Finnish", "French", "German", "Ghanan", "Greek", "Guatemalan", "Haitian", "Hungarian", "Icelandic", "Indonesian", "Indian", "Iranian", "Iraqi", "Italian", "Irish", "Israeli", "Jamaican", "Japanese", "Jordanian", "Kazakh", "Kenyan", "Korean", "Lebanese", "Libyan", "Lithuanian", "Malaysian", "Malian", "Mexican", "Moroccan", "Nepalese", "a New Zealander", "Nigerian", "Norwegian", "Omani", "Pakistani", "Peruvian", "Polish", "Portuguese", "Puerto Rican", "Romanian", "Russian", "Saudi", "Scottish", "Serbian", "Slovak", "South African", "Spanish", "Sudanese", "Swedish", "Swiss", "Tanzanian", "Thai", "Tunisian", "Turkish", "Ugandan", "Ukrainian", "Uzbek", "Venezuelan", "Vietnamese", "Yemeni", "Zimbabwean")>> - -<<set $nationalities to []>> +<<set $basenationalities = ["American", "Afghan", "Algerian","Argentinian", "Armenian", "Australian", "Austrian", "Bangladeshi", "Belarusian", "Belgian", "Bolivian", "Brazilian", "British", "Burmese", "Canadian", "Chilean", "Chinese", "Czech", "Colombian", "Congolese", "Cuban", "Danish", "Dominican", "Dutch", "Egyptian", "Emirati", "Estonian", "Ethiopian", "Filipina", "Finnish", "French", "German", "Ghanan", "Greek", "Guatemalan", "Haitian", "Hungarian", "Icelandic", "Indonesian", "Indian", "Iranian", "Iraqi", "Italian", "Irish", "Israeli", "Jamaican", "Japanese", "Jordanian", "Kazakh", "Kenyan", "Korean", "Lebanese", "Libyan", "Lithuanian", "Malaysian", "Malian", "Mexican", "Moroccan", "Nepalese", "a New Zealander", "Nigerian", "Norwegian", "Omani", "Pakistani", "Peruvian", "Polish", "Portuguese", "Puerto Rican", "Romanian", "Russian", "Saudi", "Scottish", "Serbian", "Slovak", "South African", "Spanish", "Sudanese", "Swedish", "Swiss", "Tanzanian", "Thai", "Tunisian", "Turkish", "Ugandan", "Ukrainian", "Uzbek", "Venezuelan", "Vietnamese", "Yemeni", "Zimbabwean"]>> +<<set $nationalities = $basenationalities>> -<<if ($internationalTrade != 0) || ($terrain == "oceanic")>> -<<if $internationalVariety == 1>> - <<set $nationalities.push("American", "Chinese", "Korean", "Indonesian", "Japanese", "Bangladeshi", "Pakistani", "Filipina", "Indian", "Belarusian", "Russian", "Egyptian", "Nigerian", "Saudi", "Turkish", "Brazilian", "Argentinian", "Colombian", "Nigerian", "Australian", "Ethiopian", "German", "Mexican", "Dominican", "Vietnamese", "Iranian", "Congolese", "French", "Thai", "British", "Italian", "Spanish", "Kenyan", "Ukrainian", "Canadian", "Peruvian", "Venezuelan", "a New Zealander", "Irish", "Scottish", "Icelandic", "Finnish", "Polish", "Israeli", "Armenian", "Greek", "Moroccan", "Romanian", "Swedish", "Lithuanian", "Bolivian", "Haitian", "Cuban", "South African", "Chilean", "Belgian", "Danish", "Czech", "Serbian", "Slovak", "Norwegian", "Dutch", "Austrian", "Swiss", "Portuguese", "Hungarian", "Estonian", "Puerto Rican", "Jamaican", "Kazakh", "Zimbabwean", "Tanzanian", "Ugandan", "Malaysian", "Guatemalan", "Ghanan", "Lebanese", "Tunisian", "Emirati", "Libyan", "Jordanian", "Omani", "Malian")>> -<<else>> +<<if $internationalTrade != 0>> +<<if $internationalVariety == 0>> <<set $nationalities.push("Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese")>> <<set $nationalities.push("Indian","Indian","Indian","Indian","Indian","Indian","Indian","Indian","Indian","Indian")>> <<set $nationalities.push("American","American","American","American")>> @@ -178,10 +179,11 @@ <</if>> <</if>> -<<if ($terrain is "oceanic")>> +<<switch $terrain>> +<<case "oceanic">> <<set $arcologies[0].FSSupremacistRace to "white">> <<set $arcologies[0].FSSubjugationistRace to "middle eastern">> -<<elseif ($continent is "North America")>> +<<case "North America">> <<set $arcologies[0].FSSupremacistRace to "white">> <<set $arcologies[0].FSSubjugationistRace to "black">> <<set $nationalities.push("American","American","American","American")>> @@ -192,7 +194,7 @@ <<set $nationalities.push("Cuban")>> <<set $nationalities.push("Puerto Rican")>> <<set $nationalities.push("Jamaican")>> -<<elseif ($continent is "South America")>> +<<case "South America">> <<set $arcologies[0].FSSupremacistRace to "latina">> <<set $arcologies[0].FSSubjugationistRace to "black">> <<set $nationalities.push("Brazilian","Brazilian","Brazilian","Brazilian")>> @@ -203,7 +205,7 @@ <<set $nationalities.push("Bolivian")>> <<set $nationalities.push("Chilean")>> <<set $nationalities.push("Guatemalan")>> -<<elseif ($continent is "the Middle East")>> +<<case "the Middle East">> <<set $arcologies[0].FSSupremacistRace to "middle eastern">> <<set $arcologies[0].FSSubjugationistRace to "asian">> <<set $nationalities.push("Egyptian", "Egyptian", "Egyptian")>> @@ -219,7 +221,7 @@ <<set $nationalities.push("Iraqi")>> <<set $nationalities.push("Afghan")>> <<set $nationalities.push("Yemeni")>> -<<elseif ($continent is "Africa")>> +<<case "Africa">> <<set $arcologies[0].FSSupremacistRace to "black">> <<set $arcologies[0].FSSubjugationistRace to "white">> <<set $nationalities.push("Nigerian", "Nigerian", "Nigerian")>> @@ -237,7 +239,7 @@ <<set $nationalities.push("Zimbabwean")>> <<set $nationalities.push("Tanzanian")>> <<set $nationalities.push("Ugandan")>> -<<elseif ($continent is "Asia")>> +<<case "Asia">> <<set $arcologies[0].FSSupremacistRace to "asian">> <<set $arcologies[0].FSSubjugationistRace to "indo-aryan">> <<set $nationalities.push("Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese")>> @@ -255,7 +257,9 @@ <<set $nationalities.push("Uzbek")>> <<set $nationalities.push("Nepalese")>> <<set $nationalities.push("Kazakh")>> -<<elseif ($continent is "Europe")>> +<<case "Europe">> + <<set $arcologies[0].FSSupremacistRace to "white">> + <<set $arcologies[0].FSSubjugationistRace to "middle eastern">> <<set $nationalities.push("Russian", "Russian", "Russian", "Russian")>> <<set $nationalities.push("German", "German", "German")>> <<set $nationalities.push("Belarusian","Belarusian")>> @@ -284,16 +288,16 @@ <<set $nationalities.push("Portuguese")>> <<set $nationalities.push("Hungarian")>> <<set $nationalities.push("Estonian")>> -<<elseif ($continent is "Australia")>> +<<case "Australia">> <<set $arcologies[0].FSSupremacistRace to "white">> <<set $arcologies[0].FSSubjugationistRace to "asian">> <<set $nationalities.push("Australian","Australian","Australian")>> <<set $nationalities.push("a New Zealander")>> -<<elseif ($continent is "Japan")>> +<<case "Japan">> <<set $arcologies[0].FSSupremacistRace to "asian">> <<set $arcologies[0].FSSubjugationistRace to "asian">> <<set $nationalities.push("Japanese","Japanese","Japanese")>> -<</if>> +<</switch>> <<set $customSlave.nationality to $nationalities.random()>> <<set $huskSlave.nationality to $nationalities.random()>> @@ -312,8 +316,70 @@ <<set $activeArcology to {name: "Arcology X-", direction: "north", government: "an individual", leaderID: 0, honeymoon: 0, prosperity: 50, ownership: 50, minority: 20, PCminority: 0, demandFactor: 0, FSSupremacist: "unset", FSSupremacistRace: 0, FSSubjugationist: "unset", FSSubjugationistRace: 0, FSRestart: "unset", FSRepopulationFocus: "unset", FSGenderRadicalist: "unset", FSGenderFundamentalist: "unset", FSPaternalist: "unset", FSDegradationist: "unset", FSBodyPurist: "unset", FSTransformationFetishist: "unset", FSYouthPreferentialist: "unset", FSMaturityPreferentialist: "unset", FSSlimnessEnthusiast: "unset", FSAssetExpansionist: "unset", FSPastoralist: "unset", FSPhysicalIdealist: "unset", FSChattelReligionist: "unset", FSRomanRevivalist: "unset", FSEgyptianRevivalist: "unset", FSEdoRevivalist: "unset", FSArabianRevivalist: "unset", FSChineseRevivalist: "unset", FSNull: "unset", FSGenderRadicalistResearch: 0, FSGenderFundamentalistResearch: 0, FSPaternalistResearch: 0, FSDegradationistResearch: 0, FSBodyPuristResearch: 0, FSTransformationFetishistResearch: 0, FSYouthPreferentialistResearch: 0, FSMaturityPreferentialistResearch: 0, FSSlimnessEnthusiastResearch: 0, FSAssetExpansionistResearch: 0, FSPastoralistResearch: 0, FSPhysicalIdealistResearch: 0, FSRepopulationFocusResearch: 0, FSRestartResearch: 0, embargo: 1, embargoTarget: -1, influenceTarget: -1, influenceBonus: 0, rival: 0}>> <<if $i == 0>> <<set $activeArcology.direction to 0>> + <<set $activeArcology.name to "Arcology X-4">> + <<set $activeArcology.FSSupremacistDecoration to 20, $activeArcology.FSSubjugationistDecoration to 20, $activeArcology.FSGenderRadicalistDecoration to 20, $activeArcology.FSGenderFundamentalistDecoration to 20, $activeArcology.FSPaternalistDecoration to 20, $activeArcology.FSDegradationistDecoration to 20, $activeArcology.FSBodyPuristDecoration to 20, $activeArcology.FSTransformationFetishistDecoration to 20, $activeArcology.FSYouthPreferentialistDecoration to 20, $activeArcology.FSMaturityPreferentialistDecoration to 20, $activeArcology.FSSlimnessEnthusiastDecoration to 20, $activeArcology.FSAssetExpansionistDecoration to 20, $activeArcology.FSPastoralistDecoration to 20, $activeArcology.FSPhysicalIdealistDecoration to 20, $activeArcology.FSChattelReligionistDecoration to 20, $activeArcology.FSRomanRevivalistDecoration to 20, $activeArcology.FSEgyptianRevivalistDecoration to 20, $activeArcology.FSEdoRevivalistDecoration to 20, $activeArcology.FSArabianRevivalistDecoration to 20, $activeArcology.FSChineseRevivalistDecoration to 20, $activeArcology.FSRepopulationFocusDecoration to 20, $activeArcology.FSRestartDecoration to 20>> + <<if $targetArcology.type != "New">> + <<set $FSAnnounced = 1>> + <<set $activeArcology.name = $targetArcology.name, $activeArcology.prosperity = $targetArcology.prosperity, $ACitizens += $targetArcology.citizens*500>> + <<set _decoration = $targetArcology.FSProgress + 10>> + <<switch $targetArcology.type>> + <<case "Supremacist">> + <<set $activeArcology.FSSupremacist = $targetArcology.FSProgress, $activeArcology.FSSupremacistDecoration = _decoration, $activeArcology.FSSupremacistRace = $targetArcology.race>> + <<case "Subjugationist">> + <<set $activeArcology.FSSubjugationist = $targetArcology.FSProgress, $activeArcology.FSSubjugationistDecoration = _decoration, $activeArcology.FSSubjugationistRace = $targetArcology.race>> + <<case "GenderRadicalist">> + <<set $activeArcology.FSGenderRadicalist = $targetArcology.FSProgress, $activeArcology.FSGenderRadicalistDecoration = _decoration>> + <<case "GenderFundamentalist">> + <<set $activeArcology.FSGenderFundamentalist = $targetArcology.FSProgress, $activeArcology.FSGenderFundamentalistDecoration = _decoration>> + <<case "Paternalist">> + <<set $activeArcology.FSPaternalist = $targetArcology.FSProgress, $activeArcology.FSPaternalistDecoration = _decoration>> + <<case "Degradationist">> + <<set $activeArcology.FSDegradationist = $targetArcology.FSProgress, $activeArcology.FSDegradationistDecoration = _decoration>> + <<case "AssetExpansionist">> + <<set $activeArcology.FSAssetExpansionist = $targetArcology.FSProgress, $activeArcology.FSAssetExpansionistDecoration = _decoration>> + <<case "SlimnessEnthusiast">> + <<set $activeArcology.FSSlimnessEnthusiast = $targetArcology.FSProgress, $activeArcology.FSSlimnessEnthusiastDecoration = _decoration>> + <<case "TransformationFetishist">> + <<set $activeArcology.FSTransformationFetishist = $targetArcology.FSProgress, $activeArcology.FSTransformationFetishistDecoration = _decoration>> + <<case "BodyPurist">> + <<set $activeArcology.FSBodyPurist = $targetArcology.FSProgress, $activeArcology.FSBodyPuristDecoration = _decoration>> + <<case "MaturityPreferentialist">> + <<set $activeArcology.FSMaturityPreferentialist = $targetArcology.FSProgress, $activeArcology.FSMaturityPreferentialistDecoration = _decoration>> + <<case "YouthPreferentialist">> + <<set $activeArcology.FSYouthPreferentialist = $targetArcology.FSProgress, $activeArcology.FSYouthPreferentialistDecoration = _decoration>> + <<case "Pastoralist">> + <<set $activeArcology.FSPastoralist = $targetArcology.FSProgress, $activeArcology.FSPastoralistDecoration = _decoration>> + <<case "PhysicalIdealist">> + <<set $activeArcology.FSPhysicalIdealist = $targetArcology.FSProgress, $activeArcology.FSPhysicalIdealistDecoration = _decoration>> + <<case "ChattelReligionist">> + <<set $activeArcology.FSChattelReligionist = $targetArcology.FSProgress, $activeArcology.FSChattelReligionistDecoration = _decoration>> + <<case "RomanRevivalist">> + <<set $activeArcology.FSRomanRevivalist = $targetArcology.FSProgress, $activeArcology.FSRomanRevivalistDecoration = _decoration>> + <<case "EgyptianRevivalist">> + <<set $activeArcology.FSEgyptianRevivalist = $targetArcology.FSProgress, $activeArcology.FSEgyptianRevivalistDecoration = _decoration>> + <<case "EdoRevivalist">> + <<set $activeArcology.FSEdoRevivalist = $targetArcology.FSProgress, $activeArcology.FSEdoRevivalistDecoration = _decoration>> + <<case "ArabianRevivalist">> + <<set $activeArcology.FSArabianRevivalist = $targetArcology.FSProgress, $activeArcology.FSArabianRevivalistDecoration = _decoration>> + <<case "ChineseRevivalist">> + <<set $activeArcology.FSChineseRevivalist = $targetArcology.FSProgress, $activeArcology.FSChineseRevivalistDecoration = _decoration>> + <<case "Eugenics">> + <<set $activeArcology.FSRestart = $targetArcology.FSProgress, $activeArcology.FSRestartDecoration = _decoration>> + <<case "Repopulationist">> + <<set $activeArcology.FSRepopulationFocus = $targetArcology.FSProgress, $activeArcology.FSRepopulationFocusDecoration = _decoration>> + <<default>> + <<set $activeArcology.FSNull = 20>> + <</switch>> + <<if $PC.rumor = "social engineering">> + <<set $FSGotRepCreditOne to 1>> + <</if>> + <</if>> <<else>> - <<set $activeArcology.name to $activeArcology.name+$i>> + <<if $i > 4>> + <<set $activeArcology.name to $activeArcology.name+$i>> + <<else>> + <<set $activeArcology.name to $activeArcology.name+($i+1)>> + <</if>> <<set $activeArcology.direction to $seed.pluck()>> <<set $activeArcology.government to random(0,5)>> <<set $activeArcology.prosperity += random(-20,20)>> @@ -323,29 +389,6 @@ <<set $arcologies.push($activeArcology)>> <</for>> -<<set $arcologies[0].FSSupremacistDecoration to 20>> -<<set $arcologies[0].FSSubjugationistDecoration to 20>> -<<set $arcologies[0].FSGenderRadicalistDecoration to 20>> -<<set $arcologies[0].FSGenderFundamentalistDecoration to 20>> -<<set $arcologies[0].FSPaternalistDecoration to 20>> -<<set $arcologies[0].FSDegradationistDecoration to 20>> -<<set $arcologies[0].FSBodyPuristDecoration to 20>> -<<set $arcologies[0].FSTransformationFetishistDecoration to 20>> -<<set $arcologies[0].FSYouthPreferentialistDecoration to 20>> -<<set $arcologies[0].FSMaturityPreferentialistDecoration to 20>> -<<set $arcologies[0].FSSlimnessEnthusiastDecoration to 20>> -<<set $arcologies[0].FSAssetExpansionistDecoration to 20>> -<<set $arcologies[0].FSPastoralistDecoration to 20>> -<<set $arcologies[0].FSPhysicalIdealistDecoration to 20>> -<<set $arcologies[0].FSChattelReligionistDecoration to 20>> -<<set $arcologies[0].FSRomanRevivalistDecoration to 20>> -<<set $arcologies[0].FSEgyptianRevivalistDecoration to 20>> -<<set $arcologies[0].FSEdoRevivalistDecoration to 20>> -<<set $arcologies[0].FSArabianRevivalistDecoration to 20>> -<<set $arcologies[0].FSChineseRevivalistDecoration to 20>> -<<set $arcologies[0].FSRepopulationFocusDecoration to 20>> -<<set $arcologies[0].FSRestartDecoration to 20>> - <<set $arcologies[0].FSSupremacistLawME to 0>> <<set $arcologies[0].FSSupremacistSMR to 0>> <<set $arcologies[0].FSSubjugationistLawME to 0>> @@ -406,9 +449,7 @@ <<set $arcologies[0].FSRestartResearch to 0>> <<set $arcologies[0].FSRestartResearchPassed = 0>> -<<set $arcologies[0].name to $arcologies[0].name + $arcologies.length>> - <<set $showStartingGirlsExplanation to 1>> <<goto "Starting Girls">> -<</silently>> \ No newline at end of file +<</silently>> diff --git a/src/events/intro/introSummary.tw b/src/events/intro/introSummary.tw index 46193496e76f8d0e7d8a3c7e613ed832400534f6..331a8fd6848af59eb8eecc7990186bdeaa46dd70 100644 --- a/src/events/intro/introSummary.tw +++ b/src/events/intro/introSummary.tw @@ -1,5 +1,5 @@ :: Intro Summary [nobr] - + <<set $neighboringArcologies to Math.clamp($neighboringArcologies, 0, 8)>> <<set $FSCreditCount to Math.clamp($FSCreditCount, 4, 7)>> @@ -14,6 +14,8 @@ You may review your settings before clicking "Continue" to begin. <<set $retirementAge = Math.clamp($retirementAge, 25, 120)>> <<set $fertilityAge = variableAsNumber($fertilityAge, 13, 3, 18)>> <<set $potencyAge = variableAsNumber($potencyAge, 13, 3, 18)>> +<<set $PC.mother = Number($PC.mother)>> +<<set $PC.father = Number($PC.father)>> __''World Settings''__ @@ -302,16 +304,6 @@ Girls will not be able to impregnate others if their age is under <<textbox "$po [[Enable non-erotic events|Intro Summary][$plot to 1]] <</if>> -<br> - -<<if $SFMODToggle == 1>> - The Security Force Mod is ''enabled.'' - [[Disable|Intro Summary][$SFMODToggle to 0]] -<<else>> - The Security Force Mod is ''disabled.'' - [[Enable|Intro Summary][$SFMODToggle to 1]] -<</if>> - <br> /% Begin mod section: toggle whether slaves lisp. %/ @@ -334,28 +326,24 @@ The Free City features ''$neighboringArcologies'' arcologies in addition to your <br> //Setting this to 0 will disable most content involving the rest of the Free City.// +<<if $targetArcology.type == "New">> <br> - The Free City is located on ''$terrain'' terrain. - [[Urban|Intro Summary][$terrain to "urban"]] | [[Rural|Intro Summary][$terrain to "rural"]] | [[Ravine|Intro Summary][$terrain to "ravine"]] | [[Marine|Intro Summary][$terrain to "marine"]] | [[Oceanic|Intro Summary][$terrain to "oceanic"]] - <<if $terrain != "oceanic">> <br> - The Free City is located in ''$continent''. - -[[North America|Intro Summary][$continent to "North America", $language to "English"]] | [[South America|Intro Summary][$continent to "South America", $language to "Spanish"]] | [[Europe|Intro Summary][$continent to "Europe", $language to "English"]] | [[the Middle East|Intro Summary][$continent to "the Middle East", $language to "Arabic"]] | [[Africa|Intro Summary][$continent to "Africa", $language to "Arabic"]] | [[Asia|Intro Summary][$continent to "Asia", $language to "Chinese"]] | [[Australia|Intro Summary][$continent to "Australia", $language to "English"]] | [[Japan|Intro Summary][$continent to "Japan", $language to "Japanese"]] +[[North America|Intro Summary][$continent to "North America", $language to "English"]] | [[South America|Intro Summary][$continent to "South America", $language to "Spanish"]] | [[Europe|Intro Summary][$continent to "Europe", $language to "English"]] | [[the Middle East|Intro Summary][$continent to "the Middle East", $language to "Arabic"]] | [[Africa|Intro Summary][$continent to "Africa", $language to "Arabic"]] | [[Asia|Intro Summary][$continent to "Asia", $language to "Chinese"]] | [[Australia|Intro Summary][$continent to "Australia", $language to "English"]] | [[Japan|Intro Summary][$continent to "Japan", $language to "Japanese", $PC.race to "asian", $PC.nationality to "Japanese", $PC.hColor to "black", $PC.eyeColor to "brown"]] +<</if>> <</if>> +<<if ($targetArcology.type != "RomanRevivalist") && ($targetArcology.type != "EgyptianRevivalist") && ($targetArcology.type != "EdoRevivalist") && ($targetArcology.type != "ArabianRevivalist") && ($targetArcology.type != "ChineseRevivalist")>> <br> - The lingua franca of your arcology is ''$language''. - <<if $language != "English">> [[English|Intro Summary][$language to "English"]] | <<else>> @@ -377,7 +365,7 @@ The lingua franca of your arcology is ''$language''. Chinese | <</if>> Custom: <<textbox "$language" $language "Intro Summary">> - +<</if>> <br> The Free City could develop as many as ''$FSCreditCount'' future societies. @@ -392,7 +380,7 @@ The Free City could develop as many as ''$FSCreditCount'' future societies. <<elseif $FSCreditCount <= 4>> <<set $FSCreditCountString = "four">> <</if>> -//4 is default, max is 7.// +//5 is default, 4 behaves the same as pre-patch 0.9.9.0, max is 7.// //Make sure to hit enter to confirm.// //This option cannot be changed during the game// @@ -420,9 +408,11 @@ Custom Lisped: <<textbox "$PC.customTitleLisp" $PC.customTitleLisp "Intro Summar //If using a custom title, select Master or Mistress to set the gender of your title.// //Make sure to replace your "s"s with "th"s to have working lisps in your lisped title.// +<<if $freshPC == 1 || $saveImported == 0>> <br> - Career: ''$PC.career''. +Career: ''$PC.career''. +<<if $PC.career != "arcology owner">> [[Wealth|Intro Summary][$PC.career to "wealth"]] | [[Business|Intro Summary][$PC.career to "capitalist"]] | [[PMC work|Intro Summary][$PC.career to "mercenary"]] | @@ -433,15 +423,16 @@ Custom Lisped: <<textbox "$PC.customTitleLisp" $PC.customTitleLisp "Intro Summar [[Escort|Intro Summary][$PC.career to "escort"]] | [[Servant|Intro Summary][$PC.career to "servant"]] | [[Gang Leader|Intro Summary][$PC.career to "gang"]] +<</if>> <br> - Method of acquiring your arcology: ''$PC.rumor''. - [[Wealth|Intro Summary][$PC.rumor to "wealth"]] | - [[Hard work|Intro Summary][$PC.rumor to "diligence"]] | - [[Force|Intro Summary][$PC.rumor to "force"]] | - [[Social engineering|Intro Summary][$PC.rumor to "social engineering"]] | - [[Luck|Intro Summary][$PC.rumor to "luck"]] +Method of acquiring your arcology: ''$PC.rumor''. +[[Wealth|Intro Summary][$PC.rumor to "wealth"]] | +[[Hard work|Intro Summary][$PC.rumor to "diligence"]] | +[[Force|Intro Summary][$PC.rumor to "force"]] | +[[Social engineering|Intro Summary][$PC.rumor to "social engineering"]] | +[[Luck|Intro Summary][$PC.rumor to "luck"]] <br> @@ -467,9 +458,12 @@ Genitalia: [[Do not take contraceptives|Intro Summary][$PC.preg = 0]] <<elseif $PC.preg == 0>> Contraceptives: ''off''. Can get pregnant; some scene alterations. - [[Take contraceptives|Intro Summary][$PC.preg = -1]] | [[Too late for that|Start][$PC.preg = 10]] -<<else>> + [[Take contraceptives|Intro Summary][$PC.preg = -1]] | [[Too late for that|Intro Summary][$PC.preg = 10]] +<<elseif $PC.preg == 10>> Contraceptives: ''pregnant''. Already pregnant; some scene alterations, more difficult reputation management, larger increase to living expenses. + [[Not pregnant|Intro Summary][$PC.preg = 0]] | [[Heavily pregnant|Intro Summary][$PC.preg = 43]] +<<else>> + Contraceptives: ''heavily pregnant''. About to give birth; some scene alterations, more difficult reputation management, larger increase to living expenses. [[Not pregnant|Intro Summary][$PC.preg = 0]] <</if>> @@ -477,13 +471,13 @@ Genitalia: <<if $PC.pregMood == 1>> Hormones affect mood: ''caring and motherly''. Sex scene alterations; slaves will trust you more, but may try to take advantage of your mercy. - [[Change to no change|Intro Summary][$PC.pregMood = 0]] | [[Change to aggressive|Start][$PC.pregMood = 2]] + [[Change to no change|Intro Summary][$PC.pregMood = 0]] | [[Change to aggressive|Intro Summary][$PC.pregMood = 2]] <<elseif $PC.pregMood == 0>> Hormones affect mood: ''no change''. Vanilla setting. - [[Change to motherly|Intro Summary][$PC.pregMood = 1]] | [[Change to aggressive|Start][$PC.pregMood = 2]] + [[Change to motherly|Intro Summary][$PC.pregMood = 1]] | [[Change to aggressive|Intro Summary][$PC.pregMood = 2]] <<else>> Hormones affect mood: ''aggressive and domineering''. Sex scene alterations; slaves will fear you more, but will become more submissive to you. - [[Change to no change|Intro Summary][$PC.pregMood = 0]] | [[Change to motherly|Start][$PC.pregMood = 1]] + [[Change to no change|Intro Summary][$PC.pregMood = 0]] | [[Change to motherly|Intro Summary][$PC.pregMood = 1]] <</if>> <</if>> @@ -555,6 +549,159 @@ Preferred method of consumption: ''<<if $PC.refreshmentType == 0>>Smoked<<elseif <br> <<if $PC.refreshmentType == 0>>//"Smoke" must fit into the following sentence: "I smoked a $PC.refreshment" to fit events properly//<</if>> +/*testtest PC mother and father */ +<<if $familyTesting == 1>> +<br><br> +''PC ID'' //Remember this so you can create slaves related to you next// +<br><<print $PC.ID>> +<br><br> +''mother ID'' +<<textbox "$PC.mother" $PC.mother "Intro Summary">> +<br> +''father ID'' +<<textbox "$PC.father" $PC.father "Intro Summary">> +<</if>> + +<<else>> + +<br> +Method of acquiring your arcology: ''$PC.rumor''. +<br> +Genitalia: +<<if $PC.dick == 1>> + <<if $PC.vagina == 1>> + ''penis and vagina''. + <<else>> + ''penis''. + <</if>> +<<else>> + ''vagina''. +<</if>> +<<if $PC.vagina == 1>> +<br> +<<if $PC.preg == -1>> + Contraceptives: ''on''. Can't get pregnant; slight increase to living expenses. + [[Do not take contraceptives|Intro Summary][$PC.preg = 0]] +<<elseif $PC.preg == 0>> + Contraceptives: ''off''. Can get pregnant; some scene alterations. + [[Take contraceptives|Intro Summary][$PC.preg = -1]] +<<elseif $PC.preg > 0>> + Contraceptives: ''<<print $PC.preg>>weeks pregnant'' +<</if>> +<br> +<<if $PC.pregMood == 1>> + Hormones affect mood: ''caring and motherly''. Sex scene alterations; slaves will trust you more, but may try to take advantage of your mercy. + [[Change to no change|Intro Summary][$PC.pregMood = 0]] | [[Change to aggressive|Intro Summary][$PC.pregMood = 2]] +<<elseif $PC.pregMood == 0>> + Hormones affect mood: ''no change''. Vanilla setting. + [[Change to motherly|Intro Summary][$PC.pregMood = 1]] | [[Change to aggressive|Intro Summary][$PC.pregMood = 2]] +<<else>> + Hormones affect mood: ''aggressive and domineering''. Sex scene alterations; slaves will fear you more, but will become more submissive to you. + [[Change to no change|Intro Summary][$PC.pregMood = 0]] | [[Change to motherly|Intro Summary][$PC.pregMood = 1]] +<</if>> +<<if $PC.births > 0>> +<br> + Number of births: ''$PC.births'' +<</if>> +<</if>> +<br> +<<if $PC.boobs > 0>> + Chest: + <<if $PC.boobsBonus = 1>> + ''big breasts''. + <<elseif $PC.boobsBonus = 2>> + ''huge breasts''. + <<elseif $PC.boobsBonus = 3>> + ''cow tits''. + <<else>> + ''breasts''. + <</if>> +<<else>> + Chest: ''masculine''. +<</if>> +<br> +Age: +<<if $PC.age is 3>> + ''well into middle age''. +<<elseif $PC.age is 2>> + ''entering middle age''. +<<else>> + ''surprisingly young''. +<</if>> +<br> +Change your name: <<textbox "$PCName" $PCName "Intro Summary">> +<br> +Nationality: ''$PC.nationality''. +<br> +Race: ''$PC.race''. +<br> +Skin: ''$PC.skin''. +<br> +Eye color: ''$PC.eyeColor''. +<br> +Hair color: ''$PC.hColor''. +<br> +Preferred refreshment: <<textbox "$PC.refreshment" $PC.refreshment "Intro Summary">> [[Cigars|Intro Summary][$PC.refreshment to "cigar",$PC.refreshmentType = 0]] | [[Whiskey|Intro Summary][$PC.refreshment to "whiskey",$PC.refreshmentType = 1]] +<br> +Preferred method of consumption: ''<<if $PC.refreshmentType == 0>>Smoked<<elseif $PC.refreshmentType == 1>>Drank<<elseif $PC.refreshmentType == 2>>Eaten<<elseif $PC.refreshmentType == 3>>Snorted<<else>>Injected<</if>>''. +[[Smoked|Intro Summary][$PC.refreshmentType = 0]] | [[Drank|Intro Summary][$PC.refreshmentType = 1]] | [[Eaten|Intro Summary][$PC.refreshmentType = 2]] | [[Snorted|Intro Summary][$PC.refreshmentType = 3]] | [[Injected|Intro Summary][$PC.refreshmentType = 4]] +<br> +<<if $PC.refreshmentType == 0>>//"Smoke" must fit into the following sentence: "I smoked a $PC.refreshment" to fit events properly//<</if>> + +/*testtest PC mother and father */ +<<if $familyTesting == 1>> +<br><br> +''PC ID'' //Remember this so you can create slaves related to you next// +<br><<print $PC.ID>> +<br><br> +''mother ID'' +<br> +''father ID'' +<</if>> + +<</if>> + +<br><br> + +Image display +<<if $seeImages == 1>> + ''enabled.'' [[Disable|Intro Summary][$seeImages = 0]] + <br> + <<if $imageChoice == 1>> + ''Vector art by NoX'' is selected. [[Switch to rendered imagepack|Intro Summary][$imageChoice = 0]] + <<else>> + ''Rendered imagepack by Shokushu'' is selected. [[Switch to vector art|Intro Summary][$imageChoice = 1]] + <br> + Slave summary fetish images + <<if $seeMainFetishes == 1>> + ''enabled.'' [[Disable|Intro Summary][$seeMainFetishes = 0]] + <<else>> + ''disabled.'' [[Enable|Intro Summary][$seeMainFetishes = 1]] + <</if>> + <</if>> + <br> + Slave images in lists are + <<if $seeSummaryImages == 1>> + ''enabled.'' [[Disable|Intro Summary][$seeSummaryImages = 0]] + <<else>> + ''disabled.'' [[Enable|Intro Summary][$seeSummaryImages = 1]] + <</if>> +<<else>> + ''disabled.'' [[Enable|Intro Summary][$seeImages = 1]] //Requires image resources.// +<</if>> + +<br><br> + +<<if $SFMODToggle == 1>> + The Security Force Mod is ''enabled.'' +[[Disable|Intro Summary][$SFMODToggle to 0]] +<<else>> + The Security Force Mod is ''disabled.'' +[[Enable|Intro Summary][$SFMODToggle to 1]] +<</if>> +<br> +// This mod from anon1888 offers a lategame security force, triggered around week 80. It is non-canon where it conflicts with canonical updates to the base game.// + <br><br> [[Continue|init Nationalities][$girls to 2]] diff --git a/src/events/intro/locationIntro.tw b/src/events/intro/locationIntro.tw index f66ffe68679a15b821c71215e8df7b24085bab21..980c4d5715fdbb906fad5292700357b7d3da0504 100644 --- a/src/events/intro/locationIntro.tw +++ b/src/events/intro/locationIntro.tw @@ -1,13 +1,13 @@ :: Location Intro -As the old countries crumble and technology stagnates, the gap between rich and poor increases. In order to continue living a good life without having their property taken by the mob, many of the wealthy and powerful come together to form 'Free Cities.' These are new cities on undeveloped land, in remote areas, or even afloat, fully free of any allegiance or law. These new cities are built on new ideas, with most buildings designed as futuristic, self-contained 'arcologies.' An arcology and everything in it is usually owned by a single person. And as of today, one of those single people is you. @@color:orange;In what part of the world is your new arcology located?@@ +As the old countries crumble and technology stagnates, the gap between rich and poor increases. In order to continue living a good life without having their property taken by the mob, many of the wealthy and powerful come together to form 'Free Cities.' These are new cities on undeveloped land, in remote areas, or even afloat, fully free of any allegiance or law. These new cities are built on new ideas, with most buildings designed as futuristic, self-contained 'arcologies.' An arcology and everything in it is usually owned by a single person. And you're determined that you will soon be one of those single people. @@color:orange;In what part of the world is your new arcology going to be located?@@ -[[North America|Trade Intro][$continent to "North America", $language to "English"]] -[[South America|Trade Intro][$continent to "South America", $language to "Spanish"]] -[[Europe|Trade Intro][$continent to "Europe", $language to "English"]] -[[the Middle East|Trade Intro][$continent to "the Middle East", $language to "Arabic"]] -[[Africa|Trade Intro][$continent to "Africa", $language to "Arabic"]] -[[Asia|Trade Intro][$continent to "Asia", $language to "Chinese"]] -[[Australia|Trade Intro][$continent to "Australia", $language to "English"]] -[[Japan|Trade Intro][$continent to "Japan", $language to "Japanese", $PC.race to "asian", $PC.nationality to "Japanese", $PC.hColor to "black", $PC.eyeColor to "brown"]] +[[North America|Intro Summary][$continent to "North America", $language to "English"]] +[[South America|Intro Summary][$continent to "South America", $language to "Spanish"]] +[[Europe|Intro Summary][$continent to "Europe", $language to "German"]] +[[the Middle East|Intro Summary][$continent to "the Middle East", $language to "Arabic"]] +[[Africa|Intro Summary][$continent to "Africa", $language to "Arabic"]] +[[Asia|Intro Summary][$continent to "Asia", $language to "Chinese"]] +[[Australia|Intro Summary][$continent to "Australia", $language to "English"]] +[[Japan|Intro Summary][$continent to "Japan", $language to "Japanese", $PC.race to "asian", $PC.nationality to "Japanese", $PC.hColor to "black", $PC.eyeColor to "brown"]] //Slaves from countries in the selected continent will appear more frequently.// diff --git a/src/events/intro/pcBodyIntro.tw b/src/events/intro/pcBodyIntro.tw index 6edf9cdb199a027241ba256e63794435997cd21a..c43ddd77b1ea49ee9a4b8b28fb5fb8d89bd89da5 100644 --- a/src/events/intro/pcBodyIntro.tw +++ b/src/events/intro/pcBodyIntro.tw @@ -1,6 +1,6 @@ :: PC Body Intro [nobr] -Most Free Cities arcology owners and slaveowners are male. The preexisting power structures of the old world have mostly migrated to the new, and it can often be very hard to be a free woman in the Free Cities. Some manage to make their way, but in many arcologies, men are the owners, and women are the owned. You'll cut a striking figure as the owner and leader of your new arcology, but @@color:orange;what's under your business attire?@@ +Most slaveowners in the Free Cities are male. The preexisting power structures of the old world have mostly migrated to the new, and it can often be very hard to be a free woman in the Free Cities. Some manage to make their way, but in many arcologies, men are the owners, and women are the owned. You'll cut a striking figure as the owner and leader of your arcology, but @@color:orange;what's under your business attire?@@ <br> diff --git a/src/events/intro/pcExperienceIntro.tw b/src/events/intro/pcExperienceIntro.tw index cf8d7016da1fe961cd06910b294083b2b01eb113..761432f08ee70aa679da5d38e0e8f4d9c6e9217e 100644 --- a/src/events/intro/pcExperienceIntro.tw +++ b/src/events/intro/pcExperienceIntro.tw @@ -1,25 +1,31 @@ -:: PC Experience Intro +:: PC Experience Intro [nobr] -You're a relative unknown in the Free Cities, but it's clear you're already accomplished. The meek and average don't suddenly acquire arcologies. You've got all the necessary skills to succeed as the owner of an arcology, but you should be able to leverage the skills and experience you retain from your past, too. @@color:orange;What career led you to acquire an arcology?@@ +<<if $PC.career == "arcology owner">> + <<goto "PC Rumor Intro">> +<<else>> -[[Idle wealth|PC Rumor Intro][$PC.career to "wealth"]] - //Start with extra money. Your starting slaves will have two free levels of sex skills available.// -[[Venture capitalism|PC Rumor Intro][$PC.career to "capitalist"]] - //You will be more effective at business pursuits. Your starting slaves will have a free level of prostitution skill available.// -[[Private military work|PC Rumor Intro][$PC.career to "mercenary"]] - //You retain mercenary contacts and security skills. Your starting slaves will have free trust available.// -[[Slaving|PC Rumor Intro][$PC.career to "slaver"]] - //Your slave breaking experience will be useful. Your starting slaves will have free devotion available.// -[[Arcology engineering|PC Rumor Intro][$PC.career to "engineer"]] - //Upgrading the arcology will be cheaper. Also, the arcology will start with basic economic upgrades already installed.// -[[Slave surgery|PC Rumor Intro][$PC.career to "medicine"]] - //Surgery will be cheaper and healthier, and drug upgrades will be cheaper. Your starting slaves will have free implants available.// -[[Minor celebrity|PC Rumor Intro][$PC.career to "celebrity"]] - //Start with extra reputation. Your starting slaves will have a free level of entertainment skill available.// -[[High class escort|PC Rumor Intro][$PC.career to "escort"]] - //As an ex-whore, you will find it hard to maintain reputation. Your starting slaves will have a free level of sex skills available, along with a free level of entertainment and prostitution.// -[[Servant|PC Rumor Intro][$PC.career to "servant"]] - //As an ex-servant, you will find it hard to maintain reputation. You know how to lower your upkeep, but not conduct business. Your starting slaves will have free trust and devotion.// -[[Gang Leader|PC Rumor Intro][$PC.career to "gang"]] - //As a gang leader, you know how to haggle slaves, but you will find reputation quite hard to maintain. Your starting slaves will be fitter and posses a free level of combat skill.// +You're a relative unknown in the Free Cities, but it's clear you're already accomplished. The meek and average cannot aspire to acquire arcologies. You've got all the necessary skills to take over an arcology and succeed as its owner, but you should be able to leverage the skills and experience you retain from your past, too. @@color:orange;What career brought you to the Free Cities?@@ +<br> +<br>[[Idle wealth|PC Rumor Intro][$PC.career to "wealth"]] +<br> //Start with extra money. Your starting slaves will have two free levels of sex skills available.// +<br>[[Venture capitalism|PC Rumor Intro][$PC.career to "capitalist"]] +<br> //You will be more effective at business pursuits. Your starting slaves will have a free level of prostitution skill available.// +<br>[[Private military work|PC Rumor Intro][$PC.career to "mercenary"]] +<br> //You retain mercenary contacts and security skills. Your starting slaves will have free trust available.// +<br>[[Slaving|PC Rumor Intro][$PC.career to "slaver"]] +<br> //Your slave breaking experience will be useful. Your starting slaves will have free devotion available.// +<br>[[Arcology engineering|PC Rumor Intro][$PC.career to "engineer"]] +<br> //Upgrading the arcology will be cheaper. Also, the arcology will start with basic economic upgrades already installed.// +<br>[[Slave surgery|PC Rumor Intro][$PC.career to "medicine"]] +<br> //Surgery will be cheaper and healthier, and drug upgrades will be cheaper. Your starting slaves will have free implants available.// +<br>[[Minor celebrity|PC Rumor Intro][$PC.career to "celebrity"]] +<br> //Start with extra reputation. Your starting slaves will have a free level of entertainment skill available.// +<br>[[High class escort|PC Rumor Intro][$PC.career to "escort"]] +<br> //As an ex-whore, you will find it hard to maintain reputation. Your starting slaves will have a free level of sex skills available, along with a free level of entertainment and prostitution.// +<br>[[Servant|PC Rumor Intro][$PC.career to "servant"]] +<br> //As an ex-servant, you will find it hard to maintain reputation. You know how to lower your upkeep, but not conduct business. Your starting slaves will have free trust and devotion.// +<br>[[Gang Leader|PC Rumor Intro][$PC.career to "gang"]] +<br> //As a gang leader, you know how to haggle slaves, but you will find reputation quite hard to maintain. Your starting slaves will be fitter and posses a free level of combat skill.// + +<</if>> diff --git a/src/events/intro/pcRumorIntro.tw b/src/events/intro/pcRumorIntro.tw index fce0bc0199180ab92ec00dccf49024e6759f99c2..133121a7fc6bc7c7d9c91acd896dec1add4a2b87 100644 --- a/src/events/intro/pcRumorIntro.tw +++ b/src/events/intro/pcRumorIntro.tw @@ -1,14 +1,14 @@ :: PC Rumor Intro -Who you are is something that you will have to define for yourself through your actions. No one is in a position to apply moral scorekeeping to you. In the brave new world of the Free Cities, you are largely free to define yourself as the sum of your actions, rather than as the product of your past. Nevertheless, stories will circulate about how exactly you ousted the previous owner of the arcology. @@color:orange;What rumored method best describes your accession?@@ +Who you are is something that you will have to define for yourself through your actions. Once you own an arcology, no one will be in a position to apply moral scorekeeping to you. In the brave new world of the Free Cities, you will be free to define yourself as the sum of your actions, rather than as the product of your past. The first decision that will define who you are as an arcology owner is your choice of method in acquiring one. @@color:orange;What approach will you take?@@ -[[A judicious application of funds|PC Body Intro][$PC.rumor to "wealth"]] - //Start with extra money.// -[[Hard work and diligence|PC Body Intro][$PC.rumor to "diligence"]] - //New slaves will hate you less.// -[[The remorseless use of force|PC Body Intro][$PC.rumor to "force"]] - //New slaves will fear you more.// -[[Clever social engineering|PC Body Intro][$PC.rumor to "social engineering"]] - //Start with the first societal option unlocked.// -[[Blind luck|PC Body Intro][$PC.rumor to "luck"]] - //You will start with a good reputation.// +[[A judicious application of funds|Takeover Target][$PC.rumor to "wealth"]] + //Start with extra money, since you were wealthy enough to buy an arcology.// +[[Hard work and diligence|Takeover Target][$PC.rumor to "diligence"]] + //New slaves will hate you less, since it will be known that you worked hard to earn your position.// +[[The remorseless use of force|Takeover Target][$PC.rumor to "force"]] + //New slaves will fear you more, since rumors about your violent takeover will inevitably circulate.// +[[Clever social engineering|Takeover Target][$PC.rumor to "social engineering"]] + //Start with the first societal option unlocked, since you manipulated the arcology's citizens.// +[[Blind luck|Takeover Target][$PC.rumor to "luck"]] + //Start with a good reputation, since the story of your unlikely accession will be famous.// diff --git a/src/events/intro/terrainIntro.tw b/src/events/intro/terrainIntro.tw index 718782cc0d027ad745c386d65df84e5a1f482bca..aa06d548a1228ee6cf8b6f02e55f2cb787a05ccc 100644 --- a/src/events/intro/terrainIntro.tw +++ b/src/events/intro/terrainIntro.tw @@ -1,38 +1,63 @@ -:: Terrain Intro +:: Terrain Intro [nobr] -The Free Cities were and are founded wherever the rule of law is weak enough or permissive enough to allow a small area to secede, and where founders can afford to buy an area on which to build. +<<unset $targetArcologies>> +<<if $targetArcology.type != "New">> + <<set $terrain = $targetArcology.terrain, $continent = $targetArcology.continent>> + <<switch $targetArcology.type>> + <<case "RomanRevivalist">><<set $language = "Latin">> + <<case "EgyptianRevivalist">><<set $language = "Ancient Egyptian">> + <<case "EdoRevivalist">><<set $language = "Japanese">> + <<case "ArabianRevivalist">><<set $language = "Arabic">> + <<case "ChineseRevivalist">><<set $language = "Chinese">> + <<default>> + <<switch $terrain>> + <<case "oceanic" "North America" "Australia">><<set $language = "English">> + <<case "South America">><<set $language = "Spanish">> + <<case "the Middle East" "Africa">><<set $language = "Arabic">> + <<case "Asia">><<set $language = "Chinese">> + <<case "Europe">><<set $language = "German">> + <<case "Japan">><<set $language = "Japanese">> + <</switch>> + <</switch>> + <<goto "Intro Summary">> +<<else>> +The Free Cities are located wherever the rule of law is weak enough or permissive enough to allow a small area to secede, and where founders can afford to buy an area on which to build. +<br><br> Many Free Cities are therefore located in marginal, rural terrain. Founding a Free City in such an area is easy, and can usually be accomplished with the indifference or even connivance of the old country from which it secedes. After all, the potential commercial benefits are great, and the loss of underused land is only significant in the moral sense. - +<br><br> Some Free Cities are located on water. Though some areas of shallow sea over the continental shelves hide valuable resources, others are neglected. Arcologies are such massive structures that it is very possible to design them to float anchored to the seabed. - +<br><br> Finally, a few Free Cities have been carved out from old world cities. Urban decay has left the hearts of many cities ripe for this. Many old world countries resist this kind of secession, but this rarest, smallest, and densest kind of Free City can offer its surrounding nation a great deal of economic advantage. - +<br><br> @@color:orange;Which kind of Free City hosts your arcology?@@ +<br> + +<br>[[Urban|Location Intro][$terrain to "urban"]] +<br> @@color:yellow;Low@@ minimum slave value and initial @@color:yellow;bear market@@ for slaves. +<br> @@color:green;High@@ ease of commerce with the old world. +<br> @@color:green;High@@ access to refugees and other desperate people. +<br> @@color:red;Low@@ cultural independence. +<br>[[Rural|Location Intro][$terrain to "rural"]] +<br> @@color:yellow;High@@ minimum slave value and initial @@color:yellow;bull market@@ for slaves. +<br> Moderate ease of commerce with the old world. +<br> Moderate access to refugees and other desperate people. +<br> Moderate cultural independence. +<br>[[Ravine|Location Intro][$terrain to "ravine"]] +<br> @@color:yellow;High@@ minimum slave value and initial @@color:yellow;bull market@@ for slaves. +<br> @@color:red;Low@@ ease of commerce with the old world. +<br> @@color:red;Very low@@ access to refugees and other desperate people. +<br> @@color:green;High@@ cultural independence. +<br>[[Marine|Location Intro][$terrain to "marine"]] +<br> Moderate minimum slave value and initially balanced market for slaves. +<br> Moderate ease of commerce with the old world. +<br> @@color:red;Low@@ access to refugees and other desperate people. +<br> @@color:green;High@@ cultural independence. +<br>[[Oceanic|Intro Summary][$terrain to "oceanic"]] +<br> @@color:yellow;High@@ minimum slave value and initial @@color:yellow;bull market@@ for slaves. +<br> Moderate ease of commerce with the old world. +<br> @@color:red;Very low@@ access to refugees and other desperate people. +<br> @@color:green;Very high@@ cultural independence. +<br> Ensures access to slaves from all over the world and will not associate the arcology with a continent. -[[Urban|Location Intro][$terrain to "urban"]] - @@color:yellow;Low@@ minimum slave value and initial @@color:yellow;bear market@@ for slaves. - @@color:green;High@@ ease of commerce with the old world. - @@color:green;High@@ access to refugees and other desperate people. - @@color:red;Low@@ cultural independence. -[[Rural|Location Intro][$terrain to "rural"]] - @@color:yellow;High@@ minimum slave value and initial @@color:yellow;bull market@@ for slaves. - Moderate ease of commerce with the old world. - Moderate access to refugees and other desperate people. - Moderate cultural independence. -[[Ravine|Location Intro][$terrain to "ravine"]] - @@color:yellow;High@@ minimum slave value and initial @@color:yellow;bull market@@ for slaves. - @@color:red;Low@@ ease of commerce with the old world. - @@color:red;Very low@@ access to refugees and other desperate people. - @@color:green;High@@ cultural independence. -[[Marine|Location Intro][$terrain to "marine"]] - Moderate minimum slave value and initially balanced market for slaves. - Moderate ease of commerce with the old world. - @@color:red;Low@@ access to refugees and other desperate people. - @@color:green;High@@ cultural independence. -[[Oceanic|Extreme Intro][$terrain to "oceanic"]] - @@color:yellow;High@@ minimum slave value and initial @@color:yellow;bull market@@ for slaves. - Moderate ease of commerce with the old world. - @@color:red;Very low@@ access to refugees and other desperate people. - @@color:green;Very high@@ cultural independence. - Ensures access to slaves from all over the world and will not associate the arcology with a continent. +<</if>> diff --git a/src/gui/Encyclopedia/encyclopedia.tw b/src/gui/Encyclopedia/encyclopedia.tw index cf5868585ef5f7c7944ec04cb3b4593a72a1cd32..56147e3a2c58676c4e96cb1d10f09460409a671f 100644 --- a/src/gui/Encyclopedia/encyclopedia.tw +++ b/src/gui/Encyclopedia/encyclopedia.tw @@ -114,7 +114,7 @@ Arcologies are the urban buildings of the future: almost completely self-contain Your arcology is a flared structure, needle thin at the top where you live in your penthouse, and broad at the base. The base below ground contains storage and machinery. The lowest aboveground levels are commercial; above them are the residential areas. The entire structure is jacketed in dense gardens and solar arrays, cleverly structured to create naturally lit corridors and beautiful parklike balconies. --- Owner's report, Arcology X-4 +-- Owner's Report //You may wish to improve your arcology, but should be able to ignore its development, if you wish.// @@ -916,6 +916,7 @@ __I do not give credit without explicit permission to do so.__ If you have contr ''Pregmodder'' has modded extensively, including descriptive embellishments for pregnant slaves, Master Suite reporting, the Wardrobe, a pack of facility leader interactions, options for Personal Assistant appearances, birthing scenes, fake pregnancy accessories, many other preg mechanics, blind content, expanded chubby belly descriptions, several new surgeries, better descriptive support for different refreshments, and an expansion to the hostage corruption event chain. ''Lolimodder'' your loli expertise will be missed. ''pregmodfan'' for tremendous amounts of work with compilers, decompilers, etc. Single-handedly kicked this mod into its new git home. Also for ppmod, ramod, implmod and cfpmod. +''family mod anon'' for extending extended family mode. ''anon'' for lolimod content, new slave careers, new pubestyles, and general improvements. ''anon'' for considerable bugfixing, most notably that infernal reputation bug. ''anon'' added a pair of fairy PA appearances. @@ -926,10 +927,13 @@ __I do not give credit without explicit permission to do so.__ If you have contr ''anon'' for grorious nihon starting rocation. ''anon'' for player getting fucked work. ''anon'' for additional bodyguard weapons. +''anon'' for HGExclusion and animal pregnancy work. +''anon'' for putting up with my javascript incompetence. +''anon'' for player family listing. ''Bane70'' optimized huge swaths of code with notable professionalism. ''Circle Tritagonist'' provided several new collars and outfits. ''Qotsafan'' submitted bugfixes. -''FireDrops'' provided standardized body mod scoring, gave Recruiters their idle functions, and fixed bugs. +''FireDrops'' provided standardized body mod scoring, gave Recruiters their idle functions, revised personal assistant future society associations, and fixed bugs. ''Princess April'' wrote and coded several random events and the Slimness Enthusiast Dairy upgrade. ''Hicks'' provided minor logic and balance improvements in coded, release-ready form. ''Dej'' coded better diet logic for the RA. diff --git a/src/gui/mainMenu/AlphaDisclaimer.tw b/src/gui/mainMenu/AlphaDisclaimer.tw index e2cf50901fd47c40262c5d62d616d076738554b3..c01d35b0c49a0b19743844d99b6a46fd2e7383a3 100644 --- a/src/gui/mainMenu/AlphaDisclaimer.tw +++ b/src/gui/mainMenu/AlphaDisclaimer.tw @@ -1,6 +1,5 @@ :: Alpha disclaimer - <<set $ui to "start">>\ //v. $ver// @@color:green;//Mod: expanded age ranges and other tweaks 2016-08-30//@@ @@color:darkred;+SV@@ diff --git a/src/init/storyInit.tw b/src/init/storyInit.tw index b042af20d18a93031ac3887476162fe2bbdbe504..60c41e5b2a83f67d2537816754b73ed17533483f 100644 --- a/src/init/storyInit.tw +++ b/src/init/storyInit.tw @@ -9,6 +9,7 @@ <<set $slaves[$i].assignment to "rest">> <<set $slaves[$i].assignmentVisible to 1>> <<set $slaves[$i].weekAcquired to 1>> + <<PMODinit $slaves[$i]>> <<if $slaves[$i].mother > 0>> <<set $slaves[$i].mother += 1200000>> <<elseif $slaves[$i].mother < -1>> @@ -21,6 +22,7 @@ <</if>> <<set $slaves[$i].daughters = 0>> <<set $slaves[$i].sisters = 0>> + <<set $slaves[$i].breedingMark = 0>> <<if $arcologies[0].FSRomanRevivalist > 90>> <<set $slaves[$i].nationality to "Roman Revivalist">> <<elseif $arcologies[0].FSEgyptianRevivalist > 90>> @@ -42,6 +44,10 @@ <<set $dump to $slaves.pluck([$i], [$i])>><<set $i-->> <</if>> <</for>> + <<set $genePool = []>> + <<for $i to 0; $i < $slaves.length; $i++>> + <<set $genePool.push(slaves[$i])>> + <</for>> <<for $i to 0; $i < $slaves.length; $i++>> <<if $slaves[$i].relation != 0>> <<set $seed to 0>> @@ -74,29 +80,23 @@ <</if>> <</if>> <</for>> - <<set $recruiters = []>> <<for $i to 0; $i < $slaves.length; $i++>> <<if $familyTesting == 1>> <<if $slaves[$i].canRecruit == 1>> - <<set $recruiters.push($slaves[$i])>> + /*<<set $recruiters.push($slaves[$i])>>*/ <</if>> <<else>> <<if $slaves[$i].relation == 0>> <<if random(1,100) <= 5>> <<set $slaves[$i].recruiter to "twin">> - <<set $recruiters.push($slaves[$i])>> <<elseif ($slaves[$i].actualAge > 32) and (random(1,100) <= 41)>> <<set $slaves[$i].recruiter to "mother">> - <<set $recruiters.push($slaves[$i])>> <<elseif ($slaves[$i].actualAge < 24) and (random(1,100) <= 40)>> <<set $slaves[$i].recruiter to "daughter">> - <<set $recruiters.push($slaves[$i])>> <<elseif ($slaves[$i].actualAge < 43) and (random(1,100) <= 20)>> <<set $slaves[$i].recruiter to "older sister">> - <<set $recruiters.push($slaves[$i])>> <<elseif ($slaves[$i].actualAge < 25) and ($slaves[$i].actualAge > 18) and (random(1,100) <= 20)>> <<set $slaves[$i].recruiter to "young sister">> - <<set $recruiters.push($slaves[$i])>> <</if>> <<else>> <<set $slaves[$i].recruiter to 0>> @@ -121,7 +121,7 @@ <</if>> <</if>> <</if>> - <<if ($ver != "0.9.5") && ($ver != "0.9.6") && ($ver != "0.9.7") && ($ver != "0.9.8")>> + <<if ($ver != "0.9.5") && ($ver != "0.9.6") && ($ver != "0.9.7") && ($ver != "0.9.8") && ($ver != "0.9.9")>> <<if $slaves[$i].oralSkill > 0>> <<if $slaves[$i].oralSkill == 3>> <<set $slaves[$i].oralSkill = 100>> @@ -211,14 +211,20 @@ <<if ndef $slaves[$i].fuckdoll>> <<set $slaves[$i].fuckdoll to 0>> <</if>> - <<set $activeSlave to $slaves[$i]>> - <<display "Checkin Checks">> + <<if ndef $slaves[$i].customImage>> + <<set $slaves[$i].customImage to 0>> + <</if>> + <<if ndef $slaves[$i].nationality>> + <<set $slaves[$i].nationality = "slave">> + <</if>> <</for>> + <<set $slavesOriginal = $slaves>> <<set $organs = []>> <<else>> <<set $slaves = []>> - <<set $recruiters = []>> + <<set $slavesOriginal = []>> <<set $organs = []>> + <<set $genePool = []>> <</if>> <<set $recruiterCareers = []>> <<if ndef $saveImported>> @@ -239,6 +245,12 @@ <<if ndef $seeSummaryImages>> <<set $seeSummaryImages to 1>> <</if>> +<<if ndef $universalRulesBirthing>> + <<set $universalRulesBirthing to 0>> +<</if>> +<<if def $recruiters>> + <<unset $recruiters>> +<</if>> <<if $ver == "0.9">> <<if $seeDicks == 2>> <<set $seeDicks = 100>> @@ -246,7 +258,7 @@ <<set $seeDicks = 25>> <</if>> <</if>> -<<if ($ver != "0.9.4") && ($ver != "0.9.5") && ($ver != "0.9.6") && ($ver != "0.9.7") && ($ver != "0.9.8")>> +<<if ($ver != "0.9.4") && ($ver != "0.9.5") && ($ver != "0.9.6") && ($ver != "0.9.7") && ($ver != "0.9.8") && ($ver != "0.9.9")>> <<for _r to 0; _r < $defaultRules.length; _r++>> <<if ndef $defaultRules[_r].aphrodisiacs>> <<set $defaultRules[_r].aphrodisiacs = 0>> @@ -297,7 +309,7 @@ <<set $cheater to 0>> <<set $PCName to "Anonymous">> -<<set $PC to {title: 1, dick: 1, vagina: 0, preg: 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, race: "white", skin: "white", eyeColor: "blue", hColor: "blonde", nationality: "Stateless"}>> +<<set $PC to {title: 1, ID: -1, dick: 1, vagina: 0, preg: 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, race: "white", skin: "white", eyeColor: "blue", hColor: "blonde", nationality: "Stateless", father: 0, mother: 0, sisters: 0, daughters: 0, birthElite: 0, birthMaster: 0, birthDegenerate: 0, birthClient: 0, birthOther: 0, birthArcOwner: 0}>> <<set $cash = 10000>> <<set $normalizedEvents to 0>> <<set $autosave to 1>> @@ -383,15 +395,21 @@ <<set $autoSurgery to {lactation: 0, cosmetic: 1, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 0, hips: 0, hipsImplant: 0, butt: 0, faceShape: "normal", lips: 10, holes: 0}>> <<else>> - -<<set $cash to 5000>> -<<if ndef $universalRulesBirthing>> - <<set $universalRulesBirthing to 0>> + <<if $freshPC == 0>> + <<set $cash to Math.clamp(1000*Math.trunc($cash/100000), 5000, 1000000)>> + <<if $retainCareer == 0>> + <<set $PC.career = "arcology owner">> + <</if>> + <<else>> + <<set $cheater to 0>> + <<set $PCName to "Anonymous">> + <<set $PC to {title: 1, ID: -1, dick: 1, vagina: 0, preg: 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, race: "white", skin: "white", eyeColor: "blue", hColor: "blonde", nationality: "Stateless", father: 0, mother: 0, sisters: 0, daughters: 0, birthElite: 0, birthMaster: 0, birthDegenerate: 0, birthClient: 0, birthOther: 0, birthArcOwner: 0}>> + <</if>> <</if>> -<</if>> +<<set $ver = "0.9.9">> -<<set $ver = "0.9.8">> +<<set $targetArcology = {type: "New"}>> <<set $REFeminizationCheckinIDs to []>> <<set $REMILFCheckinIDs to []>> @@ -497,14 +515,14 @@ DairyRestraintsSetting($dairyRestraintsSetting) <<set $spaNameCaps = "The Spa">> <<set $incubator = 0>> <<set $incubatorSlaves = 0>> -<<set $incubatorUpgradeSpeed = 0>> +<<set $incubatorUpgradeSpeed = 5>> <<set $incubatorUpgradeWeight = 0>> <<set $incubatorUpgradeMuscles = 0>> <<set $incubatorUpgradeReproduction = 0>> <<set $incubatorName = "the Incubator">> <<set $incubatorNameCaps = "The Incubator">> +<<set $reservedChildren = 0>> <<set $tanks = []>> -<<set $tanks = [0]>> <<set $clinicSlaves = 0>> <<set $clinicDecoration = "standard">> <<set $clinic = 0>> @@ -583,8 +601,8 @@ DairyRestraintsSetting($dairyRestraintsSetting) <<set $FSAnnounced to 0>> <<set $FSCredits to 0>> -<<set $FSCreditCount to 4>> -<<set $FSCreditCountString to "four">> +<<set $FSCreditCount to 5>> +<<set $FSCreditCountString to "five">> <<set $FSGotRepCreditOne to 0>> <<set $FSGotRepCreditTwo to 0>> <<set $FSGotRepCreditThree to 0>> @@ -686,12 +704,6 @@ DairyRestraintsSetting($dairyRestraintsSetting) <<set $clinicInflateBelly = 0>> <<set $playerBred = 0>> <<set $propOutcome = 0>> -<<set $birthElite to 0>> -<<set $birthMaster to 0>> -<<set $birthDegenerate to 0>> -<<set $birthClient to 0>> -<<set $birthOther to 0>> -<<set $birthArcOwner to 0>> <<set $EliteSires = []>> <<set $EliteSires = ["moves", "quick", "crazy", "virgin", "futa", "preggo"]>> <<set $startingPoint = -1>> @@ -703,8 +715,11 @@ DairyRestraintsSetting($dairyRestraintsSetting) <<set $missingParentID to -10000>> <<set $startingSlaveRelative to 0>> <<set $relationID = 0>> +<<set $mom = 0>> <<set $animalParts = 0>> <<set $showBestiality = 0>> +<<set $retainCareer = 1>> +<<set $freshPC = 0>> <<set $fakeBellies to ["a small empathy belly", "a medium empathy belly", "a large empathy belly", "a huge empathy belly"]>> /* lets fake bellies be separated from other .bellyAccessory */ @@ -770,7 +785,8 @@ DairyRestraintsSetting($dairyRestraintsSetting) <<set $justiceEvents to ["slave deal", "slave training", "majority deal", "indenture deal", "virginity deal"]>> -<<set $startingGirlsNationality to 0>> +<<set $fixedNationality to 0>> +<<set $fixedRace to 0>> <<set $ui to "start">> <<set $brandTarget to "buttocks">> @@ -956,7 +972,7 @@ DairyRestraintsSetting($dairyRestraintsSetting) <<set $whoreCareers to ["a prostitute", "a child prostitute", "a stripper", "a saleswoman", "a criminal", "a porn star", "a trophy wife", "a Futanari Sister", "a model", "a juvenile delinquent", "a mistress", "a serial divorcee", "a pageant star"]>> -<<set $HGCareers to ["a lawyer", "a military officer", "a politician", "a model-UN star", "a student council president"]>> +<<set $HGCareers to ["a lawyer", "a military officer", "a politician", "a model-UN star", "a student council president", "a leading arcology citizen"]>> <<set $recruiterCareers = ["a military recruiter", "a club recruiter", "a college scout", "a girl scout"]>> @@ -978,6 +994,28 @@ DairyRestraintsSetting($dairyRestraintsSetting) <<set $schoolteacherCareers to ["a principal", "a teaching assistant", "a teacher", "a scientist", "a professor", "a private instructor", "a librarian", "a scholar"]>> +<<set $whiteNationalities = ["American", "Canadian", "Brazilian", "Argentinian", "Chilean", "Israeli", "South African", "Russian", "Ukrainian", "Irish", "Icelandic", "Finnish", "Swiss", "Danish", "Norwegian", "Austrian", "Slovak", "Dutch", "Belgian", "Czech", "Serbian", "Portuguese", "Hungarian", "Estonian", "Polish", "Lithuanian", "Romanian", "German", "French", "Italian", "British", "Australian", "a New Zealander", "Belarusian", "Scottish"]>> + +<<set $asianNationalities = ["American", "Saudi", "Chinese", "Korean", "Japanese", "Thai", "Vietnamese", "Indonesian", "Filipina", "Burmese", "Nepalese", "Uzbek", "Malaysian", "Kazakh", "Australian"]>> + +<<set $latinaNationalities = ["American", "Puerto Rican"Cuban", "Mexican", "Peruvian", "Venezuelan", "Bolivian", "Guatemalan", "Brazilian", "Argentinian", "Chilean", "Colombian"]>> + +<<set $middleEasternNationalities = ["American", "Egyptian", "Turkish", "Israeli", "Saudi", "Moroccan", "Ethiopian", "Afghan", "Algerian", "Libyan", "Tunisian", "Lebanese", "Jordanian", "Emirati", "Omani", "Malian", "Sudanese", "Yemeni", "Iraqi", "German", "Swedish", "French", "Italian"]>> + +<<set $blackNationalities = ["American"Cuban", "Haitian", "Jamaican", "Brazilian", "Egyptian", "Saudi", "Moroccan", "Nigerian", "Kenyan", "Zimbabwean", "Ugandan", "Tanzanian", "Ghanan", "Congolese", "Ethiopian", "South African", "Malian", "Sudanese", "Yemeni", "German", "Swedish", "French", "Australian", "Dominican"]>> + +<<set $indoAryanNationalities = ["Iranian", "Armenian", "Burmese", "Nepalese", "Afghan", "Emirati", "Omani", "Indian", "Kazakh", "Pakistani", "Bangladeshi", "Slovak", "Hungarian", "Romanian", "British"]>> + +<<set $pacificIslanderNationalities = ["Indonesian", "Filipina", "a New Zealander"]>> + +<<set $malayNationalities = ["Thai", "Indonesian", "Filipina", "Malaysian"]>> + +<<set $amerindianNationalities = ["American", "Canadian", "Mexican", "Peruvian", "Bolivian", "Guatemalan", "Brazilian"]>> + +<<set $southernEuropeanNationalities = ["French", "Italian", "Greek", "Spanish"]>> + +<<set $semiticNationalities = ["Egyptian", "Turkish", "Iranian", "Armenian", "Israeli", "Tanzanian", "Ghanan", "Ethiopian", "Lebanese", "Jordanian", "Yemeni", "Iraqi", "Kazakh", "Pakistani", "Romanian", "Spanish"]>> + <<set $whiteAmericanSlaveNames to ["Sophia", "Emma", "Olivia", "Ava", "Isabella", "Mia", "Zoe", "Lily", "Emily", "Madelyn", "Madison", "Chloe", "Charlotte", "Aubrey", "Avery", "Abigail", "Kaylee", "Layla", "Harper", "Ella", "Amelia", "Arianna", "Riley", "Aria", "Hailey", "Hannah", "Evelyn", "Addison", "Mackenzie", "Adalyn", "Ellie", "Brooklyn", "Nora", "Scarlett", "Grace", "Anna", "Isabelle", "Natalie", "Kaitlyn", "Lillian", "Sarah", "Audrey", "Elizabeth", "Leah", "Annabelle", "Kylie", "Mila", "Claire", "Victoria", "Maya", "Lila", "Elena", "Lucy", "Savannah", "Gabriella", "Callie", "Alaina", "Sophie", "Makayla", "Kennedy", "Sadie", "Skyler", "Allison", "Caroline", "Penelope", "Alyssa", "Peyton", "Samantha", "Liliana", "Bailey", "Maria", "Reagan", "Violet", "Eliana", "Adeline", "Eva", "Stella", "Keira", "Katherine", "Jessica", "Jennifer", "Amanda", "Ashley", "Sarah", "Stephanie", "Melissa", "Nicole", "Elizabeth", "Heather", "Tiffany", "Michelle", "Amber", "Megan", "Amy", "Rachel", "Kimberly", "Christina", "Lauren", "Crystal", "Brittany", "Rebecca", "Laura", "Danielle", "Emily", "Samantha", "Angela", "Erin", "Kelly", "Sara", "Lisa", "Katherine", "Andrea", "Jamie", "Mary", "Erica", "Courtney", "Kristen", "Shannon", "April", "Katie", "Lindsey", "Kristin", "Lindsay", "Christine", "Alicia", "Vanessa", "Maria", "Kathryn", "Allison", "Julie", "Anna", "Tara", "Kayla", "Natalie", "Victoria", "Monica", "Jacqueline", "Holly", "Kristina", "Patricia", "Cassandra", "Brandy", "Whitney", "Chelsea", "Brandi", "Catherine", "Cynthia", "Kathleen", "Veronica", "Leslie", "Natasha", "Krystal", "Stacy", "Diana", "Erika", "Dana", "Jenna", "Meghan", "Carrie", "Leah", "Melanie", "Brooke", "Karen", "Alexandra", "Valerie", "Caitlin", "Julia", "Alyssa", "Jasmine", "Hannah", "Stacey", "Brittney", "Susan", "Margaret", "Sandra", "Candice", "Latoya", "Bethany", "Misty"]>> <<set $africanAmericanSlaveNames to ["Madison", "Kayla", "Makayla", "Nevaeh", "Jada", "Brianna", "Chloe", "Destiny", "Alyssa", "Gabrielle", "Imani", "Kimora", "Aaliyah", "Jayla", "Abigail", "Arianna", "Ava", "Fatoumata", "Jade", "London", "Savannah", "Victoria", "Aniyah", "Nyla", "Olivia", "Taylor", "Ashley", "Sarah", "Jasmine", "Laila", "Chelsea", "Heaven"]>> @@ -992,7 +1030,7 @@ DairyRestraintsSetting($dairyRestraintsSetting) <<set $egyptianSlaveNames to ["Shaimaa", "Fatma", "Maha", "Farida", "Aya", "Shahd", "Ashraqat", "Sahar", "Fatin", "Dalal", "Doha", "Suha", "Rowan", "Hosniya", "Hasnaa", "Hosna", "Gamila", "Gamalat", "Habiba", "Aya", "Rania", "Sarah", "Reem", "Hoda", "Marwa", "Fatima", "Eisha", "Nesreen", "Fatoumata", "Mariam", "Aminata", "Hawa", "Awa", "Oumou", "Djeneba", "Bintou", "Fanta", "Kadiatou", "Fatima", "Khadija", "Aicha", "Malika", "Naima", "Rachida", "Nadia", "Karima", "Saida", "Mariam", "Shayma", "Khawla"]>> -<<set $brazilianSlaveNames to ["Ana", "Amanda", "Fernanda", "Julia", "Mariana", "Camila", "leticia", "Larissa", "Beatriz", "Natália", "Thais", "Juliana", "Vitoria", "Jessica", "Luana", "Laura", "Bruna", "Rafaela", "Maria", "Isabela", "Barbara", "Carolina", "Aline", "Anna", "Brenda", "LÃvia", "Victória", "Gabrielle", "Andressa", "Maria", "Clara", "Raquel", "Daniela", "Ana", "Clara", "Marcela", "Luiza", "Giovanna", "Stephanie", "Caroline", "Raissa", "Aléxia", "Milena", "Nathalia", "Clara", "Taynara", "Sabrina", "Ana", "Luiza", "Yasmin", "Carla", "Helena"]>> +<<set $brazilianSlaveNames to ["Ana", "Amanda", "Fernanda", "Julia", "Mariana", "Camila", "Leticia", "Larissa", "Beatriz", "Natália", "Thais", "Juliana", "Vitoria", "Jessica", "Luana", "Laura", "Bruna", "Rafaela", "Maria", "Isabela", "Barbara", "Carolina", "Aline", "Anna", "Brenda", "LÃvia", "Victória", "Gabrielle", "Andressa", "Maria", "Clara", "Raquel", "Daniela", "Ana", "Clara", "Marcela", "Luiza", "Giovanna", "Stephanie", "Caroline", "Raissa", "Aléxia", "Milena", "Nathalia", "Clara", "Taynara", "Sabrina", "Ana", "Luiza", "Yasmin", "Carla", "Helena"]>> <<set $chineseSlaveNames to ["Ah", "Ai", "An", "Bai", "Bao", "Bi", "Bo", "Cai", "Chang", "Chao", "Chen", "Cheng", "Chin", "Chun", "Da", "Dan", "Fang", "Fen", "Fu", "Guanting", "Guanyu", "Guiying", "Guo", "Hai", "He", "Heng", "Hong", "Hua", "Huan", "Huang", "Hui", "Jia", "Jian", "Jiang", "Jie", "Jin", "Jing", "Jingyi", "Ju", "Juan", "Jun", "Kun", "Lan", "Lei", "Li", "Lian", "Lili", "Lim", "Lin", "Ling", "Mei", "Min", "Ming", "Mu", "Na", "Ni", "Ning", "Nuan", "Ping", "Qian", "Qing", "Qiong", "Qiu", "Rong", "Ru", "Shan", "Shi", "Shu", "Shufen", "Shui", "Shun", "Su", "Tai", "Ting", "Tingting", "Tu", "Wei", "Wen", "Wu", "Xia", "Xian", "Xiang", "Xiaomei", "Xiaoyan", "Xinyi", "Xiu", "Xiulan", "Xiuying", "Xue", "Xun", "Ya", "Yahui", "Yaling", "Yan", "Yang", "Yating", "Yawen", "Yazhu", "Yi", "Yijun", "Yin", "Ying", "Yong", "Yu", "Yun", "Zan", "Zedong", "Zhen", "Zheng", "Zhi", "Zhihao", "Zhong", "Zhou"]>> @@ -1169,7 +1207,7 @@ DairyRestraintsSetting($dairyRestraintsSetting) <<set $cowSlaveNames to ["Big Mac", "Moscow", "MooMoo", "Madonna", "Cowlick", "Bertha", "Waffles", "Brown Cow", "Hamburger", "Heifer", "Honeybun", "Cookie", "Pinky", "Sweetie", "Sunny", "Blue", "Sunshine", "Sugar", "Cupcake", "Cocoa", "Baby", "Muffin", "Princess", "Bessie", "Clarabelle", "Betty Sue", "Emma", "Henrietta", "Ella", "Penelope", "Nettie", "Anna", "Bella", "Annabelle", "Dorothy", "Molly", "Gertie", "Annie", "Rose", "Darla", "Meg", "Dahlia", "Margie", "Lois", "Flower", "Maggie", "Jasmine", "Minnie", "Esmeralda", "Bella", "Daisy", "Shelly", "Candie", "Cinnamon ", "Penny ", "Jasmayne ", "Bella ", "Clover", "Precious ", "Diamond ", "Arabella ", "Sasha ", "Sweetpea", "Swiss Miss"]>> -<<set $chattelReligionistSlaveNames to ["Faith", "Patience", "Purity", "Chastity", "Constance", "Grace", "Penance", "Trinity", "Mercy", "Charity", "Verity", "Amity", "Peace", "Prudence", "Temperance", "Grace", "Love", "Hope", "Destiny", "Abundance", "Allegiance", "Amnesty", "Ardour", "Beauty", "Belief", "Blessing", "Bliss", "Charisma", "Cheer", "Charm", "Chastity", "Clarity", "Clemency", "Comfort", "Compassion", "Concord", "Condolence", "Constancy", "Courage", "Credence", "Desire", "Discretion", "Empathy", "Endurance", "Esteem", "Eternity", "Evanescence", "Favour", "Felicity", "Fidelity", "Fortune", "Gaity", "Glory", "Gracious", "Gravitas", "Harmony", "Happiness", "Honesty", "Hope", "Humility", "Innocent", "Integrity", "Joy", "Justice", "Kindness", "Laughter", "Loyalty", "Luck", "Merit", "Modesty", "Perserverance", "Piety", "Pleasant", "Prosperity", "Prudence", "Purity", "Radiance", "Remembrance", "Respect", "Reverence", "Salvation", "Sanctity", "Serendipity", "Serenity", "Silence", "Sincerity", "Solace", "Solemnity", "Success", "Sympathy", "Temperance", "Thankfulness", "Tolerance", "Tranquility", "Truth", "Unity", "Virtue", "Wisdom", "Wonder", "Heaven"]>> +<<set $chattelReligionistSlaveNames to ["Faith", "Patience", "Purity", "Chastity", "Constance", "Grace", "Penance", "Trinity", "Mercy", "Charity", "Verity", "Amity", "Peace", "Prudence", "Temperance", "Grace", "Love", "Hope", "Destiny", "Abundance", "Allegiance", "Amnesty", "Ardour", "Beauty", "Belief", "Blessing", "Bliss", "Charisma", "Cheer", "Charm", "Chastity", "Clarity", "Clemency", "Comfort", "Compassion", "Concord", "Condolence", "Constancy", "Courage", "Credence", "Desire", "Discretion", "Empathy", "Endurance", "Esteem", "Eternity", "Evanescence", "Favour", "Felicity", "Fidelity", "Fortune", "Gaiety", "Glory", "Gracious", "Gravitas", "Harmony", "Happiness", "Honesty", "Hope", "Humility", "Innocent", "Integrity", "Joy", "Justice", "Kindness", "Laughter", "Loyalty", "Luck", "Merit", "Modesty", "Perserverance", "Piety", "Pleasant", "Prosperity", "Prudence", "Purity", "Radiance", "Remembrance", "Respect", "Reverence", "Salvation", "Sanctity", "Serendipity", "Serenity", "Silence", "Sincerity", "Solace", "Solemnity", "Success", "Sympathy", "Temperance", "Thankfulness", "Tolerance", "Tranquility", "Truth", "Unity", "Virtue", "Wisdom", "Wonder", "Heaven"]>> <<set $romanSlaveNames to ["Aconia", "Aelia", "Agrippina", "Antistia", "Antonia", "Arria", "Atia", "Aurela", "Baebiana", "Caecilia", "Caesonia", "Calpurnia", "Claudia", "Cornelia", "Crispina", "Domitia", "Domitilla", "Drusilla", "Diana", "Euphemia", "Eutropia", "Fabia", "Faustina", "Flavia", "Galeria", "Galla", "Gnaea", "Gratidia", "Helena", "Helvia", "Herennia", "Honoria", "Hostia", "Julia", "Junia", "Justina", "Leontia", "Lepida", "Licinia", "Livia", "Livilla", "Lollia", "Lucilla", "Maecia", "Magia", "Manlia", "Marcella", "Marcia", "Messalina", "Minervina", "Mellisa", "Metella", "Munatia", "Octavia", "Ocellina", "Orbiana", "Otacilia", "Paccia", "Papianilla", "Paulina", "Placiaida", "Plautia", "Plautilla", "Plotina", "Pompeia", "Popilla", "Poppaea", "Porcia", "Risca", "Pulcheria", "Sabina", "Salonina", "Sempronia", "Servilia", "Severa", "Statilia", "Sulpicia", "Terentia", "Theodora", "Titania", "Tranquillina", "Tullia", "Ulpia", "Urgulania", "Valeria", "Verina", "Vesta", "Vibia", "Violentilla", "Vipsania", "Vistilla", "Gaia", "Lucia", "Marca", "Publia", "Quinta", "Tita", "Tiberia", "Sexta", "Aula", "Decima", "Gnaea", "Spuria", "Mania", "Servia", "Appia", "Numeria", "Vibia", "Agricola", "Agrippa", "Ahala", "Ahenobarba", "Albina", "Alba", "Ambusta", "Annalis", "Aquila", "Aquilina", "Arvina", "Asina", "Atella", "Avita", "Balba", "Barba", "Barbata", "Bassa", "Bestia", "Bibacula", "Bibula", "Blaesa", "Broccha", "Bruta", "Bubulca", "Bulba", "Caeca", "Calida", "Calvina", "Calva", "Camilla", "Canina", "Cana", "Catilina", "Catula", "Celeris", "Celsa", "Cethega", "Cicurina", "Cincinnata", "Cinna", "Corda", "Cornicen", "Cornuta", "Corvina", "Corva", "Cossa", "Costa", "Cotta", "Crassipes", "Crassa", "Crispina", "Crispa", "Curva", "Dentata", "Dentra", "Dives", "Dolabella", "Drusa", "Figula", "Fimbria", "Flacca", "Flava", "Flora", "Fusa", "Gemella", "Graccha", "Gurges", "Habita", "Helva", "Imperiosa", "Iulla", "Lactuca", "Laenas", "Lanata", "Laevina", "Laterensis", "Lentula", "Lepida", "Licina", "Longa", "Luculla", "Lupa", "Macra", "Macula", "Malleola", "Mamerca", "Marcella", "Merenda", "Merga", "Merula", "Messalla", "Metella", "Murena", "Mus", "Musca", "Nasica", "Natta", "Nepos", "Nerva", "Nigra", "Novella", "Ocella", "Pacila", "Paeta", "Pansa", "Papa", "Patercula", "Paulla", "Pera", "Pictrix", "Planca", "Plauta", "Poplicola", "Postuma", "Potita", "Praeconina", "Praetextata", "Prisca", "Procula", "Publicola", "Pulchra", "Pulla", "Pulvilla", "Quadrata", "Ralla", "Regilla", "Regula", "Rufa", "Ruga", "Rulla", "Rutila", "Salinatrix", "Saturnina", "Scaeva", "Scaevola", "Scapula", "Scaura", "Scrofa", "Seneca", "Severa", "Silana", "Sila", "Structa", "Sulla", "Sura", "Taura", "Triaria", "Trigemina", "Tuberta", "Tubula", "Tuditana", "Tulla", "Turda", "Vara", "Vatia", "Verres", "Vetus", "Vitula", "Volusa"]>> @@ -1177,6 +1215,47 @@ DairyRestraintsSetting($dairyRestraintsSetting) <<set $edoSlaveNames to ["Adakichi", "Aihachi", "Aika", "Aikichi", "Aiko", "Aimatsu", "Akiko", "Ariko", "Asa", "Asakichi", "Asao", "Ayako", "Ayano", "Azuma", "Baicho", "Baisho", "Botan", "Charyoei", "Chieko", "Chikafuku", "Chikafumi", "Chikano", "Chikashizu", "Chikayoshi", "Chikayu", "Chikayuki", "Chisako", "Chiyo", "Chiyoe", "Chiyoha", "Chiyokichi", "Chiyoko", "Chiyoryo", "Chiyoteru", "Chiyotsuru", "Chiyowaka", "Chiyoyakko", "Chizu", "Chizuha", "Chizuru", "Cho", "Chocho", "Dan’ei", "Danji", "Danko", "Dango", "Edagiku", "Emi", "Emicho", "Emigiku", "Emiyo", "Enko", "Eriko", "Fuji", "Fujie", "Fujigiku", "Fujiha", "Fukichiyo", "Fukiha", "Fukimi", "Fukiyo", "Fukizo", "Fuku", "Fukuai", "Fukuaya", "Fukuchiyo", "Fukucho", "Fukudama", "Fukuha", "Fukuhana", "Fukuharu", "Fukuhina", "Fukuhiro", "Fukumi", "Fukumusume", "Fukunae", "Fukusato", "Fukusuke", "Fukusuzu", "Fukuteru", "Fukuya", "Fukuyo", "Fukuyoshi", "Fukuyu", "Fumi", "Fumichiyo", "Fumicho", "Fumihana", "Fumiko", "Fumino", "Fumukazu", "Fusakichi", "Fusako", "Fusao", "Hamako", "Hamayu", "Hanachiyo", "Hanaji", "Hanakichi", "Hanako", "Hanamatsu", "Hanaryo", "Hanayakko", "Harukichi", "Haruko", "Hatsu", "Hatsuko", "Hatsuyo", "Hidechiyo", "Hidecho", "Hideji", "Hidemi", "Hideryu", "Hideyakko", "Hidezuru", "Hinacho", "Hinagiku", "Hinako", "Hinazuru", "Hisa", "Hisacho", "Hisae", "Hisaei", "Hisamomo", "Hisasuzu", "Hisayo", "Hisazuru", "Ichiei", "Ichiemi", "Ichiharu", "Ichiho", "Ichika", "Ichimame", "Ichimomo", "Ichiraku", "Ichiryu", "Ichisayo", "Ichiteru", "Ichitomi", "Ichiume", "Ichiya", "Ichiyakko", "Iku", "Ikumatsu", "Imayoshi", "Ine", "Iroha", "Ishino", "Ishiyakko", "Iso", "Isoei", "Itozuru", "Kameji", "Kameko", "Kaneha", "Kanemi", "Kanoaki", "Kanoemi", "Kanoka", "Kasen", "Katsuchiyo", "Katsue", "Katsuha", "Katsuji", "Katsuna", "Katsune", "Katsuru", "Kayo", "Kichihana", "Kichiyakko", "Kichiyo", "Kichiyu", "Kiku", "Kikuka", "Kikumaru", "Kikumatsu", "Kikuno", "Kikuryo", "Kikutsuru", "Kikuya", "Kikuyakko", "Kikuyu", "Kimiei", "Kimikiku", "Kimina", "Kimitomo", "Kimiyakko", "Kin'ei", "Kin'ichi", "Kinhei", "Kinko", "Kinmatsu", "Kinroku", "Kinryo", "Kinryu", "Kinshi", "Kinsuke", "Kinu", "Kinyo", "Kitanomatsu", "Kiyo", "Kozuru", "Koen", "Kofuku", "Kofusa", "Kogiku", "Koi", "Koiku", "Kojako", "Komagiku", "Komaji", "Komako", "Komame", "Komari", "Komaru", "Komasu", "Komomo", "Komume", "Koriki", "Korin", "Koroku", "Kosaki", "Kosaku", "Kosen", "Koshizu", "Kosome", "Kosue", "Kotaka", "Kotama", "Kotatsu", "Koteru", "Kotetsu", "Koto", "Kotobuki", "Kotoei", "Kotogiku", "Kotoha", "Kotoji", "Kotomi", "Kotono", "Kotoyo", "Kotsuma", "Koume", "Koyachiyo", "Koyakko", "Koyana", "Koyei", "Koyo", "Koyone", "Koyoshi", "Koyuka", "Koyuki", "Koyumi", "Kozakura", "Kuma", "Kumakichi", "Kumano", "Kumayoshi", "Kunigiku", "Kyoka", "Kyoko", "Machi", "Mamefusa", "Mamegiku", "Mamehana", "Mameharu", "Mamehide", "Mamehiro", "Mameka", "Mamekichi", "Mameko", "Mameraku", "Mameriki", "Mameroku", "Mameryo", "Mameyakko", "Mameyo", "Mameyoshi", "Mameyu", "Maru", "Masuwaka", "Matsuko", "Matsuriki", "Matsuyakko", "Miharu", "Mineko", "Mitsu", "Mitsugiku", "Mitsuko", "Mitsuha", "Mitsuyo", "Miyagiku", "Miyo", "Miyoha", "Miyoharu", "Miyoka", "Miyozuru", "Momifuku", "Momiji", "Momochiyo", "Momoko", "Momomaru", "Momoyakko", "Momozuru", "Naka", "Naochiyo", "Naosome", "Naosono", "Narako", "Narayone", "Oimatsu", "Omine", "Omocha", "Onao", "Otomaru", "Otoyu", "Ran", "Ren", "Riki", "Rikigo", "Rikiha", "Rikiharu", "Rikihei", "Rikiji", "Rikiko", "Rikiya", "Royo", "Ryuko", "Sakae", "Sakiko", "Sana", "Sakyo", "Sanae", "Sankatsu", "Sanko", "Sanya", "Sasa", "Sato", "Satochiyo", "Satogiku", "Satoji", "Satoka", "Satokichi", "Satomi", "Satono", "Satotsuya", "Satoyuki", "Satoyu", "Satsuki", "Sayaka", "Sayoko", "Sekka", "Sen", "Shimekichi", "Shimematsu", "Shinneji", "Shizu", "Shizue", "Shizuko", "Sodeko", "Shun", "Somagiku", "Soyo", "Sumiko", "Suzu", "Suzuhachi", "Suzuka", "Sue", "Suzuko", "Takeko", "Takewaka", "Takeyakko", "Tama", "Tamagiku", "Tamakiku", "Tamako", "Tamaryo", "Tamasuke", "Tamaye", "Tamayu", "Tamazuru", "Tamiko", "Tane", "Taneji", "Taneju", "Taneko", "Tatsu", "Tatsuko", "Teruhina", "Teruji", "Teruko", "Teruyo", "Tetsu", "Toba", "Toki", "Tokiko", "Tokimatsu", "Toku", "Tome", "Tomeko", "Tomewaka", "Tomigiku", "Tomiko", "Tomimatsu", "Tomino", "Tomiryo", "Tomitae", "Tomitsuru", "Tomiwaka", "Tomiyakko", "Tomizuru", "Tomogiku", "Tomoko", "Tomoryo", "Tomowaka", "Tomoyuki", "Tonko", "Tora", "Toshifumi", "Toshihana", "Toshiko", "Toye", "Toyochiyo", "Toyohina", "Toyoji", "Toyofu", "Toyoka", "Tsunechiyo", "Tsuneko", "Tsunemomo", "Tsuneyo", "Tsuneyu", "Tsuru", "Tsurue", "Tsuruha", "Tsuruji", "Tsuruka", "Tsurumatsu", "Tsuruyo", "Tsuruyu", "Tsuta", "Tsutaji", "Tsuyachiyo", "Tsuyu", "Ume", "Umechie", "Umechiho", "Umechika", "Umechiyo", "Umegiku", "Umeha", "Umehisa", "Umeji", "Umeko", "Umeko", "Umematsu", "Umeo", "Umeraku", "Umeryo", "Umeryu", "Umesaya", "Umesuke", "Umesuzu", "Umewaka", "Umeyae", "Umeyakko", "Umeyu", "Uno", "Unofuku", "Unoha", "Unohide", "Unoji", "Unoka", "Unokayo", "Unokazu", "Unokiyo", "Unoko", "Unoshizu", "Unowaka", "Uta", "Utachiyo", "Utaji", "Utaka", "Utamatsu", "Utayu", "Wakaba", "Wakacho", "Wakagusa", "Wakai", "Wakaji", "Wakakimi", "Wakako", "Wakakoma", "Wakamurasaki", "Wakaroku", "Wakatsune", "Wakaume", "Wakayakko", "Wakayo", "Wakayone", "Wakazuru", "Wako", "Yachiyoko", "Yae", "Yaemi", "Yaewaka", "Yaezuru", "Yaichi", "Yasuku", "Yasohachi", "Yasu", "Yoi", "Yone", "Yonehachi", "Yoneyakko", "Yuiko", "Yukako", "Yukari", "Yukiryo", "Yukizono"]>> +<<set $ArcologyNamesSupremacistWhite = ["The Old Dominion", "Thule"]>> +<<set $ArcologyNamesSupremacistAsian = ["The Celestial Temple", "Shambhala", "Shangri-La"]>> +<<set $ArcologyNamesSupremacistLatina = ["Tenochtitlan", "Aztlan"]>> +<<set $ArcologyNamesSupremacistMiddleEastern = ["The Caliphate", "New Cairo"]>> +<<set $ArcologyNamesSupremacistBlack = ["United Africa", "Benin"]>> +<<set $ArcologyNamesSupremacistIndoAryan = ["Swarga Loka", "New New Delhi"]>> +<<set $ArcologyNamesSupremacistPacificIslander = ["Maui", "Rapa Nui"]>> +<<set $ArcologyNamesSupremacistAmerindian = ["Cahokia", "The Confederated Tribes"]>> +<<set $ArcologyNamesSupremacistSouthernEuropean = ["New Athens", "Olympus"]>> +<<set $ArcologyNamesSupremacistSemitic = ["The Fifth Temple", "The Promised Land"]>> +<<set $ArcologyNamesSubjugationistWhite = ["The World Turned Upside Down", "Anticolonialism One"]>> +<<set $ArcologyNamesSubjugationistAsian = ["The East India Company", "Pearl of the Orient"]>> +<<set $ArcologyNamesSubjugationistLatina = ["Fort Veracruz", "The Halls of Montezuma"]>> +<<set $ArcologyNamesSubjugationistMiddleEastern = ["Constantinople", "Vlad's Castle"]>> +<<set $ArcologyNamesSubjugationistBlack = ["Dixie", "The Plantation"]>> +<<set $ArcologyNamesSubjugationistIndoAryan = ["The East India Company", "Trade Fort"]>> +<<set $ArcologyNamesSubjugationistPacificIslander = ["Cargo Cult", "Moro Castle"]>> +<<set $ArcologyNamesSubjugationistAmerindian = ["Fort Laramie", "The Rez"]>> +<<set $ArcologyNamesSubjugationistSouthernEuropean = ["Istanbul", "Al-Andalus"]>> +<<set $ArcologyNamesSubjugationistSemitic = ["Solomon's Lament", "New Canaan"]>> +<<set $ArcologyNamesGenderRadicalist = ["Saturnalia", "Bacchanalia", "Gomorrah", "Sodom", "The Rosebud"]>> +<<set $ArcologyNamesGenderFundamentalist = ["The Arbor", "The Rose", "The Source"]>> +<<set $ArcologyNamesPaternalist = ["Sanctum", "Asylum", "Sanctuary", "Haven", "New Springfield", "The Sanctuary", "Glory"]>> +<<set $ArcologyNamesDegradationist = ["Hell", "Golgotha", "The Tower"]>> +<<set $ArcologyNamesBodyPurist = ["Walden", "New Eden", "Elysium", "Purity", "The Ark", "The Repository"]>> +<<set $ArcologyNamesTransformationFetishist = ["The Dollhouse", "Silicone Valley", "The Hospital", "Bimboland"]>> +<<set $ArcologyNamesYouthPreferentialist = ["Sunnyside", "Fuck High", "Dick U.", "Sex College"]>> +<<set $ArcologyNamesMaturityPreferentialist = ["Shady Acres", "MILFtown", "MILF Heights", "Park Avenue Tower"]>> +<<set $ArcologyNamesSlimnessEnthusiast = ["The Island", "Upskirt", "Virginland"]>> +<<set $ArcologyNamesAssetExpansionist = ["The Bouncy Castle", "The Mounds", "Twin Peaks", "Boobs Tower"]>> +<<set $ArcologyNamesPastoralist = ["Cornucopia", "Abundance", "Plenty", "Bounty", "Greener Pastures", "God's Country", "The Ranch", "Pasturelands"]>> +<<set $ArcologyNamesPhysicalIdealist = ["Themyscira", "Midgard", "Muscle Beach", "Skid Row"]>> +<<set $ArcologyNamesChattelReligionist = ["Heaven", "The Light", "Heaven on Earth"]>> +<<set $ArcologyNamesRomanRevivalist = ["Elysian Fields", "Carthago Nova", "Nova Roma", "Neapolis", "Capua", "Ostia", "Salernum", "The City of the Seven Hills"]>> +<<set $ArcologyNamesEgyptianRevivalist = ["Thebes", "Memphis", "Alexandria"]>> +<<set $ArcologyNamesEdoRevivalist = ["Onogoro", "Kokyo", "Tengoku", "Takama-ga-hara", "New Kyoto", "The Imperial Palace", "New Tokyo"]>> +<<set $ArcologyNamesArabianRevivalist = ["Jannah", "Madinat al-Salam", "Madinat al-Hareer", "Madinat al-Zahra", "Madinat al-Yasmin", "Bayt al-Hikma", "Baghdad", "Alhambra", "Samarra"]>> +<<set $ArcologyNamesChineseRevivalist = ["Yinfu", "Huangquan", "Jiuquan", "Youming", "Huokang", "Mingfu", "Jin Shan", "Qi Lin", "Xin Hua", "Feng Huang", "The Middle Kingdom", "The Forbidden Palace"]>> +<<set $ArcologyNamesEugenics = ["Perfection", "Ancension", "Second Chance"]>> +<<set $ArcologyNamesRepopulationist = ["Hope", "The Womb", "Holders of the Future", "Future", "Haven of the Pregnant", "Sacred Womb", "Glorious Mother"]>> + <<set $badWords to ["fuck", "shit", "ass", "cock", "piss", "dick", "slut", "cum", "whore", "butt", "boob", "cunt", "cunny", "pussy", "junk", "trash", "slave"]>> <<set $niceWeather = []>> @@ -1256,7 +1335,7 @@ DairyRestraintsSetting($dairyRestraintsSetting) <<set $nextLink to "EW Slaves">> <<set $customSlaveOrdered to 0>> -<<set $customSlave to {slaveName: "custom", birthName: "custom", weekAcquired: 1, origin: 0, career: 0, ID: 0, prestige: 0, pornFame: 0, pornFameSpending: 0, prestigeDesc: 0, recruiter: 0, relation: 0, relationTarget: 0, relationship: 0, relationshipTarget: 0, rivalry: 0, rivalryTarget: 0, subTarget: 0, choosesOwnAssignment: 0, assignment: "rest", assignmentVisible: 1, sentence: 0, training: 0, toyHole: "all her holes", indenture: -1, indentureRestrictions: 0, birthWeek: random(0,51), age: 18, ageImplant: 0, health: 0, minorInjury: 0, trust: 0, oldTrust: 0, devotion: 0, oldDevotion: 0, weight: 0, muscles: 0, height: 170, heightImplant: 0, nationality: "slave", race:"white", markings: "none", eyes: 1, eyeColor: "brown", hColor: "brown", pubicHColor: "brown", skin: 0, hLength: 60, hStyle: 0, pubicHStyle: "neat", waist: 0, corsetPiercing: 0, amp: 0, heels:0, voice: 2, voiceImplant: 0, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 500, boobsImplant: 0, boobsImplantType: 0, boobShape: "normal", nipples: "cute", nipplesPiercing: 0, areolae: 0, areolaePiercing: 0, boobsTat: 0, lactation: 0, lactationAdaptation: 0, milk: 0, cum: 0, hips: 0, hipsImplant: 0, butt: 2, buttImplant: 0, buttImplantType: 0, buttTat: 0, face: 0, faceImplant: 0, faceShape: "normal", lips: 15, lipsImplant: 0, lipsPiercing: 0, lipsTat: 0, teeth: "no default setting", tonguePiercing: 0, vagina: 1, vaginaLube: 0, vaginaPiercing: 0, vaginaTat: 0, preg: -1, pregType: 0, labor: 0, births: 0, cSec: 0, bellyAccessory: "none", labia: 0, clit: 0, clitPiercing: 0, clitSetting: "vanilla", foreskin: 0, anus: 1, dick: 0, analArea: 1, dickPiercing: 0, dickTat: 0, balls: 0, scrotum: 0, ovaries: 1, anusPiercing: 0, anusTat: 0, makeup: 0, nails: 0, brand: 0, brandLocation: 0, earPiercing: 0, nosePiercing: 0, eyebrowPiercing: 0, navelPiercing: 0, shouldersTat: 0, armsTat: 0, legsTat: 0, backTat: 0, stampTat: 0, vaginalSkill: 0, oralSkill: 0, analSkill: 0, whoreSkill: 0, entertainSkill: 0, combatSkill: 0, livingRules: "spare", speechRules: "restrictive", releaseRules:"restrictive", relationshipRules: "restrictive", standardPunishment: "situational", standardReward: "situational", useRulesAssistant: 1, diet: "healthy", dietCum: 0, dietMilk: 0, tired: 0, hormones: 0, drugs: "no drugs", curatives: 0, chem: 0, aphrodisiacs: 0, addict: 0, fuckdoll: 0, choosesOwnClothes: 0, clothes: "no clothing", collar: "none", shoes: "none", vaginalAccessory: "none", dickAccessory: "none", buttplug: "none", intelligence: 0, intelligenceImplant: 0, energy: 50, attrXX: 0, attrXY: 0, attrKnown: 0, fetish: "none", fetishStrength: 70, fetishKnown: 0, behavioralFlaw: "none", behavioralQuirk: "none", sexualFlaw: "none", sexualQuirk: "none", oralCount: 0, vaginalCount: 0, analCount: 0, mammaryCount: 0, penetrativeCount: 0, pitKills: 0, customTat: "", customLabel: "", customDesc: "", currentRules: [], bellyTat: 0, induce: 0, mpreg: 0, inflation: 0, inflationType: "none", inflationMethod: 0, milkSource: 0, cumSource: 0, burst: 0, bellyImplant: 0, bellySag: 0, birthsTotal: 0, pubertyAgeXX: 13, pubertyAgeXY: 13, actualAge: 18, visualAge: 18, physicalAge: 18, mother: 0, father: 0, sisters: 0, daughters: 0, HGExclude: 0, ballType: "human", eggType: "human"}>> +<<set $customSlave to {slaveName: "custom", birthName: "custom", weekAcquired: 1, origin: 0, career: 0, ID: 0, prestige: 0, pornFame: 0, pornFameSpending: 0, prestigeDesc: 0, recruiter: 0, relation: 0, relationTarget: 0, relationship: 0, relationshipTarget: 0, rivalry: 0, rivalryTarget: 0, subTarget: 0, choosesOwnAssignment: 0, assignment: "rest", assignmentVisible: 1, sentence: 0, training: 0, toyHole: "all her holes", indenture: -1, indentureRestrictions: 0, birthWeek: random(0,51), age: 18, ageImplant: 0, health: 0, minorInjury: 0, trust: 0, oldTrust: 0, devotion: 0, oldDevotion: 0, weight: 0, muscles: 0, height: 170, heightImplant: 0, nationality: "slave", race:"white", markings: "none", eyes: 1, eyeColor: "brown", hColor: "brown", pubicHColor: "brown", skin: 0, hLength: 60, hStyle: 0, pubicHStyle: "neat", waist: 0, corsetPiercing: 0, amp: 0, heels:0, voice: 2, voiceImplant: 0, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 500, boobsImplant: 0, boobsImplantType: 0, boobShape: "normal", nipples: "cute", nipplesPiercing: 0, areolae: 0, areolaePiercing: 0, boobsTat: 0, lactation: 0, lactationAdaptation: 0, milk: 0, cum: 0, hips: 0, hipsImplant: 0, butt: 2, buttImplant: 0, buttImplantType: 0, buttTat: 0, face: 0, faceImplant: 0, faceShape: "normal", lips: 15, lipsImplant: 0, lipsPiercing: 0, lipsTat: 0, teeth: "no default setting", tonguePiercing: 0, vagina: 1, vaginaLube: 0, vaginaPiercing: 0, vaginaTat: 0, preg: -1, pregType: 0, labor: 0, births: 0, cSec: 0, bellyAccessory: "none", labia: 0, clit: 0, clitPiercing: 0, clitSetting: "vanilla", foreskin: 0, anus: 1, dick: 0, analArea: 1, dickPiercing: 0, dickTat: 0, balls: 0, scrotum: 0, ovaries: 1, anusPiercing: 0, anusTat: 0, makeup: 0, nails: 0, brand: 0, brandLocation: 0, earPiercing: 0, nosePiercing: 0, eyebrowPiercing: 0, navelPiercing: 0, shouldersTat: 0, armsTat: 0, legsTat: 0, backTat: 0, stampTat: 0, vaginalSkill: 0, oralSkill: 0, analSkill: 0, whoreSkill: 0, entertainSkill: 0, combatSkill: 0, livingRules: "spare", speechRules: "restrictive", releaseRules:"restrictive", relationshipRules: "restrictive", standardPunishment: "situational", standardReward: "situational", useRulesAssistant: 1, diet: "healthy", dietCum: 0, dietMilk: 0, tired: 0, hormones: 0, drugs: "no drugs", curatives: 0, chem: 0, aphrodisiacs: 0, addict: 0, fuckdoll: 0, choosesOwnClothes: 0, clothes: "no clothing", collar: "none", shoes: "none", vaginalAccessory: "none", dickAccessory: "none", buttplug: "none", intelligence: 0, intelligenceImplant: 0, energy: 50, attrXX: 0, attrXY: 0, attrKnown: 0, fetish: "none", fetishStrength: 70, fetishKnown: 0, behavioralFlaw: "none", behavioralQuirk: "none", sexualFlaw: "none", sexualQuirk: "none", oralCount: 0, vaginalCount: 0, analCount: 0, mammaryCount: 0, penetrativeCount: 0, pitKills: 0, customTat: "", customLabel: "", customDesc: "", customImage: 0, currentRules: [], bellyTat: 0, induce: 0, mpreg: 0, inflation: 0, inflationType: "none", inflationMethod: 0, milkSource: 0, cumSource: 0, burst: 0, bellyImplant: 0, bellySag: 0, birthsTotal: 0, pubertyAgeXX: 13, pubertyAgeXY: 13, actualAge: 18, visualAge: 18, physicalAge: 18, mother: 0, father: 0, sisters: 0, daughters: 0, HGExclude: 0, ballType: "human", eggType: "human", reservedChildren: 0}>> <<set $huskSlaveOrdered to 0>> <<set $huskSlave to {age: 18, nationality: "slave", race: "white", sex: 1, virgin: 0}>> @@ -1276,6 +1355,7 @@ FertilityAge($fertilityAge) <<set $activeSlaveOneTimeMaxAge to 999>> <<set $AgePenalty to 1>> <<set $precociousPuberty to 0>> +<<set $targetAge = $minimumSlaveAge>> /% Begin mod section: toggle whether slaves lisp. %/ <<set $disableLisping to 0>> diff --git a/src/js/storyJS.tw b/src/js/storyJS.tw index b4876490198e623fdd2a1de2737bd89c9c531d60..1a06947903848996de83ec154d6786cf4a6fede2 100644 --- a/src/js/storyJS.tw +++ b/src/js/storyJS.tw @@ -249,17 +249,41 @@ window.isFertile = function(slave) { }; window.canBreed = function(slave1, slave2) { - if (slave1 != slave) { - return false; - } else if (slave2 != slave) { + if (slave1.eggType == slave2.ballType) { + return true; + } else { return false; - } else if (slave1.eggType == slave2.ballType) { + } +}; + +//is the slave's belly big enough to get in the way +window.bigBellyPreg = function(slave) { + if (!slave) { + return null; + } else if (slave.preg > 0 && slave.pregType >= 20) { + return true; + } else if (slave.preg > 10 && slave.pregType >= 10) { + return true; + } else if (slave.preg > 20) { return true; } else { return false; } }; +window.bigBelly = function(slave) { + if (!slave) { + return null; + } else if (bigBellyPreg(slave) == true) { + return true; + } else if (slave.inflation > 2) { + return true; + } else if (slave.bellyImplant > 8000) { + return true; + } else { + return false; + } +}; window.canAchieveErection = function(slave) { if (!slave) { @@ -271,6 +295,21 @@ window.canAchieveErection = function(slave) { } }; +window.canPenetrate = function(slave) { + if (!slave) { + return null; + } else if (canAchieveErection(slave) == false) { + return false; + } else if (slave.dickAccessory == "chastity") { + return false; + } else if (slave.dickAccessory == "combined chastity") { + return false; + } else if (slave.dick > 7) { + return false; + } + return true; +}; + window.canSee = function(slave) { if (!slave) { return null; @@ -461,6 +500,14 @@ window.tooBigButt = function(slave){ } }; +window.sameTParent = function(slave1, slave2) { + if ((slave1.mother == slave2.father || slave1.father == slave2.mother) && (slave1.mother != 0 && slave1.mother != -2 && slave1.father != 0 && slave1.father != -2)) { + return true; //testtest catches the case if a mother is a father or a father a mother + } else { + return false; + } +}; + window.sameDad = function(slave1, slave2){ if ((slave1.father == slave2.father) && (slave1.father != 0 && slave1.father != -2)) { return true; @@ -489,6 +536,29 @@ window.areTwins = function(slave1, slave2) { } }; +//3 = half-sisters, 2 = sisters, 1 = twins, 0 = not related +window.areSisters = function(c1, c2) { + if(c1.ID == c2.ID) { + return 0; + } + var sib = 4; + if(sameMom(c1, c2)) { + sib -= 1; + } + if(sameDad(c1, c2)) { + sib -=1; + } + if (sib == 2 && c1.actualAge == c2.actualAge && c1.birthWeek == c2.birthWeek) { + sib -= 1; + } + if(sib == 4) { + return 0 + } else { + return sib; + } +} + +/* window.areSisters = function(slave1, slave2) { if (slave1.ID == slave2.ID) { return 0; //you are not your own sister @@ -497,6 +567,8 @@ window.areSisters = function(slave1, slave2) { return 3; //half sisters } else if (sameDad(slave1, slave2) == true && sameMom(slave1, slave2) == false) { return 3; //half sisters + } else if (sameTParent(slave1, slave2) == true) { + return 3; //half sisters } else if (sameDad(slave1, slave2) == true && sameMom(slave1, slave2) == true) { if (slave1.actualAge == slave2.actualAge && slave1.birthWeek == slave2.birthWeek) { return 1; //twins @@ -510,6 +582,7 @@ window.areSisters = function(slave1, slave2) { return 0; //not related } }; +*/ window.totalRelatives = function(slave) { var relatives = 0; @@ -1831,3 +1904,54 @@ window.cumAmount = function(slave) { return cum } }; + +window.randomRelatedSlave = function(slave, filterFunction) { + if(!slave || !SugarCube) { return undefined; } + if(typeof filterFunction !== 'function') { filterFunction = function(s, index, array) { return true; }; } + return SugarCube.State.variables.slaves.filter(filterFunction).shuffle().find(function(s, index, array) {return areSisters(slave, s) || s.mother == slave.ID || s.father == slave.ID || slave.ID == s.mother || slave.ID == s.father; }) +} + +window.randomRelatedAvailableSlave = function(slave) { + return randomRelatedSlave(slave, function(s, index, array) { return isSlaveAvailable(s); }); +} + +window.randomSister = function(slave) { + return randomRelatedSlave(slave, function(s, index, array) { return areSisters(slave, s); }); +} + +window.randomAvailableSister = function(slave) { + return randomRelatedSlave(slave, function(s, index, array) { return isSlaveAvailable(s) && areSisters(slave, s); }); +} + +window.randomDaughter = function(slave) { + return randomRelatedSlave(slave, function(s, index, array) { return s.mother == slave.ID || s.father == slave.ID; }); +} + +window.randomAvailableDaughter = function(slave) { + return randomRelatedSlave(slave, function(s, index, array) { return isSlaveAvailable(s) && (s.mother == slave.ID || s.father == slave.ID); }); +} + +window.randomParent = function(slave) { + return randomRelatedSlave(slave, function(s, index, array) { return s.ID == slave.mother || s.ID == slave.father; }); +} + +window.randomAvailableParent = function(slave) { + return randomRelatedSlave(slave, function(s, index, array) { return isSlaveAvailable(s) && (s.ID == slave.mother || s.ID == slave.father); }); +} + +window.totalPlayerRelatives = function(pc) { + var relatives = 0; + if (pc.mother > 0) { + relatives += 1 + } + if (pc.father > 0) { + relatives += 1 + } + if (pc.daughters > 0) { + relatives += pc.daughters + } + if (pc.sisters > 0) { + relatives += pc.sisters + } + return relatives +}; \ No newline at end of file diff --git a/src/js/utilJS.tw b/src/js/utilJS.tw new file mode 100644 index 0000000000000000000000000000000000000000..bf939d49397d218c90225c129e0d3b4b1ef7d786 --- /dev/null +++ b/src/js/utilJS.tw @@ -0,0 +1,67 @@ +:: UtilJS [script] + +if(!Array.prototype.findIndex) { + Array.prototype.findIndex = function(predicate) { + if (this == null) { + throw new TypeError('Array.prototype.find called on null or undefined'); + } + if (typeof predicate !== 'function') { + throw new TypeError('predicate must be a function'); + } + var list = Object(this); + var length = list.length >>> 0; + var thisArg = arguments[1]; + var value; + + for (var i = 0; i < length; i++) { + value = list[i]; + if (predicate.call(thisArg, value, i, list)) { + return i; + } + } + return -1; + }; +}; + +/* +A categorizer is used to "slice" a value range into distinct categories in an efficient manner. + +--- Example --- +Original SugarCube code +<<if _Slave.muscles > 95>> + Musc++ +<<elseif _Slave.muscles > 30>> + Musc+ +<<elseif _Slave.muscles > 5>> + Toned +<<elseif _Slave.muscles > -6>> +<<elseif _Slave.muscles > -31>> + @@color:red;weak@@ +<<elseif _Slave.muscles > -96>> + @@color:red;weak+@@ +<<else>> + @@color:red;weak++@@ +<</if>> + +As a categorizer +<<if ndef $cats>><<set $cats = {}>><</if>> +<<if ndef $cats.muscleCat>> + <!-- This only gets set once, skipping much of the code evaluation, and can be set outside of the code in an "init" passage for further optimization --> + <<set $cats.muscleCat = new Categorizer([96, 'Musc++'], [31, 'Musc+'], [6, 'Toned'], [-5, ''], [-30, '@@color:red;weak@@'], [-95, '@@color:red;weak+@@'], [-Infinity, '@@color:red;weak++@@'])>> +<</if>> +<<print $cats.muscleCat.cat(_Slave.muscles)>> +*/ +window.Categorizer = function() { + this.cats = Array.prototype.slice.call(arguments) + .filter(function(e, i, a) { + return e instanceof Array && e.length == 2 && typeof e[0] === 'number' && !isNaN(e[0]) + && a.findIndex(function(val) { return e[0] === val[0]; }) === i; /* uniqueness test */ }) + .sort(function(a, b) { return b[0] - a[0]; /* reverse sort */ }); +}; +window.Categorizer.prototype.cat = function(val, def) { + if(typeof val !== 'number' || isNaN(val)) { + return def; + } + var result = this.cats.find(function(e) { return val >= e[0]; }); + return result ? result[1] : def; +}; diff --git a/src/npc/abort.tw b/src/npc/abort.tw index c2a2cfc19cef52501127aded95329fca4a352307..6de4a65cde846ead1e42f573a9ed4095a13f34ed 100644 --- a/src/npc/abort.tw +++ b/src/npc/abort.tw @@ -30,4 +30,9 @@ The remote surgery makes aborting a pregnancy quick and efficient. $activeSlave. <<set _currentRule to lastPregRule($activeSlave,$defaultRules)>> <<if ($activeSlave.assignmentVisible == 1) && (_currentRule != null)>><<set $activeSlave.preg to -1>><<else>><<set $activeSlave.preg to 0>><</if>> +<<if $activeSlave.reservedChildren > 0>> + <<set $reservedChildren -= $activeSlave.reservedChildren>> +<</if>> +<<set $activeSlave.pregType = 0>> +<<set $activeSlave.pregSource = 0>> <</nobr>> diff --git a/src/npc/acquisition.tw b/src/npc/acquisition.tw index 254d4aa3c14de0e8f48cb411db68e2871bf8bdd8..570304314819fcd6a9083b003192eb8617a540a2 100644 --- a/src/npc/acquisition.tw +++ b/src/npc/acquisition.tw @@ -1,182 +1,499 @@ :: Acquisition [nobr] -<<set $ui to "start">> +<<if $saveImported == 1>><<set _valueOwed to 5000>><<else>><<set _valueOwed to 50000>><</if>> +<<if $freshPC == 1>> + <<if $PC.vagina == 1>> + <<set $PC.births = 0>> + <<if $PC.career == "servant">> + <<if $PC.age == 1>> + <<set $PC.births = 3>> + <<set $PC.birthMaster = 3>> + <<elseif $PC.age == 2>> + <<set $PC.births = 6>> + <<set $PC.birthMaster = 6>> + <<else>> + <<set $PC.births = 9>> + <<set $PC.birthMaster = 9>> + <</if>> + <<for $i to 0; $i < $slaves.length; $i++>> + <<if $slaves[$i].origin == "She was another of your late master's servants. She spent nine months in your womb, courtesy of your master." ||$slaves[$i].origin == "Your late master took pleasure in using his servants in creative ways. He inseminated you with your own sperm, and nine months later, your daughter was born.">> + <<set $PC.births += 1>> + <<set $PC.birthMaster += 1>> + <</if>> + <</for>> + <<elseif $PC.career == "escort">> + <<for $i to 0; $i < $slaves.length; $i++>> + <<if $slaves[$i].origin == "She was the result of unprotected sex with a client. He paid you quite well to enjoy your body as you grew heavy with his child." || $slaves[$i].origin == "A client payed you a large sum of credits to prove you could literally fuck yourself. She is the result of that lucrative night.">> + <<set $PC.births += 1>> + <<set $PC.birthClient += 1>> + <</if>> + <</for>> + <<else>> + <<for $i to 0; $i < $slaves.length; $i++>> + <<if $slaves[$i].mother == -1>> + <<set $PC.births += 1>> + <<set $PC.birthOther += 1>> + <</if>> + <</for>> + <</if>> + <<if $PC.preg > 0>> + <<if $PC.career == "servant">> + <<set $PC.pregSource = -3>> + <<elseif $PC.career == "escort">> + <<set $PC.pregSource = -2>> + <</if>> + <</if>> +<<else>> /*testtest*/ + <<set $PC.pregSource = 0>> + <<set $PC.mother = 0>> + <<set $PC.mother = 0>> + <<set $PC.sisters = 0>> + <<set $PC.daughters = 0>> + /*Reserved for player-family setting, unsetting, etc. */ +<</if>> -<<if $saveImported == 1>> - <<set $startingValue to 5000>> +<</if>> /*closes ng*/ + +You've done it. +<br><br> +You arrive at your new arcology, $arcologies[0].name, and head straight to the penthouse to enter the access codes that will tell the $arcologies[0].name systems to recognize you as their owner. The penthouse office is ready to receive the codes, and they authenticate. A voice activates in your earpiece. +<br><br> +//Congratulations. I am a personal assistant program, and it is my pleasure to assist you, $PCName, the new owner of $arcologies[0].name. I will offer useful information whenever possible in italics. Your new arcology has some unusual equipment. The previous owner kept a small stable of sex slaves. The penthouse therefore has a body modification studio for tattooing, bleaching and piercing, and an auto salon for more prosaic things like hair care. It also has a remote surgery, a small surgical theater that can be operated remotely by a qualified surgeon if you can pay the fee. Finally, it has a slave nutrition system connected to the arcology's hydroponics bays. This system produces a tasty protein-rich drink that provides the physically active female body all its necessary nutrients while leaving the lower digestive tract extremely clean. It even causes a mild increase in sex drive. +<br><br> +The previous owner seems to have left in something of a hurry. +<<if $cheatMode == 1>> + Since you've elected to take over an arcology with special advantages, you've acquired a very special group of slaves. +<<elseif $saveImported == 1>> + Since it took some time for you to ensure that your existing stable of slaves were safely moved to $arcologies[0].name, the previous owner had the time to get most of their things away. +<<elseif ($targetArcology.type != "New") && ($targetArcology.type != "Multiculturalist")>> + <<switch $targetArcology.type>> + <<case "Supremacist">> + They kept a personal stable of fearful $arcologies[0].FSSupremacistRace sex slaves, but their sexual training is incomplete. Several of them are still here. + <<case "Subjugationist">> + They made it a special goal to enslave and whore out as many $arcologies[0].FSSubjugationistRace people as possible. Several of them are still here. + <<case "GenderRadicalist">> + They were in the process of building a stable of pretty young shemale whores. Several of them are still here. They're are all very attracted to men, and skilled at pleasing them. + <<case "GenderFundamentalist">> + They kept a personal stable of slaves for breeding purposes. Several of them are still here. They've been kept pregnant, and work as servants when they aren't being bred. + <<case "Paternalist">> + Their slaves were all very well treated. Several of them are still here. They were allowed to work as maids, and weren't even forced to have sex. + <<case "Degradationist">> + Their personal slaves were all Fuckdolls, slaves who have been permanently encased in advanced latex suits and converted into living sex toys. Several of them are still here. + <<case "AssetExpansionist">> + They kept a collection of bejeweled boobs for company, but they focused on breast expansion to the exclusion the slaves' emotional training. Several of them are still here. + <<case "SlimnessEnthusiast">> + They kept a harem of slim, pretty girls, and treated them very well. Several of them are still here. They should be very trusting of a new owner. + <<case "TransformationFetishist">> + They were just putting the finishing touches on a planned brothel's worth of surgically enhanced whores. Several of them are still here. They are already used to prostitution. + <<case "BodyPurist">> + Their slaves were trained for sexual use, but their health, fitness, and natural appearance were the main priorities. Several of them are still here. + <<case "MaturityPreferentialist">> + They preferred to keep their MILFs as scantily clad servants. Several of them are still here. They aren't all happy to be sex objects, but they're used to it. + <<case "YouthPreferentialist">> + They treated their young slaves very well. Several of them are still here. Virgins have been carefully preserved, but have learned to use their mouths through experience. + <<case "Pastoralist">> + Their herd of cow girls was progressing nicely, though more progress had been made on milk production than on training. Several of them are still here. + <<case "PhysicalIdealist">> + Their slaves worked as prostitutes, but mostly to fund a program of muscle building for all of them, which was nearing completion. Several of them are still here. + <<case "ChattelReligionist">> + They were recruiting a stable of slave whores by targeting people with religious complexes that made them particularly vulnerable to recruitment. Several of them are still here. + <<case "RomanRevivalist">> + The only one of their slaves left is the bodyguard. She should be very willing to transfer her loyalty to you, as her new owner. + <<case "EgyptianRevivalist">> + They kept a harem of beautiful slave girls, who have been well-treated and well-trained. They should be very willing to serve you in turn. + <<case "EdoRevivalist">> + They put considerable effort into creating modern slave geisha, elegant Japanese slaves who were assigned to serve the public. Several of them are still here. + <<case "ArabianRevivalist">> + They trained slaves personally, and never kept slaves for very long. The slaves they left are all partway through being trained. + <<case "ChineseRevivalist">> + The only one of their slaves left is the Head Girl. She should be willing to transfer her loyalty to you, as her proper superior. + <<case "Eugenics">> + The only one of their slaves left is an absolute beauty of a girl. She is too smart for her own good and will likely not trust you. + <<case "Repopulationist">> + They kept a personal stable of slaves for breeding purposes. Several of them are still here. They've been kept heavily pregnant, and are used to being used whilst so. + <<default>> + ERROR: bad arcology type + <</switch>> <<else>> - <<set $startingValue to 25000>> + They could not get all of their personal effects away. Since they <<if $targetArcology.type == "Multiculturalist">>tried to sample different kinds of sexual slavery<<else>>did not have the time in control of the arcology to develop a specific stable of sex slaves<</if>>, their slaves were quite varied. <</if>> -<<set $showBodyMods to 1>> -<<set $heroSlaves to $heroSlaves.shuffle()>> -<<if $PC.vagina == 1>> -<<set $PC.births = 0>> -<<if $PC.career == "servant">> - <<if $PC.age == 1>> - <<set $PC.births = 3>> - <<set $birthMaster = 3>> - <<elseif $PC.age == 2>> - <<set $PC.births = 6>> - <<set $birthMaster = 6>> - <<else>> - <<set $PC.births = 9>> - <<set $birthMaster = 9>> - <</if>> - <<for $i to 0; $i < $slaves.length; $i++>> - <<if $activeSlave.origin == "She was another of your late master's servants. She spent nine months in your womb, courtesy of your master.">> - <<set $PC.births += 1>> - <<set $birthMaster += 1>> +<<set $heroSlaves to $heroSlaves.shuffle()>> +<<set _valueGiven to 0>> +<<if $ageMode == 1>> + <<display [[Aging Test]]>> +<<elseif $cheatMode == 1>> + <<display [[Cheatmode Database]]>> +<<elseif $saveImported == 1>> +<<elseif ($targetArcology.type != "New") && ($targetArcology.type != "Multiculturalist")>> + <<for $j to 0; $j < 5; $j++>> + <<if _valueOwed - _valueGiven <= 5000>><<break>><</if>> + <<switch $targetArcology.type>> + <<case "Supremacist">> + <<set $arcologies[0].FSSupremacistLawME = 1>><<display "Generate New Slave">><<set $arcologies[0].FSSupremacistLawME = 0>> + <<set $activeSlave.devotion = random(25,45), $activeSlave.trust = random(-25,-45), $activeSlave.health = random(0,15)>> + <<set $activeSlave.beauty = random(1,3)>> + <<set $activeSlave.oralSkill = random(15,35), $activeSlave.analSkill = random(15,35)>> + <<if $activeSlave.vagina > -1>> + <<if $activeSlave.vagina == 0>><<set $activeSlave.vagina++>><</if>> + <<set $activeSlave.vaginalSkill = random(15,35)>> <</if>> - <</for>> -<<elseif $PC.career == "escort">> - <<for $i to 0; $i < $slaves.length; $i++>> - <<if $activeSlave.origin == "She was the result of unprotected sex with a client. He paid you quite well to enjoy your body as you grew heavy with his child.">> - <<set $PC.births += 1>> - <<set $birthClient += 1>> + <<set $activeSlave.entertainSkill = random(15,35)>> + <<set $activeSlave.clothes = "uncomfortable straps", $activeSlave.collar = "uncomfortable leather", $activeSlave.shoes = "flats">> + <<set $activeSlave.assignment = "please you">> + <<case "Subjugationist">> + <<set $fixedRace = $activeArcology.FSSubjugationistRace>><<display "Generate New Slave">><<set $fixedRace = 0>> + <<set $activeSlave.devotion = random(25,45), $activeSlave.trust = random(-25,-45), $activeSlave.health = random(0,15)>> + <<set $activeSlave.beauty = random(1,3)>> + <<set $activeSlave.oralSkill = random(15,35), $activeSlave.analSkill = random(15,35)>> + <<if $activeSlave.vagina > -1>> + <<if $activeSlave.vagina == 0>><<set $activeSlave.vagina++>><</if>> + <<set $activeSlave.vaginalSkill = random(15,35)>> <</if>> - <</for>> -<<elseif $PC.career == "capitalist">> - <<for $i to 0; $i < $slaves.length; $i++>> - <<if $activeSlave.origin == "Sometimes it pays off to use your body in business deals, and other times you end up burdened with child. She is the result of the latter.">> - <<set $PC.births += 1>> - <<set $birthOther += 1>> + <<set $activeSlave.whoreSkill = random(15,35)>> + <<set $activeSlave.clothes = "uncomfortable straps", $activeSlave.collar = "uncomfortable leather", $activeSlave.shoes = "flats">> + <<set $activeSlave.assignment = "whore">> + <<case "GenderRadicalist">> + <<set $activeSlaveOneTimeMaxAge to 25>> + <<display "Generate XY Slave">> + <<set $activeSlave.devotion = random(25,45), $activeSlave.trust = random(15,-15), $activeSlave.health = 100>> + <<set $activeSlave.beauty = random(0,2)>> + <<set $activeSlave.boobs += 100*random(2,4)>> + <<set $activeSlave.butt += random(1,2)>> + <<set $activeSlave.attrXY = random(70,90), $activeSlave.attrXX = 0>> + <<set $activeSlave.oralSkill = random(35,65), $activeSlave.analSkill = random(35,65), $activeSlave.whoreSkill = random(35,65)>> + <<SoftenSexualFlaw $activeSlave>> + <<set $activeSlave.clothes = "uncomfortable straps", $activeSlave.collar = "stylish leather", $activeSlave.shoes = "heels">> + <<set $activeSlave.assignment = "whore">> + <<case "GenderFundamentalist">> + <<set $activeSlaveOneTimeMinAge to $fertilityAge>> + <<set $activeSlaveOneTimeMaxAge to 25>> + <<display "Generate XX Slave">> + <<set $activeSlave.devotion = random(25,45), $activeSlave.trust = random(-25,-45), $activeSlave.health = random(55,65)>> + <<set $activeSlave.beauty = random(1,3)>> + <<set $activeSlave.preg = random(1,35), $activeSlave.lactation = 1>> + <<if $activeSlave.vagina > -1>> + <<if $activeSlave.vagina == 0>><<set $activeSlave.vagina++>><</if>> + <<set $activeSlave.vaginalSkill = random(15,35)>> <</if>> - <</for>> -<<elseif $PC.career == "mercenary">> - <<for $i to 0; $i < $slaves.length; $i++>> - <<if $activeSlave.origin == "Drugs and alcohol can be a potent mix; the night that followed it can sometimes be hard to remember. Needless to say, once your belly began swelling with her, you had to temporarily switch to a desk job for your mercanary group.">> - <<set $PC.births += 1>> - <<set $birthOther += 1>> + <<set $activeSlave.clothes = "a nice maid outfit", $activeSlave.collar = "tight steel", $activeSlave.shoes = "flats">> + <<set $activeSlave.assignment = "work as a servant">> + <<case "Paternalist">> + <<display "Generate New Slave">> + <<set $activeSlave.devotion = random(25,45), $activeSlave.trust = random(55,65), $activeSlave.health = random(55,65)>> + <<set $activeSlave.beauty = random(1,3)>> + <<set $activeSlave.intelligence = random(1,3), $activeSlave.intelligenceImplant = 1>> + <<set $activeSlave.entertainSkill = random(15,35)>> + <<set $activeSlave.clothes = "conservative clothing", $activeSlave.collar = "none", $activeSlave.shoes = "flats">> + <<set $activeSlave.assignment = "work as a servant">> + <<case "Degradationist">> + <<display "Generate New Slave">> + <<set $activeSlave.devotion = 25, $activeSlave.trust = -25, $activeSlave.health = random(0,15)>> + <<set $activeSlave.fuckdoll = 100>> + <<set $activeSlave.career = "a Fuckdoll">> + <<set $activeSlave.fetish = "mindbroken">> + <<set $activeSlave.boobs += 100*random(10,20)>> + <<set $activeSlave.butt += random(2,3)>> + <<set $activeSlave.lips = random(2,4)>> + <<set $activeSlave.weight = random(-15,15)>> + <<set $activeSlave.oralSkill = 0, $activeSlave.analSkill = 0, $activeSlave.vaginalSkill = 0, $activeSlave.entertainSkill = 0, $activeSlave.whoreSkill = 0>> + <<set $activeSlave.behavioralFlaw = "none", $activeSlave.sexualFlaw = "none">> + <<set $activeSlave.clothes == "a Fuckdoll suit">> + <<set $activeSlave.assignment = "please you">> + <<case "AssetExpansionist">> + <<display "Generate New Slave">> + <<set $activeSlave.devotion = random(25,45), $activeSlave.trust = random(-15,15), $activeSlave.health = random(25,45)>> + <<set $activeSlave.chem = 50>> + <<set $activeSlave.beauty = random(1,3)>> + <<set $activeSlave.boobs += 100*random(10,20)>> + <<set $activeSlave.butt += random(2,3)>> + <<set $activeSlave.lips += random(0,1)>> + <<if $activeSlave.balls > 0>><<set $activeSlave.balls++>><</if>> + <<if $activeSlave.dick > 0>><<set $activeSlave.dick++>><</if>> + <<set $activeSlave.weight = random(15,90)>> + <<set $activeSlave.oralSkill = random(15,35), $activeSlave.analSkill = 0, $activeSlave.anus = 0>> + <<if $activeSlave.vagina > -1>> + <<if $activeSlave.vagina == 0>><<set $activeSlave.vagina++>><</if>> + <<set $activeSlave.vaginalSkill = random(15,35)>> <</if>> - <</for>> -<<elseif $PC.career == "slaver">> - <<for $i to 0; $i < $slaves.length; $i++>> - <<if $activeSlave.origin == "A fresh capture once overpowered you and had his way with you. You kept her as a painful reminder to never lower your guard again.">> - <<set $PC.births += 1>> - <<set $birthOther += 1>> + <<set $activeSlave.entertainSkill = random(15,35)>> + <<set $activeSlave.clothes = "slutty jewelry", $activeSlave.collar = "pretty jewelry", $activeSlave.shoes = "heels">> + <<set $activeSlave.assignment = "please you">> + <<case "SlimnessEnthusiast">> + <<display "Generate New Slave">> + <<set $activeSlave.devotion = random(25,45), $activeSlave.trust = random(55,65), $activeSlave.health = random(55,65)>> + <<set $activeSlave.beauty = random(1,3)>> + <<set $activeSlave.boobs = 100*random(1,4)>> + <<set $activeSlave.butt = random(1,2)>> + <<set $activeSlave.weight = random(-25,-15)>> + <<set $activeSlave.oralSkill = random(15,35), $activeSlave.analSkill = 0, $activeSlave.anus = 0>> + <<if $activeSlave.vagina > -1>> + <<if $activeSlave.vagina == 0>><<set $activeSlave.vagina++>><</if>> + <<set $activeSlave.vaginalSkill = random(15,35)>> <</if>> - <</for>> -<<elseif $PC.career == "engineer">> - <<for $i to 0; $i < $slaves.length; $i++>> - <<if $activeSlave.origin == "You concieved her after a male arcology owner, impressed by your work, rewarded you with a nigt you'll never forget.">> - <<set $PC.births += 1>> - <<set $birthOther += 1>> + <<set $activeSlave.entertainSkill = random(15,35)>> + <<set $activeSlave.clothes = "a leotard", $activeSlave.collar = "pretty jewelry", $activeSlave.shoes = "flats">> + <<set $activeSlave.assignment = "please you">> + <<case "TransformationFetishist">> + <<display "Generate New Slave">> + <<set $activeSlave.devotion = random(25,45), $activeSlave.trust = random(-15,15), $activeSlave.health = random(-15,0)>> + <<set $activeSlave.faceImplant = random(1,2)>> + <<set $activeSlave.beauty = Math.trunc($activeSlave.beauty+$activeSlave.faceImplant,-3,3)>> + <<set $activeSlave.boobsImplant = 200*random(4,8)>> + <<set $activeSlave.boobs += $activeSlave.boobsImplant>> + <<set $activeSlave.buttImplant = random(2,4)>> + <<set $activeSlave.butt += $activeSlave.buttImplant>> + <<set $activeSlave.lipsImplant = random(1,2)>> + <<set $activeSlave.lips = Math.trunc($activeSlave.lipsImplant+2,-3,3)>> + <<set $activeSlave.weight = random(-25,-15)>> + <<set $activeSlave.oralSkill = random(15,35), $activeSlave.analSkill = random(15,35)>> + <<if $activeSlave.vagina > -1>> + <<if $activeSlave.vagina == 0>><<set $activeSlave.vagina++>><</if>> + <<set $activeSlave.vaginalSkill = random(15,35)>> <</if>> - <</for>> -<<elseif $PC.career == "gang">> - <<for $i to 0; $i < $slaves.length; $i++>> - <<if $activeSlave.origin == "She was the result of a night of hard drugs and unprotected sex after a big score.">> - <<set $PC.births += 1>> - <<set $birthOther += 1>> + <<set $activeSlave.clothes = "a string bikini", $activeSlave.collar = "shock punishment", $activeSlave.shoes = "extreme heels">> + <<set $activeSlave.assignment = "whore">> + <<case "BodyPurist">> + <<display "Generate New Slave">> + <<set $activeSlave.devotion = random(55,65), $activeSlave.trust = random(25,45), $activeSlave.health = 100>> + <<set $activeSlave.beauty = random(1,3)>> + <<set $activeSlave.weight = random(-5,5)>> + <<set $activeSlave.muscle = random(10,25)>> + <<set $activeSlave.oralSkill = random(15,35), $activeSlave.analSkill = random(15,35)>> + <<if $activeSlave.vagina > -1>> + <<if $activeSlave.vagina == 0>><<set $activeSlave.vagina++>><</if>> + <<set $activeSlave.vaginalSkill = random(15,35)>> <</if>> - <</for>> -<<elseif $PC.career == "medicine">> - <<for $i to 0; $i < $slaves.length; $i++>> - <<if $activeSlave.origin == "She was concieved after a botched birth control expirement early in your career.">> - <<set $PC.births += 1>> - <<set $birthOther += 1>> + <<set $activeSlave.clothes = "a nice maid outfit", $activeSlave.collar = "pretty jewelry", $activeSlave.shoes = "heels">> + <<set $activeSlave.assignment = "work as a servant">> + <<case "MaturityPreferentialist">> + <<set $activeSlaveOneTimeMinAge to 36>> + <<set $activeSlaveOneTimeMaxAge to 39>> + <<set $one_time_age_overrides_pedo_mode to 1>> + <<display "Generate New Slave">> + <<set $activeSlave.devotion = random(55,65), $activeSlave.trust = random(-15,15), $activeSlave.health = random(25,45)>> + <<set $activeSlave.beauty = random(1,3)>> + <<set $activeSlave.boobs += 100*random(1,4)>> + <<set $activeSlave.butt += random(1,2)>> + <<set $activeSlave.weight = random(-5,90)>> + <<set $activeSlave.oralSkill = random(15,35), $activeSlave.analSkill = random(15,35)>> + <<if $activeSlave.vagina > -1>> + <<if $activeSlave.vagina == 0>><<set $activeSlave.vagina++>><</if>> + <<set $activeSlave.vaginalSkill = random(15,35)>> <</if>> - <</for>> -<<elseif $PC.career == "celebrity">> - <<for $i to 0; $i < $slaves.length; $i++>> - <<if $activeSlave.origin == "She was concieved after a night of partying and a torn condom. She nearly killed your career.">> - <<set $PC.births += 1>> - <<set $birthOther += 1>> + <<SoftenBehavioralFlaw $activeSlave>> + <<set $activeSlave.clothes = "a slutty maid outfit", $activeSlave.collar = "pretty jewelry", $activeSlave.shoes = "heels">> + <<set $activeSlave.assignment = "work as a servant">> + <<case "YouthPreferentialist">> + <<set $activeSlaveOneTimeMaxAge to 19>> + <<display "Generate New Slave">> + <<set $activeSlave.devotion = random(25,45), $activeSlave.trust = random(55,65), $activeSlave.health = random(25,45)>> + <<set $activeSlave.beauty = random(1,3)>> + <<set $activeSlave.boobs = 100*random(1,4)>> + <<set $activeSlave.butt = random(1,3)>> + <<set $activeSlave.weight = random(-25,25)>> + <<set $activeSlave.oralSkill = random(15,35), $activeSlave.analSkill = 0, $activeSlave.anus = 0>> + <<if $activeSlave.vagina > -1>><<set $activeSlave.vaginalSkill = 0, $activeSlave.vagina = 0>><</if>> + <<set $activeSlave.entertainSkill = random(15,35)>> + <<set $activeSlave.clothes = "a schoolgirl outfit", $activeSlave.collar = "pretty jewelry", $activeSlave.shoes = "heels">> + <<set $activeSlave.assignment = "work as a servant">> + <<case "Pastoralist">> + <<display "Generate New Slave">> + <<set $activeSlave.devotion = random(25,45), $activeSlave.trust = random(-25,-45), $activeSlave.health = random(25,45)>> + <<set $activeSlave.boobs += 100*random(10,20)>> + <<if $activeSlave.balls > 0>><<set $activeSlave.balls++>><</if>> + <<set $activeSlave.lactation = 2>> + <<set $activeSlave.clothes = "Western clothing", $activeSlave.collar = "leather with cowbell", $activeSlave.shoes = "flats">> + <<set $activeSlave.assignment = "get milked">> + <<case "PhysicalIdealist">> + <<display "Generate New Slave">> + <<set $activeSlave.devotion = random(25,45), $activeSlave.trust = random(25,45), $activeSlave.health = 100>> + <<set $activeSlave.muscles = random(50,100)>> + <<set $activeSlave.oralSkill = random(15,35), $activeSlave.analSkill = random(15,35)>> + <<if $activeSlave.vagina > -1>> + <<if $activeSlave.vagina == 0>><<set $activeSlave.vagina++>><</if>> + <<set $activeSlave.vaginalSkill = random(15,35)>> <</if>> - <</for>> -<<elseif $PC.career == "wealth">> - <<for $i to 0; $i < $slaves.length; $i++>> - <<if $activeSlave.origin == "You bet your body on a sure hand, only to lose. Nine months later, your daughter was born.">> - <<set $PC.births += 1>> - <<set $birthOther += 1>> + <<set $activeSlave.whoreSkill = random(15,35)>> + <<set $activeSlave.clothes = "body oil", $activeSlave.collar = "none", $activeSlave.shoes = "none">> + <<set $activeSlave.assignment = "whore">> + <<case "ChattelReligionist">> + <<display "Generate New Slave">> + <<set $activeSlave.devotion = random(55,65), $activeSlave.trust = random(55,65), $activeSlave.health = random(0,15)>> + <<if $activeSlave.vagina == 0>><<set $activeSlave.vagina++>><</if>> + <<set $activeSlave.whoreSkill = random(10,20)>> + <<set $activeSlave.behavioralFlaw = "none", $activeSlave.behavioralQuirk = "sinful">> + <<set $activeSlave.clothes = "a chattel habit", $activeSlave.collar = "heavy gold", $activeSlave.shoes = "flats">> + <<set $activeSlave.assignment = "whore">> + <<case "RomanRevivalist">> + <<set $activeSlaveOneTimeMaxAge to 19>> + <<display "Generate New Slave">> + <<set $activeSlave.devotion = 100, $activeSlave.trust = random(55,65), $activeSlave.health = 100>> + <<set $activeSlave.beauty = random(0,2)>> + <<set $activeSlave.muscles = random(25,50)>> + <<set $activeSlave.combatSkill = 1>> + <<set $activeSlave.behavioralFlaw = "none", $activeSlave.behavioralQuirk = "fitness">> + <<set $activeSlave.behavioralFlaw = "none">> + <<set $activeSlave.clothes = "a toga", $activeSlave.collar = "pretty jewelry", $activeSlave.shoes = "flats">> + <<set $activeSlave.assignment = "guard you", $Bodyguard = $activeSlave>> + <<case "EgyptianRevivalist">> + <<display "Generate New Slave">> + <<set $activeSlave.devotion = random(25,45), $activeSlave.trust = random(25,45), $activeSlave.health = random(25,45)>> + <<set $activeSlave.beauty = random(1,3)>> + <<set $activeSlave.oralSkill = random(15,35), $activeSlave.analSkill = random(15,35)>> + <<if $activeSlave.vagina > -1>> + <<if $activeSlave.vagina == 0>><<set $activeSlave.vagina++>><</if>> + <<set $activeSlave.vaginalSkill = random(15,35)>> + <</if>> + <<set $activeSlave.entertainSkill = random(15,35)>> + <<SoftenSexualFlaw $activeSlave>> + <<set $activeSlave.clothes = "slutty jewelry", $activeSlave.collar = "ancient Egyptian", $activeSlave.shoes = "flats">> + <<set $activeSlave.assignment = "please you">> + <<case "EdoRevivalist">> + <<set $fixedRace = "asian">><<display "Generate New Slave">><<set $fixedRace = 0>> + <<set $activeSlave.nationality = "Japanese">> + <<NationalityToName>> + <<set $activeSlave.accent = 0>> + <<set $activeSlave.devotion = random(25,45), $activeSlave.trust = random(25,45), $activeSlave.health = random(25,45)>> + <<set $activeSlave.beauty = random(1,3)>> + <<set $activeSlave.intelligence = random(1,3), $activeSlave.intelligenceImplant = 1>> + <<set $activeSlave.entertainSkill = 100>> + <<set $activeSlave.clothes = "a kimono", $activeSlave.collar = "satin choker", $activeSlave.shoes = "heels">> + <<set $activeSlave.assignment = "serve the public">> + <<case "ArabianRevivalist">> + <<display "Generate New Slave">> + <<set $activeSlave.devotion = random(25,45), $activeSlave.trust = random(-15,15), $activeSlave.health = random(25,45)>> + <<set $activeSlave.beauty = random(1,3)>> + <<set $activeSlave.intelligence = random(0,2), $activeSlave.intelligenceImplant = 0>> + <<set $activeSlave.clothes = "harem gauze", $activeSlave.collar = "uncomfortable leather", $activeSlave.shoes = "flats">> + <<set $activeSlave.assignment = "take classes">> + <<case "ChineseRevivalist">> + <<set $activeSlaveOneTimeMinAge to 36>> + <<set $activeSlaveOneTimeMaxAge to 38>> + <<set $one_time_age_overrides_pedo_mode to 1>> + <<set $fixedRace = "asian">><<display "Generate New Slave">><<set $fixedRace = 0>> + <<set $activeSlave.nationality = "Chinese">> + <<NationalityToName>> + <<NationalityToAccent>> + <<set $activeSlave.devotion = random(55,65), $activeSlave.trust = random(25,45), $activeSlave.health = random(25,45)>> + <<set $activeSlave.beauty = random(0,2)>> + <<set $activeSlave.accent = 0>> + <<set $activeSlave.intelligence = 3, $activeSlave.intelligenceImplant = 1>> + <<set $activeSlave.oralSkill = 100, $activeSlave.analSkill = 100>> + <<if $activeSlave.vagina > -1>> + <<if $activeSlave.vagina == 0>><<set $activeSlave.vagina++>><</if>> + <<set $activeSlave.vaginalSkill = 100>> + <</if>> + <<set $activeSlave.entertainSkill = 100, $activeSlave.whoreSkill = 100>> + <<SoftenBehavioralFlaw $activeSlave>> + <<SoftenSexualFlaw $activeSlave>> + <<set $activeSlave.clothes = "a slutty quipao", $activeSlave.collar = "pretty jewelry", $activeSlave.shoes = "heels">> + <<set $activeSlave.assignment = "be your Head Girl", $HeadGirl = $activeSlave>> + <<case "Eugenics">> + <<display "Generate New Slave">> + <<set $activeSlave.devotion = -100, $activeSlave.trust = -100, $activeSlave.health = random(80,90)>> + <<set $activeSlave.beauty = 6>> + <<set $activeSlave.intelligence = 3>> + <<set $activeSlave.intelligenceImplant = 1>> + <<set $activeSlave.face = 3>> + <<set $activeSlave.faceShape = "sensual">> + <<set $activeSlave.oralSkill = random(35,75), $activeSlave.analSkill = random(35,75)>> + <<if $activeSlave.vagina > -1>> + <<if $activeSlave.vagina = 0>><<set $activeSlave.vagina++>><</if>> + <<set $activeSlave.vaginalSkill = random(35,75)>> <</if>> + <<set $activeSlave.entertainSkill = random(15,35)>> + <<set $activeSlave.whoreSkill = 0>> + <<SoftenSexualFlaw $activeSlave>> + <<set $activeSlave.clothes = "a ball gown", $activeSlave.shoes = "flats">> + <<set $activeSlave.assignment = "rest">> + <<case "Repopulationist">> + <<set $activeSlaveOneTimeMinAge to $fertilityAge+3>> + <<set $activeSlaveOneTimeMaxAge to 25>> + <<set $one_time_age_overrides_pedo_mode to 1>> + <<display "Generate XX Slave">> + <<set $activeSlave.devotion = random(25,45), $activeSlave.trust = random(-25,-45), $activeSlave.health = random(55,65)>> + <<set $activeSlave.beauty = random(1,3)>> + <<set $activeSlave.preg = random(10,35),$activeSlave.pregType = random(3,5) , $activeSlave.lactation = 1>> + <<set $activeSlave.birthsTotal = 5>> + <<set $activeSlave.bellySag = 20>> + <<if $activeSlave.vagina > -1>> + <<set $activeSlave.vagina = 4>> + <<set $activeSlave.vaginalSkill = random(15,35)>> + <</if>> + <<set $activeSlave.clothes = "a nice maid outfit", $activeSlave.shoes = "flats">> + <<set $activeSlave.assignment = "please you">> + <<default>> + ERROR: bad arcology type + <</switch>> + <<set $activeSlave.origin = "You acquired her along with the arcology.", $activeSlave.career = "a slave">> + <<slaveCost $activeSlave>> + <<set _valueGiven += $slaveCost>> + <<AddSlave $activeSlave>> <</for>> -<</if>> -<<if $PC.preg > 0>> - <<if $PC.career == "servant">> - <<set $PC.pregSource = -3>> - <<elseif $PC.career == "escort">> - <<set $PC.pregSource = -2>> - <</if>> -<</if>> -<</if>> - -You arrive at your new arcology, $arcologies[0].name, and head straight to the penthouse to enter the access codes that will tell the $arcologies[0].name systems to recognize you as their owner. The penthouse office is ready to receive the codes, and they authenticate. A voice activates in your earpiece. -<br><br> -//Congratulations. I am a personal assistant program, and it is my pleasure to assist you, $PCName, the new owner of $arcologies[0].name. I will offer useful information whenever possible in italics. -<br><br> -Your new arcology has some unusual equipment. The previous owner kept a small stable of sex slaves. The penthouse therefore has a body modification studio for tattooing, bleaching and piercing, and an auto salon for more prosaic things like hair care. It also has a remote surgery, a small surgical theater that can be operated remotely by a qualified surgeon if you can pay the fee. Finally, it has a slave nutrition system connected to the arcology's hydroponics bays. This system produces a tasty protein-rich drink that provides the physically active female body all its necessary nutrients while leaving the lower digestive tract extremely clean. It even causes a mild increase in sex drive. -<br><br> -The previous owner seems to have left in something of a hurry. <<if $saveImported == 1>>Since it took some time for you to move your personal entourage into $arcologies[0].name, he had the time to get most of his things away.<<else>>He could not get all of his personal effects away.<</if>>// - -<<if $ageMode == 1>> - <<display [[Aging Test]]>> -<<elseif $cheatMode == 1>> - <<display [[Cheatmode Database]]>> <<else>> - <<set $seed to 0>> <<for $j to 0; $j < $heroSlaves.length; $j++>> - <<if $startingValue - $seed <= 5000>> + <<if _valueOwed - _valueGiven <= 5000>> <<break>> <</if>> <<set $activeSlave to $heroSlaves[$j]>> <<set $dump to $heroSlaves.pluck($j,$j)>> <<slaveCost $activeSlave>> - <<if $seed + $slaveCost < $startingValue*2>> - <<display "Nationality to Accent">> + <<if _valueGiven + $slaveCost < _valueOwed*2>> + <<NationalityToAccent>> <<set $activeSlave.pubicHColor to $activeSlave.hColor>> - <<set $activeSlave.pubicHStyle to "waxed">> - <<set $activeSlave.underArmHColor to $activeSlave.hColor>> - <<set $activeSlave.underArmHStyle to "waxed">> + <<set $activeSlave.pubicHStyle = "waxed">> + <<set $activeSlave.underArmHColor = $activeSlave.hColor>> + <<set $activeSlave.underArmHStyle = "waxed">> <<set $activeSlave.oldDevotion to $activeSlave.devotion>> <<set $activeSlave.oldTrust to $activeSlave.trust>> - <<set $seed += $slaveCost>> - <<set $slaves.push($activeSlave)>> + <<set _valueGiven += $slaveCost>> + <<AddSlave $activeSlave>> <<if $activeSlave.fetish is "mindbroken">> - //$activeSlave.slaveName is, sadly, not mentally competent, and is wandering through the penthouse at the moment.// + $activeSlave.slaveName is, sadly, not mentally competent, and is wandering through the penthouse at the moment. <<elseif $activeSlave.amp == 1>> - //$activeSlave.slaveName is a quadruple amputee and is quite helpless, so you can attend to her at your leisure.// + $activeSlave.slaveName is a quadruple amputee and is quite helpless, so you can attend to her at your leisure. <<elseif $activeSlave.devotion < -50>> - //$activeSlave.slaveName is quite rebellious and was attempting to escape, so I have locked her in the slave quarters.// + $activeSlave.slaveName is quite rebellious and was attempting to escape, so I have locked her in the slave quarters. <<elseif $activeSlave.devotion < -20>> - //$activeSlave.slaveName resists my orders and was considering escape, so I have locked her in the slave quarters.// + $activeSlave.slaveName resists my orders and was considering escape, so I have locked her in the slave quarters. <<elseif $activeSlave.devotion <= 20>> - //$activeSlave.slaveName is reasonably obedient, and is waiting for you in the dormitory, I believe in the hope of making a good impression.// + $activeSlave.slaveName is reasonably obedient, and is waiting for you in the dormitory, I believe in the hope of making a good impression. <<elseif $activeSlave.energy > 95>> - //$activeSlave.slaveName is a remarkable sexual addict, and I believe she will be very happy to meet you.// + $activeSlave.slaveName is a remarkable sexual addict, and I believe she will be very happy to meet you. <<elseif $activeSlave.fetish is "pregnancy" && $activeSlave.preg > 10>> - //$activeSlave.slaveName is currently in the dormitory masturbating over her growing pregnancy.// + $activeSlave.slaveName is currently in the dormitory masturbating over her growing pregnancy. <<elseif $activeSlave.preg > 20>> - //$activeSlave.slaveName is currently in the dormitory massaging her pregnant belly.// + $activeSlave.slaveName is currently in the dormitory massaging her pregnant belly. <<elseif $activeSlave.fetish is "buttslut">> - //$activeSlave.slaveName is currently in the dormitory masturbating anally, and I believe she will be happy to meet you.// + $activeSlave.slaveName is currently in the dormitory masturbating anally, and I believe she will be happy to meet you. <<elseif $activeSlave.fetish is "cumslut">> - //$activeSlave.slaveName is currently in the dormitory exhibiting oral fixation, and I believe she will be happy to meet you.// + $activeSlave.slaveName is currently in the dormitory exhibiting oral fixation, and I believe she will be happy to meet you. <<elseif $activeSlave.fetish is "boobs">> - //$activeSlave.slaveName is currently in the dormitory playing with her nipples, and I believe she will be happy to meet you.// + $activeSlave.slaveName is currently in the dormitory playing with her nipples, and I believe she will be happy to meet you. <<elseif $activeSlave.fetish is "pregnancy">> - //$activeSlave.slaveName is currently in the dormitory examining herself to try to discern her fertility, and I believe she will be happy to meet you.// + $activeSlave.slaveName is currently in the dormitory examining herself to try to discern her fertility, and I believe she will be happy to meet you. <<elseif $activeSlave.fetish is "humiliation">> - //$activeSlave.slaveName is currently in the entryway flashing passersby, and I believe she will be happy to meet you.// + $activeSlave.slaveName is currently in the entryway flashing passersby, and I believe she will be happy to meet you. <<elseif $activeSlave.fetish is "submissive">> - //$activeSlave.slaveName is currently in the dormitory, experimenting with self-bondage using the sheets; I believe she will be happy to meet you.// + $activeSlave.slaveName is currently in the dormitory, experimenting with self-bondage using the sheets; I believe she will be happy to meet you. <<elseif $activeSlave.fetish is "dom">> - //$activeSlave.slaveName is currently in the exercise area keeping fit; she likes to take an active role sexually and is using this down time to work out.// + $activeSlave.slaveName is currently in the exercise area keeping fit; she likes to take an active role sexually and is using this down time to work out. <<elseif $activeSlave.fetish is "sadist">> - //$activeSlave.slaveName is currently outside your office; she enjoys being superior to other slaves and I believe she means to ingratiate herself to you.// + $activeSlave.slaveName is currently outside your office; she enjoys being superior to other slaves and I believe she means to ingratiate herself to you. <<elseif $activeSlave.fetish is "masochist">> - //$activeSlave.slaveName is a sexual masochist; she is currently in the bathroom, experimenting with auto-flagellation with a wet towel.// - <<elseif $activeSlave.fetish is "none">> - //$activeSlave.slaveName is currently outside your office, and I believe she is attempting to maintain sexual arousal to make a good first impression on you.// + $activeSlave.slaveName is a sexual masochist; she is currently in the bathroom, experimenting with auto-flagellation with a wet towel. + <<else>> + $activeSlave.slaveName is currently outside your office, and I believe she is attempting to maintain sexual arousal to make a good first impression on you. <</if>> <</if>> <</for>> - <<if $startingValue - $seed > 0>> - //There are some valuables present, worth ¤<<print $startingValue - $seed>>.// - <<set $cash += $startingValue - $seed>> - <</if>> <</if>> +<<if _valueOwed-_valueGiven > 0>> + There are some valuables present, worth ¤<<print _valueOwed-_valueGiven>>. + <<set $cash += _valueOwed-_valueGiven>> +<</if>> +// /* RELATIONSHIP MUTUALITY CHECK, OLDMENTAL */ @@ -192,19 +509,7 @@ The previous owner seems to have left in something of a hurry. <<if $saveImporte <<set $slaves[$i].daughters += 1>> <</if>> <<if areSisters($slaves[$j], $slaves[$i]) > 0>> - <<set $slaves[$i].sisters += 1>> - <</if>> - <</for>> - <</if>> - <<if $familyTesting == 1>> - <<set $slaves[$i].sisters = 0>> - <<set $slaves[$i].daughters = 0>> - <<for $j to 0; $j < $slaves.length; $j++>> - <<if $slaves[$j].mother == $slaves[$i].ID || $slaves[$j].father == $slaves[$i].ID>> - <<set $slaves[$i].daughters += 1>> - <</if>> - <<if areSisters($slaves[$j], $slaves[$i]) > 0>> - <<set $slaves[$i].sisters += 1>> + <<set $slaves[$i].sisters++>> <</if>> <</for>> <</if>> @@ -247,18 +552,18 @@ The previous owner seems to have left in something of a hurry. <<if $saveImporte <br><br> <<click "Continue">> - <<set $ui to "main">> - <<set $startingGirlsNationality to 0>> + <<set $ui = "main">> + <<set $fixedNationality to 0>> <<if $terrain is "urban">> - <<set $minimumSlaveCost to 2000>> - <<set $slaveCostFactor to 0.7>> + <<set $minimumSlaveCost to 2000>> + <<set $slaveCostFactor to 0.7>> <<elseif $terrain is "marine">> - <<set $minimumSlaveCost to 2500>> - <<set $slaveCostFactor to 1>> + <<set $minimumSlaveCost to 2500>> + <<set $slaveCostFactor to 1>> <<else>> - <<set $minimumSlaveCost to 3000>> - <<set $slaveCostFactor to 1.3>> + <<set $minimumSlaveCost to 3000>> + <<set $slaveCostFactor to 1.3>> <</if>> <<script>>Save.autosave.save("Week Start Autosave")<</script>> <<goto "Main">> -<</click>> \ No newline at end of file +<</click>> diff --git a/src/npc/agent/agentWorkaround.tw b/src/npc/agent/agentWorkaround.tw index ad6d8b9e975d3bf4b9337ed58ae3018c542ac87d..35a9f20573e5721e795255d8b954735245fdd3e0 100644 --- a/src/npc/agent/agentWorkaround.tw +++ b/src/npc/agent/agentWorkaround.tw @@ -7,6 +7,10 @@ <<set $activeSlave.assignment = "be your agent">> <<set $activeSlave.assignmentVisible = 0>> <<set $activeSlave.sentence = 0>> +<<if $activeSlave.reservedChildren > 0>> + <<set $reservedChildren -= $activeSlave.reservedChildren>> + <<set $activeSlave.reservedChildren = 0>> +<</if>> <<if $activeSlave.relationship <= 3>> <<if $activeSlave.relationship > 0>> <<for _i to 0;_i < $slaves.length;_i++>> diff --git a/src/npc/asDump.tw b/src/npc/asDump.tw index 704ea13b2263cf2b8b4f495537d4817ba90a6de5..c3dc0c56831e164b78896b6d5c80b06968460819 100644 --- a/src/npc/asDump.tw +++ b/src/npc/asDump.tw @@ -5,7 +5,6 @@ <<for $i to 0; $i < $slaves.length; $i++>> <<if $activeSlave.ID == $slaves[$i].ID>> <<set $slaves[$i] to $activeSlave>> - <<set $activeSlave to {}>> <<set $dumped to 1>> <<break>> <</if>> @@ -13,9 +12,7 @@ <<if $dumped == 0>> <<if def $activeSlave.slaveName>> - <<display "Checkin Checks">> - <<set $slaves.push($activeSlave)>> - <<set $activeSlave to {}>> + <<AddSlave $activeSlave>> <<set $dumped to 1>> <</if>> <</if>> diff --git a/src/npc/databases/cheatmodeDatabase.tw b/src/npc/databases/cheatmodeDatabase.tw index 2ddb51f40036cafc93878e81af688912c0baa2ce..b9c3973559c262f1715ef48b408fd47c1323855b 100644 --- a/src/npc/databases/cheatmodeDatabase.tw +++ b/src/npc/databases/cheatmodeDatabase.tw @@ -1,41 +1,41 @@ :: Cheatmode Database [nobr] -<<set $activeSlave to {slaveName: "blank", birthName: "blank", weekAcquired: 1, origin: 0, career: 0, ID: 0, prestige: 0, pornFame: 0, pornFameSpending: 0, prestigeDesc: 0, recruiter: 0, relation: 0, relationTarget: 0, relationship: 0, relationshipTarget: 0, rivalry: 0, rivalryTarget: 0, subTarget: 0, choosesOwnAssignment: 0, assignment: "rest", assignmentVisible: 1, sentence: 0, training: 0, toyHole: "all her holes", indenture: -1, indentureRestrictions: 0, birthWeek: random(0,51), actualAge: 18, physicalAge: 18, visualAge: 18, ageImplant: 0, health: 0, minorInjury: 0, trust: 0, oldTrust: 0, devotion: 0, oldDevotion: 0, weight: 0, muscles: 0, height: 170, heightImplant: 0, nationality: "slave", race: "white", markings: "none", eyes: 1, eyeColor: "brown", eyewear: "none", hColor: "brown", pubicHColor: "brown", skin: "light", hLength: 60, hStyle: "short", pubicHStyle: "neat", waist: 0, corsetPiercing: 0, amp: 0, heels:0, voice: 2, voiceImplant: 0, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 0, boobsImplant: 0, boobsImplantType: 0, boobShape: "normal", nipples: "cute", nipplesPiercing: 0, areolae: 0, areolaePiercing: 0, boobsTat: 0, lactation: 0, lactationAdaptation: 0, milk: 0, cum: 0, hips: 0, hipsImplant: 0, butt: 0, buttImplant: 0, buttImplantType: 0, buttTat: 0, face: 0, faceImplant: 0, faceShape: "normal", lips: 15, lipsImplant: 0, lipsPiercing: 0, lipsTat: 0, teeth: "normal", tonguePiercing: 0, vagina: 0, vaginaLube: 0, vaginaPiercing: 0, vaginaTat: 0, preg: -1, pregSource: 0, pregType: 0, labor: 0, births: 0, cSec: 0, bellyAccessory: "none", labia: 0, clit: 0, clitPiercing: 0, clitSetting: "vanilla", foreskin: 0, anus: 0, dick: 0, analArea: 1, dickPiercing: 0, dickTat: 0, balls: 0, scrotum: 0, ovaries: 0, anusPiercing: 0, anusTat: 0, makeup: 0, nails: 0, brand: 0, brandLocation: 0, earPiercing: 0, nosePiercing: 0, eyebrowPiercing: 0, navelPiercing: 0, shouldersTat: 0, armsTat: 0, legsTat: 0, backTat: 0, stampTat: 0, vaginalSkill: 0, oralSkill: 0, analSkill: 0, whoreSkill: 0, entertainSkill: 0, combatSkill: 0, livingRules: "spare", speechRules: "restrictive", releaseRules:"restrictive", relationshipRules: "restrictive", standardPunishment: "situational", standardReward: "situational", useRulesAssistant: 1, diet: "healthy", dietCum: 0, dietMilk: 0, tired: 0, hormones: 0, drugs: "no drugs", curatives: 0, chem: 0, aphrodisiacs: 0, addict: 0, fuckdoll: 0, choosesOwnClothes: 0, clothes: "no clothing", collar: "none", shoes: "none", vaginalAccessory: "none", dickAccessory: "none", buttplug: "none", intelligence: 0, intelligenceImplant: 0, energy: 50, attrXX: 0, attrXY: 0, attrKnown: 0, fetish: "none", fetishStrength: 70, fetishKnown: 0, behavioralFlaw: "none", behavioralQuirk: "none", sexualFlaw: "none", sexualQuirk: "none", oralCount: 0, vaginalCount: 0, analCount: 0, mammaryCount: 0, penetrativeCount: 0, publicCount: 0, pitKills: 0, customTat: "", customLabel: "", customDesc: "", currentRules: [], father: 0, mother: 0, sisters: 0, daughters: 0, canRecruit: 0, HGExclude: 0, ballType: "human", eggType: "human"}>> +<<set $activeSlave to {slaveName: "blank", birthName: "blank", weekAcquired: 1, origin: 0, career: 0, ID: 0, prestige: 0, pornFame: 0, pornFameSpending: 0, prestigeDesc: 0, recruiter: 0, relation: 0, relationTarget: 0, relationship: 0, relationshipTarget: 0, rivalry: 0, rivalryTarget: 0, subTarget: 0, choosesOwnAssignment: 0, assignment: "rest", assignmentVisible: 1, sentence: 0, training: 0, toyHole: "all her holes", indenture: -1, indentureRestrictions: 0, birthWeek: random(0,51), actualAge: 18, physicalAge: 18, visualAge: 18, ageImplant: 0, health: 0, minorInjury: 0, trust: 0, oldTrust: 0, devotion: 0, oldDevotion: 0, weight: 0, muscles: 0, height: 170, heightImplant: 0, nationality: "slave", race: "white", markings: "none", eyes: 1, eyeColor: "brown", eyewear: "none", hColor: "brown", pubicHColor: "brown", skin: "light", hLength: 60, hStyle: "short", pubicHStyle: "neat", waist: 0, corsetPiercing: 0, amp: 0, heels:0, voice: 2, voiceImplant: 0, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 0, boobsImplant: 0, boobsImplantType: 0, boobShape: "normal", nipples: "cute", nipplesPiercing: 0, areolae: 0, areolaePiercing: 0, boobsTat: 0, lactation: 0, lactationAdaptation: 0, milk: 0, cum: 0, hips: 0, hipsImplant: 0, butt: 0, buttImplant: 0, buttImplantType: 0, buttTat: 0, face: 0, faceImplant: 0, faceShape: "normal", lips: 15, lipsImplant: 0, lipsPiercing: 0, lipsTat: 0, teeth: "normal", tonguePiercing: 0, vagina: 0, vaginaLube: 0, vaginaPiercing: 0, vaginaTat: 0, preg: -1, pregSource: 0, pregType: 0, labor: 0, births: 0, cSec: 0, bellyAccessory: "none", labia: 0, clit: 0, clitPiercing: 0, clitSetting: "vanilla", foreskin: 0, anus: 0, dick: 0, analArea: 1, dickPiercing: 0, dickTat: 0, balls: 0, scrotum: 0, ovaries: 0, anusPiercing: 0, anusTat: 0, makeup: 0, nails: 0, brand: 0, brandLocation: 0, earPiercing: 0, nosePiercing: 0, eyebrowPiercing: 0, navelPiercing: 0, shouldersTat: 0, armsTat: 0, legsTat: 0, backTat: 0, stampTat: 0, vaginalSkill: 0, oralSkill: 0, analSkill: 0, whoreSkill: 0, entertainSkill: 0, combatSkill: 0, livingRules: "spare", speechRules: "restrictive", releaseRules:"restrictive", relationshipRules: "restrictive", standardPunishment: "situational", standardReward: "situational", useRulesAssistant: 1, diet: "healthy", dietCum: 0, dietMilk: 0, tired: 0, hormones: 0, drugs: "no drugs", curatives: 0, chem: 0, aphrodisiacs: 0, addict: 0, fuckdoll: 0, choosesOwnClothes: 0, clothes: "no clothing", collar: "none", shoes: "none", vaginalAccessory: "none", dickAccessory: "none", buttplug: "none", intelligence: 0, intelligenceImplant: 0, energy: 50, attrXX: 0, attrXY: 0, attrKnown: 0, fetish: "none", fetishStrength: 70, fetishKnown: 0, behavioralFlaw: "none", behavioralQuirk: "none", sexualFlaw: "none", sexualQuirk: "none", oralCount: 0, vaginalCount: 0, analCount: 0, mammaryCount: 0, penetrativeCount: 0, publicCount: 0, pitKills: 0, customTat: "", customLabel: "", customDesc: "", customImage: 0, currentRules: [], father: 0, mother: 0, sisters: 0, daughters: 0, canRecruit: 0, HGExclude: 0, ballType: "human", eggType: "human", reservedChildren: 0}>> <<set _HS = clone($activeSlave)>> <<set _HS.slaveName = "Miss Anne", _HS.birthName = "Lindy Anne", _HS.ID = 990000, _HS.relation = "mother", _HS.relationTarget = 990004, _HS.relationship = 4, _HS.relationshipTarget = 990001, _HS.rivalry = 1, _HS.rivalryTarget = 990002, _HS.assignment = "be your Head Girl", _HS.birthWeek = random(0,51), _HS.actualAge = 42, _HS.physicalAge = 42, _HS.visualAge = 42, _HS.ageImplant = 1, _HS.health = 50, _HS.devotion = 100, _HS.height = 175, _HS.eyeColor = "green", _HS.hColor = "honey blonde", _HS.skin = "pale", _HS.hStyle = "long", _HS.waist = 1, _HS.boobs = 1000, _HS.boobsImplant = 600, _HS.areolae = 1, _HS.butt = 4, _HS.buttImplant = 2, _HS.face = 2, _HS.lips = 35, _HS.vagina = 2, _HS.anus = 1, _HS.ovaries = 1, _HS.makeup = 1, _HS.nails = 1, _HS.earPiercing = 1, _HS.vaginalSkill = 100, _HS.oralSkill = 100, _HS.analSkill = 100, _HS.whoreSkill = 100, _HS.entertainSkill = 100, _HS.clothes = "a slave gown", _HS.intelligence = 3, _HS.energy = 65, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.customTat = "'Miss Anne' is tattooed in lovely flowing script over her collarbone.", _HS.customDesc = "She speaks with the rich accent of the Old South.">> -<<set $slaves.push(clone(_HS))>> +<<AddSlave _HS>> <<set $HeadGirl = clone(_HS)>> <<set _dump = $heroSlaves.pluck(0)>> //There are quite a few left; their names are _HS.slaveName,// <<set _HS = clone($activeSlave)>> <<set _HS.slaveName = "Cornelia", _HS.birthName = "Cora", _HS.ID = 990001, _HS.relation = "mother", _HS.relationTarget = 990002, _HS.relationship = 4, _HS.relationshipTarget = 990000, _HS.assignment = "whore", _HS.birthWeek = random(0,51), _HS.actualAge = 36, _HS.physicalAge = 36, _HS.visualAge = 36, _HS.ageImplant = 1, _HS.health = 10, _HS.devotion = 100, _HS.muscles = 20, _HS.height = 190, _HS.race = "black", _HS.hColor = "black", _HS.pubicHColor = "black", _HS.skin = "dark", _HS.hStyle = "long", _HS.pubicHStyle = "waxed", _HS.waist = 1, _HS.boobs = 1200, _HS.boobsImplant = 1000, _HS.areolae = 2, _HS.butt = 5, _HS.buttImplant = 3, _HS.face = 1, _HS.faceImplant = 2, _HS.lips = 35, _HS.lipsImplant = 10, _HS.vagina = -1, _HS.preg = -2, _HS.dick = 3, _HS.anus = 2, _HS.balls = 1, _HS.ovaries = 1, _HS.makeup = 1, _HS.nails = 1, _HS.earPiercing = 1, _HS.oralSkill = 100, _HS.analSkill = 100, _HS.whoreSkill = 100, _HS.entertainSkill = 100, _HS.clothes = "a slave gown", _HS.energy = 65, _HS.attrXX = 80, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.customTat = "A large letter S is branded into the back of her left hand.", _HS.customDesc = "She speaks with the demeaning accent of slaves from the Old South.">> -<<set $slaves.push(clone(_HS))>> +<<AddSlave _HS>> <<set _dump = $heroSlaves.pluck(0)>> //_HS.slaveName,// <<set _HS = clone($activeSlave)>> <<set _HS.slaveName = "Sheba", _HS.birthName = "Shaneequa", _HS.ID = 990002, _HS.relation = "daughter", _HS.relationTarget = 990001, _HS.rivalry = 1, _HS.rivalryTarget = 990000, _HS.assignment = "whore", _HS.birthWeek = random(0,51), _HS.actualAge = 19, _HS.physicalAge = 19, _HS.visualAge = 19, _HS.health = 10, _HS.devotion = 12, _HS.height = 175, _HS.race = "black", _HS.pubicHColor = "black", _HS.skin = "light brown", _HS.hStyle = "long", _HS.pubicHStyle = "waxed", _HS.waist = 2, _HS.boobs = 1600, _HS.boobsImplant = 600, _HS.nipplesPiercing = 1, _HS.areolae = 1, _HS.butt = 6, _HS.buttImplant = 2, _HS.face = 2, _HS.faceImplant = 1, _HS.lips = 55, _HS.lipsImplant = 10, _HS.vagina = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.makeup = 1, _HS.nails = 1, _HS.earPiercing = 1, _HS.vaginalSkill = 35, _HS.oralSkill = 35, _HS.analSkill = 35, _HS.whoreSkill = 35, _HS.entertainSkill = 35, _HS.clothes = "a slave gown", _HS.energy = 100, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.customTat = "A large letter S is branded into the back of her left hand.", _HS.customDesc = "She speaks with the demeaning accent of slaves from the Old South.", _HS.mother = 990001>> -<<set $slaves.push(clone(_HS))>> +<<AddSlave _HS>> <<set _dump = $heroSlaves.pluck(0)>> //_HS.slaveName,// <<set _HS = clone($activeSlave)>> <<set _HS.slaveName = "Cornflower", _HS.birthName = "Alysa", _HS.ID = 990003, _HS.relation = "daughter", _HS.relationTarget = 990005, _HS.relationship = 3, _HS.relationshipTarget = 990005, _HS.assignment = "get milked", _HS.birthWeek = random(0,51), _HS.health = 20, _HS.devotion = 12, _HS.muscles = 50, _HS.height = 190, _HS.race = "black", _HS.hColor = "black", _HS.pubicHColor = "black", _HS.skin = "light brown", _HS.hLength = 0, _HS.hStyle = "shaved bald", _HS.pubicHStyle = "waxed", _HS.waist = 1, _HS.heels = 1, _HS.voice = 0, _HS.boobs = 6000, _HS.nipples = "huge", _HS.areolae = 2, _HS.boobsTat = "bovine patterns", _HS.lactation = 2, _HS.butt = 3, _HS.buttTat = "bovine patterns", _HS.face = 1, _HS.lips = 35, _HS.lipsTat = "bovine patterns", _HS.vagina = 1, _HS.vaginaTat = "bovine patterns", _HS.anus = 3, _HS.dickTat = "bovine patterns", _HS.ovaries = 1, _HS.anusTat = "bovine patterns", _HS.makeup = 1, _HS.nails = 1, _HS.earPiercing = 1, _HS.nosePiercing = 2, _HS.shouldersTat = "bovine patterns", _HS.armsTat = "bovine patterns", _HS.legsTat = "bovine patterns", _HS.stampTat = "bovine patterns", _HS.vaginalSkill = 15, _HS.oralSkill = 15, _HS.analSkill = 35, _HS.energy = 65, _HS.attrXY = 40, _HS.fetish = "boobs", _HS.fetishKnown = 1, _HS.customTat = "A pretty blue cornflower is tattooed on each of her cheeks.", _HS.customDesc = "She once spoke with the demeaning accent of slaves from the Old South.", _HS.mother = 990005>> -<<set $slaves.push(clone(_HS))>> +<<AddSlave _HS>> <<set _dump = $heroSlaves.pluck(0)>> //_HS.slaveName,// <<set _HS = clone($activeSlave)>> <<set _HS.slaveName = "Miss Lily", _HS.birthName = "Lillian", _HS.ID = 990004, _HS.relation = "daughter", _HS.relationTarget = 990000, _HS.assignment = "guard you", _HS.birthWeek = random(0,51), _HS.health = 20, _HS.devotion = 30, _HS.muscles = 50, _HS.height = 175, _HS.eyeColor = "green", _HS.hColor = "straw blonde", _HS.skin = "pale", _HS.hLength = 40, _HS.hStyle = "in a short ponytail", _HS.waist = 1, _HS.boobs = 600, _HS.butt = 3, _HS.face = 1, _HS.lips = 35, _HS.preg = -2, _HS.anus = 2, _HS.ovaries = 1, _HS.makeup = 1, _HS.nails = 1, _HS.earPiercing = 1, _HS.analSkill = 35, _HS.combatSkill = 1, _HS.energy = 65, _HS.attrXY = 40, _HS.fetish = "buttslut", _HS.fetishKnown = 1, _HS.customTat = "'Miss Lily' is tattooed in lovely flowing script over her collarbone.", _HS.customDesc = "She once spoke with the rich accent of the Old South.", _HS.mother = 990000>> -<<set $slaves.push(clone(_HS))>> +<<AddSlave _HS>> <<set $Bodyguard to clone(_HS)>> <<set _dump = $heroSlaves.pluck(0)>> //_HS.slaveName,// <<set _HS = clone($activeSlave)>> <<set _HS.slaveName = "Lilac", _HS.birthName = "Lillian", _HS.ID = 990005, _HS.relation = "mother", _HS.relationTarget = 990003, _HS.relationship = 3, _HS.relationshipTarget = 990003, _HS.assignment = "get milked", _HS.birthWeek = random(0,51), _HS.actualAge = 36, _HS.physicalAge = 36, _HS.visualAge = 36, _HS.health = 20, _HS.devotion = 12, _HS.muscles = 50, _HS.height = 190, _HS.race = "black", _HS.hColor = "black", _HS.pubicHColor = "black", _HS.skin = "light brown", _HS.hLength = 0, _HS.hStyle = "shaved bald", _HS.pubicHStyle = "waxed", _HS.waist = 1, _HS.heels = 1, _HS.boobs = 8000, _HS.nipples = "huge", _HS.areolae = 2, _HS.boobsTat = "bovine patterns", _HS.lactation = 2, _HS.butt = 4, _HS.buttTat = "bovine patterns", _HS.face = 1, _HS.lips = 35, _HS.lipsTat = "bovine patterns", _HS.vagina = 1, _HS.vaginaTat = "bovine patterns", _HS.anus = 3, _HS.dickTat = "bovine patterns", _HS.ovaries = 1, _HS.anusTat = "bovine patterns", _HS.makeup = 1, _HS.nails = 1, _HS.earPiercing = 1, _HS.nosePiercing = 2, _HS.shouldersTat = "bovine patterns", _HS.armsTat = "bovine patterns", _HS.legsTat = "bovine patterns", _HS.stampTat = "bovine patterns", _HS.vaginalSkill = 15, _HS.oralSkill = 15, _HS.analSkill = 35, _HS.energy = 65, _HS.attrXY = 40, _HS.fetish = "boobs", _HS.fetishKnown = 1, _HS.customTat = "A pretty purple lilac is tattooed on each of her cheeks.", _HS.customDesc = "She once spoke with the demeaning accent of slaves from the Old South.">> -<<set $slaves.push(clone(_HS))>> +<<AddSlave _HS>> <<set _dump = $heroSlaves.pluck(0)>> -//and _HS.slaveName.// \ No newline at end of file +//and _HS.slaveName.// diff --git a/src/npc/databases/dSlavesDatabase.tw b/src/npc/databases/dSlavesDatabase.tw index d744d8ae0531748f12e314fe798c496ab6706b74..544ca5000e5b42560ba9c94f5cff0b3f7c6f692b 100644 --- a/src/npc/databases/dSlavesDatabase.tw +++ b/src/npc/databases/dSlavesDatabase.tw @@ -35,7 +35,7 @@ /*Corrected piercings, added origin -BoneyM*/ <<set _HS = clone($activeSlave)>> -<<set _HS.slaveName = "Piggy", _HS.birthName = "Chloë", _HS.origin = "She was once a celebrity that protested the existence of slavery, but has now become a slave herself.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.health = 20, _HS.devotion = -75, _HS.weight = -20, _HS.eyeColor = "green", _HS.hColor = "dirty blonde", _HS.pubicHColor = "dirty blonde", _HS.skin = "white", _HS.hLength = 10, _HS.pubicHStyle = "waxed", _HS.boobs = 300, _HS.butt = 1, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.ovaries = 1, oralSkill = 100, _HS.intelligence = 1, _HS.intelligenceImplant = 1, _HS.attrXY = 40, _HS.fetish = "cumslut", _HS.fetishStrength = 100, _HS.fetishKnown = 1, _HS.behavioralFlaw = "bitchy">> +<<set _HS.slaveName = "Piggy", _HS.birthName = "Chloë", _HS.origin = "She was once a celebrity that protested the existence of slavery, but has now become a slave herself.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.health = 20, _HS.devotion = -75, _HS.weight = -20, _HS.eyeColor = "green", _HS.hColor = "dirty blonde", _HS.pubicHColor = "dirty blonde", _HS.skin = "white", _HS.hLength = 10, _HS.pubicHStyle = "waxed", _HS.boobs = 300, _HS.butt = 1, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.ovaries = 1, _HS.oralSkill = 100, _HS.intelligence = 1, _HS.intelligenceImplant = 1, _HS.attrXY = 40, _HS.fetish = "cumslut", _HS.fetishStrength = 100, _HS.fetishKnown = 1, _HS.behavioralFlaw = "bitchy">> <<set $heroSlaves.push(clone(_HS))>> /*Added origin, added bitchy, corrected eye color -BoneyM*/ @@ -51,7 +51,7 @@ /*Set birth name to ‘unknown’, tweaked obedience downwards, corrected tattoo's, added combat skill, clothes and shoes, arrogant -BoneyM*/ <<set _HS = clone($activeSlave)>> -<<set _HS.slaveName = "Catherine", _HS.birthName = "Catherine", _HS.origin = "She came from a wealthy background, but she sold herself into slavery to slake her desire to submit to men and dominate women.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 20, _HS.physicalAge = 20, _HS.visualAge = 20, _HS.health = 40, _HS.devotion = 20, _HS.eyeColor = "blue", _HS.hColor = "red", _HS.pubicHColor = "red", _HS.skin = "white", _HS.hLength = 25, _HS.hStyle = "short and in a ponytail", _HS.pubicHStyle = "waxed", _HS.boobs = 800, butt = 3, vagina = 1, vaginaLube = 1, anus = 1, ovaries = 1, makeup = 1, vaginalSkill = 100, _HS.oralSkill = 100, _HS.analSkill = 100, _HS.entertainSkill = 100, _HS.intelligence = 1, _HS.intelligenceImplant = 1, _HS.attrXX = 80, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.behavioralFlaw = "arrogant">> +<<set _HS.slaveName = "Catherine", _HS.birthName = "Catherine", _HS.origin = "She came from a wealthy background, but she sold herself into slavery to slake her desire to submit to men and dominate women.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 20, _HS.physicalAge = 20, _HS.visualAge = 20, _HS.health = 40, _HS.devotion = 20, _HS.eyeColor = "blue", _HS.hColor = "red", _HS.pubicHColor = "red", _HS.skin = "white", _HS.hLength = 25, _HS.hStyle = "short and in a ponytail", _HS.pubicHStyle = "waxed", _HS.boobs = 800, _HS.butt = 3, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.makeup = 1, _HS.vaginalSkill = 100, _HS.oralSkill = 100, _HS.analSkill = 100, _HS.entertainSkill = 100, _HS.intelligence = 1, _HS.intelligenceImplant = 1, _HS.attrXX = 80, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.behavioralFlaw = "arrogant">> <<set $heroSlaves.push(clone(_HS))>> /*corrected eye color, makeup, tweaked entertainskill, added ‘arrogant’ -BoneyM*/ @@ -71,7 +71,7 @@ /*Added origin, tweaked skills, added smart piercing set to submissive, removed buttslut -BoneyM*/ <<set _HS = clone($activeSlave)>> -<<set _HS.slaveName = "Eryma", _HS.birthName = "Eryma", _HS.origin = "She is a former gladiator that wagered her freedom and lost.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 24, _HS.physicalAge = 24, _HS.visualAge = 24, _HS.health = 100, _HS.devotion = -30, _HS.height = 175, _HS.eyeColor = "blue", _HS.hColor = "blonde", _HS.pubicHColor = "blonde", _HS.skin = "tanned", _HS.hStyle = "long", _HS.pubicHStyle = "waxed", _HS.boobs = 500, _HS.butt = 2, _HS.vaginaLube = 1, _HS.ovaries = 1, _HS.combatSkill = 1, intelligence = 1, _HS.intelligenceImplant = 1, _HS.attrXY = 40, _HS.fetish = "humiliation", _HS.behavioralFlaw = "arrogant">> +<<set _HS.slaveName = "Eryma", _HS.birthName = "Eryma", _HS.origin = "She is a former gladiator that wagered her freedom and lost.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 24, _HS.physicalAge = 24, _HS.visualAge = 24, _HS.health = 100, _HS.devotion = -30, _HS.height = 175, _HS.eyeColor = "blue", _HS.hColor = "blonde", _HS.pubicHColor = "blonde", _HS.skin = "tanned", _HS.hStyle = "long", _HS.pubicHStyle = "waxed", _HS.boobs = 500, _HS.butt = 2, _HS.vaginaLube = 1, _HS.ovaries = 1, _HS.combatSkill = 1, _HS.intelligence = 1, _HS.intelligenceImplant = 1, _HS.attrXY = 40, _HS.fetish = "humiliation", _HS.behavioralFlaw = "arrogant">> <<set $heroSlaves.push(clone(_HS))>> /*fighter*/ /*Added combat skill, changed eye color and rules, added origin, added arrogant -BoneyM*/ @@ -123,7 +123,7 @@ /*Tweaked face down, added ‘hates penetration’ and combat skill -BoneyM*/ <<set _HS = clone($activeSlave)>> -<<set _HS.slaveName = "Cecilia", _HS.birthName = "Cecilia", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 26, _HS.physicalAge = 26, _HS.visualAge = 26, _HS.health = 20, _HS.devotion = 100, _HS.height = 175, _HS.pubicHColor = "brown", _HS.skin = "white", _HS.hLength = 10, _HS.pubicHStyle = "waxed", _HS.boobs = 650, _HS.nipplesPiercing = 2, _HS.boobsTat = "tribal patterns", _HS.butt = 3, _HS.buttTat = "tribal patterns", _HS.lipsPiercing = 2, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.vaginaPiercing = 1, _HS.vaginaTat = "tribal patterns", anus = 1, ovaries = 1, cosmeticPiercings = 2, vaginalSkill = 100, oralSkill = 100, analSkill = 100, _HS.intelligence = 1, _HS.attrXY = 40>> +<<set _HS.slaveName = "Cecilia", _HS.birthName = "Cecilia", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 26, _HS.physicalAge = 26, _HS.visualAge = 26, _HS.health = 20, _HS.devotion = 100, _HS.height = 175, _HS.pubicHColor = "brown", _HS.skin = "white", _HS.hLength = 10, _HS.pubicHStyle = "waxed", _HS.boobs = 650, _HS.nipplesPiercing = 2, _HS.boobsTat = "tribal patterns", _HS.butt = 3, _HS.buttTat = "tribal patterns", _HS.lipsPiercing = 2, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.vaginaPiercing = 1, _HS.vaginaTat = "tribal patterns", _HS.anus = 1, _HS.ovaries = 1, _HS.cosmeticPiercings = 2, _HS.vaginalSkill = 100, _HS.oralSkill = 100, _HS.analSkill = 100, _HS.intelligence = 1, _HS.attrXY = 40>> <<set $heroSlaves.push(clone(_HS))>> /*Tweaked devotion up, added arrogant -BoneyM*/ @@ -139,13 +139,13 @@ /*Changed eye color, added odd, tweaked vaginalSkill, added origin -BoneyM*/ <<set _HS = clone($activeSlave)>> -<<set _HS.slaveName = "Joan", _HS.birthName = "Joan", _HS.ID = _i++, _HS.birthWeek = random(0,51), age = 42, health = 6, devotion = 12, height = 175, nationality = "American", eyeColor = "blue", hColor = "blonde", _HS.pubicHColor = "blonde", _HS.skin = "white", _HS.hStyle = "long", _HS.pubicHStyle = "waxed", _HS.boobs = 1000, _HS.boobsImplant = 600, _HS.butt = 4, _HS.face = 1, _HS.lips = 35, _HS.lipsImplant = 10, _HS.vagina = 2, _HS.vaginaLube = 1, _HS.anus = 2, _HS.ovaries = 1, _HS.anusTat = "tribal patterns", _HS.vaginalSkill = 100, _HS.oralSkill = 100, _HS.analSkill = 100, _HS.intelligence = 1, _HS.attrXX = 80, _HS.attrXY = 40, _HS.fetishKnown = 1>> +<<set _HS.slaveName = "Joan", _HS.birthName = "Joan", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 42, _HS.physicalAge = 42, _HS.visualAge = 42, _HS.health = 6, _HS.devotion = 12, _HS.height = 175, _HS.nationality = "American", _HS.eyeColor = "blue", _HS.hColor = "blonde", _HS.pubicHColor = "blonde", _HS.skin = "white", _HS.hStyle = "long", _HS.pubicHStyle = "waxed", _HS.boobs = 1000, _HS.boobsImplant = 600, _HS.butt = 4, _HS.face = 1, _HS.lips = 35, _HS.lipsImplant = 10, _HS.vagina = 2, _HS.vaginaLube = 1, _HS.anus = 2, _HS.ovaries = 1, _HS.anusTat = "tribal patterns", _HS.vaginalSkill = 100, _HS.oralSkill = 100, _HS.analSkill = 100, _HS.intelligence = 1, _HS.attrXX = 80, _HS.attrXY = 40, _HS.fetishKnown = 1>> <<set $heroSlaves.push(clone(_HS))>> /*heterochromia*/ /*Tweaked face upwards, changed eye color, changed health from 20 to 6 -BoneyM*/ <<set _HS = clone($activeSlave)>> -<<set _HS.slaveName = "Belle", _HS.birthName = "Belle", _HS.origin = "Formerly used solely for titfucking, she quickly became a nymphomaniac after experiencing ‘proper’ sex.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 19, _HS.physicalAge = 19, _HS.visualAge = 19, _HS.health = 20, _HS.devotion = -75, _HS.height = 155, _HS.pubicHColor = "black", _HS.skin = "white", _HS.eyeColor = "blue", _HS.hColor = "black", _HS.hStyle = "long", _HS.pubicHStyle = "waxed", _HS.boobs = 1200, _HS.boobsImplant = 1000, _HS.butt = 4, _HS.buttImplant = 3, _HS.vagina = 3, _HS.vaginaLube = 1, _HS.anus = 3, _HS.ovaries = 1, _HS.anusTat = "tribal patterns", vaginalSkill = 35, oralSkill = 35, analSkill = 35, intelligence = -1, energy = 100, attrXY = 40, _HS.fetishKnown = 1, _HS.behavioralFlaw = "odd", _HS.customTat = "Her breasts are tattooed with her implant history, showing repeated additions.">> +<<set _HS.slaveName = "Belle", _HS.birthName = "Belle", _HS.origin = "Formerly used solely for titfucking, she quickly became a nymphomaniac after experiencing ‘proper’ sex.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 19, _HS.physicalAge = 19, _HS.visualAge = 19, _HS.health = 20, _HS.devotion = -75, _HS.height = 155, _HS.pubicHColor = "black", _HS.skin = "white", _HS.eyeColor = "blue", _HS.hColor = "black", _HS.hStyle = "long", _HS.pubicHStyle = "waxed", _HS.boobs = 1200, _HS.boobsImplant = 1000, _HS.butt = 4, _HS.buttImplant = 3, _HS.vagina = 3, _HS.vaginaLube = 1, _HS.anus = 3, _HS.ovaries = 1, _HS.anusTat = "tribal patterns", _HS.vaginalSkill = 35, _HS.oralSkill = 35, _HS.analSkill = 35, _HS.intelligence = -1, _HS.energy = 100, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.behavioralFlaw = "odd", _HS.customTat = "Her breasts are tattooed with her implant history, showing repeated additions.">> <<set $heroSlaves.push(clone(_HS))>> /*rapey implant addict*/ /*Is ‘rapey’ a quirk? Guess so. Added odd. Changed eye color, added nympho, added origin. -BoneyM*/ @@ -208,7 +208,7 @@ /*Reduced weight, changed eyes, added nail polish -BoneyM*/ <<set _HS = clone($activeSlave)>> -<<set _HS.slaveName = "Kino", _HS.birthName = "Kino", _HS.origin = "Formerly owned by someone who fancied themselves a geneticist, where she acquired permanently discolored hair and odd fetishes.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 21, _HS.physicalAge = 21, _HS.visualAge = 21, _HS.health = 40, _HS.devotion = -75, _HS.height = 155, _HS.race = "white", _HS.eyeColor = "blue-green", _HS.hColor = "blue", _HS.pubicHColor = "blue", _HS.skin = "tanned", _HS.hLength = 30, _HS.hStyle = "short, spiky, with a long shoulder-length lock leading from her temples down, one on each side", pubicHStyle = "waxed", boobs = 650, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.vaginalSkill = 35, _HS.oralSkill = 35, _HS.analSkill = 35, _HS.combatSkill = 1, _HS.intelligence = -1, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.customDesc = "She has a vertical scar through her right eye, is a dabbling artist, and is an oviposition fetishist.">> +<<set _HS.slaveName = "Kino", _HS.birthName = "Kino", _HS.origin = "Formerly owned by someone who fancied themselves a geneticist, where she acquired permanently discolored hair and odd fetishes.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 21, _HS.physicalAge = 21, _HS.visualAge = 21, _HS.health = 40, _HS.devotion = -75, _HS.height = 155, _HS.race = "white", _HS.eyeColor = "blue-green", _HS.hColor = "blue", _HS.pubicHColor = "blue", _HS.skin = "tanned", _HS.hLength = 30, _HS.hStyle = "short, spiky, with a long shoulder-length lock leading from her temples down, one on each side", pubicHStyle = "waxed", _HS.boobs = 650, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.vaginalSkill = 35, _HS.oralSkill = 35, _HS.analSkill = 35, _HS.combatSkill = 1, _HS.intelligence = -1, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.customDesc = "She has a vertical scar through her right eye, is a dabbling artist, and is an oviposition fetishist.">> <<set $heroSlaves.push(clone(_HS))>> /*Added combat skill, increased health, added origin -BoneyM*/ @@ -246,13 +246,13 @@ /*Changed eyes to blue, added origin, pierced ears, fixed customdesc syntax -BoneyM*/ <<set _HS = clone($activeSlave)>> -<<set _HS.slaveName = "Riley", _HS.birthName = "Riley", _HS.origin = "She sold herself into slavery in an attempt to sate her incredible sex drive.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.health = 20, _HS.devotion = 75, _HS.weight = -20, _HS.height = 175, _HS.hColor = "black", _HS.pubicHColor = "black", _HS.skin = "pale", _HS.hLength = 10, _HS.pubicHStyle = "waxed", _HS.boobs = 300, _HS.nipplesPiercing = 1, _HS.butt = 4, _HS.lipsPiercing = 2, _HS.tonguePiercing = 2, _HS.vagina = 2, _HS.vaginaLube = 1, _HS.vaginaPiercing = 1, _HS.clitPiercing = 1, _HS.anus = 2, _HS.ovaries = 1, _HS.vaginalSkill = 100, _HS.oralSkill = 100, analSkill = 100, vaginalAccessory = "large dildo", buttplug = "large plug", _HS.intelligence = 1, _HS.intelligenceImplant = 1, _HS.energy = 100, _HS.attrXY = 100, _HS.fetishKnown = 1, _HS.customDesc = "She has a scar on the back of her head, concealed by her hair.">> +<<set _HS.slaveName = "Riley", _HS.birthName = "Riley", _HS.origin = "She sold herself into slavery in an attempt to sate her incredible sex drive.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.health = 20, _HS.devotion = 75, _HS.weight = -20, _HS.height = 175, _HS.hColor = "black", _HS.pubicHColor = "black", _HS.skin = "pale", _HS.hLength = 10, _HS.pubicHStyle = "waxed", _HS.boobs = 300, _HS.nipplesPiercing = 1, _HS.butt = 4, _HS.lipsPiercing = 2, _HS.tonguePiercing = 2, _HS.vagina = 2, _HS.vaginaLube = 1, _HS.vaginaPiercing = 1, _HS.clitPiercing = 1, _HS.anus = 2, _HS.ovaries = 1, _HS.vaginalSkill = 100, _HS.oralSkill = 100, _HS.analSkill = 100, _HS.vaginalAccessory = "large dildo", _HS.buttplug = "large plug", _HS.intelligence = 1, _HS.intelligenceImplant = 1, _HS.energy = 100, _HS.attrXY = 100, _HS.fetishKnown = 1, _HS.customDesc = "She has a scar on the back of her head, concealed by her hair.">> <<set $heroSlaves.push(clone(_HS))>> /*compulsive masturbation*/ /*Moved customdesc to origin, added scar to customdesc, reduced weight, added nympho, added nipple and clit piercings -BoneyM*/ <<set _HS = clone($activeSlave)>> -<<set _HS.slaveName = "Victoria", _HS.birthName = "Victoria", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 23, _HS.physicalAge = 23, _HS.visualAge = 23, _HS.health = -7, _HS.devotion = 25, _HS.skin = "white", _HS.hStyle = "long", _HS.pubicHStyle = "waxed", _HS.boobs = 650, _HS.boobsTat = "degradation", _HS.buttTat = "degradation", _HS.lipsTat = "degradation", _HS.vagina = 1, _HS.vaginaLube = 1, vaginaTat = "degradation", anus = 1, ovaries = 1, anusTat = "degradation", vaginalSkill = 15, _HS.oralSkill = 15, _HS.analSkill = 15, _HS.addict = 999, _HS.intelligence = -2, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.customDesc = "She is a permanent, irrecoverable aphrodisiac addict.">> +<<set _HS.slaveName = "Victoria", _HS.birthName = "Victoria", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 23, _HS.physicalAge = 23, _HS.visualAge = 23, _HS.health = -7, _HS.devotion = 25, _HS.skin = "white", _HS.hStyle = "long", _HS.pubicHStyle = "waxed", _HS.boobs = 650, _HS.boobsTat = "degradation", _HS.buttTat = "degradation", _HS.lipsTat = "degradation", _HS.vagina = 1, _HS.vaginaLube = 1, _HS.vaginaTat = "degradation", _HS.anus = 1, _HS.ovaries = 1, _HS.anusTat = "degradation", _HS.vaginalSkill = 15, _HS.oralSkill = 15, _HS.analSkill = 15, _HS.addict = 999, _HS.intelligence = -2, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.customDesc = "She is a permanent, irrecoverable aphrodisiac addict.">> <<set $heroSlaves.push(clone(_HS))>> /*Corrected customdesc syntax -BoneyM*/ @@ -466,7 +466,7 @@ <<set $heroSlaves.push(clone(_HS))>> <<set _HS = clone($activeSlave)>> -<<set _HS.slaveName = "Caroline", _HS.birthName = "Carl", _HS.ID = _i++, _HS.prestigeDesc = "She was once a rising free cities politician who argued for compulsory female enslavement, but she became an addict, fell into debt, and was subsequently enslaved.", birthWeek = random(0,51), _HS.actualAge = 44, _HS.physicalAge = 44, _HS.visualAge = 44, health = 60, devotion = 90, height = 145, _HS.heightImplant = -1, _HS.nationality = "French", _HS.eyeColor = "blue", _HS.hColor = "blonde", _HS.pubicHColor = "blonde", _HS.skin = "tanned", _HS.hLength = 70, _HS.hStyle = "ass-length", _HS.pubicHStyle = "waxed", _HS.waist = 1, _HS.heels = 1, _HS.boobs = 1100, _HS.boobsImplant = 400, _HS.nipplesPiercing = 1, _HS.areolae = 1, _HS.butt = 4, _HS.buttImplant = 2, _HS.face = 2, _HS.faceImplant = 2, _HS.lips = 55, _HS.lipsImplant = 2, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.preg = -2, _HS.anus = 2, _HS.anusTat = "bleached", _HS.makeup = 3, _HS.nails = 1, _HS.earPiercing = 1, _HS.navelPiercing = 1, _HS.legsTat = "degradation", _HS.stampTat = "degradation", _HS.vaginalSkill = 100, _HS.oralSkill = 100, _HS.analSkill = 100, _HS.whoreSkill = 15, _HS.entertainSkill = 35, _HS.drugs = "breast injections", _HS.addict = 1, _HS.clothes = "slutty jewelry", _HS.collar = "tight steel", _HS.intelligence = -2, _HS.intelligenceImplant = 1, _HS.attrXY = 40, _HS.fetish = "humiliation", _HS.behavioralFlaw = "arrogant", _HS.customTat = "She has a tattoo down her left arm, which reads = 'Once a tall, muscular, handsome man with a big dick and big balls.'", _HS.customDesc = "Since becoming a slave she has been turned into a little bimbo.">> +<<set _HS.slaveName = "Caroline", _HS.birthName = "Carl", _HS.ID = _i++, _HS.prestigeDesc = "She was once a rising free cities politician who argued for compulsory female enslavement, but she became an addict, fell into debt, and was subsequently enslaved.", _HS.birthWeek = random(0,51), _HS.actualAge = 44, _HS.physicalAge = 44, _HS.visualAge = 44, _HS.health = 60, _HS.devotion = 90, _HS.height = 145, _HS.heightImplant = -1, _HS.nationality = "French", _HS.eyeColor = "blue", _HS.hColor = "blonde", _HS.pubicHColor = "blonde", _HS.skin = "tanned", _HS.hLength = 70, _HS.hStyle = "ass-length", _HS.pubicHStyle = "waxed", _HS.waist = 1, _HS.heels = 1, _HS.boobs = 1100, _HS.boobsImplant = 400, _HS.nipplesPiercing = 1, _HS.areolae = 1, _HS.butt = 4, _HS.buttImplant = 2, _HS.face = 2, _HS.faceImplant = 2, _HS.lips = 55, _HS.lipsImplant = 2, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.preg = -2, _HS.anus = 2, _HS.anusTat = "bleached", _HS.makeup = 3, _HS.nails = 1, _HS.earPiercing = 1, _HS.navelPiercing = 1, _HS.legsTat = "degradation", _HS.stampTat = "degradation", _HS.vaginalSkill = 100, _HS.oralSkill = 100, _HS.analSkill = 100, _HS.whoreSkill = 15, _HS.entertainSkill = 35, _HS.drugs = "breast injections", _HS.addict = 1, _HS.clothes = "slutty jewelry", _HS.collar = "tight steel", _HS.intelligence = -2, _HS.intelligenceImplant = 1, _HS.attrXY = 40, _HS.fetish = "humiliation", _HS.behavioralFlaw = "arrogant", _HS.customTat = "She has a tattoo down her left arm, which reads = 'Once a tall, muscular, handsome man with a big dick and big balls.'", _HS.customDesc = "Since becoming a slave she has been turned into a little bimbo.">> <<set $heroSlaves.push(clone(_HS))>> <<set _HS = clone($activeSlave)>> @@ -528,7 +528,7 @@ /* not much to change, lowered weight (‘perfect slim body’), set to mute and changed flaw to odd- described as creepy */ <<set _HS = clone($activeSlave)>> -<<set _HS.slaveName = "'Fucknugget' Pillow", _HS.birthName = "Anika", _HS.origin = "She sold herself into slavery to escape life on the streets.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 37, _HS.physicalAge = 37, _HS.visualAge = 37, _HS.health = 80, _HS.devotion = 100, _HS.weight = 40, _HS.race = "surgically altered to look latina", _HS.eyeColor = "blue", _HS.hColor = "red", _HS.pubicHColor = "red", _HS.hStyle = "long", _HS.waist = 2, _HS.amp = 1, _HS.boobs = 6260, _HS.boobsImplant = 4200, _HS.nipplesPiercing = 2, _HS.areolae = 3, _HS.boobsTat = "flowers", _HS.lactation = 2, _HS.butt = 12, _HS.buttImplant = 1, _HS.buttTat = "flowers", _HS.face = 2, _HS.faceImplant = 1, _HS.lips = 55, _HS.lipsImplant = 10, _HS.lipsPiercing = 2, _HS.lipsTat = "flowers", _HS.tonguePiercing = 2, _HS.vagina = 3, _HS.vaginaLube = 1, _HS.vaginaPiercing = 2, _HS.vaginaTat = "flowers", _HS.preg = 29, _HS.births = 2, _HS.birthsTotal = 2, _HS.clitPiercing = 3, _HS.clitSetting = "boobs", _HS.anus = 2, _HS.ovaries = 1, _HS.anusPiercing = 2, _HS.anusTat = "flowers", _HS.makeup = 3, _HS.earPiercing = 2, _HS.nosePiercing = 2, _HS.eyebrowPiercing = 2, _HS.navelPiercing = 2, _HS.shouldersTat = "advertisements", _HS.stampTat = "flowers", _HS.vaginalSkill = 100, _HS.oralSkill = 100, _HS.analSkill = 100, _HS.whoreSkill = 15, _HS.aphrodisiacs = 1, _HS.addict = 99, _HS.clothes = "restrictive latex", _HS.collar = "leather with cowbell", _HS.intelligence = -2, _HS.intelligenceImplant = 1, _HS.attrXY = 40, _HS.fetish = "boobs", fetishKnown = 1>> +<<set _HS.slaveName = "'Fucknugget' Pillow", _HS.birthName = "Anika", _HS.origin = "She sold herself into slavery to escape life on the streets.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 37, _HS.physicalAge = 37, _HS.visualAge = 37, _HS.health = 80, _HS.devotion = 100, _HS.weight = 40, _HS.race = "surgically altered to look latina", _HS.eyeColor = "blue", _HS.hColor = "red", _HS.pubicHColor = "red", _HS.hStyle = "long", _HS.waist = 2, _HS.amp = 1, _HS.boobs = 6260, _HS.boobsImplant = 4200, _HS.nipplesPiercing = 2, _HS.areolae = 3, _HS.boobsTat = "flowers", _HS.lactation = 2, _HS.butt = 12, _HS.buttImplant = 1, _HS.buttTat = "flowers", _HS.face = 2, _HS.faceImplant = 1, _HS.lips = 55, _HS.lipsImplant = 10, _HS.lipsPiercing = 2, _HS.lipsTat = "flowers", _HS.tonguePiercing = 2, _HS.vagina = 3, _HS.vaginaLube = 1, _HS.vaginaPiercing = 2, _HS.vaginaTat = "flowers", _HS.preg = 29, _HS.births = 2, _HS.birthsTotal = 2, _HS.clitPiercing = 3, _HS.clitSetting = "boobs", _HS.anus = 2, _HS.ovaries = 1, _HS.anusPiercing = 2, _HS.anusTat = "flowers", _HS.makeup = 3, _HS.earPiercing = 2, _HS.nosePiercing = 2, _HS.eyebrowPiercing = 2, _HS.navelPiercing = 2, _HS.shouldersTat = "advertisements", _HS.stampTat = "flowers", _HS.vaginalSkill = 100, _HS.oralSkill = 100, _HS.analSkill = 100, _HS.whoreSkill = 15, _HS.aphrodisiacs = 1, _HS.addict = 99, _HS.clothes = "restrictive latex", _HS.collar = "leather with cowbell", _HS.intelligence = -2, _HS.intelligenceImplant = 1, _HS.attrXY = 40, _HS.fetish = "boobs", _HS.fetishKnown = 1>> <<set $heroSlaves.push(clone(_HS))>> <<set _HS = clone($activeSlave)>> @@ -568,7 +568,7 @@ <</if>> -<<if $familyTest == 1>> +<<if $familyTesting == 1>> <<set _HS = clone($activeSlave)>> <<set _HS.slaveName = "Camille", _HS.birthName = "Camille", _HS.origin = "She is half of a famous musical duo, along with her twin sister. They fled to the Free Cities.", _HS.career = "an aspiring pop star", _HS.prestige = 1, _HS.prestigeDesc = "She is a famed singer; citizens would pay top prices to feel her mouth around their dicks.", _HS.birthWeek = 16, _HS.actualAge = 23, _HS.phyiscalAge = 23, _HS.visuallAge = 23, _HS.health = 40, _HS.weight = -10, _HS.muscles = 10, _HS.height = 170, _HS.nationality = "American", _HS.race = "white", _HS.eyeColor = "blue", _HS.hColor = "blonde", _HS.skin = "pale", _HS.hLength = 60, _HS.hStyle = "ass length, with thick luxurious bangs.", _HS.pubicHStyle = "waxed", _HS.waist = 1, _HS.voice = 2, _HS.boobs = 300, _HS.boobShape = "perky", _HS.butt = 2, _HS.face = 3, _HS.lips = 25, _HS.earPiercing = 1, _HS.oralSkill = 15, _HS.entertainSkill = 100, _HS.energy = 50, _HS.attrXX = 80, _HS.fetish = "boobs", _HS.fetishStrength = 70, _HS.behavioralFlaw = "arrogant", _HS.sexualFlaw = "hates men", _HS.customDesc = "She has an identical twin sister named Kennerly, from whom she hates to be parted. They're from the former United States.", _HS.mother = -100002, _HS.father = -100002>> diff --git a/src/npc/databases/ddSlavesDatabase.tw b/src/npc/databases/ddSlavesDatabase.tw index 4125ca7bd564c5ed6c02056285fbef59428f9199..767390583a6666a28ad8d6853c057a92c732fff5 100644 --- a/src/npc/databases/ddSlavesDatabase.tw +++ b/src/npc/databases/ddSlavesDatabase.tw @@ -149,7 +149,7 @@ <<set $heroSlaves.push(clone(_HS))>> <<set _HS = clone($activeSlave)>> -<<set _HS.slaveName = "Fuckmeat", _HS.birthName = "Alva", _HS.ID = _i++, _HS.prestige = 1, _HS.prestigeDesc = "She is a famed Free Cities slut, and can please anyone.", _HS.birthWeek = random(0,51), _HS.actualAge = 19, _HS.physicalAge = 19, _HS.visualAge = 19, _HS.health = 100, _HS.devotion = 100, _HS.muscles = 20, _HS.height = 145, _HS.nationality = "Swedish", _HS.eyeColor = "blue", _HS.hColor = "blonde", _HS.pubicHColor = "blonde", _HS.skin = "pale", _HS.hLength = 0, _HS.hStyle = "shaved bald", _HS.pubicHStyle = "bushy", _HS.boobs = 1700, _HS.boobsTat = "rude words", _HS.butt = 8, _HS.buttTat = "rude words", _HS.face = 2, _HS.lips = 35, _HS.vagina = -1, _HS.vaginaTat = "rude words", _HS.preg = -2, _HS.anus = 3, _HS.dick = 2, _HS.dickTat = "rude words", _HS.balls = 1, _HS.anusTat = "rude words", _HS.makeup = 3, _HS.nails = 3, _HS.brand = "a penis symbol", _HS.brandLocation = "cheek", _HS.shouldersTat = "rude words", _HS.armsTat = "rude words", _HS.legsTat = "rude words", _HS.stampTat = "rude words", _HS.oralSkill = 100, _HS.analSkill = 100, _HS.whoreSkill = 100, _HS.entertainSkill = 100, combatSkill = 1, diet = "muscle building", clothes = "harem gauze", collar = "heavy gold", shoes = "boots", _HS.energy = 100, _HS.attrXX = 40, _HS.attrXY = 40, _HS.fetishStrength = 0, _HS.fetishKnown = 1, _HS.customTat = "She has a swastika tattooed on her ballsack.">> +<<set _HS.slaveName = "Fuckmeat", _HS.birthName = "Alva", _HS.ID = _i++, _HS.prestige = 1, _HS.prestigeDesc = "She is a famed Free Cities slut, and can please anyone.", _HS.birthWeek = random(0,51), _HS.actualAge = 19, _HS.physicalAge = 19, _HS.visualAge = 19, _HS.health = 100, _HS.devotion = 100, _HS.muscles = 20, _HS.height = 145, _HS.nationality = "Swedish", _HS.eyeColor = "blue", _HS.hColor = "blonde", _HS.pubicHColor = "blonde", _HS.skin = "pale", _HS.hLength = 0, _HS.hStyle = "shaved bald", _HS.pubicHStyle = "bushy", _HS.boobs = 1700, _HS.boobsTat = "rude words", _HS.butt = 8, _HS.buttTat = "rude words", _HS.face = 2, _HS.lips = 35, _HS.vagina = -1, _HS.vaginaTat = "rude words", _HS.preg = -2, _HS.anus = 3, _HS.dick = 2, _HS.dickTat = "rude words", _HS.balls = 1, _HS.anusTat = "rude words", _HS.makeup = 3, _HS.nails = 3, _HS.brand = "a penis symbol", _HS.brandLocation = "cheek", _HS.shouldersTat = "rude words", _HS.armsTat = "rude words", _HS.legsTat = "rude words", _HS.stampTat = "rude words", _HS.oralSkill = 100, _HS.analSkill = 100, _HS.whoreSkill = 100, _HS.entertainSkill = 100, _HS.combatSkill = 1, _HS.diet = "muscle building", _HS.clothes = "harem gauze", _HS.collar = "heavy gold", _HS.shoes = "boots", _HS.energy = 100, _HS.attrXX = 40, _HS.attrXY = 40, _HS.fetishStrength = 0, _HS.fetishKnown = 1, _HS.customTat = "She has a swastika tattooed on her ballsack.">> <<set $heroSlaves.push(clone(_HS))>> <<if $seeExtreme == 1>> diff --git a/src/npc/descriptions/fFuckdollWidgets.tw b/src/npc/descriptions/fFuckdollWidgets.tw index d59ae91667e69370302d5f7c4473fd865f78360f..cc4dc395f588f628badb30cc7bc0d0185efde76a 100644 --- a/src/npc/descriptions/fFuckdollWidgets.tw +++ b/src/npc/descriptions/fFuckdollWidgets.tw @@ -114,7 +114,7 @@ You decide to use the Fuckdoll's <<if $activeSlave.anus > 3>>gaping<<elseif $act <<if $activeSlave.fuckdoll <= 20>> It's not fully used to having things suddenly forced up its ass, so it struggles, and its sphincter spasms deliciously. <<elseif $activeSlave.fuckdoll <= 40>> - Aware that it is supposed to relax and accept anal rape, it does its best to accomodate the sodomy. + Aware that it is supposed to relax and accept anal rape, it does its best to accommodate the sodomy. <<else>> You command it to milk your <<if $PC.dick == 1>>cock<<else>>strap-on<</if>> with its asshole, and it obediently tightens its sphincter against the invading phallus rhythmically. <</if>> diff --git a/src/npc/exportSlave.tw b/src/npc/exportSlave.tw index 04739d38148455d8406fe556ebec686331ec0e40..efe5743f27d8308284d2ee64ef1164c8e9239abd 100644 --- a/src/npc/exportSlave.tw +++ b/src/npc/exportSlave.tw @@ -13,4 +13,4 @@ <<if (ndef $activeSlave.currentRules) || ($activeSlave.currentRules.length < 1)>><<set _currentRules to "[]">><<else>><<set _currentRules to "$activeSlave.currentRules">><</if>> -slaveName: "$activeSlave.slaveName", birthName: "$activeSlave.birthName", weekAcquired: 1, origin: "$activeSlave.origin", career: "$activeSlave.career", ID: $activeSlave.ID, pornFame: $activeSlave.pornFame, pornFameSpending: $activeSlave.pornFameSpending, prestige: $activeSlave.prestige, prestigeDesc: "$activeSlave.prestigeDesc", recruiter: 0, relation: 0, relationTarget: 0, relationship: 0, relationshipTarget: 0, rivalry: 0, rivalryTarget: 0, subTarget: 0, choosesOwnAssignment: 0, assignment: "rest", assignmentVisible: 1, sentence: 0, training: 0, toyHole: "all her holes", indenture: -1, indentureRestrictions: 0, birthWeek: _birthWeek, age: $activeSlave.age, ageImplant: $activeSlave.ageImplant, health: $activeSlave.health, minorInjury: 0, trust: $activeSlave.trust, oldTrust: $activeSlave.trust, devotion: $activeSlave.devotion, oldDevotion: $activeSlave.devotion, weight: $activeSlave.weight, muscles: $activeSlave.muscles, height: $activeSlave.height, heightImplant: $activeSlave.heightImplant, nationality: "$activeSlave.nationality", race: "$activeSlave.race", markings: "none", eyes: 1, eyeColor: "$activeSlave.eyeColor", eyewear: "none", hColor: "$activeSlave.hColor", pubicHColor: "$activeSlave.pubicHColor", skin: "$activeSlave.skin", hLength: $activeSlave.hLength, hStyle: "$activeSlave.hStyle", pubicHStyle: "$activeSlave.pubicHStyle", waist: $activeSlave.waist, corsetPiercing: 0, amp: $activeSlave.amp, heels: $activeSlave.heels, voice: $activeSlave.voice, voiceImplant: $activeSlave.voiceImplant, accent: $activeSlave.accent, shoulders: $activeSlave.shoulders, shouldersImplant: $activeSlave.shouldersImplant, boobs: $activeSlave.boobs, boobsImplant: $activeSlave.boobsImplant, boobsImplantType: $activeSlave.boobsImplantType, boobShape: "normal", nipples: "$activeSlave.nipples", nipplesPiercing: $activeSlave.nipplesPiercing, areolae: $activeSlave.areolae, areolaePiercing: $activeSlave.areolaePiercing, boobsTat: "$activeSlave.boobsTat", lactation: $activeSlave.lactation, lactationAdaptation: 0, milk: 0, cum: 0, hips: $activeSlave.hips, hipsImplant: $activeSlave.hipsImplant, butt: $activeSlave.butt, buttImplant: $activeSlave.buttImplant, buttImplantType: $activeSlave.buttImplantType, buttTat: "$activeSlave.buttTat", face: $activeSlave.face, faceImplant: $activeSlave.faceImplant, faceShape: "normal", lips: $activeSlave.lips, lipsImplant: $activeSlave.lipsImplant, lipsPiercing: $activeSlave.lipsPiercing, lipsTat: "$activeSlave.lipsTat", teeth: "$activeSlave.teeth", tonguePiercing: $activeSlave.tonguePiercing, vagina: $activeSlave.vagina, vaginaLube: $activeSlave.vaginaLube, vaginaPiercing: $activeSlave.vaginaPiercing, vaginaTat: "$activeSlave.vaginaTat", preg: $activeSlave.preg, pregSource: 0, pregType: 0, labor: 0, births: $activeSlave.births, cSec: 0, bellyAccessory: "none", labia: $activeSlave.labia, clit: $activeSlave.clit, clitPiercing: $activeSlave.clitPiercing, clitSetting: "$activeSlave.clitSetting", foreskin: 0, anus: $activeSlave.anus, dick: $activeSlave.dick, analArea: 1, dickPiercing: $activeSlave.dickPiercing, dickTat: "$activeSlave.dickTat", balls: $activeSlave.balls, scrotum: 0, ovaries: $activeSlave.ovaries, anusPiercing: $activeSlave.anusPiercing, anusTat: "$activeSlave.anusTat", makeup: $activeSlave.makeup, nails: $activeSlave.nails, brand: "$activeSlave.brand", brandLocation: "$activeSlave.brandLocation", earPiercing: $activeSlave.earPiercing, nosePiercing: $activeSlave.nosePiercing, eyebrowPiercing: $activeSlave.eyebrowPiercing, navelPiercing: $activeSlave.navelPiercing, shouldersTat: "$activeSlave.shouldersTat", armsTat: "$activeSlave.armsTat", legsTat: "$activeSlave.legsTat", backTat: "$activeSlave.backTat", stampTat: "$activeSlave.stampTat", vaginalSkill: $activeSlave.vaginalSkill, oralSkill: $activeSlave.oralSkill, analSkill: $activeSlave.analSkill, whoreSkill: $activeSlave.whoreSkill, entertainSkill: $activeSlave.entertainSkill, combatSkill: $activeSlave.combatSkill, livingRules: "$activeSlave.livingRules", speechRules: "$activeSlave.speechRules", releaseRules: "$activeSlave.releaseRules", relationshipRules: "$activeSlave.relationshipRules", standardPunishment: "situational", standardReward: "situational", useRulesAssistant: 1, diet: "$activeSlave.diet", dietCum: $activeSlave.dietCum, dietMilk: $activeSlave.dietMilk, tired: 0, hormones: 0, drugs: "$activeSlave.drugs", curatives: 0, chem: 0, aphrodisiacs: 0, addict: $activeSlave.addict, fuckdoll: $activeSlave.fuckdoll, choosesOwnClothes: 0, clothes: "$activeSlave.clothes", collar: "$activeSlave.collar", shoes: "$activeSlave.shoes", vaginalAccessory: "none", dickAccessory: "none", buttplug: "none", intelligence: $activeSlave.intelligence, intelligenceImplant: $activeSlave.intelligenceImplant, energy: $activeSlave.energy, attrXX: $activeSlave.attrXX, attrXY: $activeSlave.attrXY, attrKnown: $activeSlave.attrKnown, fetish: "$activeSlave.fetish", fetishStrength: $activeSlave.fetishStrength, fetishKnown: $activeSlave.fetishKnown, behavioralFlaw: "$activeSlave.behavioralFlaw", behavioralQuirk: "none", sexualFlaw: "$activeSlave.sexualFlaw", sexualQuirk: "none", oralCount: 0, vaginalCount: 0, analCount: 0, mammaryCount: 0, penetrativeCount: 0, pitKills: 0, customTat: "$activeSlave.customTat", customLabel: "", customDesc: "$activeSlave.customDesc", currentRules: _currentRules +slaveName: "$activeSlave.slaveName", birthName: "$activeSlave.birthName", weekAcquired: 1, origin: "$activeSlave.origin", career: "$activeSlave.career", ID: $activeSlave.ID, pornFame: $activeSlave.pornFame, pornFameSpending: $activeSlave.pornFameSpending, prestige: $activeSlave.prestige, prestigeDesc: "$activeSlave.prestigeDesc", recruiter: 0, relation: 0, relationTarget: 0, relationship: 0, relationshipTarget: 0, rivalry: 0, rivalryTarget: 0, subTarget: 0, choosesOwnAssignment: 0, assignment: "rest", assignmentVisible: 1, sentence: 0, training: 0, toyHole: "all her holes", indenture: -1, indentureRestrictions: 0, birthWeek: _birthWeek, age: $activeSlave.age, ageImplant: $activeSlave.ageImplant, health: $activeSlave.health, minorInjury: 0, trust: $activeSlave.trust, oldTrust: $activeSlave.trust, devotion: $activeSlave.devotion, oldDevotion: $activeSlave.devotion, weight: $activeSlave.weight, muscles: $activeSlave.muscles, height: $activeSlave.height, heightImplant: $activeSlave.heightImplant, nationality: "$activeSlave.nationality", race: "$activeSlave.race", markings: "none", eyes: 1, eyeColor: "$activeSlave.eyeColor", eyewear: "none", hColor: "$activeSlave.hColor", pubicHColor: "$activeSlave.pubicHColor", skin: "$activeSlave.skin", hLength: $activeSlave.hLength, hStyle: "$activeSlave.hStyle", pubicHStyle: "$activeSlave.pubicHStyle", waist: $activeSlave.waist, corsetPiercing: 0, amp: $activeSlave.amp, heels: $activeSlave.heels, voice: $activeSlave.voice, voiceImplant: $activeSlave.voiceImplant, accent: $activeSlave.accent, shoulders: $activeSlave.shoulders, shouldersImplant: $activeSlave.shouldersImplant, boobs: $activeSlave.boobs, boobsImplant: $activeSlave.boobsImplant, boobsImplantType: $activeSlave.boobsImplantType, boobShape: "normal", nipples: "$activeSlave.nipples", nipplesPiercing: $activeSlave.nipplesPiercing, areolae: $activeSlave.areolae, areolaePiercing: $activeSlave.areolaePiercing, boobsTat: "$activeSlave.boobsTat", lactation: $activeSlave.lactation, lactationAdaptation: 0, milk: 0, cum: 0, hips: $activeSlave.hips, hipsImplant: $activeSlave.hipsImplant, butt: $activeSlave.butt, buttImplant: $activeSlave.buttImplant, buttImplantType: $activeSlave.buttImplantType, buttTat: "$activeSlave.buttTat", face: $activeSlave.face, faceImplant: $activeSlave.faceImplant, faceShape: "normal", lips: $activeSlave.lips, lipsImplant: $activeSlave.lipsImplant, lipsPiercing: $activeSlave.lipsPiercing, lipsTat: "$activeSlave.lipsTat", teeth: "$activeSlave.teeth", tonguePiercing: $activeSlave.tonguePiercing, vagina: $activeSlave.vagina, vaginaLube: $activeSlave.vaginaLube, vaginaPiercing: $activeSlave.vaginaPiercing, vaginaTat: "$activeSlave.vaginaTat", preg: $activeSlave.preg, pregSource: 0, pregType: 0, labor: 0, births: $activeSlave.births, cSec: 0, bellyAccessory: "none", labia: $activeSlave.labia, clit: $activeSlave.clit, clitPiercing: $activeSlave.clitPiercing, clitSetting: "$activeSlave.clitSetting", foreskin: 0, anus: $activeSlave.anus, dick: $activeSlave.dick, analArea: 1, dickPiercing: $activeSlave.dickPiercing, dickTat: "$activeSlave.dickTat", balls: $activeSlave.balls, scrotum: 0, ovaries: $activeSlave.ovaries, anusPiercing: $activeSlave.anusPiercing, anusTat: "$activeSlave.anusTat", makeup: $activeSlave.makeup, nails: $activeSlave.nails, brand: "$activeSlave.brand", brandLocation: "$activeSlave.brandLocation", earPiercing: $activeSlave.earPiercing, nosePiercing: $activeSlave.nosePiercing, eyebrowPiercing: $activeSlave.eyebrowPiercing, navelPiercing: $activeSlave.navelPiercing, shouldersTat: "$activeSlave.shouldersTat", armsTat: "$activeSlave.armsTat", legsTat: "$activeSlave.legsTat", backTat: "$activeSlave.backTat", stampTat: "$activeSlave.stampTat", vaginalSkill: $activeSlave.vaginalSkill, oralSkill: $activeSlave.oralSkill, analSkill: $activeSlave.analSkill, whoreSkill: $activeSlave.whoreSkill, entertainSkill: $activeSlave.entertainSkill, combatSkill: $activeSlave.combatSkill, livingRules: "$activeSlave.livingRules", speechRules: "$activeSlave.speechRules", releaseRules: "$activeSlave.releaseRules", relationshipRules: "$activeSlave.relationshipRules", standardPunishment: "situational", standardReward: "situational", useRulesAssistant: 1, diet: "$activeSlave.diet", dietCum: $activeSlave.dietCum, dietMilk: $activeSlave.dietMilk, tired: 0, hormones: 0, drugs: "$activeSlave.drugs", curatives: 0, chem: 0, aphrodisiacs: 0, addict: $activeSlave.addict, fuckdoll: $activeSlave.fuckdoll, choosesOwnClothes: 0, clothes: "$activeSlave.clothes", collar: "$activeSlave.collar", shoes: "$activeSlave.shoes", vaginalAccessory: "none", dickAccessory: "none", buttplug: "none", intelligence: $activeSlave.intelligence, intelligenceImplant: $activeSlave.intelligenceImplant, energy: $activeSlave.energy, attrXX: $activeSlave.attrXX, attrXY: $activeSlave.attrXY, attrKnown: $activeSlave.attrKnown, fetish: "$activeSlave.fetish", fetishStrength: $activeSlave.fetishStrength, fetishKnown: $activeSlave.fetishKnown, behavioralFlaw: "$activeSlave.behavioralFlaw", behavioralQuirk: "none", sexualFlaw: "$activeSlave.sexualFlaw", sexualQuirk: "none", oralCount: 0, vaginalCount: 0, analCount: 0, mammaryCount: 0, penetrativeCount: 0, pitKills: 0, customTat: "$activeSlave.customTat", customLabel: "", customDesc: "$activeSlave.customDesc", customImage: 0, currentRules: _currentRules diff --git a/src/npc/fFeelings.tw b/src/npc/fFeelings.tw index 563ff0dbccf332e39757a28d8d36f3557d8b857b..f40add380693aa38a0b732248afb9f870e30f748 100644 --- a/src/npc/fFeelings.tw +++ b/src/npc/fFeelings.tw @@ -1,5 +1,6 @@ :: FFeelings [nobr] +<<Enunciate $activeSlave>> <<set _lisping = 0>> <<if ($activeSlave.amp != 1) && canTalk($activeSlave) && SlaveStatsChecker.checkForLisp($activeSlave)>> <<set _lisping = 1>> @@ -109,10 +110,8 @@ <<if ($activeSlave.devotion <= 50)>> <<if canTalk($activeSlave) == false>> She gestures that you're her <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>master<<else>>mistress<</if>>, and she will do her best to obey you. She continues to sign<<if $activeSlave.accent == 3>>, using gestures to supplant her poor $language<</if>>: - <<elseif (_lisping == 1)>> - "You're my _PCTitle, and I'll do my betht to obey you," she lisps <<else>> - "You're my _PCTitle, and I'll do my best to obey you," she says + "You're my _PCTitle, and I'll do my be<<s>>t to obey you," she says <</if>> <<elseif ($activeSlave.devotion <= 95)>> <<if canTalk($activeSlave) == false>> @@ -272,21 +271,21 @@ <</if>> <</if>> <<if ($activeSlave.attrKnown == 1)>> - <<if ($activeSlave.attrXX > 1)>> + <<if ($activeSlave.attrXX > 80)>> I love fucking the other <<if _lisping == 1>> girlth. <<else>> girls. <</if>> - <<elseif ($activeSlave.attrXX > 0)>> + <<elseif ($activeSlave.attrXX > 60)>> <<if _lisping == 1>> It's nithe, fucking the other girlth. <<else>> It's nice, fucking the other girls. <</if>> <</if>> - <<if ($activeSlave.attrXY > 1)>> + <<if ($activeSlave.attrXY > 80)>> I love, you know, <<if _lisping == 1>> thpending time with thlaveth with dickth, @@ -294,7 +293,7 @@ spending time with slaves with dicks, <</if>> _PCTitle. - <<elseif ($activeSlave.attrXY > 0)>> + <<elseif ($activeSlave.attrXY > 60)>> <<if _lisping == 1>> It'th nithe, you know, thpending time with thlaveth with dickth, <<else>> @@ -554,7 +553,7 @@ My favorite part of my body is my boobs, of course. <</if>> <</if>> - <<elseif ($activeSlave.attrKnown == 1) && ($activeSlave.attrXX > 1)>> + <<elseif ($activeSlave.attrKnown == 1) && ($activeSlave.attrXX > 80)>> <<if ($activeSlave.lips > 70)>> my huge lipth, I like how the other girlth will do anything for oral from me. <<elseif ($activeSlave.dick > 1) && ($activeSlave.balls > 0)>> @@ -578,7 +577,7 @@ My favorite part of my body is my lips, I guess. They're the best way I have of getting girls to like me. <</if>> <</if>> - <<elseif ($activeSlave.attrKnown == 1) && ($activeSlave.attrXY > 1)>> + <<elseif ($activeSlave.attrKnown == 1) && ($activeSlave.attrXY > 80)>> <<if ($activeSlave.lips > 70)>> my huge lipth, I like how anyone with a dick wants oral from me. <<elseif ($activeSlave.dick > 1) && ($activeSlave.balls > 0)>> @@ -668,7 +667,7 @@ My favorite part of my body is <<else>> pamper my own nipples, _PCTitle. <</if>> - <<elseif ($activeSlave.attrKnown == 1) && ($activeSlave.attrXX > 1)>> + <<elseif ($activeSlave.attrKnown == 1) && ($activeSlave.attrXX > 80)>> _Amp _PCTitle. With all <<if _lisping == 1>> thethe hot girlth around, it'th @@ -676,7 +675,7 @@ My favorite part of my body is these hot girls around, it's <</if>> a good thing I can't actually go blind from it. - <<elseif ($activeSlave.attrKnown == 1) && ($activeSlave.attrXY > 1)>> + <<elseif ($activeSlave.attrKnown == 1) && ($activeSlave.attrXY > 80)>> _Amp _PCTitle. With all <<if _lisping == 1>> thethe hot cockth around, it'th @@ -720,7 +719,7 @@ My favorite part of my body is <<else>> the other slaves play with my boobs, <</if>> - <<elseif ($activeSlave.attrKnown == 1) && ($activeSlave.attrXX > 1)>> + <<elseif ($activeSlave.attrKnown == 1) && ($activeSlave.attrXX > 80)>> <<if _lisping == 1>> me bone the ladieth, <<else>> @@ -807,7 +806,7 @@ My favorite part of my body is <</if>> <<if ($activeSlave.preg < 4)>>pregnancy<<else>>birth<</if>> out of my head. <</switch>> - <<elseif ($activeSlave.attrKnown == 1) && ($activeSlave.attrXX > 1)>> + <<elseif ($activeSlave.attrKnown == 1) && ($activeSlave.attrXX > 80)>> <<if _lisping == 1>> I'm tho horny, _PCTitle. I can't thtop thinking about the other thlaveth' beautiful puthieth and boobth and, and I want to fuck them tho bad. <<else>> @@ -907,11 +906,11 @@ My favorite part of my body is <</if>> forthrightly. "I love them. <</if>> - <<elseif ($activeSlave.attrKnown == 1) && ($activeSlave.attrXX > 1)>> + <<elseif ($activeSlave.attrKnown == 1) && ($activeSlave.attrXX > 80)>> <<if $PC.boobs == 1>> You're, uh." She looks down, hesitating. "You're really hot, _PCTitle. <</if>> - <<elseif ($activeSlave.attrKnown == 1) && ($activeSlave.attrXY > 1)>> + <<elseif ($activeSlave.attrKnown == 1) && ($activeSlave.attrXY > 80)>> <<if $PC.dick == 1>> Your, uh." She looks down, hesitating. "Your cock is really hot, _PCTitle. <</if>> @@ -999,7 +998,7 @@ My favorite part of my body is boobs I feel like a nice little slave girl. <</if>> <</switch>> - <<elseif ($activeSlave.attrKnown == 1) && ($activeSlave.attrXX > 1)>> + <<elseif ($activeSlave.attrKnown == 1) && ($activeSlave.attrXX > 80)>> <<if _lisping == 1>> I thometimeth mith my ballth. I thtill fantathize about boning the other girlth. <<else>> @@ -1107,7 +1106,7 @@ My favorite part of my body is I wish the hormones didn't stop me from getting hard. I still fantasize about getting the other girls pregnant. <</if>> <</switch>> - <<elseif ($activeSlave.attrKnown == 1) && ($activeSlave.attrXX > 1)>> + <<elseif ($activeSlave.attrKnown == 1) && ($activeSlave.attrXX > 80)>> <<if _lisping == 1>> I with the hormoneth didn't thtop me from getting hard. I thtill fantathize about boning the other girlth. <<else>> @@ -1235,7 +1234,7 @@ My favorite part of my body is <<else>> just imagine smacking it against some little slut's face. <</if>> - <<elseif ($activeSlave.attrKnown == 1) && ($activeSlave.attrXX > 1)>> + <<elseif ($activeSlave.attrKnown == 1) && ($activeSlave.attrXX > 80)>> I can feel my dick growing, _PCTitle. I can <<if _lisping == 1>> jutht imagine puthing it into a warm, wet puthy. @@ -1584,13 +1583,13 @@ My favorite part of my body is It's nice being a whore, sometimes customers just play with my boobs for hours. <</if>> <</switch>> - <<elseif ($activeSlave.attrKnown == 1) && ($activeSlave.attrXY > 1)>> + <<elseif ($activeSlave.attrKnown == 1) && ($activeSlave.attrXY > 60)>> <<if _lisping == 1>> It'th nice being a whore, I get fucked by a lot of hot guyth. <<else>> It's nice being a whore, I get fucked by a lot of hot guys. <</if>> - <<elseif ($activeSlave.attrKnown == 1) && ($activeSlave.attrXX > 1)>> + <<elseif ($activeSlave.attrKnown == 1) && ($activeSlave.attrXX > 60)>> <<if _lisping == 1>> It'th nice being a whore, I get women customerth thometimeth. <<else>> @@ -1658,13 +1657,13 @@ My favorite part of my body is It's nice being a public slut, sometimes people just play with my boobs for hours. <</if>> <</switch>> - <<elseif ($activeSlave.attrKnown == 1) && ($activeSlave.attrXY > 1)>> + <<elseif ($activeSlave.attrKnown == 1) && ($activeSlave.attrXY > 60)>> <<if _lisping == 1>> It'th nice being a slut, I get fucked by a lot of hot guyth. <<else>> It's nice being a slut, I get fucked by a lot of hot guys. <</if>> - <<elseif ($activeSlave.attrKnown == 1) && ($activeSlave.attrXX > 1)>> + <<elseif ($activeSlave.attrKnown == 1) && ($activeSlave.attrXX > 60)>> <<if _lisping == 1>> It'th nice being a slut, I get women customerth thometimeth. <<else>> @@ -1693,7 +1692,7 @@ My favorite part of my body is <<else>> It's so, so wonderful being a cow. <</if>> - <<elseif ($activeSlave.attrKnown == 1) && ($activeSlave.attrXX > 1)>> + <<elseif ($activeSlave.attrKnown == 1) && ($activeSlave.attrXX > 80)>> <<if _lisping == 1>> It'th okay being a cow, with all the girlth around. <<else>> @@ -1715,7 +1714,7 @@ My favorite part of my body is <<else>> Getting buttfucked to orgasm whenever I can get hard is a dream come true. Actually, getting buttfucked until I cum even when I'm soft is pretty nice too. <</if>> - <<elseif ($activeSlave.attrKnown == 1) && ($activeSlave.attrXY > 1)>> + <<elseif ($activeSlave.attrKnown == 1) && ($activeSlave.attrXY > 80)>> <<if _lisping == 1>> It'th okay getting cockmilked, I like all the dickth around. <<else>> @@ -2157,7 +2156,7 @@ My favorite part of my body is <<else>> I suppose it was inevitable that a place where anyone can be a slave would start treating anyone who's a slave as a girl. <</if>> - <<elseif ($activeSlave.attrKnown == 1) && ($activeSlave.attrXY > 1)>> + <<elseif ($activeSlave.attrKnown == 1) && ($activeSlave.attrXY > 80)>> <<if _lisping == 1>> I really like how you're encouraging thlavery to focuth on cockth." She giggles. "I like cockth! <<else>> @@ -2184,7 +2183,7 @@ My favorite part of my body is <<else>> I shouldn't be surprised at how easy it is to reinforce traditional values in a new, slavery focused culture. <</if>> - <<elseif ($activeSlave.attrKnown == 1) && ($activeSlave.attrXX > 1)>> + <<elseif ($activeSlave.attrKnown == 1) && ($activeSlave.attrXX > 80)>> I really like how you're encouraging <<if _lisping == 1>> thlavery to focuth on girlth." She giggles. "I like girlth! @@ -2496,14 +2495,14 @@ _PCTitle," she concludes, <<else>> "Please fuck me. Please." <</if>> - <<elseif ($activeSlave.attrKnown == 1) && ($activeSlave.attrXX > 1)>> + <<elseif ($activeSlave.attrKnown == 1) && ($activeSlave.attrXX > 80)>> "Can I hang around and get oral from the next <<if _lisping == 1>> thlave in here?" <<else>> slave in here?" <</if>> - <<elseif ($activeSlave.attrKnown == 1) && ($activeSlave.attrXY > 1)>> + <<elseif ($activeSlave.attrKnown == 1) && ($activeSlave.attrXY > 80)>> "Can I hang around and suck the next dick in here?" <<else>> <<if _lisping == 1>> diff --git a/src/npc/fRelation.tw b/src/npc/fRelation.tw index da23f402972a50b55a51cbcdc95360eea6b2a966..90d6a35de310892ed0a6b2469f2513e14fb6a745 100644 --- a/src/npc/fRelation.tw +++ b/src/npc/fRelation.tw @@ -16,33 +16,31 @@ <</if>> <</for>> <<elseif ($partner is "daughter")>> - <<set $relation = $slaves>> - <<set $relation = $relation.shuffle()>> - <<for _i to 0; _i < $relation.length; _i++>> - <<if $activeSlave.ID == $relation[_i].father && isAvailabe($relation[_i])>> - <<set $partner to $relation[_i], _activeSlaveRel to "father", _partnerRel to "daughter">> - <<break>> - <<elseif $activeSlave.ID == $relation[_i].mother && isAvailabe($relation[_i])>> - <<set $partner to $relation[_i], _activeSlaveRel to "mother", _partnerRel to "daughter">> + <<set $partner = randomAvailableDaughter($activeSlave)>> + <<for _i to 0; _i < $slaves.length; _i++>> + <<if $partner.ID == $slaves[_i].ID>> /*incompatability fix*/ <<break>> <</if>> <</for>> + <<if $activeSlave.ID == $partner.father>> + <<set _activeSlaveRel to "father", _partnerRel to "daughter">> + <<elseif $activeSlave.ID == $partner.mother>> + <<set _activeSlaveRel to "mother", _partnerRel to "daughter">> + <</if>> <<elseif ($partner is "sister")>> - <<set $relation = $slaves>> - <<set $relation = $relation.shuffle()>> - <<for _i to 0; _i < $relation.length; _i++>> - <<if areSisters($activeSlave, $relation[_i]) > 0 && isAvailabe($relation[$i])>> - <<set $partner to $relation[_i]>> - <<if areSisters($activeSlave, $partner) == 3>> - <<set _activeSlaveRel to "half-sister", _partnerRel to "half-sister">> - <<elseif areSisters($activeSlave, $partner) == 2>> - <<set _activeSlaveRel to "sister", _partnerRel to "sister">> - <<elseif areSisters($activeSlave, $partner) == 1>> - <<set _activeSlaveRel to "twin", _partnerRel to "twin">> - <</if>> + <<set $partner to randomAvailableSister($activeSlave)>> + <<for _i to 0; _i < $slaves.length; _i++>> + <<if $partner.ID == $slaves[_i].ID>> /*incompatability fix*/ <<break>> <</if>> <</for>> + <<if areSisters($activeSlave, $partner) == 3>> + <<set _activeSlaveRel to "half-sister", _partnerRel to "half-sister">> + <<elseif areSisters($activeSlave, $partner) == 2>> + <<set _activeSlaveRel to "sister", _partnerRel to "sister">> + <<elseif areSisters($activeSlave, $partner) == 1>> + <<set _activeSlaveRel to "twin", _partnerRel to "twin">> + <</if>> <<elseif ($partner is "relation")>> <<for _i to 0; _i lt $slaves.length; _i++>> <<if $slaves[_i].ID == $activeSlave.relationTarget>> diff --git a/src/npc/fSlaveImpreg.tw b/src/npc/fSlaveImpreg.tw index ede68146ffe97a917aa982330ed5cea5cddccb4a..0c0b044f77c10f94cebd30a1be0220cfa49ce23c 100644 --- a/src/npc/fSlaveImpreg.tw +++ b/src/npc/fSlaveImpreg.tw @@ -17,7 +17,7 @@ __Select an eligible slave to serve as the semen donatrix:__ <<if ($slaves[$i].dick > 0)>>\ <<if ($slaves[$i].balls > 0)>>\ <<if ($slaves[$i].pubertyXY == 1)>>\ - <<if ($slaves[$i].dick > 0)>>\ + <<if canBreed($activeSlave, $slaves[$i])>>\ <<if ($slaves[$i].dickAccessory != "chastity")>>\ <<if ($slaves[$i].ID != $activeSlave.ID)>>\ <<print "[[$slaves[$i].slaveName|FSlaveImpreg Consummate][$impregnatrix to $slaves[" + $i + "]]]">> diff --git a/src/npc/importSlave.tw b/src/npc/importSlave.tw index b48bc20d657b67c43fda73552245cf636708892f..f7a888aaa3317aceac31f1213e434aa926db4edc 100644 --- a/src/npc/importSlave.tw +++ b/src/npc/importSlave.tw @@ -1,7 +1,7 @@ :: Import Slave [nobr] - + <<set $nextButton to "Continue">> <<set $nextLink to "Slave Interact">> @@ -18,7 +18,7 @@ <<set $tempSlave to eval('({' + $tempSlave + '})')>> <<set $tempSlave.ID to $IDNumber>> <<set $IDNumber += 1>> - <<set $slaves.push($tempSlave)>> + <<AddSlave $tempSlave>> <<replace #import>> ''Slave imported successfully!'' <br><br> diff --git a/src/npc/removeActiveSlave.tw b/src/npc/removeActiveSlave.tw index b46c05acb8841ecf24e035fddc28db259919cbd4..b46fe3624403e09c8ee62ae3824b207031bb489a 100644 --- a/src/npc/removeActiveSlave.tw +++ b/src/npc/removeActiveSlave.tw @@ -7,6 +7,19 @@ <</if>> <<for $x to 0; $x < $slaves.length; $x++>> <<if $activeSlave.ID == $slaves[$x].ID>> + <<if $activeSlave.reservedChildren > 0>> + <<set $reservedChildren -= $activeSlave.reservedChildren>> + <</if>> + <<if $incubator > 0>> + <<for $y to 0; $y < $tanks.length; $y++>> + <<if $activeSlave.ID is $tanks[$y].mother>> + <<set $slaves[$y].mother to $missingParentID>> + <</if>> + <<if $activeSlave.ID is $tanks[$y].father>> + <<set $slaves[$y].father to $missingParentID>> + <</if>> + <</for>> + <</if>> <<for $y to 0; $y < $slaves.length; $y++>> <<if $activeSlave.ID is $slaves[$y].pregSource>> <<set $slaves[$y].pregSource to 0>> @@ -21,6 +34,16 @@ <<set $slaves[$y].father to $missingParentID>> <</if>> <</for>> + <<if $incubator > 0>> + <<for $y to 0; $y < $tanks.length; $y++>> + <<if $activeSlave.ID is $tanks[$y].mother>> + <<set $slaves[$y].mother to $missingParentID>> + <</if>> + <<if $activeSlave.ID is $tanks[$y].father>> + <<set $slaves[$y].father to $missingParentID>> + <</if>> + <</for>> + <</if>> <<set $missingParentID-->> <</if>> <<if $activeSlave.mother > 0 || $activeSlave.father > 0>> @@ -142,7 +165,6 @@ <<if $activeSlave.ID is $Concubine.ID>> <<set $Concubine to 0>> <</if>> - <<if $activeSlave.ID is $personalAttention>> <<if $PC.career == "escort">> <<set $personalAttention to "whoring">> @@ -152,11 +174,15 @@ <<set $personalAttention to "business">> <</if>> <</if>> - + <<for _d to 0; _d < $slavesOriginal.length; _d++>> + <<if $slavesOriginal[_d].ID is $activeSlave.ID>> + <<set $dump to $slavesOriginal.pluck([_d], [_d])>> + <<break>> + <</if>> + <</for>> <<set $dump to $slaves.pluck([$x], [$x])>> - /*<<set $x -= 1>>*/ <<break>> <</if>> <</for>> -<</silently>> \ No newline at end of file +<</silently>> diff --git a/src/npc/rgASDump.tw b/src/npc/rgASDump.tw index 9dc2062fa0a8c39ca23b44adb14dee86c234b9ae..9655885ec9287ec4ae5a5b36a173e4335e7b3c12 100644 --- a/src/npc/rgASDump.tw +++ b/src/npc/rgASDump.tw @@ -11,100 +11,97 @@ <<set $activeSlave.analArea to $activeSlave.anus>> <</if>> -<<display "Checkin Checks">> - /* RECRUITERS */ <<if $familyTesting == 1>> <<if $activeSlave.canRecruit == 1>> - <<set $recruiters.push($activeSlave)>> + /*<<set $recruiters.push($activeSlave)>>*/ <</if>> <<else>> <<if ($activeSlave.relation == 0)>> <<if random(1,100) <= 5>> <<set $activeSlave.recruiter to "twin">> - <<set $recruiters.push($activeSlave)>> <<elseif ($activeSlave.actualAge > 32) && (random(1,100) <= 41)>> <<set $activeSlave.recruiter to "mother">> - <<set $recruiters.push($activeSlave)>> <<elseif ($activeSlave.actualAge < 24) && (random(1,100) <= 40)>> <<set $activeSlave.recruiter to "daughter">> - <<set $recruiters.push($activeSlave)>> <<elseif ($activeSlave.actualAge < 43) && (random(1,100) <= 20)>> <<set $activeSlave.recruiter to "older sister">> - <<set $recruiters.push($activeSlave)>> <<elseif ($activeSlave.actualAge < 25) && ($activeSlave.actualAge > 18) && (random(1,100) <= 20)>> <<set $activeSlave.recruiter to "young sister">> - <<set $recruiters.push($activeSlave)>> <</if>> <</if>> <</if>> -<<slaveCost $activeSlave>> - <<if $applyCareerBonus == 1>> <<if $PC.career is "capitalist">> - <<if $activeSlave.whoreSkill < 60>> - <<set $activeSlave.whoreSkill += 20>> - <</if>> + <<if $activeSlave.whoreSkill < 60>><<set $activeSlave.whoreSkill += 20>><</if>> <<elseif $PC.career is "mercenary">> - <<set $activeSlave.trust += 10>> + <<set $activeSlave.trust += 10>> <<elseif $PC.career is "slaver">> - <<set $activeSlave.devotion += 10>> + <<set $activeSlave.devotion += 10>> <<elseif $PC.career is "medicine">> - <<set $activeSlave.boobs += 600>> - <<set $activeSlave.boobsImplant += 600>> - <<set $activeSlave.butt += 2>> - <<set $activeSlave.buttImplant += 2>> - <<set $activeSlave.lips += 10>> - <<set $activeSlave.lipsImplant += 10>> - <<set $activeSlave.waist to 1>> + <<set $activeSlave.boobs += 600, $activeSlave.boobsImplant += 600, $activeSlave.butt += 2, $activeSlave.buttImplant += 2, $activeSlave.lips += 10, $activeSlave.lipsImplant += 10, $activeSlave.waist to 1>> <<elseif $PC.career is "celebrity">> - <<if $activeSlave.entertainSkill < 60>> - <<set $activeSlave.entertainSkill += 20>> - <</if>> + <<if $activeSlave.entertainSkill < 60>><<set $activeSlave.entertainSkill += 20>><</if>> <<elseif $PC.career is "servant">> - <<set $activeSlave.trust += 10>> - <<set $activeSlave.devotion += 10>> + <<set $activeSlave.trust += 10>> + <<set $activeSlave.devotion += 10>> <<elseif $PC.career is "gang">> <<set $activeSlave.health += 5>> <<if $activeSlave.combatSkill < 1>> <<set activeSlave.combatSkill += 1>> <</if>> <<elseif $PC.career is "escort">> - <<if $activeSlave.entertainSkill < 60>> - <<set $activeSlave.entertainSkill += 20>> - <</if>> - <<if $activeSlave.whoreSkill < 60>> - <<set $activeSlave.whoreSkill += 20>> - <</if>> - <<set $seed to 1>> - <<if ($activeSlave.oralSkill < 60)>> - <<set $activeSlave.oralSkill += 20>> - <<set $seed -= 1>> - <</if>> - <<if ($activeSlave.analSkill < 60) && (($activeSlave.anus > 0) || ($activeSlave.analSkill <= 10))>> - <<set $activeSlave.analSkill += 20>> - <<set $seed -= 1>> - <</if>> - <<if ($seed > 0) && ($activeSlave.vaginalSkill < 60) && ($activeSlave.vagina > -1) && (($activeSlave.vagina > 0) || ($activeSlave.vaginalSkill <= 10))>> - <<set $activeSlave.vaginalSkill += 20>> - <</if>> + <<if $activeSlave.entertainSkill < 60>> + <<set $activeSlave.entertainSkill += 20>> + <</if>> + <<if $activeSlave.whoreSkill < 60>> + <<set $activeSlave.whoreSkill += 20>> + <</if>> + <<set $seed to 1>> + <<if ($activeSlave.oralSkill < 60)>> + <<set $activeSlave.oralSkill += 20>> + <<set $seed -= 1>> + <</if>> + <<if ($activeSlave.analSkill < 60) && (($activeSlave.anus > 0) || ($activeSlave.analSkill <= 10))>> + <<set $activeSlave.analSkill += 20>> + <<set $seed -= 1>> + <</if>> + <<if ($seed > 0) && ($activeSlave.vaginalSkill < 60) && ($activeSlave.vagina > -1) && (($activeSlave.vagina > 0) || ($activeSlave.vaginalSkill <= 10))>> + <<set $activeSlave.vaginalSkill += 20>> + <</if>> + <<elseif $PC.career is "wealth">> + <<set $seed to 2>> + <<if ($activeSlave.oralSkill < 60)>> + <<set $activeSlave.oralSkill += 20>> + <<set $seed -= 1>> + <</if>> + <<if ($activeSlave.analSkill < 60) && (($activeSlave.anus > 0) || ($activeSlave.analSkill <= 10))>> + <<set $activeSlave.analSkill += 20>> + <<set $seed -= 1>> + <</if>> + <<if ($seed > 0) && ($activeSlave.vaginalSkill < 60) && ($activeSlave.vagina > -1) && (($activeSlave.vagina > 0) || ($activeSlave.vaginalSkill <= 10))>> + <<set $activeSlave.vaginalSkill += 20>> + <</if>> <<else>> - <<set $seed to 2>> - <<if ($activeSlave.oralSkill < 60)>> - <<set $activeSlave.oralSkill += 20>> - <<set $seed -= 1>> - <</if>> - <<if ($activeSlave.analSkill < 60) && (($activeSlave.anus > 0) || ($activeSlave.analSkill <= 10))>> - <<set $activeSlave.analSkill += 20>> - <<set $seed -= 1>> - <</if>> - <<if ($seed > 0) && ($activeSlave.vaginalSkill < 60) && ($activeSlave.vagina > -1) && (($activeSlave.vagina > 0) || ($activeSlave.vaginalSkill <= 10))>> - <<set $activeSlave.vaginalSkill += 20>> - <</if>> + <<set $activeSlave.devotion += 10>> + <<if $activeSlave.whoreSkill < 60>><<set $activeSlave.whoreSkill += 20>><</if>> + <<if $activeSlave.entertainSkill < 60>><<set $activeSlave.entertainSkill += 20>><</if>> + <<set $seed to 2>> + <<if ($activeSlave.oralSkill < 60)>> + <<set $activeSlave.oralSkill += 20>> + <<set $seed -= 1>> + <</if>> + <<if ($activeSlave.analSkill < 60) && (($activeSlave.anus > 0) || ($activeSlave.analSkill <= 10))>> + <<set $activeSlave.analSkill += 20>> + <<set $seed -= 1>> + <</if>> + <<if ($seed > 0) && ($activeSlave.vaginalSkill < 60) && ($activeSlave.vagina > -1) && (($activeSlave.vagina > 0) || ($activeSlave.vaginalSkill <= 10))>> + <<set $activeSlave.vaginalSkill += 20>> + <</if>> <</if>> <<set $careerBonusApplied to 1>> <</if>> @@ -119,7 +116,7 @@ <<if $dumped == 0>> <<if def $activeSlave.slaveName>> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <<set $dumped to 1>> <</if>> <</if>> diff --git a/src/npc/startingGirls/commitStartingGirl.tw b/src/npc/startingGirls/commitStartingGirl.tw index 633d63829a82b7453d05ec747d08a69f4060853e..70f3d5b18fdb29afe725ddbabb498bee06812f98 100644 --- a/src/npc/startingGirls/commitStartingGirl.tw +++ b/src/npc/startingGirls/commitStartingGirl.tw @@ -1,6 +1,4 @@ -:: Commit Starting Girl - -<<nobr>> +:: Commit Starting Girl [nobr] <<set $activeSlave.actualAge to Number($activeSlave.actualAge)>> <<set $activeSlave.devotion = Number($activeSlave.devotion)>> @@ -13,35 +11,23 @@ <<set $activeSlave.boobs = Number($activeSlave.boobs)>> <<set $activeSlave.boobs = Math.trunc($activeSlave.boobs/50)*50>> -<<if $careerBonusApplied == 1>> - <<set $activeSlave to $slaveWithoutBonuses>> - <<set $careerBonusApplied to 0>> -<</if>> +<<set $careerBonusApplied = 0>> -<<if $cash < $minimumSlaveCost>> - <<goto "Acquisition">> -<</if>> +<<if $cash < $minimumSlaveCost>><<goto "Acquisition">><</if>> <<set $showStartingGirlsExplanation to 0>> <<if $createRelatedSlave == 0>> - -<<set $cash -= $slaveCost>> -<<set $startingGirlCopied to 1>> - -<<if ($hostage == 0) || ($slaveCost > $hostageCost)>> - <<set $hostage to $activeSlave>> - <<set $hostageCost to $slaveCost>> - <<set $hostageAnnounced to -1>> -<</if>> - + <<set $startingGirlCopied to 1>> + <<if ($hostage == 0) || ($slaveCost > $hostageCost)>> + <<set $hostage to $slaveWithoutBonuses>> + <<set $hostageCost to $slaveCost>> + <<set $hostageAnnounced to -1>> + <</if>> <</if>> $activeSlave.slaveName has been added to your starting stable of slaves. You now have ¤$cash remaining. - -<</nobr>> -\ -<<nobr>> +<br><br> <<if $cash >= $minimumSlaveCost>> <br> @@ -50,7 +36,7 @@ $activeSlave.slaveName has been added to your starting stable of slaves. You now <<goto "Starting Girls">> <</click>> <br> - [[Add another slave, based on the previous slave|Starting Girls][$activeSlave.relation to 0, $activeSlave.relationTarget to 0, $activeSlave.mother = 0, $activeSlave.father = 0]] + [[Add another slave, based on the previous slave|Starting Girls][$activeSlave = $slaveWithoutBonuses, $activeSlave.relation to 0, $activeSlave.relationTarget to 0, $activeSlave.mother = 0, $activeSlave.father = 0]] <<if $createRelatedSlave == 1>> <br> //Add another slave, related to the previous slave:// @@ -91,7 +77,4 @@ $activeSlave.slaveName has been added to your starting stable of slaves. You now <</if>> <</if>> <br> -[[Stop adding slaves and take control of the arcology|Acquisition]] - -<</nobr>> - +[[Stop adding slaves and take control of the arcology|Acquisition]] \ No newline at end of file diff --git a/src/npc/startingGirls/startingGirls.tw b/src/npc/startingGirls/startingGirls.tw index 9b77f2bbab678f19da61d513714a829fc6a5a4c9..62c2ba60244d62beff571d1ab110e5585a01a710 100644 --- a/src/npc/startingGirls/startingGirls.tw +++ b/src/npc/startingGirls/startingGirls.tw @@ -1,5 +1,5 @@ :: Starting Girls [nobr] - + <<if $showStartingGirlsExplanation == 1>> You're no stranger to the Free Cities, which means you're no stranger to slavery. If you wish, you can bring slaves from your past life with you to your arcology. You have ¤$cash; you can spend it on slaves here, or bring it with you to start the game. Slaves created here will be much cheaper than if they were purchased on the market. @@ -60,7 +60,7 @@ <</if>> <<set $activeSlave.visualAge = $activeSlave.actualAge>> <<set $activeSlave.physicalAge = $activeSlave.actualAge>> - <<display "Nationality to Name">> + <<NationalityToName>> <<set $activeSlave.slaveName = $activeSlave.birthName>> <<set $activeSlave.ID = $IDNumber>> <<set $IDNumber += 1>> @@ -76,13 +76,13 @@ <</if>> <<set $startingGirlCopied = 0>> <<elseif $archetyped == 1>> - <<display "Nationality to Name">> + <<NationalityToName>> <<set $activeSlave.slaveName = $activeSlave.birthName>> <<set $archetyped = 0>> <</if>> __You are customizing this slave:__ -<br style="clear:both" /> +<br> <<if $activeSlave == 0>> <<StartingGirlsWorkaround>> <</if>> @@ -120,6 +120,9 @@ __You are customizing this slave:__ <<elseif $PC.age == 3 && $activeSlave.actualAge > 30>> <<set $activeSlave.father = 0>> <</if>> + <<if $saveImported == 1>> + <<set $activeSlave.father = 0>> + <</if>> <</if>> <<if $activeSlave.mother == -1>> <<if $PC.vagina == 0>> @@ -131,6 +134,9 @@ __You are customizing this slave:__ <<elseif $PC.age == 3 && $activeSlave.actualAge > 30>> <<set $activeSlave.mother = 0>> <</if>> + <<if $saveImported == 1>> + <<set $activeSlave.mother = 0>> + <</if>> <</if>> /* this block makes starting girls actually apply the slave origins, mostly since it just hates you and everything you do */ <<if $PC.career is "capitalist">> @@ -262,7 +268,7 @@ __You are customizing this slave:__ <<set $activeSlave.origin to "She was one of your groupies during your celebrity career.">> <<set $activeSlave.customTat to "She has your signature, surrounded by hearts, tattooed on the back of her neck. She got the tattoo when she was still free.">> <</if>> - <<else>> + <<elseif $PC.career is "wealth">> <<if $activeSlave.mother == -1 && $activeSlave.father == -1>> <<set $activeSlave.origin to "You bet your body on a sure hand, only to lose. It turns out you could fuck yourself, and not only that, get yourself pregnant.">> <<set $activeSlave.customTat to "She has a small tattoo of a losing hand of cards on the nape of her neck.">> @@ -276,6 +282,9 @@ __You are customizing this slave:__ <<set $activeSlave.origin to "You won her at cards, a memento from your life as one of the idle rich before you became an arcology owner.">> <<set $activeSlave.customTat to "She has a small tattoo of a winning hand of cards on the nape of her neck.">> <</if>> + <<else>> + <<set $activeSlave.origin to "You won her at cards, a memento from your life as one of the idle rich before you became an arcology owner.">> + <<set $activeSlave.customTat to "She has the silhouette of an arcology tattooed on the nape of her neck.">> <</if>> <<if $activeSlave.vagina < 1>> <<set $activeSlave.vaginalSkill = 0>> @@ -353,7 +362,7 @@ __You are customizing this slave:__ <</click>> | <<click "Randomize name">> -<<display "Nationality to Name">> +<<NationalityToName>> <<set $activeSlave.slaveName = $activeSlave.birthName>> <<SaleDescription>> <<StartingGirlsCost>> @@ -362,7 +371,7 @@ __You are customizing this slave:__ | [[More customization options]] | <<click "Start over with a random slave">> -<<set $startingGirlsNationality = $nationalities.random()>> +<<set $fixedNationality = $nationalities.random()>> <<StartingGirlsWorkaround>> <<StartingGirlsRefresh>> <<SaleDescription>> @@ -383,11 +392,11 @@ __You are customizing this slave:__ <</if>> </span> <<click "Utterly hateful">><<set $activeSlave.devotion = -100>><<replace "#devotion">>@@color:darkviolet;Utterly hateful.@@<</replace>><<StartingGirlsCost>><</click>> | -<<click "Hateful">><<set $activeSlave.devotion = -70>><<replace "#devotion">>@@color:darkviolet;Hateful.@@<</replace>><<StartingGirlsCost>><</click>> | -<<click "Resistant">><<set $activeSlave.devotion = -35>><<replace "#devotion">>@@color:mediumorchid;Resistant.@@<</replace>><<StartingGirlsCost>><</click>> | -<<click "Ambivalent">><<set $activeSlave.devotion = 0>><<replace "#devotion">>@@color:yellow;Ambivalent.@@<</replace>><<StartingGirlsCost>><</click>> | -<<click "Accepting">><<set $activeSlave.devotion = 35>><<replace "#devotion">>@@color:hotpink;Accepting.@@<</replace>><<StartingGirlsCost>><</click>> | -<<click "Devoted">><<set $activeSlave.devotion = 70>><<replace "#devotion">>@@color:deeppink;Devoted.@@<</replace>><<StartingGirlsCost>><</click>> | +<<click "Hateful">><<set $activeSlave.devotion = -70>><<replace "#devotion">>@@color:darkviolet;Hateful.@@<</replace>><<StartingGirlsCost>><</click>> | +<<click "Resistant">><<set $activeSlave.devotion = -35>><<replace "#devotion">>@@color:mediumorchid;Resistant.@@<</replace>><<StartingGirlsCost>><</click>> | +<<click "Ambivalent">><<set $activeSlave.devotion = 0>><<replace "#devotion">>@@color:yellow;Ambivalent.@@<</replace>><<StartingGirlsCost>><</click>> | +<<click "Accepting">><<set $activeSlave.devotion = 35>><<replace "#devotion">>@@color:hotpink;Accepting.@@<</replace>><<StartingGirlsCost>><</click>> | +<<click "Devoted">><<set $activeSlave.devotion = 70>><<replace "#devotion">>@@color:deeppink;Devoted.@@<</replace>><<StartingGirlsCost>><</click>> | <<click "Worshipful">><<set $activeSlave.devotion = 100>><<replace "#devotion">>@@color:magenta;Worshipful.@@<</replace>><<StartingGirlsCost>><</click>> <<textbox "$activeSlave.devotion" $activeSlave.devotion "Starting Girls">> @@ -404,12 +413,12 @@ __You are customizing this slave:__ <<else>>@@color:seagreen;Absolute trust.@@ <</if>> </span> -<<click "Abjectly terrified">><<set $activeSlave.trust = -100>><<replace "#trust">>@@color:goldenrod;Abjectly terrified.@@<</replace>><<StartingGirlsCost>><</click>> | -<<click "Terrified">><<set $activeSlave.trust = -70>><<replace "#trust">>@@color:goldenrod;Terrified.@@<</replace>><<StartingGirlsCost>><</click>> | -<<click "Frightened">><<set $activeSlave.trust = -35>><<replace "#trust">>@@color:gold;Frightened.@@<</replace>><<StartingGirlsCost>><</click>> | -<<click "Fearful">><<set $activeSlave.trust = 0>><<replace "#trust">>@@color:yellow;Fearful.@@<</replace>><<StartingGirlsCost>><</click>> | -<<click "Careful">><<set $activeSlave.trust = 35>><<replace "#trust">>@@color:mediumaquamarine;Careful.@@<</replace>><<StartingGirlsCost>><</click>> | -<<click "Trusting">><<set $activeSlave.trust = 70>><<replace "#trust">>@@color:mediumseagreen;Trusting.@@<</replace>><<StartingGirlsCost>><</click>> | +<<click "Abjectly terrified">><<set $activeSlave.trust = -100>><<replace "#trust">>@@color:goldenrod;Abjectly terrified.@@<</replace>><<StartingGirlsCost>><</click>> | +<<click "Terrified">><<set $activeSlave.trust = -70>><<replace "#trust">>@@color:goldenrod;Terrified.@@<</replace>><<StartingGirlsCost>><</click>> | +<<click "Frightened">><<set $activeSlave.trust = -35>><<replace "#trust">>@@color:gold;Frightened.@@<</replace>><<StartingGirlsCost>><</click>> | +<<click "Fearful">><<set $activeSlave.trust = 0>><<replace "#trust">>@@color:yellow;Fearful.@@<</replace>><<StartingGirlsCost>><</click>> | +<<click "Careful">><<set $activeSlave.trust = 35>><<replace "#trust">>@@color:mediumaquamarine;Careful.@@<</replace>><<StartingGirlsCost>><</click>> | +<<click "Trusting">><<set $activeSlave.trust = 70>><<replace "#trust">>@@color:mediumseagreen;Trusting.@@<</replace>><<StartingGirlsCost>><</click>> | <<click "Absolute trust">><<set $activeSlave.trust = 100>><<replace "#trust">>@@color:seagreen;Absolute trust.@@<</replace>><<StartingGirlsCost>><</click>> <<textbox "$activeSlave.trust" $activeSlave.trust "Starting Girls">> @@ -447,9 +456,9 @@ __You are customizing this slave:__ <<elseif $activeSlave.voice is 3>>High. <</if>> </span> -<<click "Mute">><<set $activeSlave.voice = 0>><<replace "#voice">>Mute.<</replace>><<StartingGirlsCost>><</click>> | -<<click "Deep">><<set $activeSlave.voice = 1>><<replace "#voice">>Deep.<</replace>><<StartingGirlsCost>><</click>> | -<<click "Normal">><<set $activeSlave.voice = 2>><<replace "#voice">>Normal.<</replace>><<StartingGirlsCost>><</click>> | +<<click "Mute">><<set $activeSlave.voice = 0>><<replace "#voice">>Mute.<</replace>><<StartingGirlsCost>><</click>> | +<<click "Deep">><<set $activeSlave.voice = 1>><<replace "#voice">>Deep.<</replace>><<StartingGirlsCost>><</click>> | +<<click "Normal">><<set $activeSlave.voice = 2>><<replace "#voice">>Normal.<</replace>><<StartingGirlsCost>><</click>> | <<click "High.">><<set $activeSlave.voice = 3>><<replace "#voice">>High.<</replace>><<StartingGirlsCost>><</click>> <br> @@ -463,20 +472,20 @@ __You are customizing this slave:__ <<else>>Not fluent. <</if>> </span> -<<click "Unaccented">><<set $activeSlave.accent = 0>><<replace "#language">>Unaccented.<</replace>><<StartingGirlsCost>><</click>> | -<<click "Accent">><<set $activeSlave.accent = 1>><<replace "#language">>Pretty $activeSlave.nationality accent.<</replace>><<StartingGirlsCost>><</click>> | -<<click "Heavy accent">><<set $activeSlave.accent = 2>><<replace "#language">>Thick $activeSlave.nationality accent.<</replace>><<StartingGirlsCost>><</click>> | +<<click "Unaccented">><<set $activeSlave.accent = 0>><<replace "#language">>Unaccented.<</replace>><<StartingGirlsCost>><</click>> | +<<click "Accent">><<set $activeSlave.accent = 1>><<replace "#language">>Pretty $activeSlave.nationality accent.<</replace>><<StartingGirlsCost>><</click>> | +<<click "Heavy accent">><<set $activeSlave.accent = 2>><<replace "#language">>Thick $activeSlave.nationality accent.<</replace>><<StartingGirlsCost>><</click>> | <<click "Poor">><<set $activeSlave.accent = 3>><<replace "#language">>Not fluent.<</replace>><<StartingGirlsCost>><</click>> <</if>> <br> -''Age:'' +''Age:'' <span id="age"> <<textbox "$activeSlave.actualAge" $activeSlave.actualAge "Starting Girls">> </span> -''Birth week:'' +''Birth week:'' <span id="birthWeek"> <<textbox "$activeSlave.birthWeek" $activeSlave.birthWeek "Starting Girls">> </span> @@ -485,6 +494,7 @@ __You are customizing this slave:__ <br> ''Slave ID'' //be reasonable. Make sure to refresh to resync IDs.// +<<if $saveImported == 1>>//Player children are not available in NG+ due to code limitations (Since the player's background changes with ng+, consistancy issues arise.)//<</if>> <br><<print $activeSlave.ID>> <br> @@ -510,9 +520,9 @@ __You are customizing this slave:__ <<else>>@@color:green;Extremely healthy.@@ <</if>> </span> -<<click "Unhealthy">><<set $activeSlave.health = -40>><<replace "#health">>@@color:red;Unhealthy.@@<</replace>><<StartingGirlsCost>><</click>> | -<<click "Healthy">><<set $activeSlave.health = 0>><<replace "#health">>@@color:yellow;Healthy.@@<</replace>><<StartingGirlsCost>><</click>> | -<<click "Very healthy">><<set $activeSlave.health = 40>><<replace "#health">>@@color:green;Very healthy.@@<</replace>><<StartingGirlsCost>><</click>> | +<<click "Unhealthy">><<set $activeSlave.health = -40>><<replace "#health">>@@color:red;Unhealthy.@@<</replace>><<StartingGirlsCost>><</click>> | +<<click "Healthy">><<set $activeSlave.health = 0>><<replace "#health">>@@color:yellow;Healthy.@@<</replace>><<StartingGirlsCost>><</click>> | +<<click "Very healthy">><<set $activeSlave.health = 40>><<replace "#health">>@@color:green;Very healthy.@@<</replace>><<StartingGirlsCost>><</click>> | <<click "Extremely healthy">><<set $activeSlave.health = 80>><<replace "#health">>@@color:green;Extremely healthy.@@<</replace>><<StartingGirlsCost>><</click>> <br> @@ -524,8 +534,8 @@ __You are customizing this slave:__ <<else>>Ripped. <</if>> </span> -<<click "Normal">><<set $activeSlave.muscles = 0>><<replace "#muscles">>Normal.<</replace>><<StartingGirlsCost>><</click>> | -<<click "Toned">><<set $activeSlave.muscles = 20>><<replace "#muscles">>Toned.<</replace>><<StartingGirlsCost>><</click>> | +<<click "Normal">><<set $activeSlave.muscles = 0>><<replace "#muscles">>Normal.<</replace>><<StartingGirlsCost>><</click>> | +<<click "Toned">><<set $activeSlave.muscles = 20>><<replace "#muscles">>Toned.<</replace>><<StartingGirlsCost>><</click>> | <<click "Ripped">><<set $activeSlave.muscles = 50>><<replace "#muscles">>Ripped.<</replace>><<StartingGirlsCost>><</click>> ''Waist:'' @@ -581,7 +591,7 @@ __You are customizing this slave:__ <<click "Emaciated">><<set $activeSlave.weight = -100>><<replace "#weight">>@@color:red;Emaciated.@@<</replace>><<StartingGirlsCost>><</click>> | <<click "Skinny">><<set $activeSlave.weight = -50>><<replace "#weight">>@@color:red;Skinny.@@<</replace>><<StartingGirlsCost>><</click>> | <<click "Thin">><<set $activeSlave.weight = -20>><<replace "#weight">>Thin.<</replace>><<StartingGirlsCost>><</click>> | -<<click "Average">><<set $activeSlave.weight = 0>><<replace "#weight">>Average.<</replace>><<StartingGirlsCost>><</click>> | +<<click "Average">><<set $activeSlave.weight = 0>><<replace "#weight">>Average.<</replace>><<StartingGirlsCost>><</click>> | <<click "Plush">><<set $activeSlave.weight = 20>><<replace "#weight">>Plush.<</replace>><<StartingGirlsCost>><</click>> | <<click "Chubby">><<set $activeSlave.weight = 50>><<replace "#weight">>@@color:red;Chubby.@@<</replace>><<StartingGirlsCost>><</click>> | <<click "Fat">><<set $activeSlave.weight = 100>><<replace "#weight">>@@color:red;Fat.@@<</replace>><<StartingGirlsCost>><</click>> @@ -592,7 +602,7 @@ Her nationality is $activeSlave.nationality. <<click "Set custom nationality">> <<replace "#nationality">><<textbox "$activeSlave.nationality" $activeSlave.nationality>> <</replace>> -<</click>> +<</click>> </span> <<if $seeRace == 1>> <br> @@ -600,18 +610,18 @@ Her nationality is $activeSlave.nationality. <br> -<<click "White">><<set $activeSlave.race = "white">><<replace "#ethnicity">><<textbox "$activeSlave.race" $activeSlave.race "Starting Girls">><</replace>><<StartingGirlsCost>><</click>> | -<<click "Black">><<set $activeSlave.race = "black">><<replace "#ethnicity">><<textbox "$activeSlave.race" $activeSlave.race "Starting Girls">><</replace>><<StartingGirlsCost>><</click>> | -<<click "Latina">><<set $activeSlave.race = "latina">><<replace "#ethnicity">><<textbox "$activeSlave.race" $activeSlave.race "Starting Girls">><</replace>><<StartingGirlsCost>><</click>> | -<<click "Asian">><<set $activeSlave.race = "asian">><<replace "#ethnicity">><<textbox "$activeSlave.race" $activeSlave.race "Starting Girls">><</replace>><<StartingGirlsCost>><</click>> | -<<click "Middle Eastern">><<set $activeSlave.race = "middle eastern">><<replace "#ethnicity">><<textbox "$activeSlave.race" $activeSlave.race "Starting Girls">><</replace>><<StartingGirlsCost>><</click>> | -<<click "Amerindian">><<set $activeSlave.race = "amerindian">><<replace "#ethnicity">><<textbox "$activeSlave.race" $activeSlave.race "Starting Girls">><</replace>><<StartingGirlsCost>><</click>> | -<<click "Southern European">><<set $activeSlave.race = "southern European">><<replace "#ethnicity">><<textbox "$activeSlave.race" $activeSlave.race "Starting Girls">><</replace>><<StartingGirlsCost>><</click>> | -<<click "Semitic">><<set $activeSlave.race = "semitic">><<replace "#ethnicity">><<textbox "$activeSlave.race" $activeSlave.race "Starting Girls">><</replace>><<StartingGirlsCost>><</click>> | -<<click "Malay">><<set $activeSlave.race = "malay">><<replace "#ethnicity">><<textbox "$activeSlave.race" $activeSlave.race "Starting Girls">><</replace>><<StartingGirlsCost>><</click>> | -<<click "Indo-aryan">><<set $activeSlave.race = "indo-aryan">><<replace "#ethnicity">><<textbox "$activeSlave.race" $activeSlave.race "Starting Girls">><</replace>><<StartingGirlsCost>><</click>> | -<<click "Pacific Islander">><<set $activeSlave.race = "pacific islander">><<replace "#ethnicity">><<textbox "$activeSlave.race" $activeSlave.race "Starting Girls">><</replace>><<StartingGirlsCost>><</click>> | -<<click "Mixed Race">><<set $activeSlave.race = "mixed race">><<replace "#ethnicity">><<textbox "$activeSlave.race" $activeSlave.race "Starting Girls">><</replace>><<StartingGirlsCost>><</click>> +<<click "White">><<set $activeSlave.race = "white">><<replace "#ethnicity">><<textbox "$activeSlave.race" $activeSlave.race "Starting Girls">><</replace>><<StartingGirlsCost>><</click>> | +<<click "Black">><<set $activeSlave.race = "black">><<replace "#ethnicity">><<textbox "$activeSlave.race" $activeSlave.race "Starting Girls">><</replace>><<StartingGirlsCost>><</click>> | +<<click "Latina">><<set $activeSlave.race = "latina">><<replace "#ethnicity">><<textbox "$activeSlave.race" $activeSlave.race "Starting Girls">><</replace>><<StartingGirlsCost>><</click>> | +<<click "Asian">><<set $activeSlave.race = "asian">><<replace "#ethnicity">><<textbox "$activeSlave.race" $activeSlave.race "Starting Girls">><</replace>><<StartingGirlsCost>><</click>> | +<<click "Middle Eastern">><<set $activeSlave.race = "middle eastern">><<replace "#ethnicity">><<textbox "$activeSlave.race" $activeSlave.race "Starting Girls">><</replace>><<StartingGirlsCost>><</click>> | +<<click "Amerindian">><<set $activeSlave.race = "amerindian">><<replace "#ethnicity">><<textbox "$activeSlave.race" $activeSlave.race "Starting Girls">><</replace>><<StartingGirlsCost>><</click>> | +<<click "Southern European">><<set $activeSlave.race = "southern European">><<replace "#ethnicity">><<textbox "$activeSlave.race" $activeSlave.race "Starting Girls">><</replace>><<StartingGirlsCost>><</click>> | +<<click "Semitic">><<set $activeSlave.race = "semitic">><<replace "#ethnicity">><<textbox "$activeSlave.race" $activeSlave.race "Starting Girls">><</replace>><<StartingGirlsCost>><</click>> | +<<click "Malay">><<set $activeSlave.race = "malay">><<replace "#ethnicity">><<textbox "$activeSlave.race" $activeSlave.race "Starting Girls">><</replace>><<StartingGirlsCost>><</click>> | +<<click "Indo-aryan">><<set $activeSlave.race = "indo-aryan">><<replace "#ethnicity">><<textbox "$activeSlave.race" $activeSlave.race "Starting Girls">><</replace>><<StartingGirlsCost>><</click>> | +<<click "Pacific Islander">><<set $activeSlave.race = "pacific islander">><<replace "#ethnicity">><<textbox "$activeSlave.race" $activeSlave.race "Starting Girls">><</replace>><<StartingGirlsCost>><</click>> | +<<click "Mixed Race">><<set $activeSlave.race = "mixed race">><<replace "#ethnicity">><<textbox "$activeSlave.race" $activeSlave.race "Starting Girls">><</replace>><<StartingGirlsCost>><</click>> <</if>> <br> @@ -630,7 +640,7 @@ Her nationality is $activeSlave.nationality. <<click "Pale">><<set $activeSlave.skin = "pale">><<replace "#skin">><<textbox "$activeSlave.skin" $activeSlave.skin "Starting Girls">><</replace>><<StartingGirlsCost>><</click>> | <<click "Dark">><<set $activeSlave.skin = "dark">><<replace "#skin">><<textbox "$activeSlave.skin" $activeSlave.skin "Starting Girls">><</replace>><<StartingGirlsCost>><</click>> | <<click "Light">><<set $activeSlave.skin = "light">><<replace "#skin">><<textbox "$activeSlave.skin" $activeSlave.skin "Starting Girls">><</replace>><<StartingGirlsCost>><</click>> | -<<click "Extremely pale">><<set $activeSlave.skin = "extremely pale">><<replace "#skin">><<textbox "$activeSlave.skin" $activeSlave.skin "Starting Girls">><</replace>><<StartingGirlsCost>><</click>> +<<click "Extremely pale">><<set $activeSlave.skin = "extremely pale">><<replace "#skin">><<textbox "$activeSlave.skin" $activeSlave.skin "Starting Girls">><</replace>><<StartingGirlsCost>><</click>> <br> @@ -675,13 +685,13 @@ Her nationality is $activeSlave.nationality. <<else>>Facepussy. <</if>> </span> -<<click "Thin">><<set $activeSlave.lips = 5>><<replace "#lips">>Thin.<</replace>><<StartingGirlsCost>><</click>> | -<<click "Normal">><<set $activeSlave.lips = 15>><<replace "#lips">>Normal.<</replace>><<StartingGirlsCost>><</click>> | -<<click "Plush">><<set $activeSlave.lips = 25>><<replace "#lips">>Plush.<</replace>><<StartingGirlsCost>><</click>> | -<<click "Big">><<set $activeSlave.lips = 55>><<replace "#lips">>Big.<</replace>><<StartingGirlsCost>><</click>> | +<<click "Thin">><<set $activeSlave.lips = 5>><<replace "#lips">>Thin.<</replace>><<StartingGirlsCost>><</click>> | +<<click "Normal">><<set $activeSlave.lips = 15>><<replace "#lips">>Normal.<</replace>><<StartingGirlsCost>><</click>> | +<<click "Plush">><<set $activeSlave.lips = 25>><<replace "#lips">>Plush.<</replace>><<StartingGirlsCost>><</click>> | +<<click "Big">><<set $activeSlave.lips = 55>><<replace "#lips">>Big.<</replace>><<StartingGirlsCost>><</click>> | <<click "Huge">><<set $activeSlave.lips = 85>><<replace "#lips">>Huge.<</replace>><<StartingGirlsCost>><</click>> <<if $seeExtreme == 1>> - | + | <<click "Facepussy">><<set $activeSlave.lips = 100>><<replace "#lips">>Facepussy.<</replace>><<StartingGirlsCost>><</click>> <</if>> @@ -741,17 +751,17 @@ Her nationality is $activeSlave.nationality. <<else>>None. <</if>> </span> -<<click "Artificial">><<set $activeSlave.lactation = 2>><<replace "#lactation">>Artificial.<</replace>><<StartingGirlsCost>><</click>> | -<<click "Natural">><<set $activeSlave.lactation = 1>><<replace "#lactation">>Natural.<</replace>><<StartingGirlsCost>><</click>> | +<<click "Artificial">><<set $activeSlave.lactation = 2>><<replace "#lactation">>Artificial.<</replace>><<StartingGirlsCost>><</click>> | +<<click "Natural">><<set $activeSlave.lactation = 1>><<replace "#lactation">>Natural.<</replace>><<StartingGirlsCost>><</click>> | <<click "None">><<set $activeSlave.lactation = 0>><<replace "#lactation">>None.<</replace>><<StartingGirlsCost>><</click>> <br> ''Nipples:'' <span id="nipples">$activeSlave.nipples</span>. -<<click "Tiny">><<set $activeSlave.nipples = "tiny">><<replace "#nipples">>$activeSlave.nipples<</replace>><<StartingGirlsCost>><</click>> | -<<click "Cute">><<set $activeSlave.nipples = "cute">><<replace "#nipples">>$activeSlave.nipples<</replace>><<StartingGirlsCost>><</click>> | -<<click "Puffy">><<set $activeSlave.nipples = "puffy">><<replace "#nipples">>$activeSlave.nipples<</replace>><<StartingGirlsCost>><</click>> | -<<click "Inverted">><<set $activeSlave.nipples = "inverted">><<replace "#nipples">>$activeSlave.nipples<</replace>><<StartingGirlsCost>><</click>> | +<<click "Tiny">><<set $activeSlave.nipples = "tiny">><<replace "#nipples">>$activeSlave.nipples<</replace>><<StartingGirlsCost>><</click>> | +<<click "Cute">><<set $activeSlave.nipples = "cute">><<replace "#nipples">>$activeSlave.nipples<</replace>><<StartingGirlsCost>><</click>> | +<<click "Puffy">><<set $activeSlave.nipples = "puffy">><<replace "#nipples">>$activeSlave.nipples<</replace>><<StartingGirlsCost>><</click>> | +<<click "Inverted">><<set $activeSlave.nipples = "inverted">><<replace "#nipples">>$activeSlave.nipples<</replace>><<StartingGirlsCost>><</click>> | <<click "Huge">><<set $activeSlave.nipples = "huge">><<replace "#nipples">>$activeSlave.nipples<</replace>><<StartingGirlsCost>><</click>> ''Areolae:'' @@ -766,9 +776,9 @@ Her nationality is $activeSlave.nationality. Normal. <</if>> </span> -<<click "Normal">><<set $activeSlave.areolae = 0>><<replace "#areolae">>Normal.<</replace>><<StartingGirlsCost>><</click>> | -<<click "Large">><<set $activeSlave.areolae = 1>><<replace "#areolae">>Large.<</replace>><<StartingGirlsCost>><</click>> | -<<click "Wide">><<set $activeSlave.areolae = 2>><<replace "#areolae">>Wide.<</replace>><<StartingGirlsCost>><</click>> | +<<click "Normal">><<set $activeSlave.areolae = 0>><<replace "#areolae">>Normal.<</replace>><<StartingGirlsCost>><</click>> | +<<click "Large">><<set $activeSlave.areolae = 1>><<replace "#areolae">>Large.<</replace>><<StartingGirlsCost>><</click>> | +<<click "Wide">><<set $activeSlave.areolae = 2>><<replace "#areolae">>Wide.<</replace>><<StartingGirlsCost>><</click>> | <<click "Huge">><<set $activeSlave.areolae = 3>><<replace "#areolae">>Huge.<</replace>><<StartingGirlsCost>><</click>> <br> @@ -782,10 +792,10 @@ Her nationality is $activeSlave.nationality. <<else>>Feminine. <</if>> </span> -<<click "Very narrow">><<set $activeSlave.shoulders = -2>><<replace "#shoulders">>Very narrow.<</replace>><<StartingGirlsCost>><</click>> | -<<click "Narrow">><<set $activeSlave.shoulders = -1>><<replace "#shoulders">>Narrow.<</replace>><<StartingGirlsCost>><</click>> | -<<click "Normal">><<set $activeSlave.shoulders = 0>><<replace "#shoulders">>Feminine.<</replace>><<StartingGirlsCost>><</click>> | -<<click "Broad">><<set $activeSlave.shoulders = 1>><<replace "#shoulders">>Broad.<</replace>><<StartingGirlsCost>><</click>> | +<<click "Very narrow">><<set $activeSlave.shoulders = -2>><<replace "#shoulders">>Very narrow.<</replace>><<StartingGirlsCost>><</click>> | +<<click "Narrow">><<set $activeSlave.shoulders = -1>><<replace "#shoulders">>Narrow.<</replace>><<StartingGirlsCost>><</click>> | +<<click "Normal">><<set $activeSlave.shoulders = 0>><<replace "#shoulders">>Feminine.<</replace>><<StartingGirlsCost>><</click>> | +<<click "Broad">><<set $activeSlave.shoulders = 1>><<replace "#shoulders">>Broad.<</replace>><<StartingGirlsCost>><</click>> | <<click "Very broad">><<set $activeSlave.shoulders = 2>><<replace "#shoulders">>Very broad.<</replace>><<StartingGirlsCost>><</click>> <br> @@ -799,10 +809,10 @@ Her nationality is $activeSlave.nationality. <<else>>Normal. <</if>> </span> -<<click "Very narrow">><<set $activeSlave.hips = -2>><<replace "#hips">>Very narrow.<</replace>><<StartingGirlsCost>><</click>> | -<<click "Narrow">><<set $activeSlave.hips = -1>><<replace "#hips">>Narrow.<</replace>><<StartingGirlsCost>><</click>> | -<<click "Normal">><<set $activeSlave.hips = 0>><<replace "#hips">>Normal.<</replace>><<StartingGirlsCost>><</click>> | -<<click "Broad">><<set $activeSlave.hips = 1>><<replace "#hips">>Broad.<</replace>><<StartingGirlsCost>><</click>> | +<<click "Very narrow">><<set $activeSlave.hips = -2>><<replace "#hips">>Very narrow.<</replace>><<StartingGirlsCost>><</click>> | +<<click "Narrow">><<set $activeSlave.hips = -1>><<replace "#hips">>Narrow.<</replace>><<StartingGirlsCost>><</click>> | +<<click "Normal">><<set $activeSlave.hips = 0>><<replace "#hips">>Normal.<</replace>><<StartingGirlsCost>><</click>> | +<<click "Broad">><<set $activeSlave.hips = 1>><<replace "#hips">>Broad.<</replace>><<StartingGirlsCost>><</click>> | <<click "Very broad">><<set $activeSlave.hips = 2>><<replace "#hips">>Very broad.<</replace>><<StartingGirlsCost>><</click>> <br> @@ -821,11 +831,11 @@ Her nationality is $activeSlave.nationality. </span> <<click "Flat">><<set $activeSlave.butt = 0>><<replace "#butt">>Flat.<</replace>><<StartingGirlsCost>><</click>> | <<click "Small">><<set $activeSlave.butt = 1>><<replace "#butt">>Small.<</replace>><<StartingGirlsCost>><</click>> | -<<click "Plump">><<set $activeSlave.butt = 2>><<replace "#butt">>Plump.<</replace>><<StartingGirlsCost>><</click>> | +<<click "Plump">><<set $activeSlave.butt = 2>><<replace "#butt">>Plump.<</replace>><<StartingGirlsCost>><</click>> | <<click "Healthy">><<set $activeSlave.butt = 3>><<replace "#butt">>Big.<</replace>><<StartingGirlsCost>><</click>> | -<<click "Huge">><<set $activeSlave.butt = 4>><<replace "#butt">>Huge.<</replace>><<StartingGirlsCost>><</click>> | +<<click "Huge">><<set $activeSlave.butt = 4>><<replace "#butt">>Huge.<</replace>><<StartingGirlsCost>><</click>> | <<click "Enormous">><<set $activeSlave.butt = 5>><<replace "#butt">>Enormous.<</replace>><<StartingGirlsCost>><</click>> | -<<click "Gigantic">><<set $activeSlave.butt = 6>><<replace "#butt">>Gigantic.<</replace>><<StartingGirlsCost>><</click>> | +<<click "Gigantic">><<set $activeSlave.butt = 6>><<replace "#butt">>Gigantic.<</replace>><<StartingGirlsCost>><</click>> | <<click "Massive">><<set $activeSlave.butt = 7>><<replace "#butt">>Massive.<</replace>><<StartingGirlsCost>><</click>> <br> @@ -855,9 +865,9 @@ Her nationality is $activeSlave.nationality. <</if>> </span> <<if $activeSlave.dick > 0>><<click "No vagina">><<set $activeSlave.vagina = -1,$activeSlave.preg = 0,$activeSlave.pregSource = 0,$activeSlave.pubertyXX = 0,$activeSlave.pubertyAgeXX = $fertilityAge, $activeSlave.ovaries = 0>><<replace "#vagina">>//No vagina.//<</replace>><<StartingGirlsCost>><</click>><<else>>//No vagina//<</if>> | -<<click "Virgin">><<set $activeSlave.vagina = 0, $activeSlave.preg = -1, $activeSlave.ovaries = 1>><<replace "#vagina">>@@color:lime;Virgin.@@<</replace>><<StartingGirlsVaginalSkill>><<StartingGirlsCost>><</click>> | -<<click "Normal">><<set $activeSlave.vagina = 1, $activeSlave.preg = -1, $activeSlave.ovaries = 1>><<replace "#vagina">>Normal.<</replace>><<StartingGirlsVaginalSkill>><<StartingGirlsCost>><</click>> | -<<click "Veteran">><<set $activeSlave.vagina = 2, $activeSlave.preg = -1, $activeSlave.ovaries = 1>><<replace "#vagina">>Veteran.<</replace>><<StartingGirlsVaginalSkill>><<StartingGirlsCost>><</click>> | +<<click "Virgin">><<set $activeSlave.vagina = 0, $activeSlave.preg = -1, $activeSlave.ovaries = 1>><<replace "#vagina">>@@color:lime;Virgin.@@<</replace>><<StartingGirlsVaginalSkill>><<StartingGirlsCost>><</click>> | +<<click "Normal">><<set $activeSlave.vagina = 1, $activeSlave.preg = -1, $activeSlave.ovaries = 1>><<replace "#vagina">>Normal.<</replace>><<StartingGirlsVaginalSkill>><<StartingGirlsCost>><</click>> | +<<click "Veteran">><<set $activeSlave.vagina = 2, $activeSlave.preg = -1, $activeSlave.ovaries = 1>><<replace "#vagina">>Veteran.<</replace>><<StartingGirlsVaginalSkill>><<StartingGirlsCost>><</click>> | <<click "Gaping">><<set $activeSlave.vagina = 3, $activeSlave.preg = -1, $activeSlave.ovaries = 1>><<replace "#vagina">>Gaping.<</replace>><<StartingGirlsVaginalSkill>><<StartingGirlsCost>><</click>> <span id="vaginablock"> @@ -872,8 +882,8 @@ Her nationality is $activeSlave.nationality. <<else>>Huge. <</if>> </span> -<<click "Normal">><<set $activeSlave.clit = 0>><<replace "#clit">>Normal.<</replace>><<StartingGirlsCost>><</click>> | -<<click "Large">><<set $activeSlave.clit = 1>><<replace "#clit">>Large.<</replace>><<StartingGirlsCost>><</click>> | +<<click "Normal">><<set $activeSlave.clit = 0>><<replace "#clit">>Normal.<</replace>><<StartingGirlsCost>><</click>> | +<<click "Large">><<set $activeSlave.clit = 1>><<replace "#clit">>Large.<</replace>><<StartingGirlsCost>><</click>> | <<click "Huge">><<set $activeSlave.clit = 2>><<replace "#clit">>Huge.<</replace>><<StartingGirlsCost>><</click>> ''Labia:'' @@ -883,8 +893,8 @@ Her nationality is $activeSlave.nationality. <<else>>Normal. <</if>> </span> -<<click "Normal">><<set $activeSlave.labia = 0>><<replace "#labia">>Normal.<</replace>><<StartingGirlsCost>><</click>> | -<<click "Large">><<set $activeSlave.labia = 1>><<replace "#labia">>Large.<</replace>><<StartingGirlsCost>><</click>> | +<<click "Normal">><<set $activeSlave.labia = 0>><<replace "#labia">>Normal.<</replace>><<StartingGirlsCost>><</click>> | +<<click "Large">><<set $activeSlave.labia = 1>><<replace "#labia">>Large.<</replace>><<StartingGirlsCost>><</click>> | <<click "Huge">><<set $activeSlave.labia = 2>><<replace "#labia">>Huge.<</replace>><<StartingGirlsCost>><</click>> <br> @@ -895,8 +905,8 @@ Her nationality is $activeSlave.nationality. <<else>>Excessive. <</if>> </span> -<<click "Dry">><<set $activeSlave.vaginaLube = 0>><<replace "#wetness">>Dry.<</replace>><<StartingGirlsCost>><</click>> | -<<click "Normal">><<set $activeSlave.vaginaLube = 1>><<replace "#wetness">>Normal.<</replace>><<StartingGirlsCost>><</click>> | +<<click "Dry">><<set $activeSlave.vaginaLube = 0>><<replace "#wetness">>Dry.<</replace>><<StartingGirlsCost>><</click>> | +<<click "Normal">><<set $activeSlave.vaginaLube = 1>><<replace "#wetness">>Normal.<</replace>><<StartingGirlsCost>><</click>> | <<click "Excessive">><<set $activeSlave.vaginaLube = 2>><<replace "#wetness">>Excessive.<</replace>><<StartingGirlsCost>><</click>> <br> @@ -1033,9 +1043,9 @@ Her nationality is $activeSlave.nationality. <<else>>@@color:cyan;Expert.@@ <</if>> </span> -<<click "Unskilled">><<set $activeSlave.oralSkill = 0>><<replace "#oralSkill">>Unskilled.<</replace>><<StartingGirlsCost>><</click>> | -<<click "Basic">><<set $activeSlave.oralSkill = 15>><<replace "#oralSkill">>@@color:cyan;Basic.@@<</replace>><<StartingGirlsCost>><</click>> | -<<click "Skilled">><<set $activeSlave.oralSkill = 35>><<replace "#oralSkill">>@@color:cyan;Skilled.@@<</replace>><<StartingGirlsCost>><</click>> | +<<click "Unskilled">><<set $activeSlave.oralSkill = 0>><<replace "#oralSkill">>Unskilled.<</replace>><<StartingGirlsCost>><</click>> | +<<click "Basic">><<set $activeSlave.oralSkill = 15>><<replace "#oralSkill">>@@color:cyan;Basic.@@<</replace>><<StartingGirlsCost>><</click>> | +<<click "Skilled">><<set $activeSlave.oralSkill = 35>><<replace "#oralSkill">>@@color:cyan;Skilled.@@<</replace>><<StartingGirlsCost>><</click>> | <<click "Expert">><<set $activeSlave.oralSkill = 65>><<replace "#oralSkill">>@@color:cyan;Expert.@@<</replace>><<StartingGirlsCost>><</click>> <br> @@ -1056,9 +1066,9 @@ Her nationality is $activeSlave.nationality. <<else>>@@color:cyan;Expert.@@ <</if>> </span> -<<click "Unskilled">><<set $activeSlave.whoreSkill = 0>><<replace "#whoreSkill">>Unskilled.<</replace>><<StartingGirlsCost>><</click>> | -<<click "Basic">><<set $activeSlave.whoreSkill = 15>><<replace "#whoreSkill">>@@color:cyan;Basic.@@<</replace>><<StartingGirlsCost>><</click>> | -<<click "Skilled">><<set $activeSlave.whoreSkill = 35>><<replace "#whoreSkill">>@@color:cyan;Skilled.@@<</replace>><<StartingGirlsCost>><</click>> | +<<click "Unskilled">><<set $activeSlave.whoreSkill = 0>><<replace "#whoreSkill">>Unskilled.<</replace>><<StartingGirlsCost>><</click>> | +<<click "Basic">><<set $activeSlave.whoreSkill = 15>><<replace "#whoreSkill">>@@color:cyan;Basic.@@<</replace>><<StartingGirlsCost>><</click>> | +<<click "Skilled">><<set $activeSlave.whoreSkill = 35>><<replace "#whoreSkill">>@@color:cyan;Skilled.@@<</replace>><<StartingGirlsCost>><</click>> | <<click "Expert">><<set $activeSlave.whoreSkill = 65>><<replace "#whoreSkill">>@@color:cyan;Expert.@@<</replace>><<StartingGirlsCost>><</click>> ''Entertainment:'' @@ -1069,9 +1079,9 @@ Her nationality is $activeSlave.nationality. <<else>>@@color:cyan;Expert.@@ <</if>> </span> -<<click "Unskilled">><<set $activeSlave.entertainSkill = 0>><<replace "#entertainSkill">>Unskilled.<</replace>><<StartingGirlsCost>><</click>> | -<<click "Basic">><<set $activeSlave.entertainSkill = 15>><<replace "#entertainSkill">>@@color:cyan;Basic.@@<</replace>><<StartingGirlsCost>><</click>> | -<<click "Skilled">><<set $activeSlave.entertainSkill = 35>><<replace "#entertainSkill">>@@color:cyan;Skilled.@@<</replace>><<StartingGirlsCost>><</click>> | +<<click "Unskilled">><<set $activeSlave.entertainSkill = 0>><<replace "#entertainSkill">>Unskilled.<</replace>><<StartingGirlsCost>><</click>> | +<<click "Basic">><<set $activeSlave.entertainSkill = 15>><<replace "#entertainSkill">>@@color:cyan;Basic.@@<</replace>><<StartingGirlsCost>><</click>> | +<<click "Skilled">><<set $activeSlave.entertainSkill = 35>><<replace "#entertainSkill">>@@color:cyan;Skilled.@@<</replace>><<StartingGirlsCost>><</click>> | <<click "Expert">><<set $activeSlave.entertainSkill = 65>><<replace "#entertainSkill">>@@color:cyan;Expert.@@<</replace>><<StartingGirlsCost>><</click>> <br> @@ -1082,7 +1092,7 @@ Her nationality is $activeSlave.nationality. <<else>>@@color:cyan;Skilled.@@ <</if>> </span> -<<click "Unskilled">><<set $activeSlave.combatSkill = 0>><<replace "#combatSkill">>Unskilled.<</replace>><<StartingGirlsCost>><</click>> | +<<click "Unskilled">><<set $activeSlave.combatSkill = 0>><<replace "#combatSkill">>Unskilled.<</replace>><<StartingGirlsCost>><</click>> | <<click "Skilled">><<set $activeSlave.combatSkill = 1>><<replace "#combatSkill">>@@color:cyan;Skilled.@@<</replace>><<StartingGirlsCost>><</click>> <br> @@ -1098,12 +1108,12 @@ Her nationality is $activeSlave.nationality. <<else>>@@color:orangered;Moronic.@@ <</if>> </span> -<<click "Brilliant">><<set $activeSlave.intelligence = 3>><<replace "#intelligence">>@@color:deepskyblue;Brilliant.@@<</replace>><<StartingGirlsCost>><</click>> | -<<click "Very smart">><<set $activeSlave.intelligence = 2>><<replace "#intelligence">>@@color:deepskyblue;Very smart.@@<</replace>><<StartingGirlsCost>><</click>> | -<<click "Smart">><<set $activeSlave.intelligence = 1>><<replace "#intelligence">>@@color:deepskyblue;Smart.@@<</replace>><<StartingGirlsCost>><</click>> | -<<click "Average intelligence">><<set $activeSlave.intelligence = 0>><<replace "#intelligence">>Average.<</replace>><<StartingGirlsCost>><</click>> | -<<click "Stupid">><<set $activeSlave.intelligence = -1>><<replace "#intelligence">>@@color:orangered;Stupid.@@<</replace>><<StartingGirlsCost>><</click>> | -<<click "Very stupid">><<set $activeSlave.intelligence = -2>><<replace "#intelligence">>@@color:orangered;Very stupid.@@<</replace>><<StartingGirlsCost>><</click>> | +<<click "Brilliant">><<set $activeSlave.intelligence = 3>><<replace "#intelligence">>@@color:deepskyblue;Brilliant.@@<</replace>><<StartingGirlsCost>><</click>> | +<<click "Very smart">><<set $activeSlave.intelligence = 2>><<replace "#intelligence">>@@color:deepskyblue;Very smart.@@<</replace>><<StartingGirlsCost>><</click>> | +<<click "Smart">><<set $activeSlave.intelligence = 1>><<replace "#intelligence">>@@color:deepskyblue;Smart.@@<</replace>><<StartingGirlsCost>><</click>> | +<<click "Average intelligence">><<set $activeSlave.intelligence = 0>><<replace "#intelligence">>Average.<</replace>><<StartingGirlsCost>><</click>> | +<<click "Stupid">><<set $activeSlave.intelligence = -1>><<replace "#intelligence">>@@color:orangered;Stupid.@@<</replace>><<StartingGirlsCost>><</click>> | +<<click "Very stupid">><<set $activeSlave.intelligence = -2>><<replace "#intelligence">>@@color:orangered;Very stupid.@@<</replace>><<StartingGirlsCost>><</click>> | <<click "Moronic">><<set $activeSlave.intelligence = -3>><<replace "#intelligence">>@@color:orangered;Moronic.@@<</replace>><<StartingGirlsCost>><</click>> <br> @@ -1114,7 +1124,7 @@ Her nationality is $activeSlave.nationality. <<else>>Uneducated. <</if>> </span> -<<click "Educated">><<set $activeSlave.intelligenceImplant = 1>><<replace "#intelligenceImplant">>@@color:deepskyblue;Educated.@@<</replace>><<StartingGirlsCost>><</click>> | +<<click "Educated">><<set $activeSlave.intelligenceImplant = 1>><<replace "#intelligenceImplant">>@@color:deepskyblue;Educated.@@<</replace>><<StartingGirlsCost>><</click>> | <<click "Uneducated">><<set $activeSlave.intelligenceImplant = 0>><<replace "#intelligenceImplant">>Uneducated.<</replace>><<StartingGirlsCost>><</click>> <br> @@ -1258,7 +1268,7 @@ Her nationality is $activeSlave.nationality. <<ToggleSexuality 0>> <</click>> -<br> +<br> XY attraction: <span id="decreaseXY"> @@ -1352,8 +1362,8 @@ XY attraction: <<click "Sexually idealistic">><<set $activeSlave.sexualFlaw = "idealistic">><<replace "#sexualFlaw">>@@color:red;$activeSlave.sexualFlaw.@@<</replace>><<StartingGirlsCost>><</click>> <br><br> -<<slaveCost $activeSlave>> <span id="finalize"> +<<slaveCost $activeSlave>> <<if $cash >= $slaveCost>> <<if $PC.career != "engineer">> <br> @@ -1370,15 +1380,17 @@ XY attraction: <<set $activeSlave.boobs = Number($activeSlave.boobs)>> <<set $activeSlave.boobs = Math.trunc($activeSlave.boobs/50)*50>> <<set $slaveWithoutBonuses = $activeSlave>> + <<slaveCost $activeSlave>> + <<set $cash -= $slaveCost>> <<goto "RG AS Dump">> <</click>> //This will apply your @@color:springgreen;career bonus@@ to her: <<if $PC.career is "capitalist">> one free level of @@color:cyan;prostitution skill.@@ <<elseif $PC.career is "mercenary">> - @@color:mediumaquamarine;+2 trust.@@ + @@color:mediumaquamarine;+10 trust.@@ <<elseif $PC.career is "slaver">> - @@color:hotpink;+2 devotion.@@ + @@color:hotpink;+10 devotion.@@ <<elseif $PC.career is "medicine">> free @@color:lime;basic implants.@@ <<elseif $PC.career is "celebrity">> @@ -1389,8 +1401,10 @@ XY attraction: @@color:mediumaquamarine;+1 trust@@ and @@color:hotpink;+1 devotion.@@ <<elseif $PC.career is "gang">> @@color:green;+5 health@@ and one free level of @@color:cyan;combat skill.@@ - <<else>> + <<elseif $PC.career is "wealth">> two free levels of @@color:cyan;sex skills.@@ + <<else>> + @@color:hotpink;+10 devotion,@@ one free level of @@color:cyan;prostitution skill@@ and @@color:cyan;entertainment skill,@@ and two free levels of @@color:cyan;sex skills.@@ <</if>>// <br> <<click "Add slave without career bonus">> @@ -1406,6 +1420,8 @@ XY attraction: <<set $activeSlave.boobs = Number($activeSlave.boobs)>> <<set $activeSlave.boobs = Math.trunc($activeSlave.boobs/50)*50>> <<set $slaveWithoutBonuses = $activeSlave>> + <<slaveCost $activeSlave>> + <<set $cash -= $slaveCost>> <<goto "RG AS Dump">> <</click>> <<else>> @@ -1423,6 +1439,8 @@ XY attraction: <<set $activeSlave.boobs = Number($activeSlave.boobs)>> <<set $activeSlave.boobs = Math.trunc($activeSlave.boobs/50)*50>> <<set $slaveWithoutBonuses = $activeSlave>> + <<slaveCost $activeSlave>> + <<set $cash -= $slaveCost>> <<goto "RG AS Dump">> <</click>> <br> @@ -1431,7 +1449,7 @@ XY attraction: //You lack the necessary funds to add this slave.// <</if>> <br> -[[Discard this slave and continue to the arcology|Acquisition]] +[[Discard this slave and continue|Acquisition]] </span> <br><br> @@ -1439,7 +1457,7 @@ __Archetypes:__ //Convenient combinations of slave attrib <br> <<click "Irish Rose">> <<set $archetyped = 1>> - <<set $activeSlave.nationality = "Irish", $startingGirlsNationality = "Irish">> + <<set $activeSlave.nationality = "Irish", $fixedNationality = "Irish">> <<StartingGirlsWorkaround>> <<StartingGirlsRefresh>> <<set $activeSlave.race = "white", $activeSlave.eyeColor = "green", $activeSlave.skin = "fair", $activeSlave.hColor = "red", $activeSlave.pubicHColor = "red", $activeSlave.markings = "heavily freckled">> @@ -1451,7 +1469,7 @@ __Archetypes:__ //Convenient combinations of slave attrib <<click "Cali Girl">> <<set $archetyped = 1>> <<set $activeSlave.nationality = "American">> - <<set $startingGirlsNationality = "American">> + <<set $fixedNationality = "American">> <<StartingGirlsWorkaround>> <<StartingGirlsRefresh>> <<set $activeSlave.eyeColor = "blue", $activeSlave.skin = "tanned", $activeSlave.hColor = "blonde", $activeSlave.pubicHColor = "blonde", $activeSlave.markings = "none", $activeSlave.height = 190, $activeSlave.face = 3, $activeSlave.muscles = 20, $activeSlave.weight = -20>> @@ -1506,7 +1524,7 @@ __Start over by selecting a nationality:__ <<print " <<click _nation>> - <<set $startingGirlsNationality to $basenationalities[" + _i + "]>> + <<set $fixedNationality to $basenationalities[" + _i + "]>> <<StartingGirlsWorkaround>> <<StartingGirlsRefresh>> <<SaleDescription>> diff --git a/src/npc/takeoverTarget.tw b/src/npc/takeoverTarget.tw new file mode 100644 index 0000000000000000000000000000000000000000..d074d831110496810f22628ca9105d8931badcc2 --- /dev/null +++ b/src/npc/takeoverTarget.tw @@ -0,0 +1,184 @@ +:: Takeover Target [nobr] + +<<set $ui to "start">> +<<set $showBodyMods to 1>> + +Before you deploy the <<if $PC.rumor is "wealth">>financial reserves that<<elseif $PC.rumor is "diligence">>carefully constructed plan that<<elseif $PC.rumor is "force">>mercenaries and <<if $continent == "Europe">>//maskirovka//<<else>>cover plan<</if>> that<<elseif $PC.rumor is "social engineering">>clever social manipulation that<<else>>optimistic plan you hope<</if>> will allow you to take over an arcology, you need to select a target. There are a number of vulnerable arcologies that you could <<if $PC.rumor is "wealth">>attempt a hostile takeover of<<elseif $PC.rumor is "diligence">>work to take over<<elseif $PC.rumor is "force">>attack<<elseif $PC.rumor is "social engineering">>infiltrate<<else>>aspire to take over<</if>> with a reasonable chance of success. Free Cities are volatile places, even compared to the troubled state of the rest of the world. There are always arcologies whose owners are on the brink of failure, and you could target one of them. +<<if $PC.career == "arcology owner">>(Since you've @@color:springgreen;owned an arcology before,@@ you identify more potential target arcologies than an novice might.)<</if>> +Alternatively, arcologies are being built every day, and their owners' control is often uncertain. @@color:orange;Which arcology will you target?@@ +<br><br> + +[[A newly constructed arcology|Terrain Intro][$targetArcology.type = "New"]] +<br> +//With many new arcologies being constructed, you will be able to select which area of the world and type of Free City you'd like your target arcology to be located in.// +<br> +//Recommended for new players.// +<hr style="margin:0"> +<<set _arcologyTypes = ["Supremacist", "Subjugationist", "Paternalist", "AssetExpansionist", "SlimnessEnthusiast", "TransformationFetishist", "BodyPurist", "MaturityPreferentialist", "YouthPreferentialist", "Pastoralist", "PhysicalIdealist", "ChattelReligionist", "RomanRevivalist", "EgyptianRevivalist", "EdoRevivalist", "ArabianRevivalist", "ChineseRevivalist", "Multiculturalist", "Repopulationist", "Eugenics"]>> +<<if $seeDicks != 0>><<set _arcologyTypes.push("GenderRadicalist")>><</if>> +<<if $seeDicks != 100>><<set _arcologyTypes.push("GenderFundamentalist")>><</if>> +<<if $seeExtreme != 0>><<set _arcologyTypes.push("Degradationist")>><</if>> +<<set _terrainTypes = ["urban", "urban", "rural", "rural", "rural", "marine", "marine", "oceanic", "ravine"]>> +<<set _continents = ["North America", "North America", "South America", "Europe", "Europe", "the Middle East", "Africa", "Asia", "Asia", "Australia", "Japan"]>> +<<set _races = ["white", "asian", "latina", "middle eastern", "indo-aryan", "pacific islander", "amerindian", "southern european", "semitic"]>> +<<set _targetArcologies = []>> +<<set _targets = 4>> +<<if $PC.career == "arcology owner">><<set _targets += 2>><</if>> +<<for $i to 0; $i < _targets; $i++>> + <<set $targetArcology = {}>> + <<set $targetArcology.type = _arcologyTypes.pluck()>> + <<switch $targetArcology.type>> + <<case "Supremacist">> + <<set $targetArcology.race = _races.random()>> + <<switch $targetArcology.race>> + <<case "white">> + <<set $targetArcology.name to $ArcologyNamesSupremacistWhite.random()>> + <<case "asian">> + <<set $targetArcology.name to $ArcologyNamesSupremacistAsian.random()>> + <<case "latina">> + <<set $targetArcology.name to $ArcologyNamesSupremacistLatina.random()>> + <<case "middle eastern">> + <<set $targetArcology.name to $ArcologyNamesSupremacistMiddleEastern.random()>> + <<case "black">> + <<set $targetArcology.name to $ArcologyNamesSupremacistBlack.random()>> + <<case "indo-aryan">> + <<set $targetArcology.name to $ArcologyNamesSupremacistIndoAryan.random()>> + <<case "pacific islander">> + <<set $targetArcology.name to $ArcologyNamesSupremacistPacificIslander.random()>> + <<case "amerindian">> + <<set $targetArcology.name to $ArcologyNamesSupremacistAmerindian.random()>> + <<case "southern european">> + <<set $targetArcology.name to $ArcologyNamesSupremacistSouthernEuropean.random()>> + <<case "semitic">> + <<set $targetArcology.name to $ArcologyNamesSupremacistSemitic.random()>> + <<default>> + <<set $targetArcology.name to "Arcology X-4">> + <</switch>> + <<case "Subjugationist">> + <<set $targetArcology.race = _races.random()>> + <<switch $targetArcology.race>> + <<case "white">> + <<set $targetArcology.name to $ArcologyNamesSubjugationistWhite.random()>> + <<case "asian">> + <<set $targetArcology.name to $ArcologyNamesSubjugationistAsian.random()>> + <<case "latina">> + <<set $targetArcology.name to $ArcologyNamesSubjugationistLatina.random()>> + <<case "middle eastern">> + <<set $targetArcology.name to $ArcologyNamesSubjugationistMiddleEastern.random()>> + <<case "black">> + <<set $targetArcology.name to $ArcologyNamesSubjugationistBlack.random()>> + <<case "indo-aryan">> + <<set $targetArcology.name to $ArcologyNamesSubjugationistIndoAryan.random()>> + <<case "pacific islander">> + <<set $targetArcology.name to $ArcologyNamesSubjugationistPacificIslander.random()>> + <<case "amerindian">> + <<set $targetArcology.name to $ArcologyNamesSubjugationistAmerindian.random()>> + <<case "southern european">> + <<set $targetArcology.name to $ArcologyNamesSubjugationistSouthernEuropean.random()>> + <<case "semitic">> + <<set $targetArcology.name to $ArcologyNamesSubjugationistSemitic.random()>> + <<default>> + <<set $targetArcology.name to "Arcology X-4">> + <</switch>> + <<case "GenderRadicalist">><<set $targetArcology.name to $ArcologyNamesGenderRadicalist.random()>> + <<case "GenderFundamentalist">><<set $targetArcology.name to $ArcologyNamesGenderFundamentalist.random()>> + <<case "Paternalist">><<set $targetArcology.name to $ArcologyNamesPaternalist.random()>> + <<case "Degradationist">><<set $targetArcology.name to $ArcologyNamesDegradationist.random()>> + <<case "AssetExpansionist">><<set $targetArcology.name to $ArcologyNamesAssetExpansionist.random()>> + <<case "SlimnessEnthusiast">><<set $targetArcology.name to $ArcologyNamesSlimnessEnthusiast.random()>> + <<case "TransformationFetishist">><<set $targetArcology.name to $ArcologyNamesTransformationFetishist.random()>> + <<case "BodyPurist">><<set $targetArcology.name to $ArcologyNamesBodyPurist.random()>> + <<case "MaturityPreferentialist">><<set $targetArcology.name to $ArcologyNamesMaturityPreferentialist.random()>> + <<case "YouthPreferentialist">><<set $targetArcology.name to $ArcologyNamesYouthPreferentialist.random()>> + <<case "Pastoralist">><<set $targetArcology.name to $ArcologyNamesPastoralist.random()>> + <<case "PhysicalIdealist">><<set $targetArcology.name to $ArcologyNamesPhysicalIdealist.random()>> + <<case "ChattelReligionist">><<set $targetArcology.name to $ArcologyNamesChattelReligionist.random()>> + <<case "RomanRevivalist">><<set $targetArcology.name to $ArcologyNamesRomanRevivalist.random()>> + <<case "EgyptianRevivalist">><<set $targetArcology.name to $ArcologyNamesEgyptianRevivalist.random()>> + <<case "EdoRevivalist">><<set $targetArcology.name to $ArcologyNamesEdoRevivalist.random()>> + <<case "ArabianRevivalist">><<set $targetArcology.name to $ArcologyNamesArabianRevivalist.random()>> + <<case "ChineseRevivalist">><<set $targetArcology.name to $ArcologyNamesChineseRevivalist.random()>> + <<case "Repopulationist">><<set $targetArcology.name to $ArcologyNamesRepopulationist.random()>> + <<case "Eugenics">><<set $targetArcology.name to $ArcologyNamesEugenics.random()>> + <<default>><<set $targetArcology.name to "Arcology X-4">> + <</switch>> + <<set $targetArcology.FSProgress = either(10,30,50)>> + <<set $targetArcology.prosperity = either(40,50,60)>> + <<set $targetArcology.citizens = random(-1,1)>> + <<set $targetArcology.terrain = _terrainTypes.random()>> + <<set $targetArcology.continent = _continents.random()>> + <<set _targetArcologies.push($targetArcology)>> +<</for>> +<<for $i to 0; $i < _targetArcologies.length; $i++>> + <<print "[[_targetArcologies[$i].name|Terrain Intro][$targetArcology to _targetArcologies[" + $i + "]]]">> is an established arcology located in a Free City + <<if _targetArcologies[$i].terrain == "urban">> + carved out of an urban area of _targetArcologies[$i].continent. + <<elseif _targetArcologies[$i].terrain == "rural">> + built in a rural area of _targetArcologies[$i].continent. + <<elseif _targetArcologies[$i].terrain == "marine">> + constructed just offshore of _targetArcologies[$i].continent. + <<elseif _targetArcologies[$i].terrain == "ravine">> + constructed in a large canyon of _targetArcologies[$i].continent. + <<else>> + in the middle of the ocean. + <</if>> + <<if _targetArcologies[$i].prosperity >= 60>> + <br> + It is unusually prosperous for a vulnerable arcology. + <<elseif _targetArcologies[$i].prosperity <= 40>> + <br> + It has little economic prosperity and is vulnerable. + <</if>> + <<if _targetArcologies[$i].citizens > 0>> + <br> + It has an unusually high ratio of citizens to sex slaves, increasing demand for sexual services. + <<elseif _targetArcologies[$i].citizens < 0>> + <br> + It has an unusually low ratio of citizens to sex slaves, reducing demand for sexual services. + <</if>> + <br> + Its society + <<if _targetArcologies[$i].FSProgress >= 50>> + has advanced towards + <<elseif _targetArcologies[$i].FSProgress >= 30>> + has devoted resources to + <<else>> + has just begun to adopt + <</if>> + <<switch _targetArcologies[$i].type>> + <<case "Supremacist">>@@color:orange;Supremacy of the _targetArcologies[$i].race race.@@ + <<case "Subjugationist">>@@color:orange;Subjugation of the _targetArcologies[$i].race race.@@ + <<case "GenderRadicalist">>@@color:orange;Gender Radicalism,@@ a movement that supports feminization of slavegirls with dicks. + <<case "GenderFundamentalist">>@@color:orange;Gender Fundamentalism,@@ a reaction to modern libertinism that seeks to reinforce gender roles. + <<case "Paternalist">>@@color:orange;Paternalism,@@ an optimistic strain of slavery that protects and improves slaves. + <<case "Degradationist">>@@color:orange;Degradationism,@@ an extreme branch of modern slavery that treats slaves as subhuman. + <<case "AssetExpansionist">>@@color:orange;Asset Expansionism,@@ a societal preoccupation with expansion of body parts, especially breasts. + <<case "SlimnessEnthusiast">>@@color:orange;Slimness Enthusiasm,@@ an aesthetic movement that fetishizes the lithe female form. + <<case "TransformationFetishist">>@@color:orange;Transformation Fetishism,@@ a focus on implants and other kinds of surgical alteration. + <<case "BodyPurist">>@@color:orange;Body Purism,@@ a reaction to extreme surgical fetishism that prefers bodies grown biologically. + <<case "MaturityPreferentialist">>@@color:orange;Maturity Preferentialism,@@ an appetite for mature slaves based on MILF fetishism. + <<case "YouthPreferentialist">>@@color:orange;Youth Preferentialism,@@ which focuses on youth and virginity in slaves. + <<case "Pastoralist">>@@color:orange;Pastoralism,@@ an appetite for products of the human body, especially milk. + <<case "PhysicalIdealist">>@@color:orange;Physical Idealism,@@ an aspirational movement which fetishizes muscle and physical fitness. + <<case "ChattelReligionist">>@@color:orange;Chattel Religionism,@@ a religious revival in the context of modern slavery. + <<case "RomanRevivalist">>@@color:orange;Roman Revivalism,@@ which seeks to recreate the glory that was ancient Rome. + <br> + It has an established lingua franca: Latin. + <<case "EgyptianRevivalist">>@@color:orange;Egyptian Revivalism,@@ a movement to rebuild the monuments and greatness of ancient Egypt. + <br> + It has an established lingua franca: Ancient Egyptian. + <<case "EdoRevivalist">>@@color:orange;Edo Revivalism,@@ an insular movement with a focus on the cultural superiority of old Japan. + <br> + It has an established lingua franca: Japanese. + <<case "ArabianRevivalist">>@@color:orange;Arabian Revivalism,@@ a melding of Arabian history and recent mythology of the Near East. + <br> + It has an established lingua franca: Arabic. + <<case "ChineseRevivalist">>@@color:orange;Chinese Revivalism,@@ which modernizes the assumed superiority of the Middle Kingdom. + <br> + It has an established lingua franca: Chinese. + <<case "Repopulationist">>@@color:orange;Repopulationism,@@ the belief that the key to humanity's survival is a child in every fertile womb. + <<case "Eugenics">>@@color:orange;Eugenics,@@ the belief that the world's failings were caused by rampant breeding of the inferior, and as such, only society's best should reproduce. + <<default>>@@color:orange;Multiculturalism,@@ a celebration of the total liberty that was the original purpose of the Free Cities. + <</switch>> + <hr style="margin:0"> +<</for>> \ No newline at end of file diff --git a/src/npc/uploadSlave.tw b/src/npc/uploadSlave.tw index 7a5b7c112f7902bfa08a57a6e8b40d141648a099..df199748376c9b45e469dc61f377902197bfc50a 100644 --- a/src/npc/uploadSlave.tw +++ b/src/npc/uploadSlave.tw @@ -12,6 +12,6 @@ <<nobr>> VERSION: $ver.<br> -slaveName: "$activeSlave.slaveName", birthName: "$activeSlave.birthName", weekAcquired: 1, origin: <<if $activeSlave.origin == 0>>0<<else>>"$activeSlave.origin"<</if>>, career: <<if $activeSlave.career == 0>>0<<else>>"$activeSlave.career"<</if>>, ID: $activeSlave.ID, pornFame: $activeSlave.pornFame, pornFameSpending: $activeSlave.pornFameSpending, prestige: $activeSlave.prestige, prestigeDesc: "$activeSlave.prestigeDesc", recruiter: 0, relation: 0, relationTarget: 0, relationship: 0, relationshipTarget: 0, rivalry: 0, rivalryTarget: 0, subTarget: 0, choosesOwnAssignment: 0, assignment: "rest", assignmentVisible: 1, sentence: 0, training: 0, toyHole: "all her holes", indenture: -1, indentureRestrictions: 0, birthWeek: random(0,51), age: $activeSlave.age, ageImplant: $activeSlave.ageImplant, health: $activeSlave.health, minorInjury: 0, trust: $activeSlave.trust, oldTrust: $activeSlave.trust, devotion: $activeSlave.devotion, oldDevotion: $activeSlave.devotion, weight: $activeSlave.weight, muscles: $activeSlave.muscles, height: $activeSlave.height, heightImplant: $activeSlave.heightImplant, nationality: "$activeSlave.nationality", race: "$activeSlave.race", markings: "none", eyes: 1, eyeColor: "$activeSlave.eyeColor", eyewear: "none", hColor: "$activeSlave.hColor", pubicHColor: "$activeSlave.pubicHColor", skin: "$activeSlave.skin", hLength: $activeSlave.hLength, hStyle: "$activeSlave.hStyle", pubicHStyle: "$activeSlave.pubicHStyle", waist: $activeSlave.waist, corsetPiercing: 0, amp: $activeSlave.amp, heels: $activeSlave.heels, voice: $activeSlave.voice, voiceImplant: $activeSlave.voiceImplant, accent: $activeSlave.accent, shoulders: $activeSlave.shoulders, shouldersImplant: $activeSlave.shouldersImplant, boobs: $activeSlave.boobs, boobsImplant: $activeSlave.boobsImplant, boobsImplantType: $activeSlave.boobsImplantType, boobShape: "normal", nipples: "$activeSlave.nipples", nipplesPiercing: $activeSlave.nipplesPiercing, areolae: $activeSlave.areolae, areolaePiercing: $activeSlave.areolaePiercing, boobsTat: "$activeSlave.boobsTat", lactation: $activeSlave.lactation, lactationAdaptation: 0, milk: 0, cum: 0, hips: $activeSlave.hips, hipsImplant: $activeSlave.hipsImplant, butt: $activeSlave.butt, buttImplant: $activeSlave.buttImplant, buttImplantType: $activeSlave.buttImplantType, buttTat: "$activeSlave.buttTat", face: $activeSlave.face, faceImplant: $activeSlave.faceImplant, faceShape: "normal", lips: $activeSlave.lips, lipsImplant: $activeSlave.lipsImplant, lipsPiercing: $activeSlave.lipsPiercing, lipsTat: "$activeSlave.lipsTat", teeth: "$activeSlave.teeth", tonguePiercing: $activeSlave.tonguePiercing, vagina: $activeSlave.vagina, vaginaLube: $activeSlave.vaginaLube, vaginaPiercing: $activeSlave.vaginaPiercing, vaginaTat: "$activeSlave.vaginaTat", preg: $activeSlave.preg, pregSource: 0, pregType: 0, labor: 0, births: $activeSlave.births, cSec: 0, bellyAccessory: "none", labia: $activeSlave.labia, clit: $activeSlave.clit, clitPiercing: $activeSlave.clitPiercing, clitSetting: "$activeSlave.clitSetting", foreskin: 0, anus: $activeSlave.anus, dick: $activeSlave.dick, analArea: 1, dickPiercing: $activeSlave.dickPiercing, dickTat: "$activeSlave.dickTat", balls: $activeSlave.balls, scrotum: 0, ovaries: $activeSlave.ovaries, anusPiercing: $activeSlave.anusPiercing, anusTat: "$activeSlave.anusTat", makeup: $activeSlave.makeup, nails: $activeSlave.nails, brand: <<if $activeSlave.brand == 0>>0<<else>>"$activeSlave.brand "<</if>>, brandLocation: <<if $activeSlave.brandLocation == 0>>0<<else>>"$activeSlave.brandLocation"<</if>>, earPiercing: $activeSlave.earPiercing, nosePiercing: $activeSlave.nosePiercing, eyebrowPiercing: $activeSlave.eyebrowPiercing, navelPiercing: $activeSlave.navelPiercing, shouldersTat: "$activeSlave.shouldersTat", armsTat: "$activeSlave.armsTat", legsTat: "$activeSlave.legsTat", backTat: "$activeSlave.backTat", stampTat: "$activeSlave.stampTat", vaginalSkill: $activeSlave.vaginalSkill, oralSkill: $activeSlave.oralSkill, analSkill: $activeSlave.analSkill, whoreSkill: $activeSlave.whoreSkill, entertainSkill: $activeSlave.entertainSkill, combatSkill: $activeSlave.combatSkill, livingRules: "$activeSlave.livingRules", speechRules: "$activeSlave.speechRules", releaseRules: "$activeSlave.releaseRules", relationshipRules: "$activeSlave.relationshipRules", standardPunishment: "situational", standardReward: "situational", useRulesAssistant: 1, diet: "$activeSlave.diet", dietCum: $activeSlave.dietCum, dietMilk: $activeSlave.dietMilk, tired: 0, hormones: 0, drugs: "$activeSlave.drugs", curatives: 0, chem: 0, aphrodisiacs: 0, addict: $activeSlave.addict, fuckdoll: 0, choosesOwnClothes: 0, clothes: "$activeSlave.clothes", collar: "$activeSlave.collar", shoes: "$activeSlave.shoes", vaginalAccessory: "none", dickAccessory: "none", buttplug: "none", intelligence: $activeSlave.intelligence, intelligenceImplant: $activeSlave.intelligenceImplant, energy: $activeSlave.energy, attrXX: $activeSlave.attrXX, attrXY: $activeSlave.attrXY, attrKnown: $activeSlave.attrKnown, fetish: "$activeSlave.fetish", fetishStrength: $activeSlave.fetishStrength, fetishKnown: $activeSlave.fetishKnown, behavioralFlaw: "$activeSlave.behavioralFlaw", behavioralQuirk: "none", sexualFlaw: "$activeSlave.sexualFlaw", sexualQuirk: "none", oralCount: 0, vaginalCount: 0, analCount: 0, mammaryCount: 0, penetrativeCount: 0, pitKills: 0, customTat: "$activeSlave.customTat", customLabel: "", customDesc: "$activeSlave.customDesc", currentRules: $activeSlave.currentRules +slaveName: "$activeSlave.slaveName", birthName: "$activeSlave.birthName", weekAcquired: 1, origin: <<if $activeSlave.origin == 0>>0<<else>>"$activeSlave.origin"<</if>>, career: <<if $activeSlave.career == 0>>0<<else>>"$activeSlave.career"<</if>>, ID: $activeSlave.ID, pornFame: $activeSlave.pornFame, pornFameSpending: $activeSlave.pornFameSpending, prestige: $activeSlave.prestige, prestigeDesc: "$activeSlave.prestigeDesc", recruiter: 0, relation: 0, relationTarget: 0, relationship: 0, relationshipTarget: 0, rivalry: 0, rivalryTarget: 0, subTarget: 0, choosesOwnAssignment: 0, assignment: "rest", assignmentVisible: 1, sentence: 0, training: 0, toyHole: "all her holes", indenture: -1, indentureRestrictions: 0, birthWeek: random(0,51), age: $activeSlave.age, ageImplant: $activeSlave.ageImplant, health: $activeSlave.health, minorInjury: 0, trust: $activeSlave.trust, oldTrust: $activeSlave.trust, devotion: $activeSlave.devotion, oldDevotion: $activeSlave.devotion, weight: $activeSlave.weight, muscles: $activeSlave.muscles, height: $activeSlave.height, heightImplant: $activeSlave.heightImplant, nationality: "$activeSlave.nationality", race: "$activeSlave.race", markings: "none", eyes: 1, eyeColor: "$activeSlave.eyeColor", eyewear: "none", hColor: "$activeSlave.hColor", pubicHColor: "$activeSlave.pubicHColor", skin: "$activeSlave.skin", hLength: $activeSlave.hLength, hStyle: "$activeSlave.hStyle", pubicHStyle: "$activeSlave.pubicHStyle", waist: $activeSlave.waist, corsetPiercing: 0, amp: $activeSlave.amp, heels: $activeSlave.heels, voice: $activeSlave.voice, voiceImplant: $activeSlave.voiceImplant, accent: $activeSlave.accent, shoulders: $activeSlave.shoulders, shouldersImplant: $activeSlave.shouldersImplant, boobs: $activeSlave.boobs, boobsImplant: $activeSlave.boobsImplant, boobsImplantType: $activeSlave.boobsImplantType, boobShape: "normal", nipples: "$activeSlave.nipples", nipplesPiercing: $activeSlave.nipplesPiercing, areolae: $activeSlave.areolae, areolaePiercing: $activeSlave.areolaePiercing, boobsTat: "$activeSlave.boobsTat", lactation: $activeSlave.lactation, lactationAdaptation: 0, milk: 0, cum: 0, hips: $activeSlave.hips, hipsImplant: $activeSlave.hipsImplant, butt: $activeSlave.butt, buttImplant: $activeSlave.buttImplant, buttImplantType: $activeSlave.buttImplantType, buttTat: "$activeSlave.buttTat", face: $activeSlave.face, faceImplant: $activeSlave.faceImplant, faceShape: "normal", lips: $activeSlave.lips, lipsImplant: $activeSlave.lipsImplant, lipsPiercing: $activeSlave.lipsPiercing, lipsTat: "$activeSlave.lipsTat", teeth: "$activeSlave.teeth", tonguePiercing: $activeSlave.tonguePiercing, vagina: $activeSlave.vagina, vaginaLube: $activeSlave.vaginaLube, vaginaPiercing: $activeSlave.vaginaPiercing, vaginaTat: "$activeSlave.vaginaTat", preg: $activeSlave.preg, pregSource: 0, pregType: 0, labor: 0, births: $activeSlave.births, cSec: 0, bellyAccessory: "none", labia: $activeSlave.labia, clit: $activeSlave.clit, clitPiercing: $activeSlave.clitPiercing, clitSetting: "$activeSlave.clitSetting", foreskin: 0, anus: $activeSlave.anus, dick: $activeSlave.dick, analArea: 1, dickPiercing: $activeSlave.dickPiercing, dickTat: "$activeSlave.dickTat", balls: $activeSlave.balls, scrotum: 0, ovaries: $activeSlave.ovaries, anusPiercing: $activeSlave.anusPiercing, anusTat: "$activeSlave.anusTat", makeup: $activeSlave.makeup, nails: $activeSlave.nails, brand: <<if $activeSlave.brand == 0>>0<<else>>"$activeSlave.brand "<</if>>, brandLocation: <<if $activeSlave.brandLocation == 0>>0<<else>>"$activeSlave.brandLocation"<</if>>, earPiercing: $activeSlave.earPiercing, nosePiercing: $activeSlave.nosePiercing, eyebrowPiercing: $activeSlave.eyebrowPiercing, navelPiercing: $activeSlave.navelPiercing, shouldersTat: "$activeSlave.shouldersTat", armsTat: "$activeSlave.armsTat", legsTat: "$activeSlave.legsTat", backTat: "$activeSlave.backTat", stampTat: "$activeSlave.stampTat", vaginalSkill: $activeSlave.vaginalSkill, oralSkill: $activeSlave.oralSkill, analSkill: $activeSlave.analSkill, whoreSkill: $activeSlave.whoreSkill, entertainSkill: $activeSlave.entertainSkill, combatSkill: $activeSlave.combatSkill, livingRules: "$activeSlave.livingRules", speechRules: "$activeSlave.speechRules", releaseRules: "$activeSlave.releaseRules", relationshipRules: "$activeSlave.relationshipRules", standardPunishment: "situational", standardReward: "situational", useRulesAssistant: 1, diet: "$activeSlave.diet", dietCum: $activeSlave.dietCum, dietMilk: $activeSlave.dietMilk, tired: 0, hormones: 0, drugs: "$activeSlave.drugs", curatives: 0, chem: 0, aphrodisiacs: 0, addict: $activeSlave.addict, fuckdoll: 0, choosesOwnClothes: 0, clothes: "$activeSlave.clothes", collar: "$activeSlave.collar", shoes: "$activeSlave.shoes", vaginalAccessory: "none", dickAccessory: "none", buttplug: "none", intelligence: $activeSlave.intelligence, intelligenceImplant: $activeSlave.intelligenceImplant, energy: $activeSlave.energy, attrXX: $activeSlave.attrXX, attrXY: $activeSlave.attrXY, attrKnown: $activeSlave.attrKnown, fetish: "$activeSlave.fetish", fetishStrength: $activeSlave.fetishStrength, fetishKnown: $activeSlave.fetishKnown, behavioralFlaw: "$activeSlave.behavioralFlaw", behavioralQuirk: "none", sexualFlaw: "$activeSlave.sexualFlaw", sexualQuirk: "none", oralCount: 0, vaginalCount: 0, analCount: 0, mammaryCount: 0, penetrativeCount: 0, pitKills: 0, customTat: "$activeSlave.customTat", customLabel: "", customDesc: "$activeSlave.customDesc", customImage: 0, currentRules: $activeSlave.currentRules <</nobr>> \ No newline at end of file diff --git a/src/pregmod/extendedFamilyWidgets.tw b/src/pregmod/extendedFamilyWidgets.tw new file mode 100644 index 0000000000000000000000000000000000000000..666c45bac065d89caa5627681a6660dd41141986 --- /dev/null +++ b/src/pregmod/extendedFamilyWidgets.tw @@ -0,0 +1,900 @@ +:: extended family widgets [nobr widget] + +<<widget "Family">> + +/*testtest PC parent passage - determines if the current slave is your mother or father*/ +<<if $activeSlave.ID == $PC.mother && $activeSlave.ID == $PC.father>> + She @@color:lightgreen;is both your mother and father, $pronoun impregnated <<print $object>>self with you.@@ +<<elseif $activeSlave.ID == $PC.mother>> + $pronounCap @@color:lightgreen;is your mother.@@ +<<elseif $activeSlave.ID == $PC.father>> + $pronounCap @@color:lightgreen;is your father.@@ +<</if>> + +<<if $activeSlave.father == -1 && $activeSlave.mother == -1>> + $pronounCap's @@color:lightgreen;your child;@@ you knocked yourself up and gave birth to $object. +<</if>> + +<<if $activeSlave.father == -1 && $activeSlave.mother != -1>> + $pronounCap's @@color:lightgreen;your child;@@ you knocked $possessive mother up. +<<elseif $activeSlave.father > 0>> + <<for $i to 0; $i < $slaves.length; $i++>> + <<if $slaves[$i].ID == $activeSlave.father>> + $pronounCap was @@color:lightgreen;fathered by $slaves[$i].slaveName's@@ virile dick. + <<break>> + <</if>> + <</for>> +<</if>> + +<<if $activeSlave.father != -1 && $activeSlave.mother == -1>> + $pronounCap's @@color:lightgreen;your child;@@ you gave birth to $object. +<<elseif $activeSlave.mother > 0>> + <<for $i to 0; $i < $slaves.length; $i++>> + <<if $slaves[$i].ID == $activeSlave.mother>> + $pronounCap was @@color:lightgreen;born from $slaves[$i].slaveName's@@ fertile womb. + <<break>> + <</if>> + <</for>> +<</if>> + +<<for $i to 0; $i < $slaves.length; $i++>> + <<if $activeSlave.ID == $slaves[$i].father>> + <<set $children.push($slaves[$i])>> + <</if>> +<</for>> +<<if $children.length > 2>> + $pronounCap @@color:lightgreen;fathered + <<for $j to 0; $j < $children.length; $j++>> + <<if $j < $children.length-1>> + $children[$j].slaveName, + <<else>> + and $children[$j].slaveName.@@ + <</if>> + <</for>> +<<elseif $children.length > 1>> + $pronounCap @@color:lightgreen;fathered a pair of your slaves: $children[0].slaveName, and $children[1].slaveName.@@ +<<elseif $children.length > 0>> + $pronounCap @@color:lightgreen;fathered a single slave of yours: $children[0].slaveName.@@ +<</if>> +<<set $children = []>> + +<<for $i to 0; $i < $slaves.length; $i++>> + <<if $activeSlave.ID == $slaves[$i].mother>> + <<set $children.push($slaves[$i])>> + <</if>> +<</for>> +<<if $children.length > 2>> + $pronounCap @@color:lightgreen;gave birth to + <<for $j to 0; $j < $children.length; $j++>> + <<if $j < $children.length-1>> + $children[$j].slaveName, + <<else>> + and $children[$j].slaveName.@@ + <</if>> + <</for>> +<<elseif $children.length > 1>> + $pronounCap @@color:lightgreen;gave birth to a pair of your slaves: $children[0].slaveName, and $children[1].slaveName.@@ +<<elseif $children.length > 0>> + $pronounCap @@color:lightgreen;gave birth to a single of your slaves: $children[0].slaveName.@@ +<</if>> +<<set $children = []>> + + +/*testtest maternal grandma passage - determines if the current slave has a maternal grandmother*/ +<<for $i to 0; $i < $slaves.length; $i++>> + <<if $slaves[$i].ID != $activeSlave.ID && $slaves[$i].ID == $activeSlave.mother>> + <<for $j to 0; $j < $slaves.length; $j++>> + <<if $slaves[$j].ID != $activeSlave.ID && $slaves[$j].ID != $slaves[$i].ID && $slaves[$j].ID == $slaves[$i].mother>> + $pronounCap maternal @@color:lightgreen;grandmother is $slaves[$j].slaveName.@@ + <</if>> + <</for>> + <<elseif $PC.ID == $activeSlave.mother && $slaves[$i].ID == $PC.mother>> + $pronounCap maternal @@color:lightgreen;grandmother is $slaves[$i].slaveName.@@ + <</if>> +<</for>> + +/*testtest maternal grandpa passage - determines if the current slave has a maternal grandfather*/ +<<for $i to 0; $i < $slaves.length; $i++>> + <<if $slaves[$i].ID != $activeSlave.ID && $slaves[$i].ID == $activeSlave.mother>> + <<for $j to 0; $j < $slaves.length; $j++>> + <<if $slaves[$j].ID != $activeSlave.ID && $slaves[$j].ID != $slaves[$i].ID && $slaves[$j].ID == $slaves[$i].father>> + $pronounCap maternal @@color:lightgreen;grandfather is $slaves[$j].slaveName.@@ + <</if>> + <</for>> + <<elseif $PC.ID == $activeSlave.mother && $slaves[$i].ID == $PC.father>> + $pronounCap maternal @@color:lightgreen;grandfather is $slaves[$i].slaveName.@@ + <</if>> +<</for>> + +/*testtest paternal grandma passage - determines if the current slave has a paternal grandmother*/ +<<for $i to 0; $i < $slaves.length; $i++>> + <<if $slaves[$i].ID != $activeSlave.ID && $slaves[$i].ID == $activeSlave.father>> + <<for $j to 0; $j < $slaves.length; $j++>> + <<if $slaves[$j].ID != $activeSlave.ID && $slaves[$j].ID != $slaves[$i].ID && $slaves[$j].ID == $slaves[$i].mother>> + $pronounCap paternal @@color:lightgreen;grandmother is $slaves[$j].slaveName.@@ + <</if>> + <</for>> + <<elseif $PC.ID == $activeSlave.father && $slaves[$i].ID == $PC.mother>> + $pronounCap paternal @@color:lightgreen;grandmother is $slaves[$i].slaveName.@@ + <</if>> +<</for>> + +/*testtest paternal grandpa passage - determines if the current slave has a paternal grandfather*/ +<<for $i to 0; $i < $slaves.length; $i++>> + <<if $slaves[$i].ID != $activeSlave.ID && $slaves[$i].ID == $activeSlave.father>> + <<for $j to 0; $j < $slaves.length; $j++>> + <<if $slaves[$j].ID != $activeSlave.ID && $slaves[$j].ID != $slaves[$i].ID && $slaves[$j].ID == $slaves[$i].father>> + $pronounCap paternal @@color:lightgreen;grandfather is $slaves[$j].slaveName.@@ + <</if>> + <</for>> + <<elseif $PC.ID == $activeSlave.father && $slaves[$i].ID == $PC.father>> + $pronounCap paternal @@color:lightgreen;grandfather is $slaves[$i].slaveName.@@ + <</if>> +<</for>> + +/*testtest PC grandparents passage - determines if the current slave is your grandparent*/ +<<for $i to 0; $i < $slaves.length; $i++>> + <<if $slaves[$i].ID != $activeSlave.ID>> + <<if $activeSlave.ID == $slaves[$i].mother && $slaves[$i].ID == $PC.mother && $activeSlave.ID == $slaves[$i].father && $slaves[$i].ID == $PC.father>> + $pronounCap is @@color:lightgreen;your grandparent.@@ $pronounCap impregnated <<print $object>>self with your mother/father who in turn impregnated themselves with you. + <<elseif $activeSlave.ID == $slaves[$i].mother>> + <<if $slaves[$i].ID == $PC.mother>> + $pronounCap is @@color:lightgreen;your maternal grandmother.@@ + <<elseif $slaves[$i].ID == $PC.father>> + $pronounCap is @@color:lightgreen;your paternal grandmother.@@ + <</if>> + <<elseif $activeSlave.ID == $slaves[$i].father>> + <<if $slaves[$i].ID == $PC.mother>> + $pronounCap is @@color:lightgreen;your maternal grandfather.@@ + <<elseif $slaves[$i].ID == $PC.father>> + $pronounCap is @@color:lightgreen;your paternal grandfather.@@ + <</if>> + <</if>> + <</if>> +<</for>> + +/*testtest grandchild passage - determines how many grandchildren the current slave has*/ +<<for $i to 0; $i < $slaves.length; $i++>> + <<if $slaves[$i].ID != $activeSlave.ID>> + <<if $activeSlave.ID == $slaves[$i].mother or $activeSlave.ID == $slaves[$i].father>> + <<for $j to 0; $j < $slaves.length; $j++>> + <<if $slaves[$i].ID != $slaves[$j].ID>> + <<if $slaves[$i].ID == $slaves[$j].mother or $slaves[$i].ID == $slaves[$j].father>> + <<set $children.push($slaves[$j])>> + <</if>> + <</if>> + <</for>> + <</if>> + <</if>> +<</for>> +<<if $children.length > 0>> + $pronounCap +<<if $children.length > 2>> + has @@color:lightgreen;many grandchildren, + <<for $j to 0; $j < $children.length; $j++>> + <<if $j < $children.length-1>> + $children[$j].slaveName, + <<else>> + and $children[$j].slaveName amongst your slaves.@@ + <</if>> + <</for>> +<<elseif $children.length > 1>> + has @@color:lightgreen;two grandchildren, $children[0].slaveName, and $children[1].slaveName as your slaves.@@ +<<elseif $children.length > 0>> + has a @@color:lightgreen;grandchild, $children[0].slaveName as your slave.@@ +<</if>> +<</if>> +<<set $children = []>> + +/*testtest PC aunt passage - determines how many aunts you have*/ +<<for $i to 0; $i < $slaves.length; $i++>> + <<if $slaves[$i].ID != $activeSlave.ID>> + <<if areSisters($slaves[$i], $activeSlave) == 1 || areSisters($slaves[$i], $activeSlave) == 2>> + <<if $slaves[$i].ID == $PC.mother || $slaves[$i].ID == $PC.father>> + <<for $j to 0; $j < $slaves.length; $j++>> + <<if $slaves[$i].ID != $slaves[$j].ID >> + <<if $slaves[$j].vagina > -1>> + <<if areSisters($slaves[$j], $activeSlave) == 1 || areSisters($slaves[$j], $activeSlave) == 2>> + <<set $children.push($slaves[$j])>> + <</if>> + <</if>> + <</if>> + <</for>> + <</if>> + <</if>> + <</if>> +<</for>> +<<if $activeSlave.vagina > -1 && $children.length > 0>> + $pronounCap + <<if $children.length > 2>> + is @@color:lightgreen;your aunt along with + <<for $j to 0; $j < $children.length; $j++>> + <<if $j < $children.length-1>> + $children[$j].slaveName, + <<else>> + and $children[$j].slaveName.@@ + <</if>> + <</for>> + <<elseif $children.length > 1>> + is @@color:lightgreen;your aunt along with $children[0].slaveName.@@ + <<elseif $children.length > 0>> + <<for $i to 0; $i < $slaves.length; $i++>> + <<if $slaves[$i].ID != $activeSlave.ID && $activeSlave.vagina > -1>> + <<if areSisters($slaves[$i], $activeSlave) == 1 || areSisters($slaves[$i], $activeSlave) == 2>> + <<if $slaves[$i].ID == $PC.mother || $slaves[$i].ID == $PC.father>> + $pronounCap is @@color:lightgreen;your aunt.@@ + <</if>> + <</if>> + <</if>> + <</for>> + <</if>> +<</if>> +<<set $children = []>> + +/*testtest PC uncle passage - determines how many uncles you have*/ +<<for $i to 0; $i < $slaves.length; $i++>> + <<if $slaves[$i].ID != $activeSlave.ID>> + <<if areSisters($slaves[$i], $activeSlave) == 1 || areSisters($slaves[$i], $activeSlave) == 2>> + <<if $slaves[$i].ID == $PC.mother || $slaves[$i].ID == $PC.father>> + <<for $j to 0; $j < $slaves.length; $j++>> + <<if $slaves[$i].ID != $slaves[$j].ID && $slaves[$j].dick > 0 && $slaves[$j].vagina == -1>> + <<if areSisters($slaves[$j], $activeSlave) == 1 || areSisters($slaves[$j], $activeSlave) == 2>> + <<set $children.push($slaves[$j])>> + <</if>> + <</if>> + <</for>> + <</if>> + <</if>> + <</if>> +<</for>> +<<if $activeSlave.dick > 0 && $activeSlave.vagina == -1 && $children.length > 0>> + $pronounCap + <<if $children.length > 2>> + is @@color:lightgreen;your uncle along with + <<for $j to 0; $j < $children.length; $j++>> + <<if $j < $children.length-1>> + $children[$j].slaveName, + <<else>> + and $children[$j].slaveName.@@ + <</if>> + <</for>> + <<elseif $children.length > 1>> + is @@color:lightgreen;your uncle along with $children[0].slaveName.@@ + <<elseif $children.length > 0>> + <<for $i to 0; $i < $slaves.length; $i++>> + <<if $slaves[$i].ID != $activeSlave.ID && $activeSlave.dick > 0 && $activeSlave.vagina == -1>> + <<if areSisters($slaves[$i], $activeSlave) == 1 || areSisters($slaves[$i], $activeSlave) == 2>> + <<if $slaves[$i].ID == $PC.mother || $slaves[$i].ID == $PC.father>> + $pronounCap is @@color:lightgreen;your uncle.@@ + <</if>> + <</if>> + <</if>> + <</for>> + <</if>> +<</if>> +<<set $children = []>> + +/*testtest aunt passage - determines how many aunts a slave has*/ +<<for $i to 0; $i < $slaves.length; $i++>> + <<if $slaves[$i].ID != $activeSlave.ID>> + <<if $slaves[$i].ID == $activeSlave.mother || $slaves[$i].ID == $activeSlave.father>> + <<for $j to 0; $j < $slaves.length; $j++>> + <<if $slaves[$j].vagina > -1>> + <<if areSisters($slaves[$j], $slaves[$i]) == 1 || areSisters($slaves[$j], $slaves[$i]) == 2>> + <<set $children.push($slaves[$j])>> + <</if>> + <</if>> + <</for>> + <</if>> + <</if>> +<</for>> +<<if $children.length > 0>> + $pronounCap +<<if $children.length > 2>> + has @@color:lightgreen;many aunts, + <<for $j to 0; $j < $children.length; $j++>> + <<if $j < $children.length-1>> + $children[$j].slaveName, + <<else>> + and $children[$j].slaveName.@@ + <</if>> + <</for>> +<<elseif $children.length > 1>> + has @@color:lightgreen;two aunts, $children[0].slaveName, and $children[1].slaveName.@@ +<<elseif $children.length > 0>> + has @@color:lightgreen;an aunt, $children[0].slaveName.@@ +<</if>> +<</if>> +<<set $children = []>> + +/*testtest uncle passage - determines how many uncles a slave has*/ +<<for $i to 0; $i < $slaves.length; $i++>> + <<if $slaves[$i].ID != $activeSlave.ID>> + <<if $slaves[$i].ID == $activeSlave.mother || $slaves[$i].ID == $activeSlave.father>> + <<for $j to 0; $j < $slaves.length; $j++>> + <<if $slaves[$j].dick > 0 && $slaves[$j].vagina == -1>> + <<if areSisters($slaves[$j], $slaves[$i]) == 1 || areSisters($slaves[$j], $slaves[$i]) == 2>> + <<set $children.push($slaves[$j])>> + <</if>> + <</if>> + <</for>> + <</if>> + <</if>> +<</for>> +<<if $activeSlave.vagina > -1 && $children.length > 0>> + $pronounCap +<<if $children.length > 2>> + has @@color:lightgreen;many aunts, + <<for $j to 0; $j < $children.length; $j++>> + <<if $j < $children.length-1>> + $children[$j].slaveName, + <<else>> + and $children[$j].slaveName.@@ + <</if>> + <</for>> +<<elseif $children.length > 1>> + has @@color:lightgreen;two aunts, $children[0].slaveName, and $children[1].slaveName.@@ +<<elseif $children.length > 0>> + has @@color:lightgreen;an aunt, $children[0].slaveName.@@ +<</if>> +<</if>> +<<set $children = []>> + +/*testtest PC niece passage - determines how many nieces you have*/ +<<for $i to 0; $i < $slaves.length; $i++>> + <<if $slaves[$i].ID != $activeSlave.ID>> + <<if areSisters($slaves[$i], $PC) == 1 || areSisters($slaves[$i], $PC) == 2>> + <<if $slaves[$i].ID == $activeSlave.mother || $slaves[$i].ID == $activeSlave.father>> + <<for $j to 0; $j < $slaves.length; $j++>> + <<if $slaves[$i].ID != $slaves[$j].ID && $slaves[$j].vagina > -1>> + <<if $slaves[$i].ID == $slaves[$j].mother || $slaves[$i].ID == $slaves[$j].father>> + <<set $children.push($slaves[$j])>> + <</if>> + <</if>> + <</for>> + <</if>> + <</if>> + <</if>> +<</for>> +<<if $activeSlave.vagina > -1 && $children.length > 0>> + $pronounCap +<<if $children.length > 2>> + is @@color:lightgreen;your niece along with + <<for $j to 0; $j < $children.length; $j++>> + <<if $j < $children.length-1>> + $children[$j].slaveName, + <<else>> + and $children[$j].slaveName.@@ + <</if>> + <</for>> +<<elseif $children.length > 1>> + is @@color:lightgreen;your niece along with $children[0].slaveName.@@ +<<elseif $children.length > 0>> +<<for $i to 0; $i < $slaves.length; $i++>> + <<if $slaves[$i].ID != $activeSlave.ID && $activeSlave.vagina > -1>> + <<if areSisters($slaves[$i], $PC) == 1 || areSisters($slaves[$i], $PC) == 2>> + <<if $slaves[$i].ID == $activeSlave.mother || $slaves[$i].ID == $activeSlave.father>> + $pronounCap is @@color:lightgreen;your niece.@@ + <</if>> + <</if>> + <</if>> +<</for>> +<</if>> +<</if>> +<<set $children = []>> + +/* testtest niece passage - determines how many nieces a slave has*/ +<<for $i to 0; $i < $slaves.length; $i++>> + <<if $slaves[$i].ID != $activeSlave.ID>> + <<if areSisters($slaves[$i], $activeSlave) > 0>> + <<for $j to 0; $j < $slaves.length; $j++>> + <<if $slaves[$i].ID != $slaves[$j].ID && $slaves[$j].vagina > -1>> + <<if $slaves[$i].ID == $slaves[$j].mother || $slaves[$i].ID == $slaves[$j].father>> + <<set $children.push($slaves[$j])>> + <</if>> + <</if>> + <</for>> + <</if>> + <</if>> +<</for>> +<<if $activeSlave.vagina > -1 && $children.length > 0>> + $pronounCap +<<if $children.length > 2>> + has @@color:lightgreen;many nieces, + <<for $j to 0; $j < $children.length; $j++>> + <<if $j < $children.length-1>> + $children[$j].slaveName, + <<else>> + and $children[$j].slaveName, who are your slaves.@@ + <</if>> + <</for>> +<<elseif $children.length > 1>> + has @@color:lightgreen;two nieces, $children[0].slaveName, and $children[1].slaveName, who are your slaves.@@ +<<elseif $children.length > 0>> + has @@color:lightgreen;a niece, $children[0].slaveName, who is your slave.@@ +<</if>> +<</if>> +<<set $children = []>> + +/*testtest PC nephew passage - determines how many nephews you have*/ +<<for $i to 0; $i < $slaves.length; $i++>> + <<if $slaves[$i].ID != $activeSlave.ID>> + <<if areSisters($slaves[$i], $PC) == 1 || areSisters($slaves[$i], $PC) == 2>> + <<if $slaves[$i].ID == $activeSlave.mother || $slaves[$i].ID == $activeSlave.father>> + <<for $j to 0; $j < $slaves.length; $j++>> + <<if $slaves[$i].ID != $slaves[$j].ID && $slaves[$i].dick > 0 && $slaves[$i].vagina == -1>> + <<if $slaves[$i].ID == $slaves[$j].mother || $slaves[$i].ID == $slaves[$j].father>> + <<set $children.push($slaves[$j])>> + <</if>> + <</if>> + <</for>> + <</if>> + <</if>> + <</if>> +<</for>> +<<if $activeSlave.dick > 0 && $activeSlave.vagina == -1 && $children.length > 0>> + $pronounCap +<<if $children.length > 2>> + is @@color:lightgreen;your nephew along with + <<for $j to 0; $j < $children.length; $j++>> + <<if $j < $children.length-1>> + $children[$j].slaveName, + <<else>> + and $children[$j].slaveName.@@ + <</if>> + <</for>> +<<elseif $children.length > 1>> + is @@color:lightgreen;your nephew along with $children[0].slaveName.@@ +<<elseif $children.length > 0>> +<<for $i to 0; $i < $slaves.length; $i++>> + <<if $slaves[$i].ID != $activeSlave.ID && $activeSlave.dick > 0 && $activeSlave.vagina == -1>> + <<if areSisters($slaves[$i], $PC) == 1 || areSisters($slaves[$i], $PC) == 2>> + <<if $slaves[$i].ID == $activeSlave.mother || $slaves[$i].ID == $activeSlave.father>> + $pronounCap is @@color:lightgreen;your nephew.@@ + <</if>> + <</if>> + <</if>> +<</for>> +<</if>> +<</if>> +<<set $children = []>> + +/* testtest nephew passage - determines how many nephews a slave has*/ +<<for $i to 0; $i < $slaves.length; $i++>> + <<if $slaves[$i].ID != $activeSlave.ID>> + <<if areSisters($slaves[$i], $activeSlave) > 0>> + <<for $j to 0; $j < $slaves.length; $j++>> + <<if $slaves[$i].ID != $slaves[$j].ID && $slaves[$j].dick > 0 && $slaves[$j].vagina == -1>> + <<if $slaves[$i].ID == $slaves[$j].mother || $slaves[$i].ID == $slaves[$j].father>> + <<set $children.push($slaves[$j])>> + <</if>> + <</if>> + <</for>> + <</if>> + <</if>> +<</for>> +<<if $activeSlave.vagina > -1 && $children.length > 0>> + $pronounCap +<<if $children.length > 2>> + has @@color:lightgreen;many nieces, + <<for $j to 0; $j < $children.length; $j++>> + <<if $j < $children.length-1>> + $children[$j].slaveName, + <<else>> + and $children[$j].slaveName, who are your slaves.@@ + <</if>> + <</for>> +<<elseif $children.length > 1>> + has @@color:lightgreen;two nieces, $children[0].slaveName, and $children[1].slaveName, who are your slaves.@@ +<<elseif $children.length > 0>> + has @@color:lightgreen;a niece, $children[0].slaveName, who is your slave.@@ +<</if>> +<</if>> +<<set $children = []>> + +/*testtest PC sibling passages - determines how many siblings you have*/ +<<set $children = []>> +<<set _rel_num to areSisters($activeSlave, $PC)>> +<<if(_rel_num > 0)>> + <<if ($activeSlave.vagina > -1)>> + <<set _rel_type to "sister">> + <<else>> + <<set _rel_type to "brother">> + <</if>> + <<if (_rel_num == 1)>> + <<set _rel_desc to "your twin">> + <<elseif _rel_num == 2>> + <<set _rel_desc to "your ">> + <<elseif _rel_num == 3>> + <<set _rel_desc to "your half-">> + <</if>> + <<for $i to 0; $i < $slaves.length; $i++>> + <<if $slaves[$i].ID != $activeSlave.ID>> + <<if _rel_num == areSisters($activeSlave, $slaves[$i]) && ($activeSlave.vagina > -1) == ($slaves[$i].vagina > -1)>> + <<set console.log('sisters', $slaves[$i].birthName)>> + <<set $children.push($slaves[$i])>> + <</if>> + <</if>> + <</for>> + $pronounCap +<<if $children.length > 1>> + @@color:lightgreen;is _rel_desc _rel_type along with + <<for $j to 0; $j < $children.length; $j++>> + <<if $j < $children.length-1>> + $children[$j].slaveName, + <<else>> + and $children[$j].slaveName.@@ + <</if>> + <</for>> +<<elseif $children.length > 0>> + is @@color:lightgreen;_rel_desc _rel_type with $children[0].slaveName.@@ +<<else>> + is @@color:lightgreen;_rel_desc _rel_type.@@ +<</if>> +<</if>> + +/*testtest PC twin passages - determines how many twins you have but not implemented yet +<<for $i to 0; $i < $slaves.length; $i++>> + <<if $slaves[$i].ID != $activeSlave.ID>> + <<if areSisters($activeSlave, $PC) == 1 && areSisters($slaves[$i], $activeSlave) == 1>> + <<set $children.push($slaves[$i])>> + <</if>> + <</if>> +<</for>> +<<if $children.length > 2>> + $pronounCap @@color:lightgreen;shared a cramped womb with you + <<for $j to 0; $j < $children.length; $j++>> + <<if $j < $children.length-1>> + , $children[$j].slaveName + <<else>> + and $children[$j].slaveName.@@ + <</if>> + <</for>> +<<elseif $children.length > 1>> + $pronounCap is @@color:lightgreen;your twin along with $children[0].slaveName.@@ +<<elseif $children.length > 0>> + $pronounCap is @@color:lightgreen;your twin sister.@@ +<</if>> +<<set $children = []>> + +testtest PC sister passages - determines how many sisters you have +<<for $i to 0; $i < $slaves.length; $i++>> + <<if $slaves[$i].ID != $activeSlave.ID>> + <<if areSisters($activeSlave, $PC) == 2 && areSisters($slaves[$i], $activeSlave) < 3 && areSisters($slaves[$i], $activeSlave) > 0 && $slaves[$i].vagina > -1>> + <<set $children.push($slaves[$i])>> + <</if>> + <</if>> +<</for>> +<<if $activeSlave.vagina > -1 && $children.length > 0>> + $pronounCap +<<if $children.length > 2>> + @@color:lightgreen;is your sister along with + <<for $j to 0; $j < $children.length; $j++>> + <<if $j < $children.length-1>> + $children[$j].slaveName, + <<else>> + and $children[$j].slaveName.@@ + <</if>> + <</for>> +<<elseif $children.length > 1>> + is @@color:lightgreen;your sister along with $children[0].slaveName.@@ +<<elseif $children.length > 0>> + is @@color:lightgreen;your sister.@@ +<</if>> +<</if>> +<<set $children = []>> + +testtest PC brother passages - determines how many brothers you have +<<for $i to 0; $i < $slaves.length; $i++>> + <<if $slaves[$i].ID != $activeSlave.ID>> + <<if areSisters($activeSlave, $PC) == 2 && areSisters($slaves[$i], $activeSlave) < 2 && areSisters($slaves[$i], $activeSlave) > 0 && $slaves[$i].dick > 0 && $slaves[$i].vagina == -1>> + <<set $children.push($slaves[$i])>> + <</if>> + <</if>> +<</for>> +<<if $activeSlave.dick > 0 && $activeSlave.vagina == -1 && $children.length > 0>> + $pronounCap +<<if $children.length > 2>> + @@color:lightgreen;is your brother along with + <<for $j to 0; $j < $children.length; $j++>> + <<if $j < $children.length-1>> + $children[$j].slaveName, + <<else>> + and $children[$j].slaveName.@@ + <</if>> + <</for>> +<<elseif $children.length > 1>> + is @@color:lightgreen;your brother along with $children[0].slaveName.@@ +<<elseif $children.length > 0>> + is @@color:lightgreen;your brother.@@ +<</if>> +<</if>> +<<set $children = []>> + +testtest PC half-sister passages - determines how many half-sisters you have +<<for $i to 0; $i < $slaves.length; $i++>> + <<if $slaves[$i].ID != $activeSlave.ID>> + <<if areSisters($activeSlave, $PC) == 3 && areSisters($slaves[$i], $PC) == 3 && $slaves[$i].vagina > -1>> + <<set $children.push($slaves[$i])>> + <</if>> + <</if>> +<</for>> +<<if $activeSlave.vagina > -1 && $children.length > 0>> + $pronounCap +<<if $children.length > 2>> + is @@color:lightgreen;your half-sister along with + <<for $j to 0; $j < $children.length; $j++>> + <<if $j < $children.length-1>> + $children[$j].slaveName, + <<else>> + and $children[$j].slaveName.@@ + <</if>> + <</for>> +<<elseif $children.length > 1>> + is @@color:lightgreen;your half-sister along with $children[0].slaveName.@@ +<<elseif $children.length > 0>> + is @@color:lightgreen;your half-sister.@@ +<</if>> +<</if>> +<<set $children = []>> + +testtest PC half-brother passages - determines how many half-brothers you have +<<for $i to 0; $i < $slaves.length; $i++>> + <<if $slaves[$i].ID != $activeSlave.ID>> + <<if areSisters($activeSlave, $PC) == 3 && areSisters($slaves[$i], $PC) == 3 && $slaves[$i].dick > 0 && $slaves[$i].vagina == -1>> + <<set $children.push($slaves[$i])>> + <</if>> + <</if>> +<</for>> +<<if $activeSlave.dick > 0 && $activeSlave.vagina == -1 && $children.length > 0>> + $pronounCap +<<if $children.length > 2>> + is @@color:lightgreen;your half-brother along with + <<for $j to 0; $j < $children.length; $j++>> + <<if $j < $children.length-1>> + $children[$j].slaveName, + <<else>> + and $children[$j].slaveName.@@ + <</if>> + <</for>> +<<elseif $children.length > 1>> + is @@color:lightgreen;your half-brother along with $children[0].slaveName.@@ +<<elseif $children.length > 0>> + is @@color:lightgreen;your half-brother.@@ +<</if>> +<</if>> +<<set $children = []>> +*/ + +/*testtest twins? - determines how many twins a slave has*/ +<<for $i to 0; $i < $slaves.length; $i++>> + <<if $slaves[$i].ID != $activeSlave.ID>> + <<if areSisters($activeSlave, $slaves[$i]) == 1>> + <<set $children.push($slaves[$i])>> + <</if>> + <</if>> +<</for>> +<<if $children.length > 2>> + $pronounCap @@color:lightgreen;shared a cramped womb with + <<for $j to 0; $j < $children.length; $j++>> + <<if $j < $children.length-1>> + $children[$j].slaveName, + <<else>> + and $children[$j].slaveName.@@ + <</if>> + <</for>> +<<elseif $children.length > 1>> + $pronounCap is a @@color:lightgreen;one of a set of triplets; $children[0].slaveName, and $children[1].slaveName@@ complete the trio. +<<elseif $children.length > 0>> + $pronounCap is @@color:lightgreen;twins with $children[0].slaveName.@@ +<</if>> +<<set $children = []>> + +/*testtest sister - determines how many sisters a slave has*/ +<<for $i to 0; $i < $slaves.length; $i++>> + <<if $slaves[$i].ID != $activeSlave.ID>> + <<if areSisters($activeSlave, $slaves[$i]) == 2 && $slaves[$i].vagina > -1>> + <<set $children.push($slaves[$i])>> + <</if>> + <</if>> +<</for>> +<<if $children.length > 2>> + $pronounCap is @@color:lightgreen;sisters with + <<for $j to 0; $j < $children.length; $j++>> + <<if $j < $children.length-1>> + $children[$j].slaveName, + <<else>> + and $children[$j].slaveName.@@ + <</if>> + <</for>> +<<elseif $children.length > 1>> + $pronounCap is @@color:lightgreen;sisters with $children[0].slaveName and $children[1].slaveName.@@ +<<elseif $children.length > 0>> + $pronounCap is @@color:lightgreen;sisters with $children[0].slaveName.@@ +<</if>> +<<set $children = []>> + +/*testtest brother - determines how many brothers a slave has*/ +<<for $i to 0; $i < $slaves.length; $i++>> + <<if $slaves[$i].ID != $activeSlave.ID>> + <<if areSisters($activeSlave, $slaves[$i]) == 2 && $slaves[$i].dick > 0 && $slaves[$i].vagina == -1>> + <<set $children.push($slaves[$i])>> + <</if>> + <</if>> +<</for>> +<<if $children.length > 2>> + $pronounCap is @@color:lightgreen;brothers with + <<for $j to 0; $j < $children.length; $j++>> + <<if $j < $children.length-1>> + $children[$j].slaveName, + <<else>> + and $children[$j].slaveName.@@ + <</if>> + <</for>> +<<elseif $children.length > 1>> + $pronounCap is @@color:lightgreen;brothers with $children[0].slaveName and $children[1].slaveName.@@ +<<elseif $children.length > 0>> + $pronounCap is @@color:lightgreen;brothers with $children[0].slaveName.@@ +<</if>> +<<set $children = []>> + +/*testtest half-sister - determines how many half-sisters a slave has*/ +<<for $i to 0; $i < $slaves.length; $i++>> + <<if $slaves[$i].ID != $activeSlave.ID>> + <<if areSisters($activeSlave, $slaves[$i]) == 3 && $slaves[$i].vagina > -1>> + <<set $children.push($slaves[$i])>> + <</if>> + <</if>> +<</for>> +<<if $children.length > 2>> + $pronounCap is @@color:lightgreen;half-sisters with + <<for $j to 0; $j < $children.length; $j++>> + <<if $j < $children.length-1>> + $children[$j].slaveName, + <<else>> + and $children[$j].slaveName.@@ + <</if>> + <</for>> +<<elseif $children.length > 1>> + $pronounCap is a @@color:lightgreen;half-sister to $children[0].slaveName and $children[1].slaveName.@@ +<<elseif $children.length > 0>> + $pronounCap is a @@color:lightgreen;half-sister to $children[0].slaveName.@@ +<</if>> +<<set $children = []>> + +/*testtest half-brother - determines how many half-brothers a slave has*/ +<<for $i to 0; $i < $slaves.length; $i++>> + <<if $slaves[$i].ID != $activeSlave.ID>> + <<if areSisters($activeSlave, $slaves[$i]) == 3 && $slaves[$i].dick > 0 && $slaves[$i].vagina == -1>> + <<set $children.push($slaves[$i])>> + <</if>> + <</if>> +<</for>> +<<if $children.length > 2>> + $pronounCap is @@color:lightgreen;half-brothers with + <<for $j to 0; $j < $children.length; $j++>> + <<if $j < $children.length-1>> + $children[$j].slaveName, + <<else>> + and $children[$j].slaveName.@@ + <</if>> + <</for>> +<<elseif $children.length > 1>> + $pronounCap is a @@color:lightgreen;half-brother to $children[0].slaveName and $children[1].slaveName.@@ +<<elseif $children.length > 0>> + $pronounCap is a @@color:lightgreen;half-brother to $children[0].slaveName.@@ +<</if>> +<<set $children = []>> + +<</widget>> + +<<widget PlayerFamily>> + +<br><br>Your present family includes: + +/*Player parents, lists both your parents, or just one.*/ +<<for $i to 0; $i < $slaves.length; $i++>> +<<if $slaves[$i].ID == $PC.father || $slaves[$i].ID == $PC.mother>> + <<set $children.push($slaves[$i])>> +<</if>> +<</for>> + <<if $children.length > 1>> + <br>Your parents are @@color:lightgreen;$children[0].slaveName and $children[1].slaveName@@. + <<elseif $children.length > 0>> + <br>You know one of your parents, @@color:lightgreen;$children[0].slaveName@@. + <</if>> +<<set $children = []>> + +/*Sister Test with aresisters*/ +<<for $i to 0; $i < $slaves.length; $i++>> + <<if $slaves[$i].ID != $PC.ID>> + <<if areSisters($PC, $slaves[$i]) === 2 && areSisters($slaves[$i], $PC) === 2>> + <<set $children.push($slaves[$i])>> + <</if>> + <</if>> +<</for>> +<<if $children.length > 2>> + <br>You are @@color:lightgreen;sisters with + <<for $j to 0; $j < $children.length; $j++>> + <<if $j < $children.length-1>> + $children[$j].slaveName, + <<else>> + and $children[$j].slaveName.@@ + <</if>> + <</for>> +<<elseif $children.length > 1>> + <br>You are sisters with @@color:lightgreen;$children[0].slaveName and $children[1].slaveName.@@ +<<elseif $children.length > 0>> + <br>Your sister is @@color:lightgreen;$children[0].slaveName.@@ +<</if>> +<<set $children = []>> + +/*Half-Sister Test with aresisters */ +<<for $i to 0; $i < $slaves.length; $i++>> + <<if $slaves[$i].ID != $PC.ID>> + <<if areSisters($slaves[$i], $PC) == 3 && areSisters($PC, $slaves[$i]) == 3>> + <<set $children.push($slaves[$i])>> + <</if>> +<</if>> +<</for>> +<<if $children.length > 2>> + <br>You are half-sisters with @@color:lightgreen; + <<for $j to 0; $j < $children.length; $j++>> + <<if $j < $children.length-1>> + $children[$j].slaveName, + <<else>> + and $children[$j].slaveName@@. + <</if>> + <</for>> +<<elseif $children.length > 1>> + <br>You are half-sisters with @@color:lightgreen;$children[0].slaveName and $children[1].slaveName@@. +<<elseif $children.length > 0>> + <br>You have one half-sisters, @@color:lightgreen;$children[0].slaveName@@. +<</if>> +<<set $children = []>> + +/*Player is Father, lists children you fathered*/ +<<for $i to 0; $i < $slaves.length; $i++>> + <<if $PC.ID == $slaves[$i].father>> + <<set $children.push($slaves[$i])>> + <</if>> +<</for>> +<<if $children.length > 2>> + <br>You are the father of @@color:lightgreen; + <<for $j to 0; $j < $children.length; $j++>> + <<if $j < $children.length-1>> + $children[$j].slaveName, + <<else>> + and $children[$j].slaveName@@. + <</if>> + <</for>> +<<elseif $children.length > 1>> + <br>You are the father of two of your slaves, @@color:lightgreen;$children[0].slaveName, and $children[1].slaveName@@. +<<elseif $children.length > 0>> + <br>You are the father of one of your slaves, @@color:lightgreen;$children[0].slaveName@@. +<</if>> +<<set $children = []>> + +/*Player is Mother, lists birthed children*/ +<<for $i to 0; $i < $slaves.length; $i++>> + <<if $PC.ID == $slaves[$i].mother>> + <<set $children.push($slaves[$i])>> + <</if>> +<</for>> +<<if $children.length > 2>> + <br>You are the mother of@@color:lightgreen; + <<for $j to 0; $j < $children.length; $j++>> + <<if $j < $children.length-1>> + $children[$j].slaveName, + <<else>> + and $children[$j].slaveName.@@ + <</if>> + <</for>> +<<elseif $children.length > 1>> + <br>You are the mother of two of your slaves, @@color:lightgreen;$children[0].slaveName, and $children[1].slaveName@@. +<<elseif $children.length > 0>> + <br>You are the mother of one of your slaves, @@color:lightgreen;$children[0].slaveName@@. +<</if>> +<<set $children = []>> + +<</widget>> \ No newline at end of file diff --git a/src/pregmod/generateChild.tw b/src/pregmod/generateChild.tw new file mode 100644 index 0000000000000000000000000000000000000000..3e77cdbbce9903db1e08c27cd067b5b0c798eb24 --- /dev/null +++ b/src/pregmod/generateChild.tw @@ -0,0 +1,430 @@ +:: generateChild [nobr] + +<<if $mom != 0>> + <<set $mergeMom = 0>> + <<set $mergeDad = 0>> + <<for $m to 0; $m < $genePool.length; $m++>> + <<if $mom.ID == $genePool[$m].ID>> + <<set $mergeMom = $genePool[$m]>> + <</if>> + <<if $mom.pregSource == $genePool[$m].ID>> + <<set $mergeDad = $genePool[$m].ID>> + <</if>> + <</for>> + <<if $mom.pregSource == -1>> + <<set $mergeDad = $PC>> + <<elseif $mom.pregSource == 0 || $mom.pregSource < -1>> + <<set $mergeDad = $mergeMom>> + <</if>> +<</if>> + +<<set $activeSlaveOneTimeMinAge to $targetAge>> +<<set $activeSlaveOneTimeMaxAge to $targetAge>> +<<set $one_time_age_overrides_pedo_mode to 1>> + +<<if $babyGender == 1>> + <<display "Generate XX Slave">> + <<if $PC.pregSource < 1>> + <<set $activeSlave.mother = -1>> + <<set $activeSlave.father = $missingParentID>> + <<set $missingParentID-->> + <<set $activeSlave.nationality = "Stateless">> + <<set $activeSlave.race = $PC.race>> + <<set $activeSlave.skin = $PC.skin>> + <<set $activeSlave.eyeColor = either($PC.eyeColor, "brown", "blue", "brown", "green", "hazel", "green")>> + <<set $activeSlave.hColor = either($PC.hColor, "brown", "blonde", "black", "brown")>> + <<set $activeSlave.pubicHColor = $activeSlave.hColor>> + <<set $activeSlave.underArmHColor = $activeSlave.hColor>> + <<set $activeSlave.sexualFlaw = "none">> + <<set $activeSlave.sexualQuirk = "none">> + <<set $activeSlave.behavioralFlaw = "none">> + <<set $activeSlave.behavioralQuirk = "none">> + <<set $activeSlave.fetish = "none">> + <<else>> + <<for $m to 0; $m < $genePool.length; $m++>> + <<if $PC.pregSource == $genePool[$m].ID>> + <<set $mergeDad == $genePool[$m].ID>> + <<break>> + <</if>> + <</for>> + <<set $activeSlave.mother = -1>> + <<set $activeSlave.father = $mergeDad.ID>> + <<if $PC.nationality == $mergeDad.nationality>> + <<set $activeSlave.nationality = $mergeDad.nationality>> + <<else>> + <<set $activeSlave.nationality = "Stateless">> + <</if>> + <<if $PC.race == $mergeDad.race>> + <<set $activeSlave.race = $mergeDad.race>> + <<elseif random(1,4) == 4>> + <<set $activeSlave.race = either($PC.race, $mergeDad.race)>> + <<else>> + <<set $activeSlave.race = "mixed race">> + <</if>> + <<if $PC.skin == $mergeDad.skin>> + <<set $activeSlave.skin = $PC.skin>> + <<else>> + <<genSkinTone $PC, $mergeDad>> + <</if>> + <<if $PC.eyeColor == $mergeDad.eyeColor>> + <<set $activeSlave.eyeColor = $PC.eyeColor>> + <<elseif $PC.eyeColor == "red" || $PC.eyeColor == "pale red" || $PC.eyeColor == "light red" || $PC.eyeColor == "pale gray">> + <<set $activeSlave.eyeColor = $mergeDad.eyeColor>> + <<elseif $mergeDad.eyeColor == "red" || $mergeDad.eyeColor == "pale red" || $mergeDad.eyeColor == "light red" || $mergeDad.eyeColor == "pale gray" || $mergeDad.eyeColor == "milky white">> + <<set $activeSlave.eyeColor = $PC.eyeColor>> + <<elseif $PC.eyeColor == "blue">> + <<if random(1,4) == 2>> + <<set $activeSlave.eyeColor = $PC.eyeColor>> + <<else>> + <<set $activeSlave.eyeColor = $mergeDad.eyeColor>> + <</if>> + <<elseif $mergeDad.eyeColor == "blue">> + <<if random(1,4) == 2>> + <<set $activeSlave.eyeColor = $mergeDad.eyeColor>> + <<else>> + <<set $activeSlave.eyeColor = $PC.eyeColor>> + <</if>> + <<else>> + <<set $activeSlave.eyeColor = either($PC.eyeColor, $mergeDad.eyeColor)>> + <</if>> + <<if $PC.hColor == $mergeDad.hColor>> + <<set $activeSlave.hColor = $PC.hColor>> + <<elseif $PC.hColor == "black">> + <<set $activeSlave.hColor = $PC.hColor>> + <<elseif $mergeDad.hColor == "black">> + <<set $activeSlave.hColor = $mergeDad.hColor>> + <<elseif $PC.hColor == "brown">> + <<set $activeSlave.hColor = $PC.hColor>> + <<elseif $mergeDad.hColor == "brown">> + <<set $activeSlave.hColor = $mergeDad.hColor>> + <<elseif $PC.hColor == "white">> + <<if random(1,100) == 69>> + <<set $activeSlave.hColor = $PC.hColor>> + <<else>> + <<set $activeSlave.hColor = $mergeDad.hColor>> + <</if>> + <<elseif $mergeDad.hColor == "white">> + <<if random(1,100) == 69>> + <<set $activeSlave.hColor = $PC.hColor>> + <<else>> + <<set $activeSlave.hColor = $mergeDad.hColor>> + <</if>> + <<else>> + <<set $activeSlave.hColor = either($PC.hColor, $mergeDad.hColor)>> + <</if>> + <<set $activeSlave.pubicHColor = $activeSlave.hColor>> + <<set $activeSlave.underArmHColor = $activeSlave.hColor>> + <<set $activeSlave.sexualFlaw = either("none", "none", "none", "none", "none", $mergeDad.sexualFlaw)>> + <<set $activeSlave.sexualQuirk = either("none", "none", "none", "none", "none", $mergeDad.sexualFlaw)>> + <<set $activeSlave.behavioralFlaw = either("none", "none", "none", "none", "none", $mergeDad.sexualFlaw)>> + <<set $activeSlave.behavioralQuirk = either("none", "none", "none", "none", "none", $mergeDad.sexualFlaw)>> + <<set $activeSlave.fetish = either("none", "none", "none", "none", "none", $mergeDad.fetish)>> + <</if>> +<<elseif $babyGender == 2>> + <<display "Generate XY Slave">> + <<if $PC.pregSource < 1>> + <<set $activeSlave.mother = -1>> + <<set $activeSlave.father = $missingParentID>> + <<set $missingParentID-->> + <<set $activeSlave.nationality = "Stateless">> + <<set $activeSlave.race = $PC.race>> + <<set $activeSlave.skin = $PC.skin>> + <<set $activeSlave.eyeColor = either($PC.eyeColor, "brown", "blue", "brown", "green", "hazel", "green")>> + <<set $activeSlave.hColor = either($PC.hColor, "brown", "blonde", "black", "brown")>> + <<set $activeSlave.pubicHColor = $PC.hColor>> + <<set $activeSlave.underArmHColor = $PC.hColor>> + <<set $activeSlave.sexualFlaw = "none">> + <<set $activeSlave.sexualQuirk = "none">> + <<set $activeSlave.behavioralFlaw = "none">> + <<set $activeSlave.behavioralQuirk = "none">> + <<set $activeSlave.fetish = "none">> + <<else>> + <<for $m to 0; $m < $genePool.length; $m++>> + <<if $PC.pregSource == $genePool[$m].ID>> + <<set $mergeDad == $genePool[$m].ID>> + <<break>> + <</if>> + <</for>> + <<set $activeSlave.mother = -1>> + <<set $activeSlave.father = $mergeDad.ID>> + <<if $PC.nationality == $mergeDad.nationality>> + <<set $activeSlave.nationality = $mergeDad.nationality>> + <<else>> + <<set $activeSlave.nationality = "Stateless">> + <</if>> + <<if $PC.race == $mergeDad.race>> + <<set $activeSlave.race = $mergeDad.race>> + <<elseif random(1,4) == 4>> + <<set $activeSlave.race = either($PC.race, $mergeDad.race)>> + <<else>> + <<set $activeSlave.race = "mixed race">> + <</if>> + <<if $PC.skin == $mergeDad.skin>> + <<set $activeSlave.skin = $PC.skin>> + <<else>> + <<genSkinTone $PC, $mergeDad>> + <</if>> + <<if $PC.eyeColor == $mergeDad.eyeColor>> + <<set $activeSlave.eyeColor = $PC.eyeColor>> + <<elseif $PC.eyeColor == "red" || $PC.eyeColor == "pale red" || $PC.eyeColor == "light red" || $PC.eyeColor == "pale gray">> + <<set $activeSlave.eyeColor = $mergeDad.eyeColor>> + <<elseif $mergeDad.eyeColor == "red" || $mergeDad.eyeColor == "pale red" || $mergeDad.eyeColor == "light red" || $mergeDad.eyeColor == "pale gray" || $mergeDad.eyeColor == "milky white">> + <<set $activeSlave.eyeColor = $PC.eyeColor>> + <<elseif $PC.eyeColor == "blue">> + <<if random(1,4) == 2>> + <<set $activeSlave.eyeColor = $PC.eyeColor>> + <<else>> + <<set $activeSlave.eyeColor = $mergeDad.eyeColor>> + <</if>> + <<elseif $mergeDad.eyeColor == "blue">> + <<if random(1,4) == 2>> + <<set $activeSlave.eyeColor = $mergeDad.eyeColor>> + <<else>> + <<set $activeSlave.eyeColor = $PC.eyeColor>> + <</if>> + <<else>> + <<set $activeSlave.eyeColor = either($PC.eyeColor, $mergeDad.eyeColor)>> + <</if>> + <<if $PC.hColor == $mergeDad.hColor>> + <<set $activeSlave.hColor = $PC.hColor>> + <<elseif $PC.hColor == "black">> + <<set $activeSlave.hColor = $PC.hColor>> + <<elseif $mergeDad.hColor == "black">> + <<set $activeSlave.hColor = $mergeDad.hColor>> + <<elseif $PC.hColor == "brown">> + <<set $activeSlave.hColor = $PC.hColor>> + <<elseif $mergeDad.hColor == "brown">> + <<set $activeSlave.hColor = $mergeDad.hColor>> + <<elseif $PC.hColor == "white">> + <<if random(1,100) == 69>> + <<set $activeSlave.hColor = $PC.hColor>> + <<else>> + <<set $activeSlave.hColor = $mergeDad.hColor>> + <</if>> + <<elseif $mergeDad.hColor == "white">> + <<if random(1,100) == 69>> + <<set $activeSlave.hColor = $PC.hColor>> + <<else>> + <<set $activeSlave.hColor = $mergeDad.hColor>> + <</if>> + <<else>> + <<set $activeSlave.hColor = either($PC.hColor, $mergeDad.hColor)>> + <</if>> + <<set $activeSlave.pubicHColor = $activeSlave.hColor>> + <<set $activeSlave.underArmHColor = $activeSlave.hColor>> + <<set $activeSlave.sexualFlaw = either("none", "none", "none", "none", "none", $mergeDad.sexualFlaw)>> + <<set $activeSlave.sexualQuirk = either("none", "none", "none", "none", "none", $mergeDad.sexualQuirk)>> + <<set $activeSlave.behavioralFlaw = either("none", "none", "none", "none", "none", $mergeDad.behavioralFlaw)>> + <<set $activeSlave.behavioralQuirk = either("none", "none", "none", "none", "none", $mergeDad.behavioralQuirk)>> + <<set $activeSlave.fetish = either("none", "none", "none", "none", "none", $mergeDad.fetish)>> + <</if>> +<<else>> + <<if $seeDicks == 100>> + <<display "Generate XY Slave">> + <<elseif $seeDicks == 0>> + <<display "Generate XX Slave">> + <<else>> + <<if random(0,100) >= 30>> + <<display "Generate XX Slave">> + <<else>> + <<display "Generate XY Slave">> + <</if>> + <</if>> + <<set $activeSlave.mother = $mergeMom.ID>> + <<if $mergeMom.pregSource > 0>> + <<set $activeSlave.father = $mergeDad.ID>> + <<elseif $mergeMom.pregSource == -1>> + <<set $activeSlave.father = -1>> + <<else>> + <<set $activeSlave.father = $missingParentID>> + <<set $missingParentID-->> + <</if>> + <<if $mergeMom.nationality == $mergeDad.nationality>> + <<set $activeSlave.nationality = $mergeDad.nationality>> + <<else>> + <<set $activeSlave.nationality = "Stateless">> + <</if>> + <<if $mergeMom.race == $mergeDad.race>> + <<set $activeSlave.race = $mergeDad.race>> + <<elseif random(1,4) == 4>> + <<set $activeSlave.race = either($mergeMom.race, $mergeDad.race)>> + <<else>> + <<set $activeSlave.race = "mixed race">> + <</if>> + <<if $mergeMom.skin == $mergeDad.skin>> + <<set $activeSlave.skin = $mergeMom.skin>> + <<else>> + <<genSkinTone $mergeMom, $mergeDad>> + <</if>> + <<if $mergeMom.eyeColor == $mergeDad.eyeColor>> + <<set $activeSlave.eyeColor = $mergeMom.eyeColor>> + <<elseif $mergeMom.eyeColor == "red" || $mergeMom.eyeColor == "pale red" || $mergeMom.eyeColor == "light red" || $mergeMom.eyeColor == "pale gray" || $mergeMom.eyeColor == "milky white">> + <<set $activeSlave.eyeColor = $mergeDad.eyeColor>> + <<elseif $mergeDad.eyeColor == "red" || $mergeDad.eyeColor == "pale red" || $mergeDad.eyeColor == "light red" || $mergeDad.eyeColor == "pale gray" || $mergeDad.eyeColor == "milky white">> + <<set $activeSlave.eyeColor = $mergeMom.eyeColor>> + <<elseif $mergeMom.eyeColor == "blue">> + <<if random(1,4) == 2>> + <<set $activeSlave.eyeColor = $mergeMom.eyeColor>> + <<else>> + <<set $activeSlave.eyeColor = $mergeDad.eyeColor>> + <</if>> + <<elseif $mergeDad.eyeColor == "blue">> + <<if random(1,4) == 2>> + <<set $activeSlave.eyeColor = $mergeDad.eyeColor>> + <<else>> + <<set $activeSlave.eyeColor = $mergeMom.eyeColor>> + <</if>> + <<else>> + <<set $activeSlave.eyeColor = either($mergeMom.eyeColor, $mergeDad.eyeColor)>> + <</if>> + <<if $mergeMom.pregSource == -2 || $mergeMom.pregSource == 0>> + <<set $activeSlave.eyeColor = either($mergeMom.eyeColor, "brown", "blue", "brown", "green", "hazel", "green")>> + <</if>> + <<if $mergeMom.hColor == $mergeDad.hColor>> + <<set $activeSlave.hColor = $mergeMom.hColor>> + <<elseif $mergeMom.hColor == "black">> + <<set $activeSlave.hColor = $mergeMom.hColor>> + <<elseif $mergeDad.hColor == "black">> + <<set $activeSlave.hColor = $mergeDad.hColor>> + <<elseif $mergeMom.hColor == "brown">> + <<set $activeSlave.hColor = $mergeMom.hColor>> + <<elseif $mergeDad.hColor == "brown">> + <<set $activeSlave.hColor = $mergeDad.hColor>> + <<elseif $mergeMom.hColor == "white">> + <<if random(1,100) == 69>> + <<set $activeSlave.hColor = $mergeMom.hColor>> + <<else>> + <<set $activeSlave.hColor = $mergeDad.hColor>> + <</if>> + <<elseif $mergeDad.hColor == "white">> + <<if random(1,100) == 69>> + <<set $activeSlave.hColor = $mergeDad.hColor>> + <<else>> + <<set $activeSlave.hColor = $mergeMom.hColor>> + <</if>> + <<else>> + <<set $activeSlave.hColor = either($mergeMom.hColor, $mergeDad.hColor)>> + <</if>> + <<if $mergeMom.pregSource == -2 || $mergeMom.pregSource == 0>> + <<set $activeSlave.hColor = either($mergeMom.hColor, "brown", "blonde", "black", "brown")>> + <</if>> + <<set $activeSlave.pubicHColor = $activeSlave.hColor>> + <<set $activeSlave.underArmHColor = $activeSlave.hColor>> + <<set $activeSlave.sexualFlaw = either($mergeMom.sexualFlaw, "none", "none", "none", "none", "none", $mergeDad.sexualFlaw)>> + <<set $activeSlave.sexualQuirk = either($mergeMom.sexualQuirk, "none", "none", "none", "none", "none", $mergeDad.sexualQuirk)>> + <<set $activeSlave.behavioralFlaw = either($mergeMom.behavioralFlaw, "none", "none", "none", "none", "none", $mergeDad.behavioralFlaw)>> + <<set $activeSlave.behavioralQuirk = either($mergeMom.behavioralQuirk, "none", "none", "none", "none", "none", $mergeDad.behavioralQuirk)>> + <<set $activeSlave.fetish = either("none", "none", "none", "none", "none", $mergeDad.fetish, $mergeMom.fetish)>> + <<if $mom.addict > 0>> + <<set $activeSlave.addict = Math.trunc($mom.addict/2)>> + <</if>> +<</if>> + +<<set $activeSlave.actualAge = 0>> +<<set $activeSlave.birthWeek = 0>> +<<set $activeSlave.weight = -100>> +<<set $activeSlave.muscles = -100>> +<<set $activeSlave.boobs = 0>> +<<set $activeSlave.butt = 0>> +<<set $activeSlave.energy = 0>> +<<set $activeSlave.anus = 0>> +<<set $activeSlave.chem = 990>> +<<if $activeSlave.vagina > -1>> + <<set $activeSlave.vagina = 0>> +<</if>> +<<if $activeSlave.dick > 0>> + <<set $activeSlave.foreskin = 1>> + <<set $activeSlave.balls = 1>> + <<set $activeSlave.scrotom = 1>> +<</if>> +<<if $activeSlave.fetish != "none">> + <<set $activeSlave.fetishStrength = 20>> +<</if>> + +/* Int and facial attractiveness changes to bolster eugenics and add negatives for excessive inbreeding */ +<<if $activeSlave.mother == -1 && $PC.pregSource == -1>> + <<set $activeSlave.face = either(2,2,2,3)>> + <<set $activeSlave.intelligence = either(2,2,2,2,3,3)>> +<<elseif $activeSlave.mother == -1>> + <<if $activeSlave.face < 2>> + <<set $activeSlave.face++>> + <</if>> + <<if $activeSlave.intelligence < 2>> + <<set $activeSlave.intelligence++>> + <</if>> +<<elseif $activeSlave.father == -1 && $mom > 0>> + <<if $mom.breedingMark == 1>> + <<set $activeSlave.face = either(2,2,2,3)>> + <<set $activeSlave.intelligence = either(2,2,2,2,3,3)>> + <<set $activeSlave.breedingMark = 1>> + <<else>> + <<if $activeSlave.face < 2>> + <<set $activeSlave.face++>> + <</if>> + <<if $activeSlave.intelligence < 2>> + <<set $activeSlave.intelligence++>> + <</if>> + <</if>> +<<elseif $activeSlave.father == -1>> + <<if $activeSlave.face < 2>> + <<set $activeSlave.face++>> + <</if>> + <<if $activeSlave.intelligence < 2>> + <<set $activeSlave.intelligence++>> + <</if>> +<<else>> + <<set $activeSlave.face to random($mergeDad.face, $mergeMom.face)>> + <<if $activeSlave.face > -3 && random(1,100) < 90>> + <<set $activeSlave.face-->> + <</if>> + <<set $activeSlave.intelligence to random($mergeDad.intelligence, $mergeMom.intelligence)>> + <<if $activeSlave.intelligence > -3 && random(1,100) < 90>> + <<set $activeSlave.intelligence-->> + <</if>> +<</if>> + +<<set $activeSlave.corsetPiercing = 0>> +<<set $activeSlave.boobsImplant = 0>> +<<set $activeSlave.boobsImplantType = 0>> +<<set $activeSlave.nipplesPiercing = 0>> +<<set $activeSlave.areolaePiercing = 0>> +<<set $activeSlave.lactation = 0>> +<<set $activeSlave.hipsImplant = 0>> +<<set $activeSlave.buttImplant = 0>> +<<set $activeSlave.buttImplantType = 0>> +<<set $activeSlave.lipsImplants = 0>> +<<set $activeSlave.lipsPiercing = 0>> +<<set $activeSlave.tonguePiercing = 0>> +<<set $activeSlave.vaginaPiercing = 0>> +<<set $activeSlave.preg = 0>> +<<set $activeSlave.clitPiercing = 0>> +<<set $activeSlave.dickPiercing = 0>> +<<set $activeSlave.makeup = 0>> +<<set $activeSlave.nails = 0>> +<<set $activeSlave.earPiercing = 0>> +<<set $activeSlave.nosePiercing = 0>> +<<set $activeSlave.eyebrowPiercing = 0>> +<<set $activeSlave.stampTat = 0>> +<<set $activeSlave.bellyTat = 0>> +<<set $activeSlave.anusPiercing = 0>> +<<set $activeSlave.anusTat = 0>> +<<set $activeSlave.shouldersTat = 0>> +<<set $activeSlave.armsTat = 0>> +<<set $activeSlave.legsTat = 0>> +<<set $activeSlave.backTat = 0>> +<<set $activeSlave.combatSkill = 0>> +<<set $activeSlave.whoreSkill = 0>> +<<set $activeSlave.entertainSkill = 0>> +<<set $activeSlave.oralSkill = 0>> +<<set $activeSlave.analSkill = 0>> +<<set $activeSlave.vaginalSkill = 0>> +<<set $activeSlave.accent = 3>> +<<set $activeSlave.canRecruit = 0>> +<<set $activeSlave.hStyle = "long">> +<<set $activeSlave.hLength = 300>> +<<set $activeSlave.pubicHStyle = either("bushy", "bushy", "bushy", "bushy", "bushy", "bushy", "hairless")>> +<<set $activeSlave.underArmHStyle = either("bushy", "bushy", "bushy", "bushy", "bushy", "bushy", "hairless")>> + +<<set $mergeMom = 0>> +<<set $mergeDad = 0>> +<<set $mom = 0>> diff --git a/src/pregmod/incubator.tw b/src/pregmod/incubator.tw index b94c9e47d409e3aea6eb6af1fc0573afb3d0d805..af91a78cdcb2b71b387a58891978383ac9928e94 100644 --- a/src/pregmod/incubator.tw +++ b/src/pregmod/incubator.tw @@ -4,22 +4,17 @@ <<set $nextButton to "Back to Main">> <<set $nextLink to "Main">> <<set $returnTo to "Incubator">> +<<set $targetAge to Math.clamp($targetAge, $minimumSlaveAge, 18)>> -<<if $tanks == 0>> - <<set $tanks = [0]>> -<</if>> <<if $incubatorName != "the Incubator">> - <<set $incubatorNameCaps to $arcadeName.replace("the ", "The ")>> + <<set $incubatorNameCaps to $incubatorName.replace("the ", "The ")>> <</if>> +<<set $readySlaves to 0>> +<<set $readySlave to 0>> <<set $incubatorSlaves to 0>> -<<set $notIncubatorSlaves to 0>> <<for _i to 0; _i < $tanks.length; _i++>> - <<if $tanks[_i] != 0>> <<set $incubatorSlaves += 1>> - <<else>> - <<set $notIncubatorSlaves += 1>> - <</if>> <</for>> <br><br> @@ -30,26 +25,30 @@ $incubatorNameCaps is a clean, cold hall designed to be lined with tanks and the <<elseif $incubatorSlaves > 0>> It's barely used; most of the tanks lie dormant. <<else>> - It's empty and quiet. [[Decommission the incubator|Main][$incubator to 0, $incubatorUpgradeSpeed = 0, $incubatorUpgradeWeight = 0, $incubatorUpgradeMuscles = 0, $incubatorUpgradeReproduction = 0, $tanks = [0]]] + It's empty and quiet. [[Decommission the incubator|Main][$incubator to 0, $incubatorUpgradeSpeed = 0, $incubatorUpgradeWeight = 0, $incubatorUpgradeMuscles = 0, $incubatorUpgradeReproduction = 0, $tanks = []]] <</if>> <br>It can support $incubator <<if $incubator == 1>>child<<else>>children<</if>>. <<if $incubator == $incubatorSlaves>> All of the tanks are currently occupied by growing children. <</if>> -[[Add another incubation tank|Incubator][$cash -= Math.trunc(60000*$upgradeMultiplierArcology), $incubator += 1, $tanks.push(0)]] //Costs ¤<<print Math.trunc(60000*$upgradeMultiplierArcology)>> and will increase upkeep costs// +[[Add another incubation tank|Incubator][$cash -= Math.trunc(60000*$upgradeMultiplierArcology), $incubator += 1]] //Costs ¤<<print Math.trunc(60000*$upgradeMultiplierArcology)>> and will increase upkeep costs// + +<br> +Target age for release: <<textbox "$targetAge" $targetAge "Incubator">> [[Minimum Legal Age|Incubator][$targetAge to $minimumSlaveAge]] | [[Average Age of Fertility|Incubator][$targetAge to $fertilityAge]] | [[Average Age of Potency|Incubator][$targetAge to $potencyAge]] | [[Legal Adulthood|Incubator][$targetAge to 18]] +//Setting will not be applied to tanks in use.// <br> -<<if $incubatorUpgradeSpeed == 4>> +<<if $incubatorUpgradeSpeed == 52>> It has been upgraded with perfected growth accelerants; children grow at the rate of 1 week to 1 year. -<<elseif $incubatorUpgradeSpeed == 3>> - It has been upgraded with advanced experimental growth accelerants; children grow at the rate of 3 weeks to 1 year. [[Fund speculative research into maximizing growth rate|Incubator][$cash -= Math.trunc(500000*$upgradeMultiplierArcology), $incubatorUpgradeSpeed to 4]] //Costs ¤<<print Math.trunc(500000*$upgradeMultiplierArcology)>> and will increase upkeep costs// -<<elseif $incubatorUpgradeSpeed == 2>> - It has been upgraded with advanced growth accelerants; children grow at the rate of 6 weeks to 1 year. [[Fund research into increasing growth rate even further|Incubator][$cash -= Math.trunc(75000*$upgradeMultiplierArcology), $incubatorUpgradeSpeed to 3]] //Costs ¤<<print Math.trunc(75000*$upgradeMultiplierArcology)>> and will increase upkeep costs// -<<elseif $incubatorUpgradeSpeed == 1>> - It has been upgraded with growth accelerants; children grow at the rate of 9 weeks to 1 year. [[Further upgrade the incubators with specialized stem cells to speed growth|Incubator][$cash -= Math.trunc(30000*$upgradeMultiplierArcology), $incubatorUpgradeSpeed to 2]] //Costs ¤<<print Math.trunc(30000*$upgradeMultiplierArcology)>> and will increase upkeep costs// -<<else>> - The incubation tanks are basic; children grow at the rate of 12 weeks to 1 year. [[Upgrade the incubators with growth accelerating drugs|Incubator][$cash -= Math.trunc(30000*$upgradeMultiplierArcology), $incubatorUpgradeSpeed to 1]] //Costs ¤<<print Math.trunc(30000*$upgradeMultiplierArcology)>> and will increase upkeep costs// +<<elseif $incubatorUpgradeSpeed == 18>> + It has been upgraded with advanced experimental growth accelerants; children grow at the rate of 3 weeks to 1 year. [[Fund speculative research into maximizing growth rate|Incubator][$cash -= Math.trunc(500000*$upgradeMultiplierArcology), $incubatorUpgradeSpeed to 52]] //Costs ¤<<print Math.trunc(500000*$upgradeMultiplierArcology)>> and will increase upkeep costs// +<<elseif $incubatorUpgradeSpeed == 9>> + It has been upgraded with advanced growth accelerants; children grow at the rate of 6 weeks to 1 year. [[Fund research into increasing growth rate even further|Incubator][$cash -= Math.trunc(75000*$upgradeMultiplierArcology), $incubatorUpgradeSpeed to 18]] //Costs ¤<<print Math.trunc(75000*$upgradeMultiplierArcology)>> and will increase upkeep costs// +<<elseif $incubatorUpgradeSpeed == 6>> + It has been upgraded with growth accelerants; children grow at the rate of 9 weeks to 1 year. [[Further upgrade the incubators with specialized stem cells to speed growth|Incubator][$cash -= Math.trunc(30000*$upgradeMultiplierArcology), $incubatorUpgradeSpeed to 9]] //Costs ¤<<print Math.trunc(30000*$upgradeMultiplierArcology)>> and will increase upkeep costs// +<<elseif $incubatorUpgradeSpeed == 5>> + The incubation tanks are basic; children grow at the rate of 12 weeks to 1 year. [[Upgrade the incubators with growth accelerating drugs|Incubator][$cash -= Math.trunc(30000*$upgradeMultiplierArcology), $incubatorUpgradeSpeed to 6]] //Costs ¤<<print Math.trunc(30000*$upgradeMultiplierArcology)>> and will increase upkeep costs// <</if>> <br> @@ -73,11 +72,15 @@ $incubatorNameCaps is a clean, cold hall designed to be lined with tanks and the There are no systems in place to control a growing child's reproductive capability. [[Upgrade the growth tanks with hormone monitoring systems|Incubator][$cash -= Math.trunc(50000*$upgradeMultiplierArcology), $incubatorUpgradeReproduction to 1]] //Costs ¤<<print Math.trunc(50000*$upgradeMultiplierArcology)>> and will increase upkeep costs// <</if>> +<<if $incubatorSlaves > 0>> <<for $i to 0; $i < $tanks.length; $i++>> - <<if $tanks[$i] == 0>> - <br><br>Tank #<<print $i + 1>> is currently empty. - <<else>> - <br><br>Tank #<<print $i + 1>> is currently accelerating <<print $tanks[$i].slaveName>>'s growth. She will be ready for release in $tanks[$i].growth weeks. + <<set $tanks[$i].birthName = $tanks[$i].slaveName>> + <<if $tanks[$i].growTime <= 0>> + <<set $readySlaves = 1>> + <br><br>$tanks[$i].slaveName is ready to be released from her tank. + <<else>> + <br><br><<print $tanks[$i].slaveName>>'s growth is currently being accelerated. She will be ready for release in about <<print Math.round($tanks[$i].growTime/$incubatorUpgradeSpeed)>> weeks. + <</if>> <<if $incubatorUpgradeWeight == 1>> <br> <<if $incubatorWeightSetting == 1>> @@ -108,8 +111,8 @@ $incubatorNameCaps is a clean, cold hall designed to be lined with tanks and the Reproduction management systems are offline; she will undergo normal puberty. <</if>> <</if>> - <</if>> <</for>> +<</if>> <br><br> @@ -143,5 +146,15 @@ $incubatorNameCaps is a clean, cold hall designed to be lined with tanks and the <</if>> <</if>> +<<if $readySlaves == 1>> + <<for $i to 0; $i < $tanks.length; $i++>> + <<if $tanks[$i].growTime <= 0>> + <<set $readySlave = $tanks.pluck([$i], [$i])>> + <<break>> + <</if>> + <</for>> + <<goto "Incubator Retrieval Workaround">> +<</if>> + <br><br>Rename $incubatorName: <<textbox "$incubatorName" $incubatorName "Incubator">> //Use a noun or similar short phrase// diff --git a/src/pregmod/incubatorReport.tw b/src/pregmod/incubatorReport.tw index b37b26652e0cbc0a2cbcd93cc1ad4612c43c8431..a4898f530e6193f5a199f8d2e2dbe89c87bab3c6 100644 --- a/src/pregmod/incubatorReport.tw +++ b/src/pregmod/incubatorReport.tw @@ -1 +1,589 @@ -/*:: Incubator Report [nobr]*/ \ No newline at end of file +:: Incubator Report [nobr] + +''Incubator Report''<hr style="margin:0"> +<<set $incubatorSlaves to 0>> + +<<for $i to 0; $i < $tanks.length; $i++>> + <<set $tanks[$i].birthWeek += 1>> + <<if $tanks[$i].birthWeek >= 52>> + <<set $tanks[$i].birthWeek to 0>> + <<if $seeAge == 1>> + <<set $tanks[$i].actualAge += 1>> + <</if>> + <</if>> + <<set $incubatorSlaves += 1>> + <<if $tanks[$i].growTime > 0>> + <<set $tanks[$i].growTime -= $incubatorUpgradeSpeed>> + <br><<print $tanks[$i].slaveName>>'s growth is currently being accelerated. She <<if Math.round($tanks[$i].growTime/$incubatorUpgradeSpeed) == 0>>is @@color:lime;ready for release.@@ She will be ejected from her tank upon your approach<<else>>in about <<print Math.round($tanks[$i].growTime/$incubatorUpgradeSpeed)>>will be ready for release weeks<</if>>. + <<else>> + $tanks[$i].slaveName is @@color:lime;ready for release.@@ She will be ejected from her tank upon your approach. + <</if>> + + <<if $incubatorUpgradeWeight == 1>> + <<if $incubatorWeightSetting == 1>> + <<if $tanks[$i].weight < 100>> + <<if $incubatorUpgradeSpeed == 52>> + <<set $tanks[$i].weight += 70>> + <<elseif $incubatorUpgradeSpeed == 18>> + <<set $tanks[$i].weight += 40>> + <<elseif $incubatorUpgradeSpeed == 9>> + <<set $tanks[$i].weight += 20>> + <<elseif $incubatorUpgradeSpeed == 6>> + <<set $tanks[$i].weight += 10>> + <<elseif $incubatorUpgradeSpeed == 5>> + <<set $tanks[$i].weight += 5>> + <</if>> + <</if>> + The weight monitoring systems are overloading her intake causing @@color:red;rapid weight gain.@@ + <<elseif $incubatorWeightSetting == 2>> + <<if $tanks[$i].weight > 10>> + <<if $incubatorUpgradeSpeed == 52>> + <<set $tanks[$i].weight -= 30>> + <<elseif $incubatorUpgradeSpeed == 18>> + <<set $tanks[$i].weight -= 10>> + <<elseif $incubatorUpgradeSpeed == 9>> + <<set $tanks[$i].weight -= 5>> + <<elseif $incubatorUpgradeSpeed == 6>> + <<set $tanks[$i].weight -= 2>> + <<elseif $incubatorUpgradeSpeed == 5>> + <<set $tanks[$i].weight -= 1>> + <</if>> + The weight monitoring systems detect she is overweight and @@color:green;decrease her coloric intake.@@ + <<elseif $tanks[$i].weight < -10>> + <<if $incubatorUpgradeSpeed == 52>> + <<set $tanks[$i].weight += 30>> + <<elseif $incubatorUpgradeSpeed == 18>> + <<set $tanks[$i].weight += 10>> + <<elseif $incubatorUpgradeSpeed == 9>> + <<set $tanks[$i].weight += 5>> + <<elseif $incubatorUpgradeSpeed == 6>> + <<set $tanks[$i].weight += 2>> + <<elseif $incubatorUpgradeSpeed == 5>> + <<set $tanks[$i].weight += 1>> + <</if>> + The weight monitoring systems detect she is underweight and @@color:green;increase her coloric intake.@@ + <<else>> + She is @color:lime;currently a healthy weight;@@ efforts will be made to maintain it. + <</if>> + <<elseif $incubatorWeightSetting == 0>> + <<if $tanks[$i].weight > -100>> + Her developing body @@color:red;quickly sheds its gained weight.@@ + <<set $tanks[$i].weight -= 40>> + <</if>> + <</if>> + <<else>> + <<if $tanks[$i].weight > -100>> + Her developing body @@color:red;quickly sheds its gained weight.@@ + <<set $tanks[$i].weight -= 40>> + <</if>> + <</if>> + + <<if $incubatorUpgradeMuscles == 1>> + <br> + <<if $incubatorMusclesSetting == 2>> + <<if $tanks[$i].muscles < 100>> + <<if $incubatorUpgradeSpeed == 52>> + <<set $tanks[$i].muscles += 70>> + <<elseif $incubatorUpgradeSpeed == 18>> + <<set $tanks[$i].muscles += 40>> + <<elseif $incubatorUpgradeSpeed == 9>> + <<set $tanks[$i].muscles += 20>> + <<elseif $incubatorUpgradeSpeed == 6>> + <<set $tanks[$i].muscles += 10>> + <<elseif $incubatorUpgradeSpeed == 5>> + <<set $tanks[$i].muscles += 5>> + <</if>> + <</if>> + The strength monitoring systems are overloading her with steroids causing @@color:green;rapid muscle development.@@ + <<elseif $incubatorMusclesSetting == 1>> + <<if $tanks[$i].muscles > 10>> + <<if $incubatorUpgradeSpeed == 52>> + <<set $tanks[$i].muscles -= 30>> + <<elseif $incubatorUpgradeSpeed == 18>> + <<set $tanks[$i].muscles -= 10>> + <<elseif $incubatorUpgradeSpeed == 9>> + <<set $tanks[$i].muscles -= 5>> + <<elseif $incubatorUpgradeSpeed == 6>> + <<set $tanks[$i].muscles -= 2>> + <<elseif $incubatorUpgradeSpeed == 5>> + <<set $tanks[$i].muscles -= 1>> + <</if>> + The strength monitoring systems detect she is overly muscular and @@color:green;decrease her steroid dosage.@@ + <<elseif $tanks[$i].muscles < -10>> + <<if $incubatorUpgradeSpeed == 52>> + <<set $tanks[$i].muscles += 30>> + <<elseif $incubatorUpgradeSpeed == 18>> + <<set $tanks[$i].muscles += 10>> + <<elseif $incubatorUpgradeSpeed == 9>> + <<set $tanks[$i].muscles += 5>> + <<elseif $incubatorUpgradeSpeed == 6>> + <<set $tanks[$i].muscles += 2>> + <<elseif $incubatorUpgradeSpeed == 5>> + <<set $tanks[$i].muscles += 1>> + <</if>> + The strength monitoring systems detect she is weak and @@color:green;increase her steroid dosage.@@ + <<else>> + She has @color:lime;a healthy musculature;@@ efforts will be made to maintain it. + <</if>> + <<elseif $incubatorMusclesSetting == 0>> + <<if $tanks[$i].muscles > -100>> + Her developing body @@color:red;quickly loses its gained muscle.@@ + <<set $tanks[$i].muscles -= 40>> + <</if>> + <</if>> + <<else>> + <<if $tanks[$i].muscles > -100>> + Her developing body @@color:red;quickly loses its gained muscle.@@ + <<set $tanks[$i].muscles -= 40>> + <</if>> + <</if>> + + <<if $incubatorUpgradeReproduction == 1>> + <br> + <<if $incubatorReproductionSetting == 2>> + Her developing body is being flooded with hormones. + <<if $incubatorWeightSetting == 1>> + Combined with the abundant food provided to her, her body grows radibly. + <<if $tanks[$i].ovaries == 1>> + <<set $tanks[$i].pubertyXX = 1>> + <<if $seeHyperPreg == 1>> + <<set $tanks[$i].pregType = random(25,45)>> + <<else>> + <<set $tanks[$i].pregType = random(3,5)>> + <</if>> + <<if $incubatorUpgradeSpeed == 52>> + <<if $tanks[$i].breasts < 8000>> + The excess estrogen @@color:green;rapidly balloons her breasts.@@ + <<set $tanks[$i].breasts += 2000>> + <</if>> + <<if $tanks[$i].hips < 2 && random(1,100) > 50>> + The excess estrogen @@color:green;causes her hips to widen for childbirth.@@ + <<set $tanks[$i].hips += 2>> + <</if>> + <<if $tanks[$i].butt < 12 && random(1,100) > 30>> + The excess estrogen @@color:green;causes her rear grow fatter.@@ + <<set $tanks[$i].butt += 4>> + <</if>> + <<elseif $incubatorUpgradeSpeed == 18>> + <<if $tanks[$i].breasts < 8000>> + The excess estrogen @@color:green;rapidly balloons her breasts.@@ + <<set $tanks[$i].breasts += 500>> + <</if>> + <<if $tanks[$i].hips < 2 && random(1,100) > 50>> + The excess estrogen @@color:green;causes her hips to widen for childbirth.@@ + <<set $tanks[$i].hips += 1>> + <</if>> + <<if $tanks[$i].butt < 12 && random(1,100) > 50>> + The excess estrogen @@color:green;causes her rear grow fatter.@@ + <<set $tanks[$i].butt += 3>> + <</if>> + <<elseif $incubatorUpgradeSpeed == 9>> + <<if $tanks[$i].breasts < 8000>> + The excess estrogen @@color:green;rapidly balloons her breasts.@@ + <<set $tanks[$i].breasts += 200>> + <</if>> + <<if $tanks[$i].hips < 2 && random(1,100) > 60>> + The excess estrogen @@color:green;causes her hips to widen for childbirth.@@ + <<set $tanks[$i].hips += 1>> + <</if>> + <<if $tanks[$i].butt < 12 && random(1,100) > 50>> + The excess estrogen @@color:green;causes her rear grow fatter.@@ + <<set $tanks[$i].butt += 2>> + <</if>> + <<elseif $incubatorUpgradeSpeed == 6>> + <<if $tanks[$i].breasts < 8000>> + The excess estrogen @@color:green;rapidly balloons her breasts.@@ + <<set $tanks[$i].breasts += 100>> + <</if>> + <<if $tanks[$i].hips < 2 && random(1,100) > 70>> + The excess estrogen @@color:green;causes her hips to widen for childbirth.@@ + <<set $tanks[$i].hips += 1>> + <</if>> + <<if $tanks[$i].butt < 12 && random(1,100) > 60>> + The excess estrogen @@color:green;causes her rear grow fatter.@@ + <<set $tanks[$i].butt += 1>> + <</if>> + <<elseif $incubatorUpgradeSpeed == 5>> + <<if $tanks[$i].breasts < 8000>> + The excess estrogen @@color:green;rapidly balloons her breasts.@@ + <<set $tanks[$i].breasts += 100>> + <</if>> + <<if $tanks[$i].hips < 2 && random(1,100) > 80>> + The excess estrogen @@color:green;causes her hips to widen for childbirth.@@ + <<set $tanks[$i].hips += 1>> + <</if>> + <<if $tanks[$i].butt < 12 && random(1,100) > 70>> + The excess estrogen @@color:green;causes her rear grow fatter.@@ + <<set $tanks[$i].butt += 1>> + <</if>> + <</if>> + <<elseif $tanks[$i].balls > 0>> + <<set $tanks[$i].pubertyXY = 1>> + <<if $incubatorUpgradeSpeed == 52>> + <<if $tanks[$i].balls < 40>> + The excess testosterone @@color:green;causes her balls to balloon for extra cum production.@@ + <<set $tanks[$i].balls += 16>> + <</if>> + <<if $tanks[$i].dick < 10 && random(1,100) > 20>> + The excess testosterone @@color:green;causes her penis to swell.@@ + <<set $tanks[$i].dick += 4>> + <</if>> + <<elseif $incubatorUpgradeSpeed == 18>> + <<if $tanks[$i].balls < 40 && random(1,100) > 10>> + The excess testosterone @@color:green;causes her balls to balloon for extra cum production.@@ + <<set $tanks[$i].balls += 9>> + <</if>> + <<if $tanks[$i].dick < 10 && random(1,100) > 30>> + The excess testosterone @@color:green;causes her penis to swell.@@ + <<set $tanks[$i].dick += 3>> + <</if>> + <<elseif $incubatorUpgradeSpeed == 9>> + <<if $tanks[$i].balls < 40 && random(1,100) > 20>> + The excess testosterone @@color:green;causes her balls to balloon for extra cum production.@@ + <<set $tanks[$i].balls += 4>> + <</if>> + <<if $tanks[$i].dick < 10 && random(1,100) > 50>> + The excess testosterone @@color:green;causes her penis to swell.@@ + <<set $tanks[$i].dick += 2>> + <</if>> + <<elseif $incubatorUpgradeSpeed == 6>> + <<if $tanks[$i].balls < 40 && random(1,100) > 30>> + The excess testosterone @@color:green;causes her balls to balloon for extra cum production.@@ + <<set $tanks[$i].balls += 2>> + <</if>> + <<if $tanks[$i].dick < 10 && random(1,100) > 70>> + The excess testosterone @@color:green;causes her penis to swell.@@ + <<set $tanks[$i].dick += 1>> + <</if>> + <<elseif $incubatorUpgradeSpeed == 5>> + <<if $tanks[$i].balls < 40 && random(1,100) > 30>> + The excess testosterone @@color:green;causes her balls to balloon for extra cum production.@@ + <<set $tanks[$i].balls += 1>> + <</if>> + <<if $tanks[$i].dick < 10 && random(1,100) > 80>> + The excess testosterone @@color:green;causes her penis to swell.@@ + <<set $tanks[$i].dick += 1>> + <</if>> + <</if>> + <</if>> + <<elseif $incubatorWeightSetting == 1>> + Combined with the healthy food provided to her, her body grows readily. + <<if $tanks[$i].ovaries == 1>> + <<set $tanks[$i].pubertyXX = 1>> + <<if $seeHyperPreg == 1>> + <<set $tanks[$i].pregType = random(15,25)>> + <<else>> + <<set $tanks[$i].pregType = random(2,4)>> + <</if>> + <<if $incubatorUpgradeSpeed == 52>> + <<if $tanks[$i].breasts < 4000>> + The excess estrogen @@color:green;rapidly balloons her breasts.@@ + <<set $tanks[$i].breasts += 1000>> + <</if>> + <<if $tanks[$i].hips < 2 && random(1,100) > 70>> + The excess estrogen @@color:green;causes her hips to widen for childbirth.@@ + <<set $tanks[$i].hips += 1>> + <</if>> + <<if $tanks[$i].butt < 8 && random(1,100) > 50>> + The excess estrogen @@color:green;causes her rear grow fatter.@@ + <<set $tanks[$i].butt += 3>> + <</if>> + <<elseif $incubatorUpgradeSpeed == 18>> + <<if $tanks[$i].breasts < 4000>> + The excess estrogen @@color:green;rapidly balloons her breasts.@@ + <<set $tanks[$i].breasts += 500>> + <</if>> + <<if $tanks[$i].hips < 2 && random(1,100) > 80>> + The excess estrogen @@color:green;causes her hips to widen for childbirth.@@ + <<set $tanks[$i].hips += 1>> + <</if>> + <<if $tanks[$i].butt < 8 && random(1,100) > 50>> + The excess estrogen @@color:green;causes her rear grow fatter.@@ + <<set $tanks[$i].butt += 1>> + <</if>> + <<elseif $incubatorUpgradeSpeed == 9>> + <<if $tanks[$i].breasts < 4000>> + The excess estrogen @@color:green;rapidly balloons her breasts.@@ + <<set $tanks[$i].breasts += 200>> + <</if>> + <<if $tanks[$i].hips < 2 && random(1,100) > 90>> + The excess estrogen @@color:green;causes her hips to widen for childbirth.@@ + <<set $tanks[$i].hips += 1>> + <</if>> + <<if $tanks[$i].butt < 8 && random(1,100) > 60>> + The excess estrogen @@color:green;causes her rear grow fatter.@@ + <<set $tanks[$i].butt += 1>> + <</if>> + <<elseif $incubatorUpgradeSpeed == 6>> + <<if $tanks[$i].breasts < 4000>> + The excess estrogen @@color:green;rapidly balloons her breasts.@@ + <<set $tanks[$i].breasts += 100>> + <</if>> + <<if $tanks[$i].hips < 2 && random(1,100) > 95>> + The excess estrogen @@color:green;causes her hips to widen for childbirth.@@ + <<set $tanks[$i].hips += 1>> + <</if>> + <<if $tanks[$i].butt < 8 && random(1,100) > 70>> + The excess estrogen @@color:green;causes her rear grow fatter.@@ + <<set $tanks[$i].butt += 1>> + <</if>> + <<elseif $incubatorUpgradeSpeed == 5>> + <<if $tanks[$i].breasts < 4000>> + The excess estrogen @@color:green;rapidly balloons her breasts.@@ + <<set $tanks[$i].breasts += 100>> + <</if>> + <<if $tanks[$i].hips < 2 && random(1,100) > 95>> + The excess estrogen @@color:green;causes her hips to widen for childbirth.@@ + <<set $tanks[$i].hips += 1>> + <</if>> + <<if $tanks[$i].butt < 8 && random(1,100) > 80>> + The excess estrogen @@color:green;causes her rear grow fatter.@@ + <<set $tanks[$i].butt += 1>> + <</if>> + <</if>> + <<elseif $tanks[$i].balls > 0>> + <<set $tanks[$i].pubertyXY = 1>> + <<if $incubatorUpgradeSpeed == 52>> + <<if $tanks[$i].balls < 10>> + The excess testosterone @@color:green;causes her balls to balloon for extra cum production.@@ + <<set $tanks[$i].balls += 3>> + <</if>> + <<if $tanks[$i].dick < 7 && random(1,100) > 20>> + The excess testosterone @@color:green;causes her penis to swell.@@ + <<set $tanks[$i].dick += 2>> + <</if>> + <<elseif $incubatorUpgradeSpeed == 18>> + <<if $tanks[$i].balls < 10 && random(1,100) > 10>> + The excess testosterone @@color:green;causes her balls to balloon for extra cum production.@@ + <<set $tanks[$i].balls += 2>> + <</if>> + <<if $tanks[$i].dick < 7 && random(1,100) > 30>> + The excess testosterone @@color:green;causes her penis to swell.@@ + <<set $tanks[$i].dick += 1>> + <</if>> + <<elseif $incubatorUpgradeSpeed == 9>> + <<if $tanks[$i].balls < 10 && random(1,100) > 20>> + The excess testosterone @@color:green;causes her balls to balloon for extra cum production.@@ + <<set $tanks[$i].balls += 1>> + <</if>> + <<if $tanks[$i].dick < 7 && random(1,100) > 50>> + The excess testosterone @@color:green;causes her penis to swell.@@ + <<set $tanks[$i].dick += 1>> + <</if>> + <<elseif $incubatorUpgradeSpeed == 6>> + <<if $tanks[$i].balls < 10 && random(1,100) > 30>> + The excess testosterone @@color:green;causes her balls to balloon for extra cum production.@@ + <<set $tanks[$i].balls += 1>> + <</if>> + <<if $tanks[$i].dick < 7 && random(1,100) > 70>> + The excess testosterone @@color:green;causes her penis to swell.@@ + <<set $tanks[$i].dick += 1>> + <</if>> + <<elseif $incubatorUpgradeSpeed == 5>> + <<if $tanks[$i].balls < 10 && random(1,100) > 30>> + The excess testosterone @@color:green;causes her balls to balloon for extra cum production.@@ + <<set $tanks[$i].balls += 1>> + <</if>> + <<if $tanks[$i].dick < 7 && random(1,100) > 80>> + The excess testosterone @@color:green;causes her penis to swell.@@ + <<set $tanks[$i].dick += 1>> + <</if>> + <</if>> + <</if>> + <<else>> + Since her body has little to work with, her growth is fairly minor. + <<if $tanks[$i].ovaries == 1>> + <<set $tanks[$i].pubertyXX = 1>> + <<if $seeHyperPreg == 1>> + <<set $tanks[$i].pregType = random(10,15)>> + <<else>> + <<set $tanks[$i].pregType = random(2,3)>> + <</if>> + <<if $incubatorUpgradeSpeed == 52>> + <<if $tanks[$i].breasts < 2000>> + The excess estrogen @@color:green;rapidly balloons her breasts.@@ + <<set $tanks[$i].breasts += 700>> + <</if>> + <<if $tanks[$i].hips < 2 && random(1,100) > 90>> + The excess estrogen @@color:green;causes her hips to widen for childbirth.@@ + <<set $tanks[$i].hips += 2>> + <</if>> + <<if $tanks[$i].butt < 6 && random(1,100) > 70>> + The excess estrogen @@color:green;causes her rear grow fatter.@@ + <<set $tanks[$i].butt += 2>> + <</if>> + <<elseif $incubatorUpgradeSpeed == 18>> + <<if $tanks[$i].breasts < 2000>> + The excess estrogen @@color:green;rapidly balloons her breasts.@@ + <<set $tanks[$i].breasts += 200>> + <</if>> + <<if $tanks[$i].hips < 2 && random(1,100) > 80>> + The excess estrogen @@color:green;causes her hips to widen for childbirth.@@ + <<set $tanks[$i].hips += 1>> + <</if>> + <<if $tanks[$i].butt < 6 && random(1,100) > 70>> + The excess estrogen @@color:green;causes her rear grow fatter.@@ + <<set $tanks[$i].butt += 1>> + <</if>> + <<elseif $incubatorUpgradeSpeed == 9>> + <<if $tanks[$i].breasts < 2000>> + The excess estrogen @@color:green;rapidly balloons her breasts.@@ + <<set $tanks[$i].breasts += 50>> + <</if>> + <<if $tanks[$i].hips < 2 && random(1,100) > 80>> + The excess estrogen @@color:green;causes her hips to widen for childbirth.@@ + <<set $tanks[$i].hips += 1>> + <</if>> + <<if $tanks[$i].butt < 6 && random(1,100) > 90>> + The excess estrogen @@color:green;causes her rear grow fatter.@@ + <<set $tanks[$i].butt += 1>> + <</if>> + <<elseif $incubatorUpgradeSpeed == 6>> + <<if $tanks[$i].breasts < 2000>> + The excess estrogen @@color:green;rapidly grows her breasts.@@ + <<set $tanks[$i].breasts += 20>> + <</if>> + <<if $tanks[$i].hips < 2 && random(1,100) > 90>> + The excess estrogen @@color:green;causes her hips to widen for childbirth.@@ + <<set $tanks[$i].hips += 1>> + <</if>> + <<if $tanks[$i].butt < 6 && random(1,100) > 90>> + The excess estrogen @@color:green;causes her rear grow fatter.@@ + <<set $tanks[$i].butt += 1>> + <</if>> + <<elseif $incubatorUpgradeSpeed == 5>> + <<if $tanks[$i].breasts < 2000>> + The excess estrogen @@color:green;rapidly grows her breasts.@@ + <<set $tanks[$i].breasts += 10>> + <</if>> + <<if $tanks[$i].hips < 2 && random(1,100) > 95>> + The excess estrogen @@color:green;causes her hips to widen for childbirth.@@ + <<set $tanks[$i].hips += 1>> + <</if>> + <<if $tanks[$i].butt < 6 && random(1,100) > 90>> + The excess estrogen @@color:green;causes her rear grow fatter.@@ + <<set $tanks[$i].butt += 1>> + <</if>> + <</if>> + <<elseif $tanks[$i].balls > 0>> + <<set $tanks[$i].pubertyXY = 1>> + <<if $incubatorUpgradeSpeed == 52>> + <<if $tanks[$i].balls < 6>> + The excess testosterone @@color:green;causes her balls to balloon for extra cum production.@@ + <<set $tanks[$i].balls += 2>> + <</if>> + <<if $tanks[$i].dick < 4 && random(1,100) > 60>> + The excess testosterone @@color:green;causes her penis to swell.@@ + <<set $tanks[$i].dick += 1>> + <</if>> + <<elseif $incubatorUpgradeSpeed == 18>> + <<if $tanks[$i].balls < 6 && random(1,100) > 50>> + The excess testosterone @@color:green;causes her balls to balloon for extra cum production.@@ + <<set $tanks[$i].balls += 1>> + <</if>> + <<if $tanks[$i].dick < 4 && random(1,100) > 60>> + The excess testosterone @@color:green;causes her penis to swell.@@ + <<set $tanks[$i].dick += 1>> + <</if>> + <<elseif $incubatorUpgradeSpeed == 9>> + <<if $tanks[$i].balls < 6 && random(1,100) > 60>> + The excess testosterone @@color:green;causes her balls to balloon for extra cum production.@@ + <<set $tanks[$i].balls += 1>> + <</if>> + <<if $tanks[$i].dick < 4 && random(1,100) > 70>> + The excess testosterone @@color:green;causes her penis to swell.@@ + <<set $tanks[$i].dick += 2>> + <</if>> + <<elseif $incubatorUpgradeSpeed == 6>> + <<if $tanks[$i].balls < 6 && random(1,100) > 70>> + The excess testosterone @@color:green;causes her balls to balloon for extra cum production.@@ + <<set $tanks[$i].balls += 1>> + <</if>> + <<if $tanks[$i].dick < 4 && random(1,100) > 80>> + The excess testosterone @@color:green;causes her penis to swell.@@ + <<set $tanks[$i].dick += 1>> + <</if>> + <<elseif $incubatorUpgradeSpeed == 5>> + <<if $tanks[$i].balls < 6 && random(1,100) > 80>> + The excess testosterone @@color:green;causes her balls to balloon for extra cum production.@@ + <<set $tanks[$i].balls += 1>> + <</if>> + <<if $tanks[$i].dick < 4 && random(1,100) > 90>> + The excess testosterone @@color:green;causes her penis to swell.@@ + <<set $tanks[$i].dick += 1>> + <</if>> + <</if>> + <</if>> + <</if>> + <<elseif $incubatorReproductionSetting == 1>> + Her hormone levels are being carefully managed, @@color:green;encouraging early puberty.@@ + <<if $tanks[$i].ovaries == 1>> + <<set $pubertyXX = 1>> + <<if $tanks[$i].breasts < 400 && random(1,100) > 60>> + The added estrogen @@color:green;causes her breasts to swell.@@ + <<set $tanks[$i].breasts += 50>> + <</if>> + <<if $tanks[$i].hips < 2 && random(1,100) > 90>> + The added estrogen @@color:green;causes her hips to widen.@@ + <<set $tanks[$i].hips += 1>> + <</if>> + <<if $tanks[$i].butt < 5 && random(1,100) > 80>> + The added estrogen @@color:green;causes her butt to grow.@@ + <<set $tanks[$i].butt += 1>> + <</if>> + <<elseif $tanks[$i].balls > 0>> + <<set $pubertyXY = 1>> + <<if $tanks[$i].balls < 3 && random(1,100) > 80>> + The added testosterone @@color:green;causes her balls to swell.@@ + <<set $tanks[$i].balls += 1>> + <</if>> + <<if $tanks[$i].dick < 3 && random(1,100) > 60>> + The added testosterone @@color:green;causes her penis to grow.@@ + <<set $tanks[$i].dick += 1>> + <</if>> + <</if>> + <<else>> + <<if $tanks[$i].balls > 0>> + <<if $tanks[$i].balls > 1>> + <<set $tanks[$i].balls -= 5>> + <</if>> + <<if $tanks[$i].dick > 1>> + <<set $tanks[$i].dick -= 5>> + <</if>> + <</if>> + <<if $tanks[$i].breasts > 0>> + <<set $tanks[$i].breasts -= 500>> + <</if>> + <<if $tanks[$i].butt > 0>> + <<set $tanks[$i].butt -= 4>> + <</if>> + <</if>> + <<else>> + <<if $tanks[$i].balls > 0>> + <<if $tanks[$i].balls > 1>> + <<set $tanks[$i].balls -= 5>> + <</if>> + <<if $tanks[$i].dick > 1>> + <<set $tanks[$i].dick -= 5>> + <</if>> + <</if>> + <<if $tanks[$i].breasts > 0>> + <<set $tanks[$i].breasts -= 500>> + <</if>> + <<if $tanks[$i].butt > 0>> + <<set $tanks[$i].butt -= 4>> + <</if>> + <</if>> + + <<set $tanks[$i].weight = Math.clamp($tanks[$i].weight, -100, 100)>> + <<set $tanks[$i].muscles = Math.clamp($tanks[$i].muscles, -100, 100)>> + <<set $tanks[$i].dick = Math.clamp($tanks[$i].dick, 0, 10)>> + <<set $tanks[$i].hips = Math.clamp($tanks[$i].hips, -2, 2)>> + <<set $tanks[$i].balls = Math.clamp($tanks[$i].balls, 0, 40)>> + <<set $tanks[$i].boobs = Math.clamp($tanks[$i].boobs, 0, 10000)>> +<</for>> +<<if $incubatorSlaves == 0>> +$incubatorNameCaps is currently unused. +<</if>> + +<br><br> diff --git a/src/pregmod/incubatorRetrievalWorkaround.tw b/src/pregmod/incubatorRetrievalWorkaround.tw new file mode 100644 index 0000000000000000000000000000000000000000..bc552f7ce63fcf9cd3d82dcd542f75c7ae633dc1 --- /dev/null +++ b/src/pregmod/incubatorRetrievalWorkaround.tw @@ -0,0 +1,11 @@ +:: Incubator Retrieval Workaround + +$readySlave.slaveName has been discharged from $incubatorName and is ready for her first ever inspection. + +<<set $activeSlave = $readySlave>> +<<set $saleDescription to 0>> +<<display "Long Slave Description">> +<<AddSlave $activeSlave>> +<<set $nextLink to "AS Dump">> +<<set $returnTo to "Incubator">> +<<display "New Slave Intro">> \ No newline at end of file diff --git a/src/pregmod/incubatorWorkaround.tw b/src/pregmod/incubatorWorkaround.tw new file mode 100644 index 0000000000000000000000000000000000000000..5325c0a9d98f9a8ae9abcd7f1b7f6601ad30e64a --- /dev/null +++ b/src/pregmod/incubatorWorkaround.tw @@ -0,0 +1,9 @@ +:: Incubator Workaround [nobr] + +<<if $tanks.length < $incubator>> + <<set $activeSlave.growTime = Math.trunc($targetAge*52)>> + <<set $tanks.push($activeSlave)>> + <<set $incubatorSlaves++>> +<</if>> + +<<set $activeSlave = {}>> \ No newline at end of file diff --git a/src/pregmod/managePersonalAffairs.tw b/src/pregmod/managePersonalAffairs.tw index 56becdd7a4e9724d0657c6bef5326dd8f7654975..9deb675768d48f53923433c2ea4ae3dea5de89a4 100644 --- a/src/pregmod/managePersonalAffairs.tw +++ b/src/pregmod/managePersonalAffairs.tw @@ -76,9 +76,8 @@ On formal occasions, you are announced as $PCTitle. By slaves, however, you pref <</if>> </span> -<br><br> - <<if $PC.degeneracy > 0>> +<br><br> __Rumors__ <br> @@ -96,10 +95,16 @@ __Rumors__ The occasional rumor about you can be heard throughout the arcology. <</if>> -<br><br> +<</if>> + +<<if $familyTesting == 1>> +<<if totalPlayerRelatives($PC) > 0>> + <<PlayerFamily>> +<</if>> <</if>> <<if $PC.vagina == 1>> +<br><br> __Contraceptives and Fertility__ <br> @@ -121,23 +126,23 @@ __Contraceptives and Fertility__ In total, you have given birth to: -<<if $birthElite > 0>> -<br><<print $birthElite>> bab<<if $birthElite > 1>>ies<<else>>y<</if>> for the Societal Elite. +<<if $PC.birthElite > 0>> +<br><<print $PC.birthElite>> bab<<if $PC.birthElite > 1>>ies<<else>>y<</if>> for the Societal Elite. <</if>> -<<if $birthMaster > 0>> -<br><<print $birthMaster>> bab<<if $birthMaster > 1>>ies<<else>>y<</if>> for your former master. +<<if $PC.birthMaster > 0>> +<br><<print $PC.birthMaster>> bab<<if $PC.birthMaster > 1>>ies<<else>>y<</if>> for your former master. <</if>> -<<if $birthClient > 0>> -<br><<print $birthOther>> bab<<if $birthOther > 1>>ies<<else>>y<</if>> from clients you've slept with. +<<if $PC.birthClient > 0>> +<br><<print $PC.birthOther>> bab<<if $PC.birthOther > 1>>ies<<else>>y<</if>> from clients you've slept with. <</if>> -<<if $birthDegenerate > 0>> -<br><<print $birthDegenerate>> bastard<<if $birthDegenerate > 1>>s<</if>> from getting fucked by slaves. +<<if $PC.birthDegenerate > 0>> +<br><<print $PC.birthDegenerate>> bastard<<if $PC.birthDegenerate > 1>>s<</if>> from getting fucked by slaves. <</if>> -<<if $birthArcOwner > 0>> -<br><<print $birthArcOwner>> bab<<if $birthArcOwner > 1>>ies<<else>>y<</if>> from your time with that male arcology owner. +<<if $PC.birthArcOwner > 0>> +<br><<print $PC.birthArcOwner>> bab<<if $PC.birthArcOwner > 1>>ies<<else>>y<</if>> from your time with that male arcology owner. <</if>> -<<if $birthOther > 0>> -<br><<print $birthOther>> bab<<if $birthOther > 1>>ies<<else>>y<</if>> from sources you can't quite recall. +<<if $PC.birthOther > 0>> +<br><<print $PC.birthOther>> bab<<if $PC.birthOther > 1>>ies<<else>>y<</if>> from sources you can't quite recall. <</if>> <</if>> <br> diff --git a/src/pregmod/newChildIntro.tw b/src/pregmod/newChildIntro.tw new file mode 100644 index 0000000000000000000000000000000000000000..ca751b7b89ccf7c3f471fe1a288b8edb42105b70 --- /dev/null +++ b/src/pregmod/newChildIntro.tw @@ -0,0 +1,975 @@ +:: New Child Intro [nobr] + +<<set $showEncyclopedia to 1>><<set $encyclopedia to "">> + +<<SlaveTitle $activeSlave>> + +<<if $activeSlave.mother > 0>> +<<for $j to 0; $j < $slaves.length; $j++>> + <<if $activeSlave.mother == $slaves[$j].ID>> + <<set _tempMom = $slaves[$j]>> + <<break>> + <</if>> +<</for>> +<</if>> +<<if $activeSlave.father > 0>> +<<for $j to 0; $j < $slaves.length; $j++>> + <<if $activeSlave.father == $slaves[$j].ID>> + <<set _tempDad = $slaves[$j]>> + <<break>> + <</if>> +<</for>> +<</if>> + +<<set $activeSlave.sisters = 0>> +<<set $activeSlave.daughters = 0>> +<<for $j to 0; $j < $slaves.length; $j++>> + <<if $slaves[$j].mother == $activeSlave.ID || $slaves[$j].father == $activeSlave.ID>> + <<set $activeSlave.daughters += 1>> + <</if>> + <<if $activeSlave.mother == $slaves[$j].ID || $activeSlave.father == $slaves[$j].ID>> + <<set $slaves[$j].daughters += 1>> + <</if>> + <<if areSisters($slaves[$j], $activeSlave) > 0>> + <<set $activeSlave.sisters += 1>> + <<set $slaves[$j].sisters += 1>> + <</if>> +<</for>> + +<<set $activeSlave.origin = "Shortly after birth, she was sealed in an aging tank until she was of age. She knows nothing of the world outside of what the tank imprinted her with.">> +<<set $activeSlave.career = "slave since birth">> + + +You completed the legalities before heading to $incubatorName, knowing the tank will release her on your approach, and instruct $personalAssistantName to notify the new girl's parents to meet you in your office. As the tank exumes the disoriented girl, you help her to her feet<<if $incubatorReproductionSetting > 1>>, making sure to feel-up her overdeveloped body,<</if>> and walk her to your penthouse. Though first you must decide upon a name for the new girl; it won't take long to reach your office, so you have only @@color:orange;one chance to name her@@ before you arrive. +<span id="naming"> +<br>Choose a name for her. <<textbox "$activeSlave.slaveName" $activeSlave.slaveName "New Child Intro Intimate">> +<br><<click "Have you PA assign her a random name">> + <<replace "#naming">> + <<NationalityToName>> + <<set $activeSlave.birthName = $activeSlave.slaveName>> + $personalAssistantName registers the new girl as "<<print $activeSlave.slaveName>>" in your registry. + <</replace>> +<</click>> +<<if $activeSlave.mother > 0>> + <<for _j to 0; _j < $slaves.length; _j++>> + <<if $activeSlave.mother == $slaves[_j].ID>> + <<if $slaves[_j].ID == $Concubine.ID>> + <br><<click "Permit your Concubine to name her daughter">> + <<replace "#naming">> + <<ParentNames $slaves[_j], $activeSlave>> + After some careful consideration, $slaves[_j].slaveName picks a name she thinks you might find attractive; from now on her daughter will be known as "<<print $activeSlave.slaveName>>". + <</replace>> + <</click>> + <<break>> + <<elseif $slaves[_j].relationship == -4>> + <br><<click "Permit your wife to name her daughter">> + <<replace "#naming">> + <<ParentNames $slaves[_j], $activeSlave>> + After some careful consideration, $slaves[_j].slaveName picks a name suitable for your daughter; from now on she will be known as "<<print $activeSlave.slaveName>>". + <</replace>> + <</click>> + <<break>> + <<elseif $slaves[_j].ID == $Bodyguard.ID>> + <br><<click "Permit your bodyguard to name her daughter">> + <<replace "#naming">> + <<ParentNames $slaves[_j], $activeSlave>> + After some careful consideration, $slaves[_j].slaveName decides on "<<print $activeSlave.slaveName>>" for her daughter. She hopes you'll find it fitting her station. + <</replace>> + <</click>> + <<break>> + <<elseif $slaves[_j].ID == $HeadGirl.ID>> + <br><<click "Permit your headgirl to name her daughter">> + <<replace "#naming">> + <<ParentNames $slaves[_j], $activeSlave>> + After some careful consideration, $slaves[_j].slaveName decides on "<<print $activeSlave.slaveName>>" for her daughter. and hopes it will be a name your other slaves will learn to respect. + <</replace>> + <</click>> + <<break>> + <<elseif $slaves[_j].devotion > 50 && slaves[_j].trust > 50>> + <br><<click "Permit her devoted mother to name her daughter">> + <<replace "#naming">> + <<ParentNames $slaves[_j], $activeSlave>> + After some careful consideration, $slaves[_j].slaveName picks a name she hopes you'll like; from now on her daughter will be known as "<<print $activeSlave.slaveName>>". + <</replace>> + <</click>> + <<break>> + <</if>> + <</if>> + <</for>> +<</if>> +<<if $activeSlave.father > 0>> + <<for _j to 0; _j < $slaves.length; _j++>> + <<if $activeSlave.father == $slaves[_j].ID>> + <<if $slaves[_j].ID == $Concubine.ID>> + <br><<click "Permit your Concubine to name her daughter">> + <<replace "#naming">> + <<ParentNames $slaves[_j], $activeSlave>> + After some careful consideration, $slaves[_j].slaveName picks a name she thinks you might find attractive; from now on her daughter will be known as "<<print $activeSlave.slaveName>>". + <</replace>> + <</click>> + <<break>> + <<elseif $slaves[_j].relationship == -4>> + <br><<click "Permit your wife to name her daughter">> + <<replace "#naming">> + <<ParentNames $slaves[_j], $activeSlave>> + After some careful consideration, $slaves[_j].slaveName picks a name suitable for your daughter; from now on she will be known as "<<print $activeSlave.slaveName>>". + <</replace>> + <</click>> + <<break>> + <<elseif $slaves[_j].ID == $Bodyguard.ID>> + <br><<click "Permit your bodyguard to name her daughter">> + <<replace "#naming">> + <<ParentNames $slaves[_j], $activeSlave>> + After some careful consideration, $slaves[_j].slaveName decides on "<<print $activeSlave.slaveName>>" for her daughter. She hopes you'll find it fitting her station. + <</replace>> + <</click>> + <<break>> + <<elseif $slaves[_j].ID == $HeadGirl.ID>> + <br><<click "Permit your headgirl to name her daughter">> + <<replace "#naming">> + <<ParentNames $slaves[_j], $activeSlave>> + After some careful consideration, $slaves[_j].slaveName decides on "<<print $activeSlave.slaveName>>" for her daughter. and hopes it will be a name your other slaves will learn to respect. + <</replace>> + <</click>> + <<break>> + <<elseif $slaves[_j].devotion > 50 && slaves[_j].trust > 50>> + <br><<click "Permit her devoted mother to name her daughter">> + <<replace "#naming">> + <<ParentNames $slaves[_j], $activeSlave>> + After some careful consideration, $slaves[_j].slaveName picks a name she hopes you'll like; from now on her daughter will be known as "<<print $activeSlave.slaveName>>". + <</replace>> + <</click>> + <<break>> + <</if>> + <</if>> + <</for>> +<</if>> +</span> + +<br><br> + +''__@@color:pink;$activeSlave.slaveName@@__'' now stands before your desk +<<if $activeSlave.mother > 0 && $activeSlave.father > 0>> + alongside her mother _tempMom.slaveName and father _tempDad.slaveName. +<<elseif $activeSlave.mother > 0>> + alongside her mother _tempMom.slaveName. +<<elseif $activeSlave.father > 0>> + alongside her father _tempDad.slaveName. +<<else>> + alone, having no family<<if $activeSlave.mother == -1 || $activeSlave.father == -1>>, other than you,<</if>> in your stock. +<</if>> +<<if $arcologies[0].FSRestart >= 50>> + <<if _tempMom.breedingMark == 1>> + The Societal Elite are waiting to inspect the child of their eugenics programs. Approving of your attractive offspring, they take this opportunity to @@color:lime;brand the protesting girl with the breeding mark@@ signifying her as worthy of reproducing, before taking their leave. + <</if>> +<</if>> + +<<if $activeSlave.mother > 0>> + She glances at her mother + <<if _tempMom.relationship == -3>> + and @@color:hotpink;notices how happy@@ the look on her face is. _tempMom.slaveName is positively beaming with pride at <<if $activeSlave.father == -1>>the result of your union<<else>>her addition to your harem<</if>>. + <<set $activeSlave.trust += 35>> + <<set $activeSlave.devotion += 35>> + <<elseif _tempMom.ID == $Concubine.ID>> + and notices @@color:hotpink;how happy@@ the look on her face is. $Concubine.slaveName is positively beaming with pride at her addition to your harem. + <<set $activeSlave.trust += 30>> + <<set $activeSlave.devotion += 30>> + <<elseif _tempMom.ID == $Bodyguard.ID>> + and @@color:mediumaquamarine;notices how she focuses more on you than herself.@@ $Bodyguard.slaveName's dedication to your life has @@color:hotpink;certainly influenced her.@@ + <<set $activeSlave.trust += 40>> + <<set $activeSlave.devotion += 20>> + <<elseif _tempMom.ID == $HeadGirl.ID>> + and notices how much her look takes after your own. $HeadGirl.slaveName's dedication to you has @@color:hotpink;certainly influenced her.@@ + <<set $activeSlave.trust += 20>> + <<set $activeSlave.devotion += 20>> + <<elseif _tempMom.devotion < -50>> + and @@color:mediumorchid;notices the look of hatred@@ on her face; a @@color:gold;look of terror@@ across her own when her eyes return to you. + <<set $activeSlave.trust -= 50>> + <<set $activeSlave.devotion -= 50>> + <<elseif _tempMom.devotion < -20>> + and notices the @@color:mediumorchid;look of defeat@@ on her face; she starts to @@color:gold;feel uncertain@@ about her future. + <<set $activeSlave.trust -= 20>> + <<set $activeSlave.devotion -= 20>> + <<elseif _tempMom.trust <= 50>> + and notices the @@color:gold;look of fear@@ on her face; when she next glances at you, it is also @@color:gold;filled with fear.@@ + <<set $activeSlave.trust -= 40>> + <<set $activeSlave.devotion -= 30>> + <<elseif _tempMom.devotion <= 50>> + and @@color:hotpink;notices the look of indifference@@ on her face; her detached mother pushes her to @@color:mediumaquamarine;trust you more.@@ + <<set $activeSlave.trust += 10>> + <<set $activeSlave.devotion += 10>> + <<else>> + and @@color:hotpink;notices the look of dedication@@ on her face; her devoted mother pushes her to @@color:mediumaquamarine;trust you more.@@ + <<set $activeSlave.trust += 20>> + <<set $activeSlave.devotion += 20>> + <</if>> + <<if _tempMom.boobs > 10000>> + Her eyes focus on _tempMom.slaveName's <<print _tempMom.boobs>>cc tits, taking in every centimeter of their enormity, but lingering on her <<if _tempMom.lactation == 2>>milk gushing <<elseif _tempMom.lactation == 1>>milk leaking <</if>>_tempMom.nipples nipples. + <<elseif _tempMom.pregType >= 10 && bigBelly(_tempMom)>> + Her eyes focus on _tempMom.slaveName's massively distended, child-filled belly, taking in every obvious motion beneath her taut skin.<<if $activeSlave.pregType >= 20>> A hand runs across her own bloated middle and another down to her moist pussy.<</if>> + <<elseif bigBelly(_tempMom)>> + Her eyes focus on _tempMom.slaveName's rounded middle, staring in fascination at the unfamiliar bulge.<<if $activeSlave.pregType >= 20>> A hand runs across her own middle and another down to her moist pussy.<</if>> + <<elseif _tempMom.dick > 15>> + Her eyes focus on _tempMom.slaveName's <<print (6*_tempMom.dick)>>cm long dick, trying to understand how it can fit in a girl. + <<elseif _tempMom.balls > 60>> + Her eyes focus on _tempMom.slaveName's <<print (_tempMom.balls*2)>>cm long testicles, taking in every centimeter of their enormity, before shifting to the cum steadily drooling from the tip of her dick. + <<elseif _tempMom.hips > 2>> + Her eyes focus on _tempMom.slaveName's abnormally wide hips. She runs her hands down her own sides, pondering how such a wonder occurs. + <<elseif _tempMom.butt > 12>> + Her eyes focus on _tempMom.slaveName's massive ass, staring in fascination at every jiggle that runs through it. + <<elseif _tempMom.dick > 0 && _tempMom.vagina > -1>> + Her eyes focus on _tempMom.slaveName's crotch, staring in wonder and confusion at the presence of both a penis and a vagina. + <<elseif _tempMom.amp == 1>> + Her eyes dart from limb to missing limb on _tempMom.slaveName's body, trying desperatly to understand what happened to them. + <<elseif _tempMom.amp < 0>> + Her eyes dart from limb to prosthetic limb on _tempMom.slaveName's body, trying desperatly to understand these wonderful things are and how she could get her own. + <</if>> +<</if>> + +<<if $activeSlave.father > 0>> + She glances at her father + <<if _tempDad.relationship == -3>> + and @@color:hotpink;notices how happy@@ the look on her face is. _tempDad.slaveName is positively beaming with pride at <<if $activeSlave.mother == -1>>the result of your union<<else>>her addition to your harem<</if>>. + <<set $activeSlave.trust += 35>> + <<set $activeSlave.devotion += 35>> + <<elseif _tempDad.ID == $Concubine.ID>> + and notices @@color:hotpink;how happy@@ the look on her face is. $Concubine.slaveName is positively beaming with pride at her addition to your harem. + <<set $activeSlave.trust += 30>> + <<set $activeSlave.devotion += 30>> + <<elseif _tempDad.ID == $Bodyguard.ID>> + and @@color:mediumaquamarine;notices how she focuses more on you than herself.@@ $Bodyguard.slaveName's dedication to your life has @@color:hotpink;certainly influenced her.@@ + <<set $activeSlave.trust += 40>> + <<set $activeSlave.devotion += 20>> + <<elseif _tempDad.ID == $HeadGirl.ID>> + and notices how much her look takes after your own. $HeadGirl.slaveName's dedication to you has @@color:hotpink;certainly influenced her.@@ + <<set $activeSlave.trust += 20>> + <<set $activeSlave.devotion += 20>> + <<elseif _tempDad.devotion < -50>> + and @@color:mediumorchid;notices the look of hatred@@ on her face; a @@color:gold;look of terror@@ across her own when her eyes return to you. + <<set $activeSlave.trust -= 50>> + <<set $activeSlave.devotion -= 50>> + <<elseif _tempDad.devotion < -20>> + and notices the @@color:mediumorchid;look of defeat@@ on her face; she starts to @@color:gold;feel uncertain@@ about her future. + <<set $activeSlave.trust -= 20>> + <<set $activeSlave.devotion -= 20>> + <<elseif _tempDad.trust <= 50>> + and notices the @@color:gold;look of fear@@ on her face; when she next glances at you, it is also @@color:gold;filled with fear.@@ + <<set $activeSlave.trust -= 40>> + <<set $activeSlave.devotion -= 30>> + <<elseif _tempDad.devotion <= 50>> + and @@color:hotpink;notices the look of indifference@@ on her face; her detached father pushes her to @@color:mediumaquamarine;trust you more.@@ + <<set $activeSlave.trust += 10>> + <<set $activeSlave.devotion += 10>> + <<else>> + and @@color:hotpink;notices the look of dedication@@ on her face; her devoted father pushes her to @@color:mediumaquamarine;trust you more.@@ + <<set $activeSlave.trust += 20>> + <<set $activeSlave.devotion += 20>> + <</if>> + <<if _tempDad.boobs > 10000>> + Her eyes focus on _tempDad.slaveName's <<print _tempDad.boobs>>cc tits, taking in every centimeter of their enormity, but lingering on her <<if _tempDad.lactation == 2>>milk gushing <<elseif _tempDad.lactation == 1>>milk leaking <</if>>_tempDad.nipples nipples. + <<elseif _tempDad.pregType >= 10 && bigBelly(_tempDad)>> + Her eyes focus on _tempDad.slaveName's massively distended, child-filled belly, taking in every obvious motion beneath her taut skin.<<if $activeSlave.pregType >= 20>> A hand runs across her own bloated middle and another down to her moist pussy.<</if>> + <<elseif bigBelly(_tempDad)>> + Her eyes focus on _tempDad.slaveName's rounded middle, staring in fascination at the unfamiliar bulge.<<if $activeSlave.pregType >= 20>> A hand runs across her own middle and another down to her moist pussy.<</if>> + <<elseif _tempDad.dick > 15>> + Her eyes focus on _tempDad.slaveName's <<print (6*_tempDad.dick)>>cm long dick, trying to understand how it can fit in a girl. + <<elseif _tempDad.balls > 60>> + Her eyes focus on _tempDad.slaveName's <<print (_tempDad.balls*2)>>cm long testicles, taking in every centimeter of their enormity, before shifting to the cum steadily drooling from the tip of her dick. + <<elseif _tempDad.hips > 2>> + Her eyes focus on _tempDad.slaveName's abnormally wide hips. She runs her hands down her own sides, pondering how such a wonder occurs. + <<elseif _tempDad.butt > 12>> + Her eyes focus on _tempDad.slaveName's massive ass, staring in fascination at every jiggle that runs through it. + <<elseif _tempDad.dick > 0 && _tempDad.vagina > -1>> + Her eyes focus on _tempDad.slaveName's crotch, staring in wonder and confusion at the presence of both a penis and a vagina. + <<elseif _tempDad.amp == 1>> + Her eyes dart from limb to missing limb on _tempDad.slaveName's body, trying desperatly to understand what happened to them. + <<elseif _tempDad.amp < 0>> + Her eyes dart from limb to prosthetic limb on _tempDad.slaveName's body, trying desperatly to understand these wonderful things are and how she could get her own. + <</if>> +<</if>> + +<br><br> + +<<if $activeSlave.mother > 0 && $activeSlave.father > 0>> + You dismiss _tempMom.slaveName and _tempDad.slaveName so that you may conduct a more intimate inspection of their daughter. +<<elseif $activeSlave.mother > 0>> + You dismiss _tempMom.slaveName so that you may conduct a more intimate inspection of her daughter. +<<elseif $activeSlave.father > 0>> + You dismiss _tempDad.slaveName so that you may conduct a more intimate inspection of her daughter. +<</if>> +You slowly strip down, gauging her reactions to your show, until you are fully nude before her. + +<<if $activeSlave.vagina > -1>> + <<if ($PC.dick == 0) && ($PC.boobs == 1)>> + She notices she has the same parts as you, and @@color:mediumaquamarine;connects a little more@@ with a fellow girl. + <<set $activeSlave.trust += 4>> + <<elseif $PC.dick == 1>> + She notices your privates differ from hers, and thanks to the tank's teachings, @@color:hotpink;can't look away.@@ + <<set $activeSlave.devotion += 4>> + <<if $incubatorReproductionSetting > 0>> + She seems a little alarmed at her nipples and clit stiffening to the sight of your dick. + <</if>> + <</if>> +<<elseif $activeSlave.dick > 0>> + <<if ($PC.dick == 1) && ($PC.boobs == 0)>> + She notices she has the same parts as you, and @@color:mediumaquamarine;connects a little more@@ with a fellow boy. + <<set $activeSlave.trust += 4>> + <<elseif $PC.vagina == 1>> + She notices your privates differ from hers, and thanks to the tank's teachings, @@color:hotpink;can't look away.@@ + <<set $activeSlave.devotion += 4>> + <<if $incubatorReproductionSetting > 0>> + She seems a little alarmed at her dick rapidly stiffening to the sight of your pussy. + <</if>> + <</if>> +<</if>> + +<<if $incubatorReproductionSetting > 0>> +<<if (($activeSlave.attrXX > 50) || ($activeSlave.energy > 95)) && ($activeSlave.behavioralFlaw != "hates women") && ($activeSlave.trust >= -20)>> + <<if ($PC.boobs == 1)>> + She seems to think you're pretty, and is more willing to @@color:hotpink;try for your approval@@ than she would otherwise be. She openly oggles your rack at every opportunity. + <<set $activeSlave.devotion += 4>> + <</if>> +<</if>> +<<if ($activeSlave.behavioralFlaw is "hates women") && ($activeSlave.devotion <= 50)>> + <<if ($PC.dick == 0) && ($PC.boobs == 1)>> + She obviously does not find you immediately attractive, and is @@color:mediumorchid;less eager to conciliate you@@ than she would otherwise be. + <<set $activeSlave.devotion -= 5>> + <</if>> +<</if>> +<<if (($activeSlave.attrXY > 50) || ($activeSlave.energy > 95)) && ($activeSlave.behavioralFlaw != "hates men") && ($activeSlave.trust >= -20)>> + <<if ($PC.dick == 1) && ($PC.boobs == 0)>> + She seems to think you're handsome, and is more willing to @@color:hotpink;try for your approval@@ than she would otherwise be. She oggles your crotch at every opportunity. + <<set $activeSlave.devotion += 4>> + <</if>> +<</if>> +<</if>> + +<<if $PC.preg > 0>> + <<if $PC.career == "escort">> + <<if $PC.preg >= 16>> + She is fascinated by your pregnancy, to the point that she attempts a gesture to let you know she wants to feel it. Just this once, you permit her to touch your belly<<if $activeSlave.pubertyXX == 1>>, since it is likely she herself will be swollen with child before long<</if>>. She eagerly rubs it all over before pushing her ear to it, provoking a kick and a gasp in response. She instinctually @@color:hotpink;connects to you@@ and @@color:aquamarine;trusts you@@ like a mother. + <<set $activeSlave.trust += 2>> + <<set $activeSlave.devotion += 2>> + <</if>> + <<else>> + <<if $PC.preg >= 20>> + She is fascinated by your pregnancy, to the point that she attempts a gesture to let you know she wants to feel it. Just this once, you permit her to touch your belly<<if $activeSlave.pubertyXX == 1>>, since it is likely she herself will be swollen with child before long<</if>>. She eagerly rubs it all over before pushing her ear to it, provoking a kick and a gasp in response. She instinctually @@color:hotpink;connects to you@@ and @@color:aquamarine;trusts you@@ like a mother. + <<set $activeSlave.trust += 2>> + <<set $activeSlave.devotion += 2>> + <</if>> + <</if>> +<</if>> + +<<if $PC.boobsBonus == 3>> + Now that you are alone with her, she seems incapable of pulling her eyes off your huge tits. Every motion and jiggle in them is reflected in her expression. She licks her lips as she gazes at your erect nipples, but it will be you who decides who may suck on them. Though it doesn't stop her from @@color:hotpink;longing@@ to nurse from you. + <<set $activeSlave.devotion += 5>> +<</if>> + +<<if $enduringTrust > 20>> + <<if $activeSlave.trust >= -20>> + She notices that most of the slaves she sees around your penthouse seem to trust you; in turn @@color:mediumaquamarine;she trusts you more too.@@ + <<set $activeSlave.trust += 2>> + <</if>> +<<else>> + <<if $activeSlave.trust < 50>> + She notices that most of the slaves she sees around your penthouse seem to fear you; in turn @@color:gold;she fears you more too.@@ + <<set $activeSlave.trust -= 2>> + <</if>> +<</if>> +<<if $enduringDevotion > 20>> + <<if $activeSlave.devotion >= -20>> + She sees that most of the slaves she sees around your penthouse like you; in turn @@color:hotpink;she likes you more too.@@ + <<set $activeSlave.devotion += 1>> + <</if>> +<<else>> + <<if $activeSlave.devotion < 50>> + She sees that most of the slaves she sees around your penthouse dislike you; in turn @@color:mediumorchid;she dislikes you more too.@@ + <<set $activeSlave.devotion -= 2>> + <</if>> +<</if>> + +<<if $PC.career is "escort">> + She seems to @@color:mediumaquamarine;like your clothes@@ and @@color:hotpink;wants a set of her own.@@ + <<set $activeSlave.devotion += 1>> + <<set $activeSlave.trust += 1>> +<<elseif $PC.career is "servant">> + She seems to @@color:mediumaquamarine;think your clothes are cute@@ and @@color:hotpink;wants a set of her own.@@ + <<set $activeSlave.devotion += 1>> + <<set $activeSlave.trust += 1>> +<<elseif $PC.career is "gang">> + She seems to @@color:gold;find your appearance frightening.@@ + <<set $activeSlave.trust -= 5>> +<</if>> +<<if $PC.rumor is "force">> + She seems to @@color:gold;be terrified of your forceful stance.@@ + <<set $activeSlave.trust -= 10>> +<<elseif $PC.rumor is "diligence">> + She seems to @@color:mediumaquamarine;find your diligence enjoyable.@@ + <<set $activeSlave.trust += 5>> +<</if>> + +<<if $activeSlave.accent >= 3>> + She barely understands $language at all, and scarcely understands what's happening to her. This leaves her @@color:mediumaquamarine;blissfully unaware of what awaits her,@@ since she's too naive to know better. + <<set $activeSlave.trust += 25>> +<</if>> + +<<if $arcologies[0].FSSupremacist >= 50>> + <<if $activeSlave.race is $arcologies[0].FSSupremacistRace>> + She noticed everybody else is the same race as her, and @@color:mediumaquamarine;feels right at home among them.@@ + <<set $activeSlave.trust += 2>> + <</if>> +<</if>> +<<if $arcologies[0].FSSubjugationist >= 50>> + <<if $activeSlave.race == $arcologies[0].FSSubjugationistRace>> + She noticed a lot of your other slaves are the same race as her, and @@color:mediumaquamarine;feels right at home among them,@@ despite what it means. + <<set $activeSlave.trust += 2>> + <</if>> +<</if>> +<<if $arcologies[0].FSRepopulationFocus >= 50>> + <<if $activeSlave.pregType > 0>> + She notices all the rounded bellies in your arcolgy and @@color:mediumaquamarine;instinctually feels at home with her egg filled womb.@@ + <<set $activeSlave.trust += 2>> + <</if>> +<</if>> +<<if $arcologies[0].FSGenderFundamentalist >= 50>> + She there are lots of girls in your penthouse, making her @@color:mediumaquamarine;more comfortable.@@ + <<set $activeSlave.trust += 2>> +<</if>> +<<if $arcologies[0].FSGenderRadicalist >= 50>> + She there are lots of girly boys in your penthouse, making her @@color:mediumaquamarine;more comfortable.@@ + <<set $activeSlave.trust += 2>> +<</if>> +<<if $arcologies[0].FSPaternalist >= 50>> + She sees how happy your other slaves are, and can't help but @@color:mediumaquamarine;feel happy@@ herself. + <<set $activeSlave.trust += 2>> +<</if>> +<<if $arcologies[0].FSDegradationist >= 50>> + She sees how your other slaves cower as you pass, and can't help but @@color:mediumaquamarine;feel uneasy around you.@@ + <<set $activeSlave.trust -= 5>> +<</if>> + +<<if $arcologies[0].FSPaternalistLaw == 1>> + She saw a good deal of your arcology and its society on her way to your penthouse, and was amazed by all the happy, healthy slaves. She @@color:mediumaquamarine;begins to trust@@ that she'll be one of them, and @@color:hotpink;anticipates playing@@ with all her happy friends. + <<set $activeSlave.trust += 4>> + <<set $activeSlave.devotion += 4>> +<</if>> + +<<if $autoRulesAssistant == 0>> + <br> + <span id="rules"> + <<click "Apply default rules">> + <<replace "#rules">> + <<display "Default Rules">> + <</replace>> + <</click>> + <<if $activeSlave.devotion <= 20>> + //Will not apply many cosmetic and surgical options since she is not obedient// + <</if>> + </span> +<<else>> + <<if ($universalRulesNewSlavesRA == 1)>> + <<AutoRulesActivate 1>> + <</if>> +<</if>> + +<br><br> + +<span id="result"> +//Now would be a good time to introduce her to life in your stable of sex slaves.// +<br> + +<<click "Brand her">> +<<set $activeSlave.brand to $brandDesign>> +<<set $activeSlave.brandLocation to $brandTarget>> +<<set $activeSlave.devotion -= 25>> +<<set $activeSlave.trust -= 30>> +<<set $activeSlave.health -= 20>> +<<replace "#result">> + You drag her to the body modification studio and strap her down with her $brandTarget clear and defenseless. She doesn't understand what's on, becoming even more confused as disinfectant is applied to her $brandTarget. She can't see the approaching brand, but eventually she feels the radiated heat on her skin and manages to get one inarticulate, wordless noise of terror out before the dreadful sizzling noise and the sweet smell of burning flesh. If she trusted you at all before, @@color:mediumorchid;she doesn't now,@@ and she's got the @@color:gold;agonizing@@ @@color:red;injury@@ to remind her should she start to forget. + <<if ($arcologies[0].FSSubjugationistRace is $activeSlave.race) && ($arcologies[0].FSSubjugationist > 0)>> + Society @@color:green;approves@@ of your purchase and branding of a inferior $activeSlave.race person; this advances the idea that $activeSlave.race people ought to be enslaved. + <<set $rep += $FSSingleSlaveRep*($arcologies[0].FSSubjugationist/$FSLockinLevel)>> + <<set $Subjugationist += 0.05*$FSSingleSlaveRep>> + <<elseif ($arcologies[0].FSSupremacistRace is $activeSlave.race) && ($arcologies[0].FSSupremacist > 0)>> + Society @@color:red;disapproves@@ of your purchase and branding of a $activeSlave.race person; this reduces support for the idea that $activeSlave.race people are superior. + <<set $rep -= $FSSingleSlaveRep*($arcologies[0].FSSubjugationist/$FSLockinLevel)>> + <<set $Subjugationist -= 0.05*$FSSingleSlaveRep>> + <</if>> +<</replace>> +<</click>> + +<<if isFertile($activeSlave)>> +<br><<click "Impregnate her">> +<<set $activeSlave.preg to 1>> +<<set $activeSlave.pregSource to -1>> +<<replace "#result">> + <<if $activeSlave.pregType > 0>> + You don't need to perfom an exam to tell she is fertile; her nethers are swollen with need and her pussy dripping with desire<<if $activeSlave.pregType > 20>>, and her stomach is already slightly bloated with the number of fertile eggs within her womb<</if>>. She moans with pent up lust as her deeply penetrate her and begin steadily thrusting. Her tight pussy hungrily massages you dick as you near your climax, promting you to hilt yourself in her before seeding the deepest reaches of her pussy. She passed out in ecstasy, so you carry her bred body to the couch to recover and her eggs to take root. She should make the connection once her belly starts to rapidly swell with child. + <<else>> + You perform a careful medical examination to verify fertility, and then forcefully take the girl's virginity. Whenever you feel able, you drain your balls into her cunt, only allowing her to wander off when scans verify a fertilized ovum. She didn't properly understand the scans, so she just thought it was sex; she won't realize what happened for some months at least, and in the mean time, will think she is just getting fat. Though once her child starts kicking, she might make the connection between sex and pregnancy. + <</if>> + <<VaginalVCheck>> + <<if $arcologies[0].FSRestart != "unset" && $activeSlave.breedingMark == 0>> + The Societal Elite @@color:red;disaprove@@ of this breach of eugenics. + <<set $failedElite += 5>> + <<elseif $activeSlave.breedingMark == 1>> + The Societal Elite @@color:green;are pleased@@ that you are promtly putting a child in her. + <<elseif $arcologies[0].FSGenderFundamentalist != "unset">> + Society @@color:green;approves@@ of your promptly putting a new slave in her; this advances the idea that all slaves should bear their masters' babies. + <<set $rep += $FSSingleSlaveRep*($arcologies[0].FSGenderFundamentalist/$FSLockinLevel)>> + <<set $arcologies[0].FSGenderFundamentalist += 0.05*$FSSingleSlaveRep>> + <</if>> +<</replace>> +<</click>> +<</if>> + +<br><<click "Break her in publicly">> +<<replace "#result">> + You escort the curious slave out into the public areas below your penthouse, shove the nude $desc over a convenient handrail, and stick <<if $PC.dick == 1>>your dick<<else>>a strap-on<</if>> + <<if $activeSlave.vagina >= 0>> + inside her tight little pussy, making the poor girl writhe with discomfort. + <<else>> + up her poor little butthole, making the poor girl struggle desperately with anal pain. + <</if>> + You take her, hard, while passersby stare at her as she gets pounded over a rail. She takes the fuck obediently, all the while observing the passing spectators. She might not be a humiliation fetishist, but she is @@color:hotpink;willing to submit@@ to being used as a sex slave in public and may even grow to enjoy it. + <<set $activeSlave.devotion += 4>> + <<if random(1,100) > 60 && $activeSlave.fetish == "none">> + <<set $activeSlave.fetish = "humiliation">> + <<set $activeSlave.fetishStrength = 20>> + <</if>> + <<SimpleVCheck>> +<</replace>> +<</click>> + +<br><<click "Inseminate her">> +<<replace "#result">> + You lay the curious $desc across your desk and gently <<if $PC.dick == 1>>slide your hard cock<<else>>push a special strap-on<</if>> <<if $activeSlave.vagina >= 0>>inside her womanhood<<else>>up her butt<</if>>. You take her with care, enjoying her body and doing your best to give her pleasure without hurting her virgin hole. <<if $PC.dick == 1>>You empty your balls inside her, thrusting in as far as you can go<<else>>The strap-on contains a reservoir of faux ejaculate, and you give it to her<</if>> as you climax. When she feels the hot liquid jet into her, she moans lewdly and relaxes, giving in to the tank's teachings. She might not be an impregnation fetishist, but she is @@color:hotpink;willing to submit@@ to have her body used as your receptacle and may even grow to enjoy it. + <<set $activeSlave.devotion += 4>> + <<if random(1,100) > 60 && $activeSlave.fetish == "none">> + <<set $activeSlave.fetish = "pregnancy">> + <<set $activeSlave.fetishStrength = 20>> + <</if>> + <<SimpleVCheck>> +<</replace>> +<</click>> + +<br><<click "Spank her">> +<<replace "#result">> + You lay the curious $desc across your knees and run a voluptuary hand across her <<if $activeSlave.butt > 6>>jiggling<<elseif $activeSlave.butt > 3>>delightfully big<<elseif $activeSlave.butt > 1>>cute<<else>>skinny<</if>> buttocks, enjoying the way she tenses up reflexively at the unfamiliar position. She feels the change in your posture as you bring your hand back, and can't stop herself from wriggling for just a moment before your palm smacks against her ass. She gasps with surprise, but does not object or try to escape. She accepts the spanking, viewing it as a game, and taunts your hand with her rear; by the end, she may even be starting to enjoy it. You're not particularly harsh, and she gets up after you tire of swatting her bottom @@color:hotpink;with a smile@@ on her face. + <<set $activeSlave.devotion += 4>> + <<if random(1,100) > 60 && $activeSlave.fetish == "none">> + <<set $activeSlave.fetish = "masochist">> + <<set $activeSlave.fetishStrength = 20>> + <</if>> +<</replace>> +<</click>> + +<br><<click "Tease her nipples">> +<<replace "#result">> + You pull the curious $desc atop your desk in front of you and go back to business. After a few minutes, you extend an idle hand and begin to fondle her <<if $activeSlave.boobs > 2000>>massive tits<<elseif $activeSlave.boobs > 400>>healthy breasts<<else>>cute little boobs<</if>>, continuing your work with your other hand. You quickly focus your fiddling on her $activeSlave.nipples nipples, the stimulation bringing them quickly erect. She accepts your groping, even becoming aroused by it, but might not be a breast fetishist, though she @@color:hotpink;certainly enjoys the attention.@@ By the feel of her nipples between your fingers, she may certainly develop into one.<<if $incubatorReproductionSetting == 2 && $activeSlave.boobs > 400>> A loud moan and a distinct wetness in your hand quickly draw your attention to her. It seems @@color:green;she is lactating!@@<</if>> + <<set $activeSlave.devotion += 4>> + <<if random(1,100) > 60 && $activeSlave.fetish == "none">> + <<set $activeSlave.fetish = "boobs">> + <<set $activeSlave.fetishStrength = 20>> + <</if>> +<</replace>> +<</click>> + +<<if $PC.vagina == 1>> +<<if $activeSlave.dick > 0 && canAchieveErection($activeSlave)>> +<br><<click "Dominate her penis">> +<<replace "#result">> + As you inspect her, you take note of her fully functional <<if $activeSlave.dick == 1>>tiny dick<<elseif $activeSlave.dick == 2>>cute dick<<elseif $activeSlave.dick is 3>>dick<<elseif $activeSlave.dick is 4>>big dick<<elseif $activeSlave.dick is 5>>impressive dick<<elseif $activeSlave.dick is 6>>huge dick<</if>>. You gently begin fondling her penis, grinning at the look of confusion and lust growing on her face. +<<if $activeSlave.dick == 1>> +You scoff at her as her micropenis barely fills your palm. +<<elseif $activeSlave.dick == 2>> +You laugh at her as her small penis fills your palm. +<<elseif $activeSlave.dick is 3>> +You nod at her as her penis fills your hand. +<<elseif $activeSlave.dick is 4>> +You smirk at her as her big penis fills your hand. +<<elseif $activeSlave.dick is 5>> +You smile widely at her, a dangerous look in your eyes, as you bring another hand to her impressive dick. +<<elseif $activeSlave.dick is 6>> +You grin sadistically at her as her massive dick fills both of your hands. +<</if>> +As she begins to moan with lust, you grip down tightly and force her to the floor. You straddle her and lower your dripping pussy onto her face<<if $PC.dick == 1>>, your erect cock coming to rest on her forehead<</if>>. You continue stroking your toy's rod as she eagerly begins eating you out. As her cock begins to throb, anticipating her upcoming orgasm, +<<if $incubatorMusclesSetting == 2 && $incubatorReproductionSetting > 0>> + she shoves you onto your back and deeply penetrates you. Before you can kick her off, she thrusts twice and unloads her pent up orgasm deep into your pussy. She pulls out with a huge smile on her face and a @@color:hotpink;deep love@@ for her mate. You glower at her as cum pools from your stretched cunt; she might not be a dom now, but she may certainly become one. + <<set $activeSlave.devotion += 5>> + <<if random(1,100) > 60 && $activeSlave.fetish == "none">> + <<set $activeSlave.fetish = "dom">> + <<set $activeSlave.fetishStrength = 20>> + <</if>> + <<if $PC.preg == 0>> + <<set $PC.preg = 1, $PC.pregSource = $activeSlave.ID>> + You groan as you rub your belly. You were fertile and are now likely @@color:lime;quite pregnant.@@ + <</if>> +<<else>> + you quickly bind the base of her penis, denying her release. You grind your cunt into her face, letting her that YOU are the one who'll be orgasming here, not her. Only once you have initiated the new slave by soaking her face in your cum do you release her dick and lean back to avoid the coming blast. A few strokes later and your hand is coated in her cum. You turn around and order the exhausted girl to clean her cum off your hand<<if $PC.dick == 1>> and to finish off her twitching dick<</if>>; she might not be a submissive, but she is @@color:hotpink;willing to let you have your way@@ with her body used and may even grow to enjoy it. + <<set $activeSlave.devotion += 5>> + <<if random(1,100) > 60 && $activeSlave.fetish == "none">> + <<set $activeSlave.fetish = "submissive">> + <<set $activeSlave.fetishStrength = 20>> + <</if>> +<</if>> +<</replace>> +<</click>> +<</if>> +<</if>> + +<<if $PC.boobs == 1>> +<<if $activeSlave.boobs <= (800+(200*$PC.boobsBonus)) && $activeSlave.boobs >= 300>> + <br><<click "Let your ample bust dominate her pathetic one">> + <<set $activeSlave.devotion += 5>> +<<replace "#result">> + You quickly strip off your shirt and draw close to $activeSlave.slaveName. You grab her as she attempts to back away and pull her tits directly into your own. Both of sets of eyes lock onto their pair of breasts, or they would have, had yours not utterly eclipsed their rival. Scoffing, you release the confused girl and walk away; leaving her feeling her own breasts and feeling uncertain about herself. She gets caught up in how small they really are, and how much @@color:hotpink;lesser@@ than her <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title isnot 0>>Master<<else>>Mistress<</if>> she is. + <<if $activeSlave.fetish == "boobs">> + <<if $activeSlave.fetishKnown == 0>> + You did note one thing when your breasts touched, her nipples got very hard. @@color:green;Looks like she's a breast fetishist!@@ + <<set $activeSlave.fetishKnown = 1>> + <</if>> + <</if>> +<</replace>> +<</click>> +<</if>> +<</if>> +<</if>> + +<<if $PC.preg >= 24>> + <br><<click "Make her worship your pregnancy">> +<<replace "#result">> + You aggressively approach $activeSlave.slaveName, forcing your pregnancy into directly into her <<if $activeSlave.height > 175>>stomach<<elseif $activeSlave.height < 155>>face<<else>>chest<</if>> until she has no choice but be pushed to the ground. Standing over her, staring her down as she peeks around your taut globe of a middle; you order her to worship your pregnancy. + <<if $activeSlave.fetish == "pregnancy">> + She eagerly complies. She begins with sucking your popped navel before running her tongue across the tuat, smooth surface of your pregnancy. Once she has finished with your belly, she lowers herself under it to begin work on your needy pussy. Before long, her overzealous efforts have you quaking in pleasure and awoken your child. Once she finishes you off, she returns to rubbing your belly, soothing your rowdy child and @@color:hotpink;solidifying her place@@ beneath you. + <<set $activeSlave.devotion += 15>> + <<else>> + She shifts her gaze between your middle and your face, not sure what to do. Losing patience, you toss a tube of cream at her. She shakily massages it into your stretched skin, missing spots, much to your pleasure. With reason, you force her onto her back, turn around, and plant your needy cunt directly onto her face. Struggling to breath under your weight, she begins eating you out in desperation. After coaxing her to massage your belly as she does, you quickly climax across her face and gently lift yourself off the coughing girl. She now @@color:hotpink;understands her place in life@@ and is @@color:gold;terrified@@ about what she will have to do if she wants to survive. + <<set $activeSlave.devotion += 5>> + <<set $activeSlave.trust -= 5>> + <</if>> +<</replace>> +<</click>> +<</if>> + +<<if $activeSlave.health < -20>> +<br><<click "Address her medical issues">> +<<set $activeSlave.health += 10>> +<<set $activeSlave.trust += 4>> +<<replace "#result">> + Since she came out of the tank rather unhealthy, so you give her a comprehensive medical exam with the help of the remote surgery. You apply care to @@color:green;address@@ some of the most outstanding concerns. After the checkup, she happily @@color:mediumaquamarine;expresses her thanks@@ for making her feel better. + <<if $arcologies[0].FSPaternalist != "unset">> + Society @@color:green;approves@@ of your promptly seeing to your stock's health; this advances the idea that all slave owners should look after their slaves. + <<set $rep += $FSSingleSlaveRep*($arcologies[0].FSPaternalist/$FSLockinLevel)>> + <<set $arcologies[0].FSPaternalist += 0.05*$FSSingleSlaveRep>> + <</if>> +<</replace>> +<</click>> +<</if>> + +<<if $seeExtreme == 1>> + +<<if $activeSlave.balls > 0>> +<br><<click "Geld her">> +<<set $activeSlave.balls to 0>> +<<set $activeSlave.health -= 10>> +<<set $activeSlave.trust -= 100>> +<<replace "#result">> + You drag her to the remote surgery and strap her face down with her legs spread. She doesn't understand what's happening, since the anaesthetics totally deprive her of any sensation. She's so drugged and drowsy with @@color:red;surgical recovery@@ that it takes a while for her to figure out what's happened. When she does, her poor mind scarcely processes the @@color:gold;horror@@ of what's happened. She numbly carries on, terrified. + <<if $arcologies[0].FSGenderRadicalist != "unset">> + Society @@color:green;approves@@ of your promptly gelding her; this advances the idea that all societal inferiors can be made female. + <<set $rep += $FSSingleSlaveRep*($arcologies[0].FSGenderRadicalist/$FSLockinLevel)>> + <<set $arcologies[0].FSGenderRadicalist += 0.05*$FSSingleSlaveRep>> + <</if>> +<</replace>> +<</click>> +<</if>> + +<<if $activeSlave.amp != 1>> +<<if $activeSlave.indentureRestrictions <= 0>> +<br><<click "Clip her Achilles tendons">> +<<set $activeSlave.heels to 1>> +<<set $activeSlave.devotion -= 5>> +<<set $activeSlave.health -= 10>> +<<set $activeSlave.trust -= 20>> +<<replace "#result">> + You drag her to the remote surgery and strap her face down with her legs bare. She doesn't understand what's coming for a while, even as her lower legs are carefully cleaned and disinfected. She can't see the approaching surgical manipulators, but eventually she feels a tugging at her lower legs even through the local anaesthetic. She gets one squeal of protest out before the surgery begins to apply healing agents. She now requires special heels to walk, and will @@color:mediumorchid;remember her status@@ with every @@color:red;painful@@ step she takes. She's barefoot, crawling, and @@color:gold;frightened@@ for now, until you decide to give her heels - if you ever do. +<</replace>> +<</click>> +<</if>> +<</if>> + +<<if $arcologies[0].FSRestart >= 10>> +<<if $activeSlave.preg != -2 && $activeSlave.ovaries > 0>> +<<if $activeSlave.indentureRestrictions <= 0>> +<br><<click "Sterilize her">> + <<set $activeSlave.preg to -2>> + <<set $activeSlave.ovaries to 0>> + <<set $activeSlave.devotion -= 50>> + <<set $activeSlave.health -= 10>> + <<set $activeSlave.trust -= 20>> +<<replace "#result">> + You drag her to the remote surgery and strap her face up with her<<if $activeSlave.preg > 10>> pregnant<</if>> stomach bare. She doesn't understand what's coming for a while, even as her belly is carefully cleaned and disinfected. She begins to panic at the sight of the approaching surgical manipulators, cringing as they cut into her<<if $activeSlave.preg > 10>> swollen<</if>> abdomen. She squeals in horror as her<<if $activeSlave.preg > 10>> pregnant<</if>> womb and ovaries are extracted before her eyes. She will never bear children, and will @@color:mediumorchid;remember her status@@ with every fucking she receives. Your absolute power over her body is rightfully @@color:gold;terrifying@@. +<</replace>> +<</click>> +<</if>> +<</if>> +<</if>> + +<<if $activeSlave.balls > 0>> +<<if $activeSlave.attrXY < 65>> +<br><<click "Threaten her balls">> +<<set $activeSlave.devotion += 10>> +<<set $activeSlave.trust -= 10>> +<<replace "#result">> + You ask her how she feels about taking cock up her ass. A look of revulsion and fear crosses her face, and she backs away from you slightly, unconsciously protecting her bottom. Before she can muster any kind of response, you tell her that you suspected as much, and that she has balls. She looks confused at the apparently unrelated remarks until you explain that in your arcology, balls are a privilege. If she won't be a good little bitch, you'll take them away and turn her into a bitch anyway. Only good girls get to keep their hardons, and if she isn't a good girl, you'll make her a little good girl with a bouncing little bitchclit. She begins to cry, @@color:gold;sobbing and sobbing@@ as she promises to @@color:hotpink;be a good girl.@@ +<</replace>> +<</click>> +<</if>> +<</if>> + +<<if $dairy > 0>> +<<if $dairyRestraintsSetting > 1>> + <br><<click "Threaten her with the Industrial Dairy">> +<<set $activeSlave.devotion += 10>> +<<set $activeSlave.trust -= 10>> + <<replace "#result">> + You tell her that it's in her interests to be a good girl. She does not react immediately, perhaps wondering if you think such a trite statement will have a real impact, but then you point at a wallscreen behind her. She turns, and beholds a live feed from the Industrial Dairy. She gazes spellbound at the interleaved row of bodies intertwined with machines in embraces far more intimate than any lover could hope to match. The gently heaving masses of breastflesh hold her fascinated and horrified attention until one of the machines fortuitously chooses this moment to cycle its occupant's anal hydration regimen. It withdraws its horse-sized phallus from the slave's anus, leaving her gape pulsing gently as it awaits the resumption of the endless assrape. $activeSlave.slaveName lets out a huge sob and turns to you, @@color:gold;fear suffusing her@@ as she promises to @@color:hotpink;be a good girl.@@ + <</replace>> + <</click>> + <<if $dairyPrepUpgrade == 1>> + <<if $dairy > $dairySlaves+$bioreactorsXY+$bioreactorsXX+$bioreactorsHerm+$bioreactorsBarren>> + <br><<click "Send her straight to the Industrial Dairy">> +<<set $activeSlave.assignment to "work in the dairy">> +<<set $activeSlave.assignmentVisible to 0>> +<<set $activeSlave.choosesOwnAssignment to 0>> +<<set $activeSlave.anus to Math.clamp($activeSlave.anus, 3, 4)>> + <<if $activeSlave.vagina > -1>><<set $activeSlave.vagina to Math.clamp($activeSlave.vagina, 3, 4)>><</if>> + <<replace "#result">> + You order <<if $HeadGirl == 0>>another slave<<else>>$HeadGirl.slaveName<</if>> to get $activeSlave.slaveName set up in $dairyName. The new slave does not know what $dairyName is, not really, and she doesn't know what being set up there means, either. If she knew that you are able to send her there so blithely only because it is equipped with a special preparatory raper that will seize her, <<if $activeSlave.vagina > -1>>mercilessly fuck her pussy and ass until both are gaped<<else>>ream her anus until it's cavernously gaped<</if>>, and then consign her to constant fucking by gargantuan machine phalli, she might resist. But she doesn't, so she does not. + <</replace>> + <</click>> + <</if>> + <</if>> + <<if $dairy > $dairySlaves+$bioreactorsXY+$bioreactorsXX+$bioreactorsHerm+$bioreactorsBarren>> + <br><<click "Break her in for the Industrial Dairy">> +<<set $activeSlave.assignment to "work in the dairy">> +<<set $activeSlave.assignmentVisible to 0>> +<<set $activeSlave.choosesOwnAssignment to 0>> +<<set $activeSlave.anus to Math.clamp($activeSlave.anus, 3, 4)>> +<<set $activeSlave.analCount += 10>> + <<set $analTotal += 10>> + <<if $activeSlave.vagina > -1>> + <<set $activeSlave.vagina to Math.clamp($activeSlave.vagina, 3, 4)>> + <<set $activeSlave.vaginalCount += 10>> + <<set $vaginalTotal += 10>> + <</if>> +<<set $activeSlave.analCount += 10>> + <<set $analTotal += 10>> + <<replace "#result">> + Making use of <<if ($activeSlave.trust < -20) || ($activeSlave.devotion > 20)>>her obedience<<else>>the compliance systems<</if>>, you restrain her on one of the chairs in your office in an approximation of the position she'll occupy in $dairyName. Then you put a mask on her, like the ones the machines there feature, and turn it on, watching the slave squirm against her restraints under the sudden bombardment of garish hardcore porn. Finally, you add a dildo gag, both to mimic the dildo that will feed her, and to keep your office reasonably quiet. Then, for the rest of the day, you use her vulnerable <<if $activeSlave.vagina > -1>>holes<<else>>asshole<</if>> as an outlet for your sexual energy. You are not gentle; in fact, the point of the whole exercise is to gape her. By the evening she's been fucked so hard that she's stopped jerking against the chair when you pound <<if $PC.dick == 1>>your huge cock<<else>>a huge strap-on<</if>> in and out of her, so you're obliged to get creative, sliding fingers in alongside <<if $PC.dick == 1>>yourself<<else>>it<</if>> to really blow her out. Once that gets too easy, you start adding dildos for double penetration. By the night she's properly prepared to take $dairyName's giant phalli, and you're bored, so you consign her to her fate. She might have some opinion on how she's spent her day, but it's unlikely she'll remember it by tomorrow, what with the forearm-sized dildos sliding in and out of her<<if $activeSlave.vagina > -1>> cunt,<</if>> throat, and asshole. + <</replace>> + <</click>> +<</if>> +<</if>> + <</if>> + +<<if $arcade > 0>> + <br><<click "Threaten her with the Arcade">> +<<set $activeSlave.devotion += 10>> +<<set $activeSlave.trust -= 10>> + <<replace "#result">> + You tell her that it's in her interests to be a good girl. She does not react immediately, perhaps wondering if you think such a trite statement will have a real impact, but then you point at a wallscreen behind her. She turns, and beholds a live feed from $arcadeName. She gazes at the row of butts sticking out of the wall at dick height, not quite realizing what she's seeing. Then she notices that there are citizens pumping away in front of two of the butts, and she understands. As she watches, terrified, first one citizen and then the other finishes and steps away. The first arcade inmate's <<if $seeDicks != 100>>pussy<<else>>butt<</if>> is left looking sore until $arcadeName's systems cover her for a quick cleaning, and the second inmate's asshole <<if $seeDicks != 0>>has obviously seen severe use, since the poor girl doesn't have a pussy to spread the load<<else>>is loose enough that the machines have to clean up the cum it drools onto the floor<</if>>. $activeSlave.slaveName lets out a huge sob and turns to you, @@color:gold;fear suffusing her@@ as she promises to @@color:hotpink;be a good girl.@@ + <</replace>> + <</click>> + <<if ($arcade > $arcadeSlaves) || ($arcadeUpgradeFuckdolls != 0)>> + <br><<click "Send her straight to the Arcade">> +<<set $activeSlave.assignment to "be confined in the arcade">> +<<set $activeSlave.assignmentVisible to 0>> +<<set $activeSlave.choosesOwnAssignment to 0>> + <<replace "#result">> + You order <<if $HeadGirl == 0>>another slave<<else>>$HeadGirl.slaveName<</if>> to get $activeSlave.slaveName set up in $arcadeName. The new slave does not know what $arcadeName is, not really, and she doesn't know what being set up there means, either. She'll be confined inside a small space, not too different from the indignities she's suffered already. It's only when the restraints lock into place that she'll understand her doom. Her mouth will be forced open and presented at one wall of $arcadeName, and her ass will protrude from its other side, her holes available for public relief at both ends. She'll probably refuse to believe the truth, until the first cockhead enters her mouth<<if $activeSlave.vagina > -1>>, parts her pussylips,<</if>> or presses against her poor anus. + <<if ($arcade <= $arcadeSlaves)>>Mere meters away, preparations to convert the least appealing Arcade slave into a Fuckdoll begin. As $activeSlave.slaveName is broken in by her first customers, she's blissfully unaware that she's $arcade new slaves away from the same fate.<</if>> + <</replace>> + <</click>> + <</if>> +<</if>> + +<</if>> /* CLOSES SEEEXTREME */ + +<<if $activeSlave.dick == 0>> +<br><<click "Give her a smart clitoral piercing">> +<<set $activeSlave.clitPiercing to 3>> + <<set $cash -= $SPcost>> +<<replace "#result">> + You take her to the body modification studio, strap her down, pierce her clit, and insert what appears to be a large stainless steel barbell piercing. It actually contains a device that can vibrate to give her sexual stimulation or create subtle pain to suppress pleasure. It is connected wirelessly to the arcology, which can be given instructions to encourage or discourage sexual pleasure in specific situations. You run a quick test. On the oral setting, as soon as she kneels in front of your crotch, she gasps as the stimulation starts. On the anal setting, she whimpers when you run a finger across her asshole. +<</replace>> +<</click>> + //This option costs ¤$SPcost// +<<else>> +<br><<click "Give her a smart frenulum piercing">> +<<set $activeSlave.clitPiercing to 3>> + <<set $cash -= $SPcost>> +<<replace "#result">> + You take her to the body modification studio, strap her down, pierce her frenulum, and insert what appears to be a large stainless steel barbell piercing. It actually contains a device that can vibrate to give her sexual stimulation or create subtle pain to suppress pleasure. It is connected wirelessly to the arcology, which can be given instructions to encourage or discourage sexual pleasure in specific situations. You run a quick test. On the oral setting, as soon as she kneels in front of your crotch, she gasps as the stimulation starts. On the anal setting, she whimpers and gets rock hard when you run a finger across her asshole. +<</replace>> +<</click>> + //This option costs ¤$SPcost// +<</if>> + +<<if $activeSlave.amp != 1>> +<br><<click "Tie her up and give her a good whipping">> +<<set $activeSlave.devotion -= 5>> +<<set $activeSlave.trust -= 10>> +<<replace "#result">> + You cuff her wrists and tie the cuffs to a hook in the ceiling so she's forced up on tiptoe. Reflecting that sometimes the old ways are best, you take a whip to her. It's soft leather and you have some skill, so her skin isn't broken, but you lash her buttocks and every stroke draws a scream. After a while, the pain grows dull for her and she slumps in her bindings, moaning. You switch to her nipples, bringing her back to howling life as she dances on tiptoe and tries to dodge. <<if $activeSlave.dick != 0>>You finish by taking the whip to her penis, leaving her sobbing and begging. <</if>>If she was wondering what kind of master her new master is, now she @@color:gold;knows.@@ She will remember @@color:mediumorchid;what you can do to her@@. +<</replace>> +<</click>> + +<<if $activeSlave.stampTat == 0>> +<br><<click "Give her a lewd tramp stamp">> +<<set $activeSlave.stampTat to either("advertisements", "rude words", "degradation")>> +<<replace "#result">> +You <<if $activeSlave.devotion > 20>>bring her down to the studio, lay the compliant<<else>>drag her down to the studio, strap the reluctant<</if>> slave in the chair facedown, and select a sufficiently lewd pattern to decorate her lower back. When the automated tattooing is done, a topical application of analgesics leaves her with nothing more than a slight ache there. When allowed to stand, she immediately turns her back to one of the studio's full length mirrors and cranes around to read the writing just over her butt. It's difficult, since of course it's reversed, and she mouths the words letter by letter. +<<if $activeSlave.stampTat is "advertisements">> + She mouths, 'Fuck my ass!' +<<elseif $activeSlave.stampTat is "rude words">> + 'Rear Entrance,' she mouths, and then understands the arrow pointing down between her buttocks. +<<elseif $activeSlave.stampTat is "degradation">> + Struggling to read the ornate gothic lettering, she slowly mouths, 'Anal Whore.' +<</if>> +<<if $activeSlave.devotion > 20>> + She gasps at the realization that taking it up the ass is about to become a dominant part of her life. She isn't surprised by that, but it's a little stark, having her status as an anal slave permanently written on her lower back for anyone to see. Nevertheless, she @@color:hotpink;resolves to do her best.@@ + <<set $activeSlave.devotion += 5>> +<<else>> + She begins to cry softly. It's not likely that she didn't know, on some level, that she's a sex slave, and that most sex slaves are expected to take it up the ass. She's @@color:gold;frightened@@ to find, though, that it's apparently so essential to her existence that it's worth tattooing right over her bottom. She continues to weep as yo lead her out, but @@color:hotpink;offers no real resistance.@@ She's just mourning her poor anal sphincter in an anticipatory sort of way. + <<set $activeSlave.devotion += 5>> + <<set $activeSlave.trust -= 5>> +<</if>> +<</replace>> +<</click>> +<</if>> + +<<set $toSearch to $activeSlave.hStyle>> +<<if ($toSearch.indexOf("shaved") is -1)>> +<br><<click "Shave her hair">> +<<set $activeSlave.devotion -= 5>> +<<set $activeSlave.hStyle to "shaved">> +<<set $activeSlave.hLength to 0>> +<<set $activeSlave.trust -= 10>> +<<replace "#result">> + You seize her by the hair and drag her to the auto salon. She struggles and thrashes around but soon scrambles to keep up with you to relieve the pain in her scalp as she's dragged. You strap her in and set the auto salon to shave. She looks around frantically as the manipulators with their buzzing shears descend menacingly. As they run quickly back and forth across her head, she begins to sob, obviously @@color:gold;fearing@@ that her new master is @@color:mediumorchid;one to enjoy degradation and abuse.@@ She has a strong indication that obedience is her only hope. +<</replace>> +<</click>> +<</if>> + +<<if canTalk($activeSlave)>> +<br><<click "Make her an office ornament for the day">> +<<set $activeSlave.devotion -= 5>> +<<set $activeSlave.trust -= 10>> +<<replace "#result">> + You cuff her wrists and ankles, bend all four limbs behind her, secure them together, and hoist her up to the ceiling on a rope. She hangs up there like a sex slave chandelier, breasts swaying in a lovely way whenever she struggles. Periodically you let her down to stretch her aching limbs, but whenever you put your decoration back up you add some clips with little bells on them: first the nose, then the nipples, and finally the <<if $activeSlave.dick != 0>>dickhead<<else>>pussylips<</if>>. By the end of the day your work is accompanied by the sweet sounds of ringing bells and @@color:gold;agonized pleas@@ for mercy in her <<if $activeSlave.voice is 3>>high, girlish<<elseif $activeSlave.voice is 2>>feminine<<else>>deep<</if>> voice. She will remember @@color:mediumorchid;what you can do to her@@. +<</replace>> +<</click>> +<</if>> + +<<if ($activeSlave.devotion < -10) && ($activeSlave.vagina == 0)>> +<br><<click "Tie her up and take her virginity">> +<<set $activeSlave.devotion -= 5>> +<<set $activeSlave.trust -= 10>> +<<set $activeSlave.vagina to 1>> +<<replace "#result">> + You cuff her wrists and ankles and secure her struggling, screeching body to the couch next to your desk with her legs spread. She wriggles and protests as you take her virginity. She's certainly entered your service in a way that colors her impression of you @@color:mediumorchid;with hatred@@ and @@color:gold;fear.@@ @@color:lime;Her tight little pussy has been broken in.@@ +<</replace>> +<</click>> +<<elseif ($activeSlave.vagina == 0)>> +<br><<click "Tie her up and take her virginity">> +<<set $activeSlave.devotion -= 5>> +<<set $activeSlave.trust -= 10>> +<<set $activeSlave.vaginalCount += 1>> + <<set $vaginalTotal += 1>> +<<set $activeSlave.vagina to 1>> +<<replace "#result">> + You cuff her wrists and ankles and secure her unresisting body to the couch next to your desk with her legs spread. She writhes and moans as you enter her virgin pussy. You might not have even had to restrain her for this, but being tied up and deflowered sends her a message. She's certainly entered your service in a way that colors her impression of you @@color:hotpink;with pain@@ and @@color:gold;fear.@@ @@color:lime;Her tight little pussy has been broken in.@@ +<</replace>> +<</click>> +<</if>> + +<<if ($activeSlave.devotion < -10) && ($activeSlave.anus == 0)>> +<br><<click "Tie her up and rape her virgin ass">> +<<set $activeSlave.devotion -= 5>> +<<set $activeSlave.trust -= 10>> +<<set $activeSlave.analCount += 1>> + <<set $analTotal += 1>> +<<set $activeSlave.anus to 1>> +<<replace "#result">> + You cuff her wrists and ankles and secure her struggling, screeching body to the couch next to your desk so that she's straddling the back of the couch with her butt sticking out. She wriggles and protests until she feels the lubricated head of <<if $PC.dick == 1>>your dick<<else>>a strap-on<</if>> pushing against her virgin butthole, at which point she desperately tries to break free. She fails, but she never stops writhing and begging you to take <<if $PC.dick == 1>>your cock<<else>>the phallus<</if>> out of her asshole. She's certainly entered your service in a way that colors her impression of you @@color:mediumorchid;with hatred@@ and @@color:gold;fear.@@ @@color:lime;Her tight little ass has been broken in.@@ +<</replace>> +<</click>> +<<elseif ($activeSlave.anus == 0)>> +<br><<click "Tie her up and break her ass in">> +<<set $activeSlave.devotion -= 5>> +<<set $activeSlave.trust -= 10>> +<<set $activeSlave.analCount += 1>> + <<set $analTotal += 1>> +<<set $activeSlave.anus to 1>> +<<replace "#result">> + You cuff her wrists and ankles and secure her unresisting body to the couch next to your desk so that she's straddling the back of the couch with her butt sticking out. She lies obediently still until she feels the lubricated head of your cock pushing against her virgin butthole, at which point she starts in surprise. When the pain of the buttfuck gets to be too much she begs you to use her <<if $activeSlave.dick == 0>>pussy<<else>>mouth<</if>> instead. She gasps and cries as you slowly push your cock all the way up her tight little butt, and in no time you fill her rectum with cum. She's certainly entered your service in a way that colors her impression of you @@color:mediumorchid;with pain@@ and @@color:gold;fear.@@ @@color:lime;Her tight little ass has been broken in.@@ +<</replace>> +<</click>> +<</if>> + +<<if ($activeSlave.anus != 0)>> +<<if ($activeSlave.vagina > 0)>> + <br><<click "Use a machine on her holes">> + <<set $activeSlave.devotion -= 5>> + <<set $activeSlave.trust -= 10>> + <<set $activeSlave.vaginalCount += 1>> + <<set $vaginalTotal += 1>> + <<set $activeSlave.analCount += 1>> + <<set $analTotal += 1>> + <<set $activeSlave.anus += 1>> + <<set $activeSlave.vagina += 1>> + <<replace "#result">> + She's not a virgin anywhere, so you'll have to go more extreme to provide a properly introductory level of sexual torture equivalent to defloration. You tie your new slave down on hands and knees and bring a fuckmachine up from storage. It fits over her as she whimpers down there on all fours, and you adjust the pistons so that the tip of a dildo rests inside each of her holes. You add lube when necessary, <<if $assistant == 0>>but the rest of the day is monotonous machine rape for her.<<else>>but for her the rest of the day is machine rape controlled by your sultry-voiced personal assistant program. Your assistant is an exquisite sexual torturer, ensuring that the experience is never damaging and always overwhelming. She keeps up a steady stream of degrading verbal abuse while she works.<</if>> Any resistance to you is @@color:mediumorchid;worn down@@ and replaced with a germ of @@color:gold;fear.@@ @@color:lime;The slave's holes are nicely stretched.@@ + <</replace>> + <</click>> +<<elseif ($activeSlave.vagina is -1)>> + <br><<click "Use a machine on her asshole">> + <<set $activeSlave.devotion -= 5>> + <<set $activeSlave.trust -= 10>> + <<set $activeSlave.analCount += 1>> + <<set $analTotal += 1>> + <<set $activeSlave.anus += 1>> + <<replace "#result">> + She's not an anal virgin, so you'll have to go more extreme to provide an introductory level of sexual torture equivalent to defloration. You tie your new slave down on hands and knees and bring a fuckmachine up from storage. It fits over her as she whimpers down there on all fours, and you adjust the pistons so that the tip of a dildo rests inside her asshole. You add lube when necessary, <<if $assistant == 0>>but the rest of the day is monotonous machine rape for her.<<else>>but for her the rest of the day is machine rape controlled by your sultry-voiced personal assistant program. Your assistant is an exquisite sexual torturer, ensuring that the experience is never damaging and always overwhelming. She keeps up a steady stream of degrading verbal abuse while she works.<</if>> Any resistance to you is @@color:mediumorchid;worn down@@ and replaced with a germ of @@color:gold;fear.@@ @@color:lime;The slave's asshole is nicely stretched.@@ /*Written and coded by Boney M*/ + <</replace>> + <</click>> +<</if>> +<</if>> + +<<if ($activeSlave.amp != 1)>> +<br><<click "Put a shock collar on her and force her to rape herself">> +<<set $activeSlave.trust -= 10>> +<<set $activeSlave.devotion -= 5>> +<<set $activeSlave.collar to "shock punishment">> +<<replace "#result">> + You put a shock collar on her. Its function isn't immediately obvious, at least until you test it on the lowest power setting, making her jump and look at you fearfully. This concern is compounded when you throw a big dildo at her and tell her to rape herself. She gapes at you incredulously until you give her a stronger jolt and preemptorily tell her to + <<if $activeSlave.vagina > 0>> + pick it up and pound her own pussy. @@color:mediumorchid;Reluctantly,@@ she reaches down shakily, seats herself, and slowly pushes the uncomfortably big phallus inside her womanhood. She starts to fuck herself. Harder, you command. Wincing, she works her cunt faster. Harder, you repeat, giving her another shock. @@color:gold;She begins to cry,@@ but obeys, sawing the big fake cock in and out, really raping herself. +<<set $activeSlave.vaginalCount += 1>> + <<set $vaginalTotal += 1>> + <<elseif $activeSlave.anus > 0>> + pick it up and pound her own ass. @@color:mediumorchid;Reluctantly,@@ she reaches down shakily, seats herself, and gradually shoves the already-lubricated phallus into her ass. It's uncomfortably big for her butt, but she can manage it, and slowly starts to sodomize herself. Harder, you command. Wincing, she fucks her ass faster. Harder, you repeat, giving her another shock. @@color:gold;She begins to cry,@@ but obeys, sawing the big fake cock in and out, really assraping herself. +<<set $activeSlave.analCount += 1>> + <<set $analTotal += 1>> + <<else>> + pick it up and facefuck herself. @@color:mediumorchid;Reluctantly,@@ she reaches down shakily, seats herself, and slowly swallows the uncomfortably big phallus. She has to start over several times as her gag reflex kicks in, but she finally manages to hilt it. Harder, you command. Eyes rolling fearfully, she withdraws it a few inches and shoves it down her throat again. Harder, you repeat, giving her another shock. @@color:gold;She begins to weep and gag,@@ but obeys, sawing the big fake cock in and out, really molesting herself. +<<set $activeSlave.oralCount += 1>> + <<set $oralTotal += 1>> + <</if>> +<</replace>> +<</click>> +<</if>> + +</span> \ No newline at end of file diff --git a/src/pregmod/pRaped.tw b/src/pregmod/pRaped.tw index 3eacc1c26bf475306e95d84ffca73a7ca44afdeb..ba0f993c787dd047165bae5f33022e0ed1c58e3a 100644 --- a/src/pregmod/pRaped.tw +++ b/src/pregmod/pRaped.tw @@ -134,7 +134,7 @@ Now the only question is what to do with the would be rapist. You could toss the <span id="result"> <<if $cash >= $contractCost>>\ <br><<click "Enslave her">> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <<set $cash -= $contractCost>> <<replace "#result">> You complete the legalities and biometric scanning quickly and without fuss. The idiot will regret crossing you when she wakes in the penthouse for basic slave induction. @@ -154,7 +154,7 @@ Now the only question is what to do with the would be rapist. You could toss the <</if>> <</if>> <<if $activeSlave.publicCount>><<set $activeSlave.publicCount += 47>><<else>><<set $activeSlave.publicCount to 47>><</if>> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <<set $cash -= $contractCost>> <<replace "#result">> You declare her holes fair game for the entire arcology. She spends a torturous day in the stocks before being hauled in for enslavement, somewhat @@color:red;the worse for wear@@ and @@color:red;acting oddly@@ due to her ordeal, bruises all over her body, cum leaking from her @@color:lime;loosened@@ anus<<if $activeSlave.vagina > -1>> and @@color:lime;fucked-out@@ pussy<</if>>. The public @@color:green;enjoys the fun.@@ @@ -169,7 +169,7 @@ Now the only question is what to do with the would be rapist. You could toss the <<set $activeSlave.assignment to "be confined in the arcade">><<set $activeSlave.assignmentVisible to 0>> <<set $activeSlave.choosesOwnAssignment to 0>> <<set $activeSlave.sentence to 4>> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <<set $cash -= $contractCost>> <<replace "#result">> You complete the legalities and biometric scanning quickly and cautiously. The idiot will be in for a surprise when they awake to find they can't move and a dick is in their ass. @@ -184,10 +184,7 @@ Now the only question is what to do with the would be rapist. You could toss the <<set $activeSlave.assignment to "work in the dairy">> <<set $activeSlave.assignmentVisible to 0>> <<set $activeSlave.choosesOwnAssignment to 0>> - <<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> - <</if>> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <<set $cash -= $contractCost>> <<replace "#result">> You complete the legalities and biometric scanning quickly and cautiously. The idiot will wake up <<if $dairyStimulatorsSetting > 1>>in agony as her anus takes the rectal hydration dildo<<else>>to find her chest has begun swelling with milk<</if>>. @@ -203,7 +200,7 @@ Now the only question is what to do with the would be rapist. You could toss the <<set $activeSlave.amp to 1>> <<set $activeSlave.heels to 0>> <<set $activeSlave.behavioralFlaw to "odd">> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <<set $cash -= $contractCost>> <<replace "#result">> You want her to suffer for what she tried to pull on you. You make sure she is fully awake as she is strapped into the autosurgery. You take great pleasure in watching her struggle as her limbs are taken, one by one. Of course, @@color:red;her health is affected@@ and the horrible experience has left her @@color:red;acting oddly.@@ After she has stabilized, it's off to the penthouse for basic slave induction. You'd like to see her try and touch you again without arms and legs. @@ -216,10 +213,7 @@ Now the only question is what to do with the would be rapist. You could toss the <<set $activeSlave.balls to 0>> <<set $activeSlave.devotion -= 25>> <<set $activeSlave.trust -= 25>> - <<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> - <</if>> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <<set $cash -= $contractCost>> <<replace "#result">> You want her to suffer for what she tried to pull on you. You make sure she is fully awake as she is strapped into the autosurgery, taking the time to roughly fondle her balls. You take great pleasure in watching her struggle as her testicles are removed. Once she can stand agian, it's off to the penthouse for basic slave induction. diff --git a/src/pregmod/pcAppearanceIntro.tw b/src/pregmod/pcAppearanceIntro.tw index 5f77ff2e987f1da917efd250567b315520af5d6a..096e87c2516de6da8ef3a35eeb1b93bd0a970697 100644 --- a/src/pregmod/pcAppearanceIntro.tw +++ b/src/pregmod/pcAppearanceIntro.tw @@ -151,5 +151,5 @@ I have $PC.hColor hair. <br><<textbox "$PC.hColor" $PC.hColor "PC Appearance Intro">> <br><br> -[[Finish player character customization|Intro Summary]] +[[Finish player character customization|PC Experience Intro]] diff --git a/src/pregmod/pcPregIntro.tw b/src/pregmod/pcPregIntro.tw index dcee1c94839079eca11a028d18f17e0076de4494..4b96c3f97fa28e50a6fbb665a721847f51c0a195 100644 --- a/src/pregmod/pcPregIntro.tw +++ b/src/pregmod/pcPregIntro.tw @@ -36,5 +36,5 @@ I'm <br> //Hormone induced moods may alter some sex scenes, as well as change slaves' reactions to you.// <br><br> -[[Confirm player character customization|PC Appearance Intro]] +[[Confirm player character customization|PC Experience Intro]] diff --git a/src/pregmod/pregmodWidgets.tw b/src/pregmod/pregmodWidgets.tw index 5d2e5e672e2a6ed2d22fc77e945bee711f26bd1e..a670918efd5a4800355e8a524ebfe22aee2373d5 100644 --- a/src/pregmod/pregmodWidgets.tw +++ b/src/pregmod/pregmodWidgets.tw @@ -1,130 +1,133 @@ :: pregmod widgets [nobr widget] <<widget PMODinit>> -<<if ndef $activeSlave.actualAge>> - <<set $activeSlave.actualAge to $activeSlave.age>> +<<if ndef $args[0].actualAge>> + <<set $args[0].actualAge to $args[0].age>> <</if>> -<<if ndef $activeSlave.physicalAge>> - <<set $activeSlave.physicalAge to $activeSlave.actualAge>> +<<if ndef $args[0].physicalAge>> + <<set $args[0].physicalAge to $args[0].actualAge>> <</if>> -<<if ndef $activeSlave.visualAge>> - <<set $activeSlave.visualAge to $activeSlave.actualAge>> +<<if ndef $args[0].visualAge>> + <<set $args[0].visualAge to $args[0].actualAge>> <</if>> -<<if ndef $activeSlave.age>> - <<set $activeSlave.age to $activeSlave.actualAge>> +<<if ndef $args[0].age>> + <<set $args[0].age to $args[0].actualAge>> <</if>> -<<if ndef $activeSlave.boobsImplantType>> - <<set $activeSlave.boobsImplantType to 0>> +<<if ndef $args[0].boobsImplantType>> + <<set $args[0].boobsImplantType to 0>> <</if>> -<<if ndef $activeSlave.buttImplantType>> - <<set $activeSlave.buttImplantType to 0>> +<<if ndef $args[0].buttImplantType>> + <<set $args[0].buttImplantType to 0>> <</if>> -<<if ndef $activeSlave.bellyTat>> - <<set $activeSlave.bellyTat to 0>> +<<if ndef $args[0].bellyTat>> + <<set $args[0].bellyTat to 0>> <</if>> -<<if ndef $activeSlave.cSec>> - <<set $activeSlave.cSec to 0>> +<<if ndef $args[0].cSec>> + <<set $args[0].cSec to 0>> <</if>> -<<if ndef $activeSlave.labor>> - <<set $activeSlave.labor to 0>> +<<if ndef $args[0].labor>> + <<set $args[0].labor to 0>> <</if>> -<<if ndef $activeSlave.induce>> - <<set $activeSlave.induce to 0>> +<<if ndef $args[0].induce>> + <<set $args[0].induce to 0>> <</if>> -<<if ndef $activeSlave.mpreg>> - <<set $activeSlave.mpreg to 0>> +<<if ndef $args[0].mpreg>> + <<set $args[0].mpreg to 0>> <</if>> -<<if ndef $activeSlave.inflation>> - <<set $activeSlave.inflation to 0>> +<<if ndef $args[0].inflation>> + <<set $args[0].inflation to 0>> <</if>> -<<if ndef $activeSlave.inflationType>> - <<set $activeSlave.inflationType to "none">> +<<if ndef $args[0].inflationType>> + <<set $args[0].inflationType to "none">> <</if>> -<<if ndef $activeSlave.inflationMethod>> - <<set $activeSlave.inflationMethod to 0>> +<<if ndef $args[0].inflationMethod>> + <<set $args[0].inflationMethod to 0>> <</if>> -<<if ndef $activeSlave.milkSource>> - <<set $activeSlave.milkSource to 0>> +<<if ndef $args[0].milkSource>> + <<set $args[0].milkSource to 0>> <</if>> -<<if ndef $activeSlave.cumSource>> - <<set $activeSlave.cumSource to 0>> +<<if ndef $args[0].cumSource>> + <<set $args[0].cumSource to 0>> <</if>> -<<if ndef $activeSlave.burst>> - <<set $activeSlave.burst to 0>> +<<if ndef $args[0].burst>> + <<set $args[0].burst to 0>> <</if>> -<<if ndef $activeSlave.bellyImplant>> - <<set $activeSlave.bellyImplant to 0>> +<<if ndef $args[0].bellyImplant>> + <<set $args[0].bellyImplant to 0>> <</if>> -<<if ndef $activeSlave.bellySag>> - <<set $activeSlave.bellySag to 0>> +<<if ndef $args[0].bellySag>> + <<set $args[0].bellySag to 0>> <</if>> -<<if ndef $activeSlave.birthsTotal>> - <<set $activeSlave.birthsTotal to $activeSlave.births>> +<<if ndef $args[0].birthsTotal>> + <<set $args[0].birthsTotal to $args[0].births>> <</if>> -<<if ndef $activeSlave.pubertyAgeXX>> - <<set $activeSlave.pubertyAgeXX to $fertilityAge>> +<<if ndef $args[0].pubertyAgeXX>> + <<set $args[0].pubertyAgeXX to $fertilityAge>> <</if>> -<<if ndef $activeSlave.bellyPain>> - <<set $activeSlave.bellyPain = 0>> +<<if ndef $args[0].bellyPain>> + <<set $args[0].bellyPain = 0>> <</if>> -<<if ndef $activeSlave.scars>> - <<set $activeSlave.scars = 0>> +<<if ndef $args[0].scars>> + <<set $args[0].scars = 0>> <</if>> -<<if ndef $activeSlave.breedingMark>> - <<set $activeSlave.breedingMark = 0>> +<<if ndef $args[0].breedingMark>> + <<set $args[0].breedingMark = 0>> <</if>> -<<if ndef $activeSlave.underArmHColor>> - <<set $activeSlave.underArmHColor to $activeSlave.hColor>> +<<if ndef $args[0].underArmHColor>> + <<set $args[0].underArmHColor to $args[0].hColor>> <</if>> -<<if ndef $activeSlave.underArmHStyle>> - <<set $activeSlave.underArmHStyle to "waxed">> +<<if ndef $args[0].underArmHStyle>> + <<set $args[0].underArmHStyle to "waxed">> <</if>> -<<if ndef $activeSlave.prostateImplant>> - <<set $activeSlave.prostateImplant to 0>> +<<if ndef $args[0].prostateImplant>> + <<set $args[0].prostateImplant to 0>> <</if>> -<<if ndef $activeSlave.bodySwap>> - <<set $activeSlave.bodySwap = 0>> +<<if ndef $args[0].bodySwap>> + <<set $args[0].bodySwap = 0>> <</if>> -<<if ndef $activeSlave.father>> - <<set $activeSlave.father to 0>> +<<if ndef $args[0].father>> + <<set $args[0].father to 0>> <</if>> -<<if ndef $activeSlave.mother>> - <<set $activeSlave.mother to 0>> +<<if ndef $args[0].mother>> + <<set $args[0].mother to 0>> <</if>> -<<if ndef $activeSlave.daughters>> - <<set $activeSlave.daughters to 0>> +<<if ndef $args[0].daughters>> + <<set $args[0].daughters to 0>> <</if>> -<<if ndef $activeSlave.sisters>> - <<set $activeSlave.sisters to 0>> +<<if ndef $args[0].sisters>> + <<set $args[0].sisters to 0>> <</if>> -<<if ndef $activeSlave.canRecruit>> - <<set $activeSlave.canRecruit to 0>> +<<if ndef $args[0].canRecruit>> + <<set $args[0].canRecruit to 0>> <</if>> -<<if ndef $activeSlave.ballType>> - <<set $activeSlave.ballType to "human">> +<<if ndef $args[0].ballType>> + <<set $args[0].ballType to "human">> <</if>> -<<if ndef $activeSlave.eggType>> - <<set $activeSlave.eggType to "human">> +<<if ndef $args[0].eggType>> + <<set $args[0].eggType to "human">> <</if>> -<<if ndef $activeSlave.HGExclude>> - <<set $activeSlave.HGExclude to 0>> +<<if ndef $args[0].HGExclude>> + <<set $args[0].HGExclude to 0>> +<</if>> +<<if ndef $args[0].reservedChildren>> + <<set $args[0].reservedChildren to 0>> <</if>> -<<if ndef $activeSlave.pubertyXX>> - <<if $activeSlave.physicalAge >= $activeSlave.pubertyAgeXX>> - <<set $activeSlave.pubertyXX = 1>> +<<if ndef $args[0].pubertyXX>> + <<if $args[0].physicalAge >= $args[0].pubertyAgeXX>> + <<set $args[0].pubertyXX = 1>> <<else>> - <<set $activeSlave.pubertyXX = 0>> + <<set $args[0].pubertyXX = 0>> <</if>> <</if>> -<<if ndef $activeSlave.pubertyAgeXY>> - <<set $activeSlave.pubertyAgeXY to $potencyAge>> +<<if ndef $args[0].pubertyAgeXY>> + <<set $args[0].pubertyAgeXY to $potencyAge>> <</if>> -<<if ndef $activeSlave.pubertyAgeXY>> - <<if $activeSlave.physicalAge >= $activeSlave.pubertyAgeXY>> - <<set $activeSlave.pubertyXY = 1>> +<<if ndef $args[0].pubertyAgeXY>> + <<if $args[0].physicalAge >= $args[0].pubertyAgeXY>> + <<set $args[0].pubertyXY = 1>> <<else>> - <<set $activeSlave.pubertyXY = 0>> + <<set $args[0].pubertyXY = 0>> <</if>> <</if>> <</widget>> @@ -778,4 +781,774 @@ $activeSlave.slaveName is up for review: at her side. <</if>> +<</widget>> + +<<widget "GenSkinTone">> + +/* +black 5 +brown 4 +dark 3 +olive 2 +light brown 1 +null 0 +light -1 +white -2 +fair -3 +pale -4 +extremely pale -5 +*/ + +<<set _skin = 0>> +<<set _skin0 = 0>> +<<set _skin1 = 0>> + +<<switch $args[0].skin>> +<<case "black">> + <<set _skin0 = 10>> +<<case "brown">> + <<set _skin0 = 9>> +<<case "dark">> + <<set _skin0 = 8>> +<<case "olive">> + <<set _skin0 = 7>> +<<case "light brown">> + <<set _skin0 = 6>> +<<case "light">> + <<set _skin0 = 4>> +<<case "white">> + <<set _skin0 = 3>> +<<case "fair">> + <<set _skin0 = 2>> +<<case "pale">> + <<set _skin0 = 1>> +<<case "extremely pale">> + <<set _skin0 = 0>> +<<default>> + <<set _skin0 = 5>> +<</switch>> + +<<switch $args[1].skin>> +<<case "black">> + <<set _skin1 = 10>> +<<case "brown">> + <<set _skin1 = 9>> +<<case "dark">> + <<set _skin1 = 8>> +<<case "olive">> + <<set _skin1 = 7>> +<<case "light brown">> + <<set _skin1 = 6>> +<<case "light">> + <<set _skin1 = 4>> +<<case "white">> + <<set _skin1 = 3>> +<<case "fair">> + <<set _skin1 = 2>> +<<case "pale">> + <<set _skin1 = 1>> +<<case "extremely pale">> + <<set _skin1 = 0>> +<<default>> + <<set _skin1 = 5>> +<</switch>> + +<<set _skin = Math.round((_skin1+_skin0)/2)>> + +<<switch _skin>> +<<case 10>> + <<set $activeSlave.skin = "black">> +<<case 9>> + <<set $activeSlave.skin = "brown">> +<<case 8>> + <<set $activeSlave.skin = "dark">> +<<case 7>> + <<set $activeSlave.skin = "olive">> +<<case 6>> + <<set $activeSlave.skin = "light brown">> +<<case 4>> + <<set $activeSlave.skin = "light">> +<<case 3>> + <<set $activeSlave.skin = "white">> +<<case 2>> + <<set $activeSlave.skin = "fair">> +<<case 1>> + <<set $activeSlave.skin = "pale">> +<<case 0>> + <<set _skin1 = "extremely pale">> +<<default>> + <<set $activeSlave.skin = either($args[0].skin, $args[1].skin)>> +<</switch>> + +<</widget>> + +<<widget "ParentNames">> + +<<switch $args[0].nationality>> +<<case "American">> + <<if $args[1].race is "black">> + <<set $args[1].birthName to $africanAmericanSlaveNames.random()>> + <<elseif $args[1].race is "latina">> + <<set $args[1].birthName to $latinaSlaveNames.random()>> + <<elseif $args[1].race is "asian">> + <<set $args[1].birthName to $asianAmericanSlaveNames.random()>> + <<elseif $args[1].race is "middle eastern">> + <<set $args[1].birthName to $egyptianSlaveNames.random()>> + <<else>> + <<set $args[1].birthName to $whiteAmericanSlaveNames.random()>> + <</if>> +<<case "Canadian">> + <<set $args[1].birthName to $canadianSlaveNames.random()>> +<<case "Mexican">> + <<set $args[1].birthName to $mexicanSlaveNames.random()>> +<<case "Dominican">> + <<set $args[1].birthName to $dominicanSlaveNames.random()>> +<<case "Puerto Rican">> + <<set $args[1].birthName to $puertoRicanSlaveNames.random()>> +<<case "Haitian">> + <<set $args[1].birthName to $haitianSlaveNames.random()>> +<<case "Jamaican">> + <<set $args[1].birthName to $jamaicanSlaveNames.random()>> +<<case "Cuban">> + <<set $args[1].birthName to $cubanSlaveNames.random()>> +<<case "Guatemalan">> + <<set $args[1].birthName to $guatemalanSlaveNames.random()>> +<<case "Chilean">> + <<set $args[1].birthName to $chileanSlaveNames.random()>> +<<case "Peruvian">> + <<set $args[1].birthName to $peruvianSlaveNames.random()>> +<<case "Bolivian">> + <<set $args[1].birthName to $bolivianSlaveNames.random()>> +<<case "Venezuelan">> + <<set $args[1].birthName to $venezuelanSlaveNames.random()>> +<<case "Belarusian">> + <<set $args[1].birthName to $belarusianSlaveNames.random()>> +<<case "Russian">> + <<set $args[1].birthName to $russianSlaveNames.random()>> +<<case "Ukrainian">> + <<set $args[1].birthName to $ukrainianSlaveNames.random()>> +<<case "Italian">> + <<set $args[1].birthName to $italianSlaveNames.random()>> +<<case "Spanish">> + <<set $args[1].birthName to $spanishSlaveNames.random()>> +<<case "British">> + <<set $args[1].birthName to $britishSlaveNames.random()>> +<<case "Scottish">> + <<set $args[1].birthName to $scottishSlaveNames.random()>> +<<case "French">> + <<set $args[1].birthName to $frenchSlaveNames.random()>> +<<case "German">> + <<set $args[1].birthName to $germanSlaveNames.random()>> +<<case "Lithuanian">> + <<set $args[1].birthName to $lithuanianSlaveNames.random()>> +<<case "Norwegian">> + <<set $args[1].birthName to $norwegianSlaveNames.random()>> +<<case "Slovak">> + <<set $args[1].birthName to $slovakSlaveNames.random()>> +<<case "Danish">> + <<set $args[1].birthName to $danishSlaveNames.random()>> +<<case "Dutch">> + <<set $args[1].birthName to $dutchSlaveNames.random()>> +<<case "Austrian">> + <<set $args[1].birthName to $austrianSlaveNames.random()>> +<<case "Swiss">> + <<set $args[1].birthName to $swissSlaveNames.random()>> +<<case "Serbian">> + <<set $args[1].birthName to $serbianSlaveNames.random()>> +<<case "Belgian">> + <<set $args[1].birthName to $belgianSlaveNames.random()>> +<<case "Czech">> + <<set $args[1].birthName to $czechSlaveNames.random()>> +<<case "Portuguese">> + <<set $args[1].birthName to $portugueseSlaveNames.random()>> +<<case "Swedish">> + <<set $args[1].birthName to $swedishSlaveNames.random()>> +<<case "Romanian">> + <<set $args[1].birthName to $romanianSlaveNames.random()>> +<<case "Hungarian">> + <<set $args[1].birthName to $hungarianSlaveNames.random()>> +<<case "Estonian">> + <<set $args[1].birthName to $estonianSlaveNames.random()>> +<<case "Irish">> + <<set $args[1].birthName to $irishSlaveNames.random()>> +<<case "Icelandic">> + <<set $args[1].birthName to $icelandicSlaveNames.random()>> +<<case "Finnish">> + <<set $args[1].birthName to $finnishSlaveNames.random()>> +<<case "Greek">> + <<set $args[1].birthName to $greekSlaveNames.random()>> +<<case "Polish">> + <<set $args[1].birthName to $polishSlaveNames.random()>> +<<case "Brazilian">> + <<set $args[1].birthName to $brazilianSlaveNames.random()>> +<<case "Egyptian">> + <<set $args[1].birthName to $egyptianSlaveNames.random()>> +<<case "Colombian">> + <<set $args[1].birthName to $colombianSlaveNames.random()>> +<<case "Argentinian">> + <<set $args[1].birthName to $argentinianSlaveNames.random()>> +<<case "Turkish">> + <<set $args[1].birthName to $turkishSlaveNames.random()>> +<<case "Iranian">> + <<set $args[1].birthName to $iranianSlaveNames.random()>> +<<case "Armenian">> + <<set $args[1].birthName to $armenianSlaveNames.random()>> +<<case "Israeli">> + <<set $args[1].birthName to $israeliSlaveNames.random()>> +<<case "Saudi">> + <<set $args[1].birthName to $saudiSlaveNames.random()>> +<<case "South African">> + <<if $args[1].race is "black">> + <<set $args[1].birthName to $blackSouthAfricanSlaveNames.random()>> + <<else>> + <<set $args[1].birthName to $whiteSouthAfricanSlaveNames.random()>> + <</if>> +<<case "Nigerian">> + <<set $args[1].birthName to $nigerianSlaveNames.random()>> +<<case "Congolese">> + <<set $args[1].birthName to $congoleseSlaveNames.random()>> +<<case "Kenyan">> + <<set $args[1].birthName to $kenyanSlaveNames.random()>> +<<case "Tanzanian">> + <<set $args[1].birthName to $tanzanianSlaveNames.random()>> +<<case "Zimbabwean">> + <<if $args[1].race == "white">> + <<set $args[1].birthName to $britishSlaveNames.random()>> + <<else>> + <<set $args[1].birthName to $zimbabweanSlaveNames.random()>> + <</if>> +<<case "Ghanan">> + <<set $args[1].birthName to $ghananSlaveNames.random()>> +<<case "Ugandan">> + <<set $args[1].birthName to $ugandanSlaveNames.random()>> +<<case "Ethiopian">> + <<set $args[1].birthName to $ethiopianSlaveNames.random()>> +<<case "Moroccan">> + <<set $args[1].birthName to $moroccanSlaveNames.random()>> +<<case "Chinese">> + <<set $args[1].birthName to $chineseSlaveNames.random()>> +<<case "Korean">> + <<set $args[1].birthName to $koreanSlaveNames.random()>> +<<case "Thai">> + <<set $args[1].birthName to $thaiSlaveNames.random()>> +<<case "Vietnamese">> + <<set $args[1].birthName to $vietnameseSlaveNames.random()>> +<<case "Japanese">> + <<set $args[1].birthName to $japaneseSlaveNames.random()>> +<<case "Indonesian">> + <<set $args[1].birthName to $indonesianSlaveNames.random()>> +<<case "Filipina">> + <<set $args[1].birthName to $filipinaSlaveNames.random()>> +<<case "Bangladeshi">> + <<set $args[1].birthName to $bangladeshiSlaveNames.random()>> +<<case "Malaysian">> + <<set $args[1].birthName to $malaysianSlaveNames.random()>> +<<case "Uzbek">> + <<set $args[1].birthName to $uzbekSlaveNames.random()>> +<<case "Afghan">> + <<set $args[1].birthName to $afghanSlaveNames.random()>> +<<case "Nepalese">> + <<set $args[1].birthName to $nepaleseSlaveNames.random()>> +<<case "Burmese">> + <<set $args[1].birthName to $burmeseSlaveNames.random()>> +<<case "Iraqi">> + <<set $args[1].birthName to $iraqiSlaveNames.random()>> +<<case "Yemeni">> + <<set $args[1].birthName to $yemeniSlaveNames.random()>> +<<case "Sudanese">> + <<set $args[1].birthName to $sudaneseSlaveNames.random()>> +<<case "Algerian">> + <<set $args[1].birthName to $algerianSlaveNames.random()>> +<<case "Tunisian">> + <<set $args[1].birthName to $tunisianSlaveNames.random()>> +<<case "Libyan">> + <<set $args[1].birthName to $libyanSlaveNames.random()>> +<<case "Omani">> + <<set $args[1].birthName to $omaniSlaveNames.random()>> +<<case "Malian">> + <<set $args[1].birthName to $malianSlaveNames.random()>> +<<case "Jordanian">> + <<set $args[1].birthName to $jordanianSlaveNames.random()>> +<<case "Lebanese">> + <<set $args[1].birthName to $lebaneseSlaveNames.random()>> +<<case "Emirati">> + <<set $args[1].birthName to $emiratiSlaveNames.random()>> +<<case "Kazakh">> + <<set $args[1].birthName to $kazakhSlaveNames.random()>> +<<case "Pakistani">> + <<set $args[1].birthName to $pakistaniSlaveNames.random()>> +<<case "Indian">> + <<set $args[1].birthName to $indianSlaveNames.random()>> +<<case "Australian">> + <<set $args[1].birthName to $australianSlaveNames.random()>> +<<case "a New Zealander">> + <<set $args[1].birthName to $newZealanderSlaveNames.random()>> +<<default>> + <<set $args[1].birthName to $whiteAmericanSlaveNames.random()>> +<</switch>> + +<</widget>> + +<<widget "seBirthToIncubator">> + +<<if $csec == 1>> + +<<for $j to 0; $j < $slaves.length; $j++>> + <<if $slaves[$i].pregSource is $slaves[$j].ID>> + <<set $daddy to $slaves[$j].slaveName>> + <<break>> + <</if>> +<</for>> + +<br> +<br> +$pronounCap was given @@color:orange;a cesarean section@@ due to health concerns. From $possessive womb, +<<if $slaves[$i].pregType <= 1>> + a single baby, +<<elseif $slaves[$i].pregType >= 20>> + a brood of $slaves[$i].pregType babies, +<<elseif $slaves[$i].pregType >= 10>> + a squirming pile of $slaves[$i].pregType babies, +<<elseif $slaves[$i].pregType is 5>> + quintuplets, +<<elseif $slaves[$i].pregType is 4>> + quadruplets, +<<elseif $slaves[$i].pregType is 3>> + triplets, +<<else>> + twins, +<</if>> +created by +<<if $slaves[$i].pregSource == -1>> +your magnificent dick, +<<elseif $slaves[$i].pregSource == -2>> +your arcology's eager citizens, +<<elseif $slaves[$i].pregSource == -3>> +the Societal Elite, +<<elseif $slaves[$i].pregSource == 0>> +an unknown father, +<<elseif $slaves[$i].ID is $daddy.ID>> +$possessive own curiosity over if $pronoun could fuck <<print $possessive>>self, +<<else>> +$daddy's virile cock and balls, +<</if>> +entered the world. + +<<if $arcologies[0].FSRestart != "unset">> +<<if $slaves[$i].breedingMark == 1 && $slaves[$i].pregSource == -1>> +<br><br> + The Societal Elite @@color:green;are pleased@@ at the new additions to their class. + <<set $failedElite -= 2*$slaves[$i].pregType>> +<<else>> +<br> +<br> + The Societal Elite @@color:red;are disappointed@@ that you would allow subhuman filth to dirty society under your watch. Society @@color:red;frowns@@ on the unwelcome addition of more subhumans into the world. + <<set $failedElite += 5*$slaves[$i].pregType>> + <<set $rep -= 10*$slaves[$i].pregType>> +<</if>> +<</if>> + +<br> +<br> +Since $possessive <<if $slaves[$i].mpreg == 1>>ass<<else>>vagina<</if>> was spared from childbirth, @@color:lime;it retained its tightness.@@ + +<<if $slaves[$i].fetish != "mindbroken">> +<<if $slaves[$i].fuckdoll == 0>> +<br> +<<if ($slaves[$i].devotion) < 20 && (($week-$slaves[$i].weekAcquired) >= $slaves[$i].weekAcquired) && ($slaves[$i].pregSource == -1)>> +<br> + She @@color:mediumorchid;despises@@ you for using her body to bear your children. + <<set $slaves[$i].devotion -= 10>> +<<elseif ($slaves[$i].devotion) > 50 && ($slaves[$i].pregSource == -1)>> +<br> + She's @@color:hotpink;so proud@@ to have successfully carried children for you. + <<set $slaves[$i].devotion += 3>> +<</if>> +<<if $slaves[$i].pregType-$slaves[$i].reservedChildren > 0>> +<<if $slaves[$i].trust <= 20 && (($week-$slaves[$i].weekAcquired) <= $slaves[$i].weekAcquired)>> +<br> + Even though she knew her child<<if $slaves[$i].pregType > 1>>ren<</if>> would be sent to an orphanage when she became your slave, she can't help but @@color:gold;worry@@ for their future. + <<set $slaves[$i].trust -= 5>> +<<elseif $slaves[$i].trust <= 20>> +<br> + She @@color:gold;fears@@ for the future of her children. + <<set $slaves[$i].trust -= 10>> +<</if>> +<</if>> +<</if>> +<</if>> + +<<set $slaves[$i].births += $slaves[$i].pregType>> +<<set $slaves[$i].birthsTotal += $slaves[$i].pregType>> +<<set $birthsTotal += $slaves[$i].pregType>> + +<<set $mom = $slaves[$i]>> + +<br><br> +Of her $slaves[$i].pregType children; $slaves[$i].reservedChildren were taken to $incubatorName. +<<for _k to $slaves[$i].reservedChildren; _k != 0; _k-->> + <<display "Generate Child">> + <<display "Incubator Workaround">> + <<set $slaves[$i].pregSource-->> +<</for>> + + +<<set $seed to random(-12,12)>> +<<if ($Cash4Babies == 1 || ($slaves[$i].breedingMark == 1 && $slaves[$i].pregSource == -1)) && $slaves[$i].pregType > 0>> +<br> +<br> + <<if $slaves[$i].breedingMark == 1 && $slaves[$i].pregSource == -1>> + As for the rest; the Societal Elite collected them to be raised into upstanding members of the new society. + <<elseif ($slaves[$i].relationship is -3)>> + As for the rest; you make sure $possessive children are cared for, since she is your wife. $slaves[$i].slaveName is @@color:mediumaquamarine;touched@@ by this act of kindness. + <<set $slaves[$i].trust += 3>> + <<elseif ($slaves[$i].assignment is "serve in the master suite" or $slaves[$i].assignment is "be your Concubine")>> + As for the rest; $possessive children are guaranteed to be treated well despite the laws you've passed since she is a member of your harem. $slaves[$i].slaveName is @@color:mediumaquamarine;touched@@ by this act of kindness. + <<set $slaves[$i].trust += 3>> + <<else>> + <<if $slaves[$i].pregType is 50>> + As for the rest; $possessive babies sold for a total of @@color:yellowgreen;¤<<print 12*(50+$seed)>>@@. + <<set $cash += 12*(50+$seed)>> + <<else>> + As for the rest; $possessive babies sold for a total of @@color:yellowgreen;¤<<print $slaves[$i].pregType*(50+$seed)>>@@. + <<set $cash += $slaves[$i].pregType*(50+$seed)>> + <</if>> + <</if>> +<</if>> + +<<set _tmp to lastPregRule($slaves[$i], $defaultRules)>> +<<if ($slaves[$i].assignmentVisible == 0) and (_tmp != null)>> + <<set $slaves[$i].preg to -1>> +<<else>> + <<set $slaves[$i].preg to 0>> +<</if>> +<<set $slaves[$i].pregType to 0>> +<<set $slaves[$i].pregSource to 0>> +<<set $reservedChildren -= $slaves[$i].reservedChildren>> +<<set $slaves[$i].reservedChildren = 0>> +<<set $csec to 0>> + +<<else>> /* normal birth */ + +<<for $j to 0; $j < $slaves.length; $j++>> + <<if $slaves[$i].pregSource is $slaves[$j].ID>> + <<set $daddy to $slaves[$j].slaveName>> + <<break>> + <</if>> +<</for>> + +<<if $humiliation == 1>> +<br> +<br> + Giving birth in such a manner was completely humiliating, + <<if $slaves[$i].fetish is "humiliation">> + and a complete turn on to $object. $possessiveCap humiliation fetish @@color:lightcoral;strengthens@@ as $pronoun eagerly fantasizes about giving birth in public again. + <<set $slaves[$i].fetishStrength += 4>> + <<elseif $slaves[$i].fetish is "none" or $slaves[$i].fetishStrength <= 60>> + and a curious experience to $object. <<if random(1,5) == 1>>@@color:lightcoral;$possessiveCap has developed a humiliation fetish.@@<<set $slaves[$i].fetish to "humiliation">><<else>>$pronounCap hopes to never repeat it.<</if>> + <<elseif $slaves[$i].devotion <= 20>> + and completely devastating to $possessive image of herself. The experience @@color:hotpink;habituates $object@@ to cruelties of slavery. + <<set $slaves[$i].devotion += 5>> + <<else>> + and $pronoun hopes to never undergo it again. + <</if>> +<</if>> + +<br> +<br> +She @@color:orange;gave birth@@<<if $slaves[$i].pregType >= 50>> but her overfilled womb barely lost any size. Her body gave life <</if>> +<<if $slaves[$i].pregType is 50>> + to nearly a dozen babies throughout the week, +<<elseif $slaves[$i].pregType <= 1>> + to a single baby, +<<elseif $slaves[$i].pregType >= 20>> + to a brood of $slaves[$i].pregType babies, +<<elseif $slaves[$i].pregType >= 10>> + to a squirming pile of $slaves[$i].pregType babies, +<<elseif $slaves[$i].pregType is 5>> + to quintuplets, +<<elseif $slaves[$i].pregType is 4>> + to quadruplets, +<<elseif $slaves[$i].pregType is 3>> + to triplets, +<<else>> + to twins, +<</if>> +created by +<<if $slaves[$i].pregSource == -1>> +your magnificent dick. +<<elseif $slaves[$i].pregSource == -2>> +your arcology's eager citizens. +<<elseif $slaves[$i].pregSource == -3>> +the Societal Elite. +<<elseif $slaves[$i].pregSource == 0>> +an unknown father. +<<elseif $slaves[$i].ID is $daddy.ID>> +$possessive own curiosity over if $pronoun could fuck <<print $possessive>>self. +<<else>> +$daddy's virile cock and balls. +<</if>> +<<if $slaves[$i].pregType >= 20>> + After several hours of constant birthing, $possessive belly sags softly. +<</if>> + +<<if $arcologies[0].FSRestart != "unset">> +<<if $slaves[$i].breedingMark == 1 && $slaves[$i].pregSource == -1>> +<br><br> + The Societal Elite @@color:green;are pleased@@ at the new additions to their class. + <<set $failedElite -= 2*$slaves[$i].pregType>> +<<else>> +<br> +<br> + The Societal Elite @@color:red;are disappointed@@ that you would allow subhuman filth to be born under your watch. Society @@color:red;frowns@@ on the birth of more subhumans into the world. + <<set $failedElite += 5*$slaves[$i].pregType>> + <<set $failedElite -= 10*$slaves[$i].pregType>> +<</if>> +<</if>> + +<<if ($slaves[$i].vagina == 0) || ($slaves[$i].mpreg == 1 && $slaves[$i].anus == 0)>> +<<if $slaves[$i].fetish != "mindbroken">> +<br> +<br> +<<if ($slaves[$i].fetish is "masochist")>> + Since she was a virgin, giving birth was a @@color:red;terribly painful@@ experience.<<if $slaves[$i].fetishKnown == 0>>She seems to have orgasmed several times during the experience, she appears to @@color:lightcoral;really like pain@@.<<else>> However, due to her masochistic streak, she @@color:hotpink;greatly enjoyed@@ said experience<</if>>. + <<set $slaves[$i].health -= 10>> + <<set $slaves[$i].devotion += 2>> + <<set $slaves[$i].fetishKnown == 1>> +<<else>> + Since she was a virgin, giving birth was a @@color:red;terribly painful@@ experience. She @@color:mediumorchid;despises@@ you for taking her virginity in such a @@color:gold;horrifying@@ way. + <<set $slaves[$i].health -= 40>> + <<set $slaves[$i].devotion -= 25.0>> + <<set $slaves[$i].trust -= 25.0>> +<</if>> +<</if>> +<</if>> + +<br> +<<if $slaves[$i].birthsTotal == 0>> +<br> + $possessiveCap inexperience @@color:red;complicated $possessive first birth@@. +<</if>> +<<if $slaves[$i].mpreg == 1>> +<<if $slaves[$i].anus < 2>> +<br> + $possessiveCap tight ass @@color:red;hindered $possessive baby's birth@@. +<</if>> +<<else>> +<<if $slaves[$i].vagina < 2>> +<br> + $possessiveCap tight vagina @@color:red;hindered $possessive baby's birth@@. +<</if>> +<<if $slaves[$i].vaginaLube == 0>> +<br> + $possessiveCap dry vagina made pushing $possessive child out @@color:red;painful@@. +<</if>> +<</if>> +<<if $slaves[$i].hips < 0>> +<br> + $possessiveCap narrow hips made birth @@color:red;troublesome@@. +<</if>> +<<if $slaves[$i].weight < -95>> +<br> + $possessiveCap very thin body @@color:red;was nearly incapable of birthing $possessive child@@. +<<elseif $slaves[$i].weight <= -30>> +<br> + $possessiveCap thin body was @@color:red;ill-suited $possessive childbirth@@. +<</if>> +<<if $slaves[$i].health < -20>> +<br> + $possessiveCap poor health made laboring @@color:red;exhausting@@. +<</if>> +<<if $slaves[$i].physicalAge < 6>> +<br> + $possessiveCap very young body was @@color:red;not designed to be able pass a baby@@. +<<elseif $slaves[$i].physicalAge < 9>> +<br> + $possessiveCap young body had @@color:red;a lot of trouble@@ birthing $possessive baby. +<<elseif $slaves[$i].physicalAge < 13>> +<br> + $possessiveCap young body had @@color:red;trouble birthing@@ $possessive baby. +<</if>> +<<if $slaves[$i].tired > 0>> +<br> + $pronounCap was so tired, $pronoun @@color:red;lacked the energy to effectively push@@. +<</if>> +<<if (($slaves[$i].vagina >= 2 or $slaves[$i].vaginaLube > 0) && $slaves[$i].mpreg == 1) or $slaves[$i].births > 0 or $slaves[$i].hips > 0 or $nurseCareers.contains($slaves[$i].career) or $slaves[$i].intelligenceImplant > 0>> +<br>However: +<<if $slaves[$i].mpreg == 1>> +<<if $slaves[$i].anus >= 2>> +<br> + $possessiveCap @@color:green;loose ass@@ made birthing $possessive child easier. +<</if>> +<<else>> +<<if $slaves[$i].vagina >= 2>> +<br> + $possessiveCap @@color:green;loose vagina@@ made birthing $possessive child easier. +<</if>> +<<if $slaves[$i].vaginaLube > 0>> +<br> + $possessiveCap @@color:green;moist vagina@@ hastened $possessive child's birth. +<</if>> +<</if>> +<<if $slaves[$i].birthsTotal > 0>> +<br> + $pronounCap has @@color:green;given birth before@@, so $pronoun knows just what to do. +<</if>> +<<if $slaves[$i].hips > 0>> +<br> + $possessiveCap @@color:green;wide hips@@ greatly aided childbirth. +<</if>> +<<if $nurseCareers.contains($slaves[$i].career)>> +<br> + Thanks to $possessive @@color:green;previous career@@, childbirth went smoothly. +<</if>> +<<if $slaves[$i].intelligenceImplant > 0>> +<br> + $pronounCap was @@color:green;taught how to handle birth@@ in class. +<</if>> +<</if>> + +<br> +<br> +<<if $slaves[$i].assignment != "work in the dairy" && $slaves[$i].pregType < 50 && $csec == 0>> +All in all, +<<if $birthDamage > 15>> + childbirth was @@color:red;horrifically difficult for $object and nearly claimed $possessive life@@. +<<elseif $birthDamage > 10>> + childbirth was extremely difficult for $object and @@color:red;greatly damaged $possessive health@@. +<<elseif $birthDamage > 5>> + childbirth was difficult for $object and @@color:red;damaged $possessive health@@. +<<elseif $birthDamage > 0>> + childbirth was painful for $object, though not abnormally so, and @@color:red;damaged $possessive health@@. +<<else>> + childbirth was @@color:green;no problem@@ for $object. +<</if>> +<<if $birthDamage > 0>> +<<set $slaves[$i].health -= Math.round(($birthDamage/2)*10)>> +<</if>> +<</if>> + +<br> +<br> +<<if $slaves[$i].mpreg == 1>> +<<if ($slaves[$i].anus < 0)>> /* you somehow got a pregnant slave with no vagina catch */ +Childbirth has @@color:lime;has torn her a gaping anus.@@ +<<elseif ($slaves[$i].anus == 0)>> /* please stop selling me pregnant virgins, neighbor gender fundamentalist arcology */ +Childbirth has @@color:lime;ruined her virgin ass.@@ +<<elseif ($slaves[$i].anus == 1)>> +Childbirth has @@color:lime;greatly stretched out her ass.@@ +<<elseif ($slaves[$i].anus == 2)>> +Childbirth has @@color:lime;stretched out her ass.@@ +<<elseif ($slaves[$i].anus is 3)>> +Her ass was loose enough to not be stretched by childbirth. +<<elseif ($slaves[$i].anus < 10)>> +Childbirth stood no chance of stretching her gaping ass. +<<elseif ($slaves[$i].anus == 10)>> +Her child could barely stretch her cavernous ass. +<<else>> +Childbirth has @@color:lime;stretched out her ass.@@ +<</if>> +<<else>> +<<if ($slaves[$i].vagina < 0)>> /* you somehow got a pregnant slave with no vagina catch */ +Childbirth has @@color:lime;has torn her a gaping vagina.@@ +<<elseif ($slaves[$i].vagina == 0)>> /* please stop selling me pregnant virgins, neighbor gender fundamentalist arcology */ +Childbirth has @@color:lime;ruined her virgin vagina.@@ +<<elseif ($slaves[$i].vagina == 1)>> +Childbirth has @@color:lime;greatly stretched out her vagina.@@ +<<elseif ($slaves[$i].vagina == 2)>> +Childbirth has @@color:lime;stretched out her vagina.@@ +<<elseif ($slaves[$i].vagina is 3)>> +Her vagina was loose enough to not be stretched by childbirth. +<<elseif ($slaves[$i].vagina < 10)>> +Childbirth stood no chance of stretching her gaping vagina. +<<elseif ($slaves[$i].vagina == 10)>> +Her child could barely stretch her cavernous vagina. +<<else>> +Childbirth has @@color:lime;stretched out her vagina.@@ +<</if>> +<</if>> + +<<if $slaves[$i].fetish != "mindbroken" && $slaves[$i].fuckdoll == 0>> +<br> +<<if ($slaves[$i].devotion) < 20 && (($week-$slaves[$i].weekAcquired) >= $slaves[$i].weekAcquired) && ($slaves[$i].pregSource == -1)>> +<br> + She @@color:mediumorchid;despises@@ you for using her body to bear your children. + <<set $slaves[$i].devotion -= 10>> +<<elseif ($slaves[$i].devotion) > 50 && ($slaves[$i].pregSource == -1)>> +<br> + She's @@color:hotpink;so proud@@ to have successfully carried children for you. + <<set $slaves[$i].devotion += 3>> +<</if>> +<<if $slaves[$i].pregType-$slaves[$i].reservedChildren > 0>> +<<if $slaves[$i].trust <= 20 && (($week-$slaves[$i].weekAcquired) <= $slaves[$i].weekAcquired)>> +<br> + Even though she knew her child<<if $slaves[$i].pregType > 1>>ren<</if>> would be sent to an orphanage when she became your slave, she can't help but @@color:gold;worry@@ for their future. + <<set $slaves[$i].trust -= 5>> +<<elseif $slaves[$i].trust <= 20>> +<br> + She @@color:gold;fears@@ for the future of her children. + <<set $slaves[$i].trust -= 10>> +<</if>> +<</if>> +<</if>> + +<<set $slaves[$i].births += $slaves[$i].pregType>> +<<set $slaves[$i].birthsTotal += $slaves[$i].pregType>> +<<set $birthsTotal += $slaves[$i].pregType>> + +<<set $mom = $slaves[$i]>> + +<br><br> +Of her $slaves[$i].pregType children; $slaves[$i].reservedChildren were taken to $incubatorName. +<<for _k to $slaves[$i].reservedChildren; _k != 0; _k-->> + <<display "Generate Child">> + <<display "Incubator Workaround">> + <<set $slaves[$i].pregSource-->> +<</for>> + +<<set $seed to random(-12,12)>> +<<if ($Cash4Babies == 1 || ($slaves[$i].breedingMark == 1 && $slaves[$i].pregSource == -1)) && $slaves[$i].pregType > 0>> +<br> +<br> + <<if $slaves[$i].breedingMark == 1 && $slaves[$i].pregSource == -1>> + As for the rest; the Societal Elite collected them to be raised into upstanding members of the new society. + <<elseif ($slaves[$i].relationship is -3)>> + As for the rest; you make sure $possessive children are cared for, since she is your wife. $slaves[$i].slaveName is @@color:mediumaquamarine;touched@@ by this act of kindness. + <<set $slaves[$i].trust += 3>> + <<elseif ($slaves[$i].assignment is "serve in the master suite" or $slaves[$i].assignment is "be your Concubine")>> + As for the rest; $possessive children are guaranteed to be treated well despite the laws you've passed since she is a member of your harem. $slaves[$i].slaveName is @@color:mediumaquamarine;touched@@ by this act of kindness. + <<set $slaves[$i].trust += 3>> + <<else>> + <<if $slaves[$i].pregType is 50>> + As for the rest; $possessive babies sold for a total of @@color:yellowgreen;¤<<print 12*(50+$seed)>>@@. + <<set $cash += 12*(50+$seed)>> + <<else>> + As for the rest; $possessive babies sold for a total of @@color:yellowgreen;¤<<print $slaves[$i].pregType*(50+$seed)>>@@. + <<set $cash += $slaves[$i].pregType*(50+$seed)>> + <</if>> + <</if>> +<</if>> + +<<set _tmp to lastPregRule($slaves[$i], $defaultRules)>> +<<if ($slaves[$i].assignmentVisible == 0) and (_tmp != null)>> + <<set $slaves[$i].preg to -1>> +<<else>> + <<set $slaves[$i].preg to 0>> +<</if>> +<<set $slaves[$i].pregType to 0>> +<<set $slaves[$i].pregSource to 0>> +<<set $reservedChildren -= $slaves[$i].reservedChildren>> +<<set $slaves[$i].reservedChildren = 0>> +<<if $slaves[$i].mpreg == 1>> + <<if $slaves[$i].anus < 3>> + <<set $slaves[$i].anus to 3>> + <</if>> +<<else>> + <<if $slaves[$i].vagina < 3>> + <<set $slaves[$i].vagina to 3>> + <</if>> +<</if>> + +<</if>> /* closes c-section */ + <</widget>> \ No newline at end of file diff --git a/src/pregmod/seHuskSlaveDelivery.tw b/src/pregmod/seHuskSlaveDelivery.tw index 4d71ebf6c4b6b18697b18473a44fad3b9e989697..34c607c858c1335e5afe33b202a24629185c407a 100644 --- a/src/pregmod/seHuskSlaveDelivery.tw +++ b/src/pregmod/seHuskSlaveDelivery.tw @@ -101,7 +101,7 @@ A slave come in matching fitting the description you provided. <span id="result"> <<if $cash >= $slaveCost>>\ <<click "Accept the offered slave">> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <<set $cash -= $slaveCost>> <<replace "#result">> She has been reasonably broken by the dealer that offered her to you. She has also picked up on the fact that she was specially selected, and is a little hopeful that this means she may be treated well. She is now awaiting your instructions. diff --git a/src/pregmod/sePlayerBirth.tw b/src/pregmod/sePlayerBirth.tw index 438bbff7c87d23f3e14cb691b6ff679cbd5326cd..aec6711515b663d7cd5796a4c55e292b951973fa 100644 --- a/src/pregmod/sePlayerBirth.tw +++ b/src/pregmod/sePlayerBirth.tw @@ -3,6 +3,9 @@ <<set $nextButton to "Continue">> <<set $nextLink to "Scheduled Event">> +<<set _gaveBirth = 0>> +<<set _PCDegree = 0>> + /* PC.pregSource documentation 0 - unknown @@ -23,17 +26,17 @@ PC.pregSource documentation <<set $PC.labor = 0>> <<set $PC.births += 1>> <<if $PC.pregSource == 0>> - <<set $birthOther += 1>> + <<set $PC.birthOther += 1>> <<elseif $PC.pregSource == -1>> - <<set $birthElite += 1>> + <<set $PC.birthElite += 1>> <<elseif $PC.pregSource == -2>> - <<set $birthClient += 1>> + <<set $PC.birthClient += 1>> <<elseif $PC.pregSource == -3>> - <<set $birthMaster += 1>> + <<set $PC.birthMaster += 1>> <<elseif $PC.pregSource == -4>> - <<set $birthArcOwner += 1>> + <<set $PC.birthArcOwner += 1>> <<else>> - <<set $birthDegenerate += 1>> + <<set $PC.birthDegenerate += 1>> <</if>> <<set $babyGender to either(1,2)>> @@ -107,20 +110,47 @@ You arrange yourself to give birth, relaxing until your body urges you to begin <</if>> <</if>> -<br><br> +<<if _gaveBirth == 0>> + +<<display "Generate Child">> + +<<if $activeSlave.race == $PC.race>> + <<set _PCDegree++>> +<</if>> +<<if $activeSlave.hColor == $PC.hColor>> + <<set _PCDegree++>> +<</if>> +<<if $activeSlave.skin == $PC.skin>> + <<set _PCDegree++>> +<</if>> +<<if $activeSlave.eyeColor == $PC.eyeColor>> + <<set _PCDegree++>> +<</if>> + +Your little <<if $babyGender == 1>>girl<<else>>boy<</if>> +<<if _PCDegree == 4>> + looks just like you; she will likely grow up to closely resemble yourself. +<<elseif $activeSlave.eyeColor == $PC.eyeColor>> + has your lovely $PC.eyeColor eyes. +<<elseif _PCDegree > 0>> + looks a little like you, enough that <<if $babyGender == 1>>she<<else>>he<</if>>'ll be recognizable as yours. +<<else>> + looks nothing like you; it's hard to believe <<if $babyGender == 1>>she's your daughter<<else>>he's you son<</if>> +<</if>> + <<if $PC.pregSource > 0>> <<for $i to 0; $i < $slaves.length; $i++>> <<if $slaves[$i].ID == $PC.pregSource>> Rumors spread that your child was fathered by a slave, @@color:red;harming your lasting reputation.@@ <<set $PC.degeneracy += 20>> <<if $arcologies[0].FSSupremacist != "unset">> - <<if $slaves[$i].race != $arcologies[0].FSSupremacistRace>> + <<if $activeSlave.race != $arcologies[0].FSSupremacistRace>> Furthermore, word is that your child was not $arcologies[0].FSSupremacistRace, @@color:red;hurting your lasting reputation.@@ <<set $PC.degeneracy += 10>> <</if>> <</if>> <<if $arcologies[0].FSSubjugationist != "unset">> - <<if $slaves[$i].race == $arcologies[0].FSSubjugationistRace>> + <<if $activeSlave.race == $arcologies[0].FSSubjugationistRace>> In addition, there is a nasty rumor that you gave birth to a $arcologies[0].FSSubjugationistRace child, @@color:red;devastating your lasting reputation.@@ <<set $PC.degeneracy += 50>> <</if>> @@ -130,15 +160,21 @@ You arrange yourself to give birth, relaxing until your body urges you to begin <</if>> <br><br> -Now you are faced with a decision of what to do with your new child. You're far too busy to keep it yourself, but you could @@color:orange;send your <<if $babyGender == 1>>daughter<<else>>son<</if>> to a boarding school to be raised until they are of age to serve as your heir.@@ The other option is to @@color:orange;send them to become a slave at a slave orphanage.@@<<if $Cash4Babies == 1>> Alternatively, since it is @@color:orange;legal to sell slave babies@@, your child should be worth quite a pretty ¤ at auction.<</if>> +Now you are faced with a decision of what to do with your new child. You're far too busy to keep it yourself, but you could @@color:orange;send your <<if $babyGender == 1>>daughter<<else>>son<</if>> to a boarding school to be raised until they are of age to serve as your heir.@@ The other option is to @@color:orange;send them to become a slave at a slave orphanage.@@<<if $Cash4Babies == 1>> Alternatively, since it is @@color:orange;legal to sell slave babies@@, your child should be worth quite a pretty ¤ at auction.<</if>><<if $incubator > 0>><<if $incubator > $incubatorSlaves>> An incubation tank is empty and ready to accept a child, should you wish to @@color:orange;keep your child as a slave@@<<else>>All the incubation tanks are occupied; there is no room for your newborn child<</if>>.<</if>> <br><br> <span id="choice">What will it be? <br> -<<click "Boarding School">><<replace "#choice">><<print "You have decided to send them away to be raised in your stead.">><</replace>><</click>> | <<click "Slave Orphanage">><<replace "#choice">><<print "You have decided to send them to a slave orphanage to be raised to $minimumSlaveAge and sold. Perhaps you'll even see them again, though you are unlikely to recognize them if you do.">><</replace>><</click>><<if $Cash4Babies == 1>> | <<click "Auction Them">><<replace "#choice">><<print "You send the child to be sold at auction amongst other prestigious slaves. The winning big for your offspring came in at @@color:yellowgreen;¤<<print 1000*$seed>>.@@">><</replace>><<set $cash += 1000*$seed>><</click>><</if>></span> +<<click "Boarding School">><<replace "#choice">><<print "You have decided to send them away to be raised in your stead.">><</replace>><</click>> | +<<click "Slave Orphanage">><<replace "#choice">><<print "You have decided to send them to a slave orphanage to be raised to $minimumSlaveAge and sold. Perhaps you'll even see them again, though you are unlikely to recognize them if you do.">><</replace>><</click>> +<<if $Cash4Babies == 1>> | <<click "Auction Them">><<replace "#choice">><<print "You send the child to be sold at auction amongst other prestigious slaves. The winning big for your offspring came in at @@color:yellowgreen;¤<<print 1000*$seed>>.@@">><</replace>><<set $cash += 1000*$seed>><</click>><</if>> +<<if ($incubator > $incubatorSlaves) && ($reservedChildren < $incubator)>> + | <<click "Incubation">><<replace "#choice">><<print "You place the child into an incubation chamber to be aged until they can legally serve as your slave.">><</replace>><<display "Incubator Workaround">><</click>> <</if>> +</span> + +<</if>> /*closes gaveBirth*/ +<</if>> /*closes SE*/ -<<set $babyGender = 0>> <<set $badBirth = 0>> <<set $PC.pregSource = 0>> -<<set $seed = 0>> - +<<set $seed = 0>> \ No newline at end of file diff --git a/src/pregmod/slaveAgeIntro.tw b/src/pregmod/slaveAgeIntro.tw index c06e413ea167127ef5e2c14f8b785feef1442431..fffa31209c0cbf78fa92972063c00a4e266c0019 100644 --- a/src/pregmod/slaveAgeIntro.tw +++ b/src/pregmod/slaveAgeIntro.tw @@ -2,8 +2,8 @@ Do you want to see content involving girls younger than 18 in this game? -[[No.|Gender Intro][$minimumSlaveAge to 18, $pedo_mode to 0]] //All slaves will be at least 18 years old, and slavery of children will be illegal in the Free Cities.// -Yes, I wish to see girls as young as <<textbox "$minimumSlaveAge" $minimumSlaveAge "Gender Intro">> [[Continue|Gender Intro][$pedo_mode to 0]] -[[I just want lots of lolis.|Gender Intro][$minimumSlaveAge to 5, $pedo_mode to 1]] //Nearly all randomly generated slaves will be under the age of 18, although custom slaves and slaves related to specific events may be older.// -[[I wish to see them grow up and become fertile.|Gender Intro][$minimumSlaveAge to 3, $pedo_mode to 0, $precociousPuberty to 1, $fertilityAge to 10, $potencyAge to 12, $seeAge to 1]] //Preset. Slaves' age will be random from minimal possible age. They can be made fertile yonger than normal puberty age (10) in some cases, and grow up naturally.// +[[No.|PC Body Intro][$minimumSlaveAge to 18, $pedo_mode to 0]] //All slaves will be at least 18 years old, and slavery of children will be illegal in the Free Cities.// +Yes, I wish to see girls as young as <<textbox "$minimumSlaveAge" $minimumSlaveAge "PC Body Intro">> [[Continue|PC Body Intro][$pedo_mode to 0]] +[[I just want lots of lolis.|PC Body Intro][$minimumSlaveAge to 5, $pedo_mode to 1]] //Nearly all randomly generated slaves will be under the age of 18, although custom slaves and slaves related to specific events may be older.// +[[I wish to see them grow up and become fertile.|PC Body Intro][$minimumSlaveAge to 3, $pedo_mode to 0, $precociousPuberty to 1, $fertilityAge to 10, $potencyAge to 12, $seeAge to 1]] //Preset. Slaves' age will be random from minimal possible age. They can be made fertile yonger than normal puberty age (10) in some cases, and grow up naturally.// diff --git a/src/uncategorized/PESS.tw b/src/uncategorized/PESS.tw index 30a1a48e62ec19edd892bd77d47090e562485019..97f7ccb37ce5e93ebadb85417b8aef725c90127b 100644 --- a/src/uncategorized/PESS.tw +++ b/src/uncategorized/PESS.tw @@ -63,7 +63,7 @@ Your milkmaid <span id="name"><<print "[[$activeSlave.slaveName|Long Slave Descr <<case "loving concubine">> -It's been a long, harassing day as owner of the arcology. You're composing an angry communication to a couple of imbecile tenants who seem to think they're still in their old world shithole of a homeland, insist on acting like it, and are also wealthy enough to make it unwise to simply defenestrate them from the nearest window. Not that you aren't tempted. Suddenly, you feel a moist, <<if ($activeSlave.lips > 70)>>massive<<elseif ($activeSlave.lips > 40)>>pillowlike<<else>>girlish<</if>> pair of lips nibbling their way along your ear, and a <<if ($activeSlave.muscles > 95)>>powerful<<elseif ($activeSlave.muscles > 30)>>strong<<else>>femininie<</if>> hand o0 your shoulder. Its owner <<if canTalk($activeSlave) == false>>passes you a handwritten note: "? ? It can wait, <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Master<<else>>Mistress<</if>> ? ?"<<elseif SlaveStatsChecker.checkForLisp($activeSlave)>>lisps: "It can wait, <<if def $PC.customTitleLisp>>$PC.customTitleLisp<<elseif $PC.title != 0>>Mathter<<else>>Mithtreth<</if>>."<<else>>whispers: "It can wait, <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Master<<else>>Mistress<</if>>."<</if>> +It's been a long, harassing day as owner of the arcology. You're composing an angry communication to a couple of imbecile tenants who seem to think they're still in their old world shithole of a homeland, insist on acting like it, and are also wealthy enough to make it unwise to simply defenestrate them from the nearest window. Not that you aren't tempted. Suddenly, you feel a moist, <<if ($activeSlave.lips > 70)>>massive<<elseif ($activeSlave.lips > 40)>>pillowlike<<else>>girlish<</if>> pair of lips nibbling their way along your ear, and a <<if ($activeSlave.muscles > 95)>>powerful<<elseif ($activeSlave.muscles > 30)>>strong<<else>>feminine<</if>> hand over your shoulder. Its owner <<if canTalk($activeSlave) == false>>passes you a handwritten note: "? ? It can wait, <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Master<<else>>Mistress<</if>> ? ?"<<elseif SlaveStatsChecker.checkForLisp($activeSlave)>>lisps: "It can wait, <<if def $PC.customTitleLisp>>$PC.customTitleLisp<<elseif $PC.title != 0>>Mathter<<else>>Mithtreth<</if>>."<<else>>whispers: "It can wait, <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Master<<else>>Mistress<</if>>."<</if>> You turn to see your concubine <span id="name"><<print "[[$activeSlave.slaveName|Long Slave Description][$nextLink to passage(), $eventDescription to 1]]">></span>'s <<if ($activeSlave.butt > 5)>>massive, nude ass<<elseif ($activeSlave.butt > 2)>>big naked butt<<else>>nice, nude rear<</if>> vanishing back into your suite.<<if ($activeSlave.boobs > 2000)>> As she sways away from you, you can clearly see the sides of her massive tits, sticking out on either side of her torso.<</if>> diff --git a/src/uncategorized/REFI.tw b/src/uncategorized/REFI.tw index e334ef849a6bee82b434e86e3214525e95a27b9f..6ade063d4d88dc12bf95d1137b8eabe1566f383f 100644 --- a/src/uncategorized/REFI.tw +++ b/src/uncategorized/REFI.tw @@ -306,7 +306,7 @@ $activeSlave.slaveName hesitates before explaining herself, and the $desc is obv <<click "Turn her into another anal slut">> <<replace "#name">>$activeSlave.slaveName<</replace>> <<replace "#result">> - <<if ($activeSlave.amp == 1) && (canTalk($activeSlave) == false)>>She's mute and has no hands, so it takes a long, frustrating time for her to communicate that she would like you to do to her what you did to $subSlave.slaveName.<<elseif canTalk($activeSlave) == false>>She's mute, so she uses gestures to ask you to do to her what you did to $subSlave.slaveName.<<elseif ($activeSlave.lips > 70)>>She asks through her massive dick-sucking lips, "<<if def $PC.customTitleLisp>>$PC.customTitleLisp<<elseif $PC.title != 0>>Mathter<<else>>Mithtreth<</if>>, can yeh do meh like yeh did $subSlave.slaveName?"<<elseif ($activeSlave.lipsPiercing+$activeSlave.tonguePiercing > 2)>>She asks through her big oral piercings, "<<if def $PC.customTitleLisp>>$PC.customTitleLisp<<elseif $PC.title != 0>>Mathter<<else>>Mithtreth<</if>>, can yeh do meh like yeh did $subSlave.slaveName?"<<else>>She asks, "<<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Master<<else>>Mistress<</if>>, may you please do me like that?"<</if>> You make her state it more explicitly, so she tries again: <<if ($activeSlave.amp == 1)>> she wriggles around until her ass is pointed straight at you, lets out a deep breath, and relaxes her sphincter visibly.<<elseif canTalk($activeSlave) == false>>she tries to depict anal sex with hand gestures, then gives up and turns around and points to her ass.<<elseif SlaveStatsChecker.checkForLisp($activeSlave)>>"Please fuck mah butt, <<if def $PC.customTitleLisp>>$PC.customTitleLisp<<elseif $PC.title != 0>>Mathter<<else>>Mithtreth<</if>>!"<<else>>"Please fuck my butt, <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Master<<else>>Mistress<</if>>!"<</if>> She squeaks with surprise as you throw her on the couch, but her eagerness is obvious. She does everything right, relaxing as you <<if ($PC.dick == 0)>>push a strap-on into<<else>>enter<</if>> her ass and enjoying herself all the way through. She climaxes hard to <<if ($PC.dick == 0)>>the phallus<<else>>the cock<</if>> in her asshole. @@color:hotpink;She has become more devoted to you,@@ and @@color:lightcoral;her sexuality now focuses on her anus.@@ + <<if ($activeSlave.amp == 1) && (canTalk($activeSlave) == false)>>She's mute and has no hands, so it takes a long, frustrating time for her to communicate that she would like you to do to her what you did to $subSlave.slaveName.<<elseif canTalk($activeSlave) == false>>She's mute, so she uses gestures to ask you to do to her what you did to $subSlave.slaveName.<<elseif ($activeSlave.lips > 70)>>She asks through her massive dick-sucking lips, "<<if def $PC.customTitleLisp>>$PC.customTitleLisp<<elseif $PC.title != 0>>Mathter<<else>>Mithtreth<</if>>, can yeh do meh like yeh did $subSlave.slaveName?"<<elseif ($activeSlave.lipsPiercing+$activeSlave.tonguePiercing > 2)>>She asks through her big oral piercings, "<<if def $PC.customTitleLisp>>$PC.customTitleLisp<<elseif $PC.title != 0>>Mathter<<else>>Mithtreth<</if>>, can yeh do meh like yeh did $subSlave.slaveName?"<<else>>She asks, "<<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Master<<else>>Mistress<</if>>, would you please do me like that?"<</if>> You make her state it more explicitly, so she tries again: <<if ($activeSlave.amp == 1)>> she wriggles around until her ass is pointed straight at you, lets out a deep breath, and relaxes her sphincter visibly.<<elseif canTalk($activeSlave) == false>>she tries to depict anal sex with hand gestures, then gives up and turns around and points to her ass.<<elseif SlaveStatsChecker.checkForLisp($activeSlave)>>"Please fuck mah butt, <<if def $PC.customTitleLisp>>$PC.customTitleLisp<<elseif $PC.title != 0>>Mathter<<else>>Mithtreth<</if>>!"<<else>>"Please fuck my butt, <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Master<<else>>Mistress<</if>>!"<</if>> She squeaks with surprise as you throw her on the couch, but her eagerness is obvious. She does everything right, relaxing as you <<if ($PC.dick == 0)>>push a strap-on into<<else>>enter<</if>> her ass and enjoying herself all the way through. She climaxes hard to <<if ($PC.dick == 0)>>the phallus<<else>>the cock<</if>> in her asshole. @@color:hotpink;She has become more devoted to you,@@ and @@color:lightcoral;her sexuality now focuses on her anus.@@ <<set $activeSlave.devotion += 4>> <<set $activeSlave.analCount += 1>><<set $analTotal += 1>> <<set $activeSlave.fetish to "buttslut">> diff --git a/src/uncategorized/RESS.tw b/src/uncategorized/RESS.tw index f82290e7b7f314a5c91e1ceeacb9cfd04a0e9f78..700c93cc93ec4ed2854ec18f77ef9243fe887a1b 100644 --- a/src/uncategorized/RESS.tw +++ b/src/uncategorized/RESS.tw @@ -324,7 +324,7 @@ During a routine inspection, <span id="name"><<print "[[$activeSlave.slaveName|L <<case "fearful balls">> -<span id="name"><<print "[[$activeSlave.slaveName|Long Slave Description][$nextLink to passage(), $eventDescription to 1]]">></span> is still having obedience problems, particularly with her proper role as a female receptacle for cock. Though they're an almost too-obvious explanation, it's hard to avoid her retention of her gonads as a possible explanation for her behavioral issues. They certainly contribute to her less than perfectly feminine horomonal balance. +<span id="name"><<print "[[$activeSlave.slaveName|Long Slave Description][$nextLink to passage(), $eventDescription to 1]]">></span> is still having obedience problems, particularly with her proper role as a female receptacle for cock. Though they're an almost too-obvious explanation, it's hard to avoid her retention of her gonads as a possible explanation for her behavioral issues. They certainly contribute to her less than perfectly feminine hormonal balance. <br><br> It's time for her routine inspection, and she's standing before you, nude. She certainly doesn't find her sexually vulnerable position arousing; she's totally flaccid. The physical manifestations of her disobedience are right in front of you, and quite defenseless. @@ -350,7 +350,7 @@ Going about your day, <<if ($activeSlave.amp != 1)>>you see <span id="name"><<pr <<case "night visit">> -As you are retiring for the night, <span id="name"><<print "[[$activeSlave.slaveName|Long Slave Description][$nextLink to passage(), $eventDescription to 1]]">></span> <<if ($activeSlave.heels == 1) && ($activeSlave.shoes != "heels") && ($activeSlave.shoes != "boots") && ($activeSlave.shoes != "extreme heels")>>crawls<<elseif ($activeSlave.shoes is "heels") || ($activeSlave.shoes is "boots") || ($activeSlave.shoes is "extreme heels")>>totters<<else>>walks<</if>> into your bedroom and stands before you submissively. Since she's allowed to ask questions, she says <<if canTalk($activeSlave) == false || ($activeSlave.accent >= 3)>>nothing, but begs you with gestures to have sex with her.<<elseif ($activeSlave.lips > 70)>>meekly through her massive dick-sucking lips, "<<if def $PC.customTitleLisp>>$PC.customTitleLisp<<elseif $PC.title != 0>>Mathter<<else>>Mithtreth<</if>>, muh you peese uck me?"<<elseif ($activeSlave.lipsPiercing+$activeSlave.tonguePiercing > 2)>>meekly through her inconvenient oral piercings, "<<if def $PC.customTitleLisp>>$PC.customTitleLisp<<elseif $PC.title != 0>>Mathter<<else>>Mithtreth<</if>>, muh you peese uck me?"<<else>>meekly, "<<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Master<<else>>Mistress<</if>>, may you please fuck me?"<</if>> +As you are retiring for the night, <span id="name"><<print "[[$activeSlave.slaveName|Long Slave Description][$nextLink to passage(), $eventDescription to 1]]">></span> <<if ($activeSlave.heels == 1) && ($activeSlave.shoes != "heels") && ($activeSlave.shoes != "boots") && ($activeSlave.shoes != "extreme heels")>>crawls<<elseif ($activeSlave.shoes is "heels") || ($activeSlave.shoes is "boots") || ($activeSlave.shoes is "extreme heels")>>totters<<else>>walks<</if>> into your bedroom and stands before you submissively. Since she's allowed to ask questions, she says <<if canTalk($activeSlave) == false || ($activeSlave.accent >= 3)>>nothing, but begs you with gestures to have sex with her.<<elseif ($activeSlave.lips > 70)>>meekly through her massive dick-sucking lips, "<<if def $PC.customTitleLisp>>$PC.customTitleLisp<<elseif $PC.title != 0>>Mathter<<else>>Mithtreth<</if>>, muh you peese uck me?"<<elseif ($activeSlave.lipsPiercing+$activeSlave.tonguePiercing > 2)>>meekly through her inconvenient oral piercings, "<<if def $PC.customTitleLisp>>$PC.customTitleLisp<<elseif $PC.title != 0>>Mathter<<else>>Mithtreth<</if>>, muh you peese uck me?"<<else>>meekly, "<<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Master<<else>>Mistress<</if>>, would you please fuck me?"<</if>> <<case "trusting HG">> @@ -1167,9 +1167,9 @@ She trusts you, so she approaches you as sensually as she can manage and asks fo <<if canTalk($activeSlave) == false>> She uses quick but submissive gestures to beg you to help her cum, pleading the special difficulties caused by her outlandish member, which she can manage most comfortably if she has both hands free for it. <<elseif SlaveStatsChecker.checkForLisp($activeSlave)>> - "<<if def $PC.customTitleLisp>>$PC.customTitleLisp<<elseif $PC.title != 0>>Mathter<<else>>Mithtreth<</if>>, may you pleathe, pleathe help me cum?" she begs submissively. "It'th nithe if I can uthe both handth on it to, um, manage thingth." + "<<if def $PC.customTitleLisp>>$PC.customTitleLisp<<elseif $PC.title != 0>>Mathter<<else>>Mithtreth<</if>>, would you pleathe, pleathe help me cum?" she begs submissively. "It'th nithe if I can uthe both handth on it to, um, manage thingth." <<else>> - "<<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Master<<else>>Mistress<</if>>, may you please, please help me cum?" she begs submissively. "It's nice if I can use both hands on it to, um, manage things." + "<<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Master<<else>>Mistress<</if>>, would you please, please help me cum?" she begs submissively. "It's nice if I can use both hands on it to, um, manage things." <</if>> She's referring to the volume issue with her unnaturally massive dick. The thing is so huge and so soft that <<if $activeSlave.balls < 3>>one of her (by comparison) pathetically weak ejaculations<<elseif $activeSlave.balls < 6>>one of her comparatively normal ejaculations<<else>>a single one of even her copious ejaculations<</if>> often fails to make it all the way to the tip of her cock, making it only partway down her urethra without help. @@ -1187,9 +1187,9 @@ Heading back towards your office after seeing to a minor matter, you encounter < <<if canTalk($activeSlave) == false>> She gestures a submissive greeting and then hesitates, catching her lower lip cutely behind her upper teeth. Then she politely asks if you would milk her. <<elseif SlaveStatsChecker.checkForLisp($activeSlave)>> - "Hi <<if def $PC.customTitleLisp>>$PC.customTitleLisp<<elseif $PC.title != 0>>Mathter<<else>>Mithtreth<</if>>," she lisps in greeting, and then hesitates, catching her lower lip cutely behind her upper teeth. "Um, may you pleathe milk me?" + "Hi <<if def $PC.customTitleLisp>>$PC.customTitleLisp<<elseif $PC.title != 0>>Mathter<<else>>Mithtreth<</if>>," she lisps in greeting, and then hesitates, catching her lower lip cutely behind her upper teeth. "Um, would you pleathe milk me?" <<else>> - "Hi <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Master<<else>>Mistress<</if>>," she says in greeting, and then hesitates, catching her lower lip cutely behind her upper teeth. "Um, may you please milk me?" + "Hi <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Master<<else>>Mistress<</if>>," she says in greeting, and then hesitates, catching her lower lip cutely behind her upper teeth. "Um, would you please milk me?" <</if>> <<if $activeSlave.fetish is "boobs">>The shamelessly breast obsessed cow rarely misses an opportunity to ask for mammary intercourse, or anything remotely like it. Something as intimate as having you tug the milk from her nipples would definitely qualify.<<else>>She's not exactly a breast fetishist, but milking is nonetheless a deeply important activity for her, emotionally; the neurochemical effects of continual lactation are strong. She's so devoted to you that she probably considers this a reassuringly intimate act.<</if>> @@ -1468,21 +1468,71 @@ With her <<if $activeSlave.preg > 20>>enormously pregnant belly<<elseif $activeS <<case "retching cum feeding">> -You are inspecting the slave feeding area early in the week, watching your slaves as they come and go to get their required nourishment for the morning. You see <span id="name"><<print "[[$activeSlave.slaveName|Long Slave Description][$nextLink to passage(), $eventDescription to 1]]">></span><<if $cockFeeder == 1>> as she kneels in front of the feeder phallus with a look of disgust on her face <<else>> as she stares into her cup of nutritional fluid with a look of disgust on her face.<</if>> You quickly check your records and $assistantName confirms that $activeSlave.slaveName is required to ingest<<if $activeSlave.dietCum == 2>> an extreme diet based almost entirely on human ejaculate.<<else>> a large amount of human ejaculate as part of her diet.<</if>> +You are inspecting the slave feeding area early in the week, watching your slaves as they come and go to get their required nourishment for the morning. You see <span id="name"><<print "[[$activeSlave.slaveName|Long Slave Description][$nextLink to passage(), $eventDescription to 1]]">></span><<if $cockFeeder == 1>> as she kneels in front of the feeder phallus with a look of disgust on her face <<else>> as she <<if canSee($activeSlave)>>stares into her cup of nutritional fluid with a look of disgust on her face<<else>>grimaces at her cup of nutritional fluid<</if>>.<</if>> You quickly check your records and $assistantName confirms that $activeSlave.slaveName is required to ingest<<if $activeSlave.dietCum == 2>> an extreme diet based almost entirely on human ejaculate.<<else>> a large amount of human ejaculate as part of her diet.<</if>> <br><br> -As you watch $activeSlave.slaveName unpleasantly retch as she<<if $cockFeeder == 1>> stimulates the feeder phallus with her mouth<<else>> tentatively drinks from her cup<</if>> and chokes her food down, knowing that if she doesn't eat it willingly, she will be forced to, you can almost see her <<if $activeSlave.intelligence gt 0>> intelligent mind <<else>> stupid mind<</if>> working through the reality of what her life has become. She is now a receptacle for <<if $activeSlave.dietCum == 2>> concentrated <</if>>human ejaculate, and for no other reason than the perverse amusemsent of her owner. Almost as soon as she swallows her food, she whimpers, burps, and then quickly runs to a nearby bathroom to vomit it back up. This is a common reaction for unbroken slaves on cum diets,<<if $activeSlave.weight gt 0>> and can also be an effective, if unhealthy, way of forcing them to lose weight.<<else>> but it can also prevent slaves that are already too thin from gaining weight.<</if>> +As you watch $activeSlave.slaveName unpleasantly retch as she<<if $cockFeeder == 1>> stimulates the feeder phallus with her mouth<<else>> tentatively drinks from her cup<</if>> and chokes her food down, knowing that if she doesn't eat it willingly, she will be forced to, you can almost see her <<if $activeSlave.intelligence gt 0>> intelligent mind <<else>> stupid mind<</if>> working through the reality of what her life has become. She is now a receptacle for <<if $activeSlave.dietCum == 2>> concentrated <</if>>human ejaculate, and for no other reason than the perverse amusemsent of her owner. Almost as soon as she swallows her food, she whimpers, burps, and then <<if $activeSlave.preg > 20>>hastily waddles<<else>>quickly runs<</if>> to a nearby bathroom to vomit it back up. This is a common reaction for unbroken slaves on cum diets,<<if $activeSlave.weight gt 0>> and can also be an effective, if unhealthy, way of forcing them to lose weight.<<else>> but it can also prevent slaves that are already too thin from gaining weight.<</if>> <<case "subjugation blues">> -It's been <<print $week-$activeSlave.weekAcquired>> week<<if $week-$activeSlave.weekAcquired > 1>>s<</if>> since you acquired <span id="name"><<print "[[$activeSlave.slaveName|Long Slave Description][$nextLink to passage(), $eventDescription to 1]]">></span> as your slave. Since then she has been nothing but trouble. She has been ungrateful, rebellious and particularly hateful toward you since you acquired her. She often needs to be confined or forced to perform her assignments, and has little regard for your power or authority. You bring her in for inspection and she whines and squirms in resistance as you feel up her $activeSlave.nipples nipples, and grope her <<if $activeSlave.butt < 2>>narrow <<elseif $activeSlave.butt < 5>>average <<elseif $activeSlave.butt < 8>>plump <<else>>impressive <</if>>butt, coldly appraising her potential worth as a sexual service provider. <<if $activeSlave.actualAge < 21>>She is very young, only $activeSlave.actualAge years old, and is still very naive. Her smooth, $activeSlave.skin skin has yet to experience the hard years of relentless sexual abuse that lie ahead of her.<<else>>At $activeSlave.actualAge years old, she should know by now how the world works, but some slaves are just too stubborn for their own good.<</if>> Eventually, of course, even the most headstrong girls will bend to your will, but the unique social mores of your arcology and the wonders of modern surgical technology offer a prime opportunity to make a potent example of this <<if $activeSlave.actualAge < 21>>young <<else>>obstinate <</if>>slut. She is $activeSlave.race, and therefore not considered racially inferior or subject to extreme inequities or neglect, but like most slave characteristics, that can change. +It's been <<print $week-$activeSlave.weekAcquired>> week<<if $week-$activeSlave.weekAcquired > 1>>s<</if>> since you acquired <span id="name"><<print "[[$activeSlave.slaveName|Long Slave Description][$nextLink to passage(), $eventDescription to 1]]">></span> as your slave. Since then she has been nothing but trouble. She has been ungrateful, rebellious and particularly hateful toward you since you acquired her. She often needs to be confined or forced to perform her assignments, and has little regard for your power or authority. You bring her in for inspection and she whines and squirms in resistance as you feel up her $activeSlave.nipples nipples<<if $activeSlave.preg >= 10>>, rub her pregnant belly<<elseif $activeSlave.preg > 5>>, feel the curve of her new pregnancy<</if>>, and grope her <<if $activeSlave.butt < 2>>narrow <<elseif $activeSlave.butt < 5>>average <<elseif $activeSlave.butt < 8>>plump <<else>>impressive <</if>>butt, coldly appraising her potential worth as a sexual service provider. <<if $activeSlave.actualAge < 21>>She is very young, only $activeSlave.actualAge years old, and is still very naive. Her smooth, $activeSlave.skin skin has yet to experience the hard years of relentless sexual abuse that lie ahead of her.<<else>>At $activeSlave.actualAge years old, she should know by now how the world works, but some slaves are just too stubborn for their own good.<</if>> Eventually, of course, even the most headstrong girls will bend to your will, but the unique social mores of your arcology and the wonders of modern surgical technology offer a prime opportunity to make a potent example of this <<if $activeSlave.actualAge < 21>>young <<else>>obstinate <</if>>slut. She is $activeSlave.race, and therefore not considered racially inferior or subject to extreme inequities or neglect, but like most slave characteristics, that can change. <<case "too thin for cum diet">> -You are in your office, tending the the tedious business of requisition orders for your penthouse when you see <span id="name"><<print "[[$activeSlave.slaveName|Long Slave Description][$nextLink to passage(), $eventDescription to 1]]">></span> appear outside your door. She hovers outside in the hall, peeking her head around the entry-way, looking very unsure about disturbing you. You stop what you're doing and call her in. She's reticent at first, but then she obediently steps into your office. She is <<if $activeSlave.clothes == "no clothing">>forced to remain naked at all times, and the most striking thing about her body is how skinny she is.<<else>>forced to wear $activeSlave.clothes all day, but even through her outfit, it's easy to see how impossibly skinny she is.<</if>> <<if $activeSlave.weight > -80>> She's not exclusively skin and bones, but she's close. <<else>> She's so thin that she doesn't look entirely healthy.<</if>> Her <<if $activeSlave.boobs < 600>><<if $activeSlave.boobs < 300>>tiny <<elseif $activeSlave.boobs < 600>>small <</if>>boobs are barely noticable against her concave tummy, and <<if $arcologies[0].FSSlimnessEnthusiast != "unset">>that can be a very appealing look given the predilection your arcology has for slim girls. <<else>>to most clients, this makes her a less appealing whore.<</if>><<else>><<if $activeSlave.boobs < 900>>large <<else>>massive <</if>> tits are a sharp contrast to her concave belly, and although impressive, they seem to especially stick out on a girl who, in all other ways, seems <<if $activeSlave.weight > -80>>slightly <<else>>alarmingly <</if>> malnourished.<</if>> Her $activeSlave.faceShape face is clearly conflicted, and her $activeSlave.eyeColor eyes shift with nervous energy. She is clearly unsure whether she should say what she came here to say. +You are in your office, tending the the tedious business of requisition orders for your penthouse when you see <span id="name"><<print "[[$activeSlave.slaveName|Long Slave Description][$nextLink to passage(), $eventDescription to 1]]">></span> appear outside your door. She hovers outside in the hall, peeking her head around the entry-way, looking very unsure about disturbing you. You stop what you're doing and call her in. She's reticent at first, but then she obediently steps into your office. She is <<if $activeSlave.clothes == "no clothing">>forced to remain naked at all times, and the most striking thing about her body is how <<if $activeSlave.preg > 20>>massive her pregnant belly is compared to her skinny body<<elseif $activeSlave.preg > 5>>noticeable her growing pregnancy is against her skinny body<<else>>skinny she is<</if>>.<<else>>forced to wear $activeSlave.clothes all day, but even through her outfit, it's easy to see how <<if $activeSlave.preg > 20>>massive her pregnant belly is compared to her skinny body<<elseif $activeSlave.preg > 5>>noticeable her growing pregnancy is against her skinny body<<else>>impossibly skinny she is<</if>>.<</if>> <<if $activeSlave.weight > -80>> She's not exclusively skin and bones, but she's close. <<else>> She's so thin that she doesn't look entirely healthy.<</if>> Her <<if $activeSlave.boobs < 600>><<if $activeSlave.boobs < 300>>tiny <<elseif $activeSlave.boobs < 600>>small <</if>>boobs are barely noticeable <<if $activeSlave.preg > 20>>above her bloated<<else>>against her concave<</if>> tummy, and <<if $arcologies[0].FSSlimnessEnthusiast != "unset">>that can be a very appealing look given the predilection your arcology has for slim girls. <<else>>to most clients, this makes her a less appealing whore.<</if>><<else>><<if $activeSlave.boobs < 900>>large <<else>>massive <</if>> tits are a sharp contrast to her <<if $activeSlave.preg > 10>>thin, bloated frame<<else>>concave belly<</if>>, and although impressive, they seem to especially stick out on a girl who, in all other ways, seems <<if $activeSlave.weight > -80>>slightly <<else>>alarmingly <</if>> malnourished.<</if>> Her $activeSlave.faceShape face is clearly conflicted, and <<if canSee($activeSlave)>>her $activeSlave.eyeColor eyes shift<<else>>she glances about<</if>> with nervous energy. She is clearly unsure whether she should say what she came here to say. <br><br> -When you finally ask her what she wants, she hestitates for a moment and then suddenly seems to gain her courage<<if $activeSlave.accent > 1>>, speaking in an atrociously thick accent<<elseif $activeSlave.accent > 0>>, speaking in a cute little accent<</if>>. <<if SlaveStatsChecker.checkForLisp($activeSlave)>> "Pleathe, <<if def $PC.customTitleLisp>>$PC.customTitleLisp<<elseif $PC.title != 0>>Mathter<<else>>Mithtreth<</if>> I'm tho hungry! It theemth like all I get to eat ith cum. It'th dithguthting! Pleathe! I have to eat tho much of it. Can I be allowed to eat regular food again? Pleathe, <<if def $PC.customTitleLisp>>$PC.customTitleLisp<<elseif $PC.title != 0>>Mathter<<else>>Mithtreth<</if>>, I'm tho hungry! I need real food!"<<else>> "Please, <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Master<<else>>Mistress<</if>> I'm so hungry! It seems like all I get to eat is cum. It's disgusting! Please! I have to eat so much of it. Can I be allowed to eat regular food again? Please, <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Master<<else>>Mistress<</if>>, I'm so hungry. I need real food!"<</if>> +When you finally ask her what she wants, she hesitates for a moment and then suddenly seems to gain her courage<<if $activeSlave.accent > 1>>, speaking in an atrociously thick accent<<elseif $activeSlave.accent > 0>>, speaking in a cute little accent<</if>>. <<if SlaveStatsChecker.checkForLisp($activeSlave)>> "Pleathe, <<if def $PC.customTitleLisp>>$PC.customTitleLisp<<elseif $PC.title != 0>>Mathter<<else>>Mithtreth<</if>> I'm tho hungry! It theemth like all I get to eat ith cum. It'th dithguthting! Pleathe! I have to eat tho much of it. Can I be allowed to eat regular food again? Pleathe, <<if def $PC.customTitleLisp>>$PC.customTitleLisp<<elseif $PC.title != 0>>Mathter<<else>>Mithtreth<</if>>, I'm tho hungry! I need real food!"<<else>> "Please, <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Master<<else>>Mistress<</if>> I'm so hungry! It seems like all I get to eat is cum. It's disgusting! Please! I have to eat so much of it. Can I be allowed to eat regular food again? Please, <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Master<<else>>Mistress<</if>>, I'm so hungry. I need real food!"<</if>> <br><br> -It's true, cum <<if $activeSlave.dietCum == 1>>supplemented <<elseif $activeSlave.dietCum == 2>>based <</if>>food can be hard on girls who are not fully habituated to being toys for sexual amusement--particularly when you've ordered them to gain weight on it. You look at the skinny whore and consider your options. +It's true, cum <<if $activeSlave.dietCum == 1>>supplemented <<elseif $activeSlave.dietCum == 2>>based <</if>>food can be hard on girls who are not fully habituated to being toys for sexual amusement--particularly when you've ordered them to gain weight on it. You look at the<<if $activeSlave.preg > 10>> gravid,<</if>> skinny whore and consider your options. + +<<case "transition anxiety">> + +<span id="name"><<print "[[$activeSlave.slaveName|Long Slave Description][$nextLink to passage(), $eventDescription to 1]]">></span> stumbles into your office naked for her weekly inspection, so apprehensive that she can hardly walk. She's been like this ever since she became one of your sex slaves, <<if $week-$activeSlave.weekAcquired == 0>>just this week<<elseif $week-$activeSlave.weekAcquired == 1>>just last week<<else>><<print $week-$activeSlave.weekAcquired>> weeks ago<</if>>. It's not surprising; slaves like her usually require some time and training to accept that they're slave girls. She lacks the natural attraction to men that might have made the idea more comfortable for her, and the resulting sexual anxiety combined with understandable fear of sexual use makes her extremely unhappy to be naked in front of someone she knows can fuck her at will. +<br><br> +She has her hands balled into fists at her sides, and clearly wants nothing more than to use them to cover her <<if $activeSlave.balls == 0>>pathetic, ballsless bitchclit<<elseif $activeSlave.aphrodisiacs > 0>>aphrodisiac-induced erection<<elseif $activeSlave.dick > 3>>impressively sized but pathetically soft dick<<else>>soft, pathetic little dick<</if>>. She knows that that's not allowed, and keeps her hands where they are, though it's a struggle. She sees you looking at her body like a slaveowner looks at one of <<if $PC.title == 1>>his<<else>>her<</if>> sex slaves, and she shivers. + +<<case "moist pussy">> + +Just as you're about to give <span id="name"><<print "[[$activeSlave.slaveName|Long Slave Description][$nextLink to passage(), $eventDescription to 1]]">></span> her weekly inspection, a minor business matter comes up and diverts your attention. So, for about ten minutes, she has nothing at all to do other than stand in front of your desk in your office, watching you,<<if $assistant > 0>> $assistantName's avatar,<</if>> the other slaves who come and go, and the general lewdness of the arcology, much of which is visible from right here. +<<if ($activeSlave.attrXY > 50) && ($PC.boobs == 0)>> + She finds your strong body attractive, and her gaze rests most frequently on you. +<<elseif ($activeSlave.attrXX > 50) && ($PC.boobs == 1)>> + She finds your prominent breasts attractive, and her gaze rests most frequently on them. +<<elseif $activeSlave.aphrodisiacs > 0>> + The aphrodisiacs she's on never let her libido rest for long. +<<elseif $activeSlave.energy > 95>> + Her nymphomania keeps her perpetually watchful for any sexual sights, especially any which promise her participation. +<<elseif $activeSlave.energy > 40>> + Her healthy sex drive does its work, and with the constant coming and going she's not starved for things she finds attractive. +<<else>> + Despite her weak libido, she's been a sex slave long enough that her body knows that it may be called upon to render sexual service soon. +<</if>> +The consequences of the special qualities of her womanhood soon become apparent. +<br><br> +Your slaves are all in the very best of vaginal health, so the scent of her female arousal is not strong. But her cunt produces such copious natural lubricant that with nothing to do but stand there, her <<if $activeSlave.births > 0>>motherly<<elseif $activeSlave.weight > 30>>thick<<elseif $activeSlave.muscles > 30>>strong<<else>>feminine<</if>> inner thighs are soon slick with a sheen of healthy pussyjuice. You notice a droplet of the stuff running down her warm $activeSlave.skin skin. +<<if canAchieveErection($activeSlave)>> + Her <<if $activeSlave.dick > 3>>stiff prick<<else>>hard little dick<</if>> is sticking up from atop her pussy, leaving it nice and visible. +<<elseif $activeSlave.dick > 0>> + Her pussy is <<if $activeSlave.dick > 3>>entirely<<else>>partially<</if>> concealed by her limp dick, which is getting a good coating, since it's resting against the source. +<</if>> +<<if $activeSlave.labia > 0>>Her prominent labia are flushed and moist, and frame her womanhood invitingly.<</if>> +<<if $activeSlave.clit > 0>>Her clit is rapidly becoming visible as the blood rushes there from every other part of her body.<</if>> +<<if $activeSlave.preg > 20>>Her huge pregnancy heaves a little as she starts to breathe a bit harder, and the visual connection between her gravid belly and her needy womanhood is inescapable.<</if>> +She's a good $desc, and remains obediently before your desk, filling your office with her subtle perfume as she waits for you. + +<<case "breast expansion blues">> + +During her routine weekly inspection, <span id="name"><<print "[[$activeSlave.slaveName|Long Slave Description][$nextLink to passage(), $eventDescription to 1]]">></span> cradles her huge breasts with her arms whenever the maneuvers of being inspected allow her to do so. It's not an unusual gesture for a $desc on breast growth drugs, since slaves whose tits are expanding are, by definition, not used to their weight yet. But $activeSlave.slaveName is more than just uncomfortable. She seems to regard her weighty mammaries with distaste. <<if $activeSlave.intelligence > -1>>She's not stupid, and quickly realizes<<else>>She's an idiot, but she's not dumb enough to completely miss<</if>> that you've noticed her feelings about her boobs. She bites her lower lip, not sure if she should say anything, so you follow your usual policy during slave inspections and ask her about it. <<if $PC.career == "slaver">>If you learned one thing from your long career of slave training, it's that it's<<else>>It's<</if>> typically best to suss these things out. +<br><br> +<<if SlaveStatsChecker.checkForLisp($activeSlave)>> + "<<if def $PC.customTitleLisp>>$PC.customTitleLisp<<elseif $PC.title != 0>>Mathter<<else>>Mithtreth<</if>>," she lisps, "can I pleathe be taken off boob drugth?" She swallows, nervous that she's crossed a line, but she presses on, hefting her tits a little higher to show she's talking about them. "They're tho heavy and awkward. I'm thore every night, and my back hurts. I feel like a cow with boobth thith big, +<<else>> + "<<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Master<<else>>Mistress<</if>>," she mumbles, "can I please be taken off the breast expansion drugs?" She swallows, nervous that she's crossed a line, but she presses on, hefting her tits a little higher to show she's talking about them. "They're so heavy and awkward. I'm sore every night, and my back hurts. I feel like a cow with boobs this big, +<</if>> +and I can't imagine what it'll be like if they get any bigger." +In one sense, it's amusing that she feels that way, because<<if ($arcologies[0].FSAssetExpansionist != "unset") || ($arcologies[0].FSTransformationFetishist != "unset") || ($arcologies[0].FSPastoralist != "unset")>> as many slaves in this very arcology know quite well,<</if>> it's possible for the miracles of modern medicine to grow a $desc's tits until they're so heavy they immobilize her completely. +<<if $activeSlave.muscles > 5>>She has the muscles to carry her boobs around, so some of this may be simple whining.<<else>>It's not surprising that her breasts would be uncomfortable, since she lacks anything in the way of muscle tone to help support them.<</if>> +<<if $activeSlave.lactation > 0>>She complained of feeling like a cow without detectable irony, despite the fact that her left nipple has a droplet of cream clinging to it right now.<</if>> +She waits anxiously for your response, wondering if she'll be punished for expressing reservations about your expansion of her breasts and, comically, still cradling her heavy udders as she does so. <<default>> ERROR: bad event @@ -2997,7 +3047,7 @@ You tell her kindly that you understand, and that she'll be trained to address t <br><<click "Call your Head Girl in for double anal">> <<replace "#name">>$activeSlave.slaveName<</replace>> <<replace "#result">> - When $HeadGirl.slaveName comes into your office in response to your summons, she finds $activeSlave.slaveName sitting in your lap with your <<if $PC.dick == 0>>strap-on<<else>>dick<</if>> up her gaping butt<<if $PC.vagina == 1>><<if $PC.dick == 1>>, your bare pussy very visible at the base of your working cock<</if>><</if>>. $HeadGirl.slaveName's expression softens whe she realizes she's here for pleasure, not business. $activeSlave.slaveName gasps a little when she hears you tell $HeadGirl.slaveName to join you up her asshole, but she doesn't protest. <<if ($HeadGirl.dick > 0) and ($HeadGirl.dickAccessory is "chastity")>>Since your poor Head Girl can't use her caged cock, she takes a dildo and shoves it up $activeSlave.slaveName's already-filled butt without further ado.<<elseif ($HeadGirl.dick > 0) and ($HeadGirl.hormones > 0)>>Since your poor Head Girl can't get hard due to her hormone therapy, she dons a strap-on over her flaccid penis and shoves it up $activeSlave.slaveName's already-filled butt without further ado.<<elseif ($HeadGirl.dick > 0) and ($HeadGirl.balls == 0)>>Since your poor Head Girl can't get hard due to her orchiectomy, she dons a strap-on over her flaccid penis and shoves it up $activeSlave.slaveName's already-filled butt without further ado.<<elseif $HeadGirl.vagina is -1>>Your lusty Head Girl is already hard and shoves herself up $activeSlave.slaveName's already-filled butt while tweaking the writhing slave's nipples.<<else>>She dons a strap-on and shoves it up $activeSlave.slaveName's already-filled butt without further ado.<</if>> The two of you jackhammer in and out of $activeSlave.slaveName's ass without mercy; the poor anal whore does her best to relax, but two phalli at once is a lot, even for her. She's only allowed an anal respite when her sphincter is really fucked out and there's little butthole fun to be had from her any longer. She has become @@color:hotpink;more submissive to you,@@ and $HeadGirl.slaveName @@color:hotpink;enjoyed@@ taking a break to fuck her with you. + When $HeadGirl.slaveName comes into your office in response to your summons, she finds $activeSlave.slaveName sitting in your lap with your <<if $PC.dick == 0>>strap-on<<else>>dick<</if>> up her gaping butt<<if $PC.vagina == 1>><<if $PC.dick == 1>>, your bare pussy very visible at the base of your working cock<</if>><</if>>. $HeadGirl.slaveName's expression softens when she realizes she's here for pleasure, not business. $activeSlave.slaveName gasps a little when she hears you tell $HeadGirl.slaveName to join you up her asshole, but she doesn't protest. <<if ($HeadGirl.dick > 0) and ($HeadGirl.dickAccessory is "chastity")>>Since your poor Head Girl can't use her caged cock, she takes a dildo and shoves it up $activeSlave.slaveName's already-filled butt without further ado.<<elseif ($HeadGirl.dick > 0) and ($HeadGirl.hormones > 0)>>Since your poor Head Girl can't get hard due to her hormone therapy, she dons a strap-on over her flaccid penis and shoves it up $activeSlave.slaveName's already-filled butt without further ado.<<elseif ($HeadGirl.dick > 0) and ($HeadGirl.balls == 0)>>Since your poor Head Girl can't get hard due to her orchiectomy, she dons a strap-on over her flaccid penis and shoves it up $activeSlave.slaveName's already-filled butt without further ado.<<elseif $HeadGirl.vagina is -1>>Your lusty Head Girl is already hard and shoves herself up $activeSlave.slaveName's already-filled butt while tweaking the writhing slave's nipples.<<else>>She dons a strap-on and shoves it up $activeSlave.slaveName's already-filled butt without further ado.<</if>> The two of you jackhammer in and out of $activeSlave.slaveName's ass without mercy; the poor anal whore does her best to relax, but two phalli at once is a lot, even for her. She's only allowed an anal respite when her sphincter is really fucked out and there's little butthole fun to be had from her any longer. She has become @@color:hotpink;more submissive to you,@@ and $HeadGirl.slaveName @@color:hotpink;enjoyed@@ taking a break to fuck her with you. <<set $activeSlave.devotion += 4>> <<set $activeSlave.analCount += 1>> <<set $analTotal += 1>> @@ -3959,9 +4009,9 @@ You tell her kindly that you understand, and that she'll be trained to address t <</if>> briefly. Comprehension dawns across her<<if $activeSlave.faceShape != "normal">> $activeSlave.faceShape<</if>> face. <<if SlaveStatsChecker.checkForLisp($activeSlave)>> - "Yeth <<if def $PC.customTitleLisp>>$PC.customTitleLisp<<elseif $PC.title != 0>>Mathter<<else>>Mithtreth<</if>>," she lisps slowly, more to buy time to formulate a response than anything else. "Um. I thtill really, really want to cum, though. M-may you please fuck me? Pleathe, pleathe, <<if def $PC.customTitleLisp>>$PC.customTitleLisp<<elseif $PC.title != 0>>Mathter<<else>>Mithtreth<</if>>, pleathe + "Yeth <<if def $PC.customTitleLisp>>$PC.customTitleLisp<<elseif $PC.title != 0>>Mathter<<else>>Mithtreth<</if>>," she lisps slowly, more to buy time to formulate a response than anything else. "Um. I thtill really, really want to cum, though. W-would you please fuck me? Pleathe, pleathe, <<if def $PC.customTitleLisp>>$PC.customTitleLisp<<elseif $PC.title != 0>>Mathter<<else>>Mithtreth<</if>>, pleathe <<else>> - "Yes <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Master<<else>>Mistress<</if>>," she says quietly, more to buy time to formulate a response than anything else. "Um. I still really, really want to cum, though. M-may you please fuck me? Please, please, <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Master<<else>>Mistress<</if>>, please + "Yes <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Master<<else>>Mistress<</if>>," she says quietly, more to buy time to formulate a response than anything else. "Um. I still really, really want to cum, though. W-would you please fuck me? Please, please, <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Master<<else>>Mistress<</if>>, please <</if>> fuck <<if ($activeSlave.vagina > 0) && ($activeSlave.preg > 10) && ($activeSlave.vaginalAccessory != "chastity belt")>>my pregnant pussy<<elseif ($activeSlave.vagina > 0) && ($activeSlave.vaginalAccessory != "chastity belt")>>me<<else>>my butt<</if>>." @@ -4682,9 +4732,9 @@ You tell her kindly that you understand, and that she'll be trained to address t You thank her, and tell her you're considering what to give her in return. She looks flirty, and says, <<if ($activeSlave.fetish is "submissive") && (canDoAnal($activeSlave) || canDoVaginal($activeSlave))>> <<if SlaveStatsChecker.checkForLisp($activeSlave)>> - "Pleathe, may you hold me down and fuck me, <<if $PC.title == 1>>Mathter<<else>>Mithtreth<</if>>?" + "Pleathe, would you hold me down and fuck me, <<if $PC.title == 1>>Mathter<<else>>Mithtreth<</if>>?" <<else>> - "Please, may you hold me down and fuck me, <<if $PC.title == 1>>Master<<else>>Mistress<</if>>?" + "Please, would you hold me down and fuck me, <<if $PC.title == 1>>Master<<else>>Mistress<</if>>?" <</if>> She drapes herself submissively over the couch, lest you misunderstand. You could hold her down and fuck her, and you do. <<if canDoAnal($activeSlave)>> @@ -4705,9 +4755,9 @@ You tell her kindly that you understand, and that she'll be trained to address t <<set $oralTotal += 1>> <<elseif ($activeSlave.fetish is "humiliation") && (canDoAnal($activeSlave) || canDoVaginal($activeSlave))>> <<if SlaveStatsChecker.checkForLisp($activeSlave)>> - "Pleathe, may you fuck me in public, <<if $PC.title == 1>>Mathter<<else>>Mithtreth<</if>>?" + "Pleathe, would you fuck me in public, <<if $PC.title == 1>>Mathter<<else>>Mithtreth<</if>>?" <<else>> - "Please, may you fuck me in public, <<if $PC.title == 1>>Master<<else>>Mistress<</if>>?" + "Please, would you fuck me in public, <<if $PC.title == 1>>Master<<else>>Mistress<</if>>?" <</if>> She edges towards the door, lest you misunderstand. You could fuck her in public, and you do. <<if canDoAnal($activeSlave)>> @@ -4719,27 +4769,27 @@ You tell her kindly that you understand, and that she'll be trained to address t <</if>> <<elseif ($activeSlave.fetish is "buttslut") && canDoAnal($activeSlave)>> <<if SlaveStatsChecker.checkForLisp($activeSlave)>> - "Pleathe, may you fuck my butt, <<if $PC.title == 1>>Mathter<<else>>Mithtreth<</if>>?" + "Pleathe, would you fuck my butt, <<if $PC.title == 1>>Mathter<<else>>Mithtreth<</if>>?" <<else>> - "Please, may you fuck my butt, <<if $PC.title == 1>>Master<<else>>Mistress<</if>>?" + "Please, would you fuck my butt, <<if $PC.title == 1>>Master<<else>>Mistress<</if>>?" <</if>> She turns halfway and shakes her rear enticingly, lest you misunderstand. You could fuck her butt, and you do. <<set $activeSlave.analCount += 1>> <<set $analTotal += 1>> <<elseif ($activeSlave.fetish is "boobs")>> <<if SlaveStatsChecker.checkForLisp($activeSlave)>> - "Pleathe, may you play with my boobth, <<if $PC.title == 1>>Mathter<<else>>Mithtreth<</if>>?" + "Pleathe, would you play with my boobth, <<if $PC.title == 1>>Mathter<<else>>Mithtreth<</if>>?" <<else>> - "Please, may you play with my boobs, <<if $PC.title == 1>>Master<<else>>Mistress<</if>>?" + "Please, would you play with my boobs, <<if $PC.title == 1>>Master<<else>>Mistress<</if>>?" <</if>> She sticks out her chest and bounces her breasts for you, lest you misunderstand. You could play with her boobs, and you do, managing mammary intercourse several ways. <<set $activeSlave.mammaryCount += 3>> <<set $mammaryTotal += 3>> <<elseif ($activeSlave.fetish is "pregnancy") && canDoVaginal($activeSlave)>> <<if SlaveStatsChecker.checkForLisp($activeSlave)>> - "Pleathe, may you <<if $PC.dick == 1>>fill me with your theed<<else>>fuck me<</if>>, <<if $PC.title == 1>>Mathter<<else>>Mithtreth<</if>>?" + "Pleathe, would you <<if $PC.dick == 1>>fill me with your theed<<else>>fuck me<</if>>, <<if $PC.title == 1>>Mathter<<else>>Mithtreth<</if>>?" <<else>> - "Please, may you <<if $PC.dick == 1>>fill me with your seed<<else>>fuck me<</if>>, <<if $PC.title == 1>>Master<<else>>Mistress<</if>>?" + "Please, would you <<if $PC.dick == 1>>fill me with your seed<<else>>fuck me<</if>>, <<if $PC.title == 1>>Master<<else>>Mistress<</if>>?" <</if>> She reclines on the couch and offers herself to you, lest you misunderstand. You could <<if $PC.dick == 1>>fill her with your seed<<else>>fuck her<</if>>, and you do. <<if ($activeSlave.vagina > 0) && canDoVaginal($activeSlave)>> @@ -4751,9 +4801,9 @@ You tell her kindly that you understand, and that she'll be trained to address t <</if>> <<elseif ($activeSlave.fetish is "dom") && (canDoVaginal($activeSlave) || canDoAnal($activeSlave))>> <<if SlaveStatsChecker.checkForLisp($activeSlave)>> - "Pleathe, may you fuck my brainth out, <<if $PC.title == 1>>Mathter<<else>>Mithtreth<</if>>?" + "Pleathe, would you fuck my brainth out, <<if $PC.title == 1>>Mathter<<else>>Mithtreth<</if>>?" <<else>> - "Please, may you fuck my brains out, <<if $PC.title == 1>>Master<<else>>Mistress<</if>>?" + "Please, would you fuck my brains out, <<if $PC.title == 1>>Master<<else>>Mistress<</if>>?" <</if>> She bounces on her heels, biting her lip with anticipation. You could fuck her brains out, and you do, enjoying the dominant slave's constant sexual one-upsmanship. <<if ($activeSlave.vagina > 0) && canDoVaginal($activeSlave)>> @@ -4765,18 +4815,18 @@ You tell her kindly that you understand, and that she'll be trained to address t <</if>> <<elseif ($activeSlave.fetish is "sadist")>> <<if SlaveStatsChecker.checkForLisp($activeSlave)>> - "Pleathe, may you let me rape thomeone, <<if $PC.title == 1>>Mathter<<else>>Mithtreth<</if>>?" + "Pleathe, would you let me rape thomeone, <<if $PC.title == 1>>Mathter<<else>>Mithtreth<</if>>?" <<else>> - "Please, may you let me rape someone, <<if $PC.title == 1>>Master<<else>>Mistress<</if>>?" + "Please, would you let me rape someone, <<if $PC.title == 1>>Master<<else>>Mistress<</if>>?" <</if>> Her eyes are wild. You could let her rape someone, and you do, bringing in an appropriate slave and letting her have her way with the poor girl. <<set $activeSlave.penetrativeCount += 1>> <<set $penetrativeTotal += 1>> <<elseif ($activeSlave.fetish is "masochist") && (canDoVaginal($activeSlave) || canDoAnal($activeSlave))>> <<if SlaveStatsChecker.checkForLisp($activeSlave)>> - "Pleathe, may you rape me, <<if $PC.title == 1>>Mathter<<else>>Mithtreth<</if>>?" + "Pleathe, would you rape me, <<if $PC.title == 1>>Mathter<<else>>Mithtreth<</if>>?" <<else>> - "Please, may you rape me, <<if $PC.title == 1>>Master<<else>>Mistress<</if>>?" + "Please, would you rape me, <<if $PC.title == 1>>Master<<else>>Mistress<</if>>?" <</if>> Her eyes are hungry. You could rape her, and you do, throwing her across the couch and fucking her so hard she begs for mercy as she orgasms. <<if canDoAnal($activeSlave)>> @@ -5888,7 +5938,7 @@ You tell her kindly that you understand, and that she'll be trained to address t You pull her into a sitting position on your lap and grope her pregnancy thoroughly, allowing her to reach the painful edge of orgasm. You feel her belly shudder as she reaches climax under your ministrations. You tease her popped navel as she comes down from her masturbation session. <<if ($activeSlave.fetish is "pregnancy") && ($activeSlave.fetishKnown == 1)>> <<set $activeSlave.fetishStrength += 4>> - @@color:lightcoral;Her enjoyment of pregnacy has increased.@@ + @@color:lightcoral;Her enjoyment of pregnancy has increased.@@ <<elseif random(1,100) > 50>> <<set $activeSlave.fetish to "pregnancy">> <<set $activeSlave.fetishKnown to 1>> @@ -6598,10 +6648,10 @@ She's obviously @@color:mediumaquamarine;becoming more comfortable@@ playing the <<set $activeSlave.vaginalCount += 1>> <<set $vaginalTotal += 1>> <<if canGetPregnant($activeSlave) && canBreed($activeSlave, $activeSlave)>> /* can't miss the opportunity to knock herself up */ - <<if random(1,100) >= 80>> - <<set $activeSlave.preg to 1>> - <<if ($activeSlave.drugs is "super fertility drugs")>> - <<if (($masterSuitePregnancyFertilitySupplements == 1) && (($activeSlave.assignment is "serve in the master suite") or ($activeSlave.ID is $Concubine.ID)))>> + <<if random(1,100) > 80>> + <<set $activeSlave.preg to 1>> + <<if ($activeSlave.drugs is "super fertility drugs")>> + <<if (($masterSuitePregnancyFertilitySupplements == 1) && (($activeSlave.assignment is "serve in the master suite") or ($activeSlave.ID is $Concubine.ID)))>> <<if ($activeSlave.hormones == 2)>> <<set $activeSlave.pregType to 20>> <<else>> @@ -6736,7 +6786,7 @@ She's obviously @@color:mediumaquamarine;becoming more comfortable@@ playing the <<click "Enjoy some oral with your refreshments">> <<replace "#name">>$activeSlave.slaveName<</replace>> <<replace "#result">> - There were many things about being an arcology owner you didn't properly understand before you became one. One of the smallest and yet most enjoyable is the unlimited availability of <<if $PC.refreshmentType == 0>>a good$PC.refreshmentType<<elseif $PC.refreshmentType == 1>>a glass of $PC.refreshment<<elseif $PC.refreshmentType == 2>>a plate of $PC.refreshment<<elseif $PC.refreshmentType == 3>>$PC.refreshment<<else>>a syringe of $PC.refreshment<</if>> and <<if $PC.dick == 1>>a blowjob<<if $PC.vagina == 1>> and <</if>><</if>><<if $PC.vagina == 1>>some cunnilingus<</if>>. Turning to $activeSlave.slaveName, you <<if $PC.refreshmentType == 0>>select a $PC.refreshment<<elseif $PC.refreshmentType == 1>>pour yourself some $PC.refreshment<<elseif $PC.refreshmentType == 2>>serve yourself a plate of $PC.refreshment<<elseif $PC.refreshmentType == 3>>prepare a line of $PC.refreshment<<else>>select a syringe of $PC.refreshment<</if>>, relieve the slave of the tray, and <<if !canSee($activeSlave)>>audibly <</if>>widen your legs slightly in your chair. She <<if $activeSlave.preg > 20>>gently lowers her pregnant body to its<<else>>immediately drops to her<</if>> knees and gets to work, <<if $activeSlave.oralSkill >= 100>>using all of her mastery at giving oral pleasure<<elseif $activeSlave.oralSkill > 60>>using all of her skills at in oral pleasure<<else>>doing her best despite her mediocre oral skills<</if>>.<<if $activeSlave.teeth > 2>> You can feel the extreme care she has to take to keep her sharklike teeth clear of you.<<elseif $activeSlave.lips > 40>> Her huge lips are soft and pillowy against you.<<elseif ($activeSlave.teeth is "straightening braces") || ($activeSlave.teeth is "cosmetic braces")>> You can feel the slight hesitations as she takes care to keep her braces off you.<</if>> You take your time, <<if $PC.refreshmentType == 0>>smoking meditatively<<elseif $PC.refreshmentType == 1>>taking meditative sips<<elseif $PC.refreshmentType == 2>>taking meditative bites<<elseif $PC.refreshmentType == 3>>enjoying your $PC.refreshment high<<else>>injecting a fix into your arm<</if>> and running a thoughtful hand <<if $activeSlave.hLength > 1>>through $activeSlave.slaveName's $activeSlave.hColor hair<<else>>across $activeSlave.slaveName's scalp<</if>> while you look at the view out your office windows. This isn't the first time you've done this, nor will it be the last, and $activeSlave.slaveName is @@color:hotpink;used to being used as a serving girl.@@ + There were many things about being an arcology owner you didn't properly understand before you became one. One of the smallest and yet most enjoyable is the unlimited availability of <<if $PC.refreshmentType == 0>>a good $PC.refreshment<<elseif $PC.refreshmentType == 1>>a glass of $PC.refreshment<<elseif $PC.refreshmentType == 2>>a plate of $PC.refreshment<<elseif $PC.refreshmentType == 3>>$PC.refreshment<<else>>a syringe of $PC.refreshment<</if>> and <<if $PC.dick == 1>>a blowjob<<if $PC.vagina == 1>> and <</if>><</if>><<if $PC.vagina == 1>>some cunnilingus<</if>>. Turning to $activeSlave.slaveName, you <<if $PC.refreshmentType == 0>>select a $PC.refreshmentType<<elseif $PC.refreshmentType == 1>>pour yourself some $PC.refreshment<<elseif $PC.refreshmentType == 2>>serve yourself a plate of $PC.refreshment<<elseif $PC.refreshmentType == 3>>prepare a line of $PC.refreshment<<else>>select a syringe of $PC.refreshment<</if>>, relieve the slave of the tray, and <<if !canSee($activeSlave)>>audibly <</if>>widen your legs slightly in your chair. She <<if $activeSlave.preg > 20>>gently lowers her pregnant body to its<<else>>immediately drops to her<</if>> knees and gets to work, <<if $activeSlave.oralSkill >= 100>>using all of her mastery at giving oral pleasure<<elseif $activeSlave.oralSkill > 60>>using all of her skills at in oral pleasure<<else>>doing her best despite her mediocre oral skills<</if>>.<<if $activeSlave.teeth > 2>> You can feel the extreme care she has to take to keep her sharklike teeth clear of you.<<elseif $activeSlave.lips > 40>> Her huge lips are soft and pillowy against you.<<elseif ($activeSlave.teeth is "straightening braces") || ($activeSlave.teeth is "cosmetic braces")>> You can feel the slight hesitations as she takes care to keep her braces off you.<</if>> You take your time, <<if $PC.refreshmentType == 0>>smoking meditatively<<elseif $PC.refreshmentType == 1>>taking meditative sips<<elseif $PC.refreshmentType == 2>>taking meditative bites<<elseif $PC.refreshmentType == 3>>enjoying your $PC.refreshment high<<else>>injecting a fix into your arm<</if>> and running a thoughtful hand <<if $activeSlave.hLength > 1>>through $activeSlave.slaveName's $activeSlave.hColor hair<<else>>across $activeSlave.slaveName's scalp<</if>> while you look at the view out your office windows. This isn't the first time you've done this, nor will it be the last, and $activeSlave.slaveName is @@color:hotpink;used to being used as a serving girl.@@ <<set $activeSlave.devotion += 4>> <<set $activeSlave.oralCount += 1>> <<set $oralTotal += 1>> @@ -7082,9 +7132,9 @@ She's obviously @@color:mediumaquamarine;becoming more comfortable@@ playing the <<if canTalk($activeSlave) == false>> She uses her one hand to rapidly spell out a polite request. She asks you to attach the rest of her limbs, too. <<elseif SlaveStatsChecker.checkForLisp($activeSlave)>> - "<<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Mathter<<else>>Mithtreth<</if>>, may you pleathe attach the retht of them for me?" she lisps politely. + "<<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Mathter<<else>>Mithtreth<</if>>, would you pleathe attach the retht of them for me?" she lisps politely. <<else>> - "<<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Master<<else>>Mistress<</if>>, may you please attach the rest of them for me?" she asks politely. + "<<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Master<<else>>Mistress<</if>>, would you please attach the rest of them for me?" she asks politely. <</if>> A transitory nervousness crosses her $activeSlave.faceShape face as she asks, but clears into @@color:mediumaquamarine;trusting happiness@@ when you nod and pick up her other arm. She tests each limb as it's attached, and then tests them all by getting up into a kneel and giving you a hug. <<set $activeSlave.trust += 4>> @@ -7167,7 +7217,7 @@ She's obviously @@color:mediumaquamarine;becoming more comfortable@@ playing the <br><br> "We shouldn't have come here," one of them says dully. She's wrong in that they would have had no trouble at all if they hadn't offended you, but right in that here, they put themselves entirely under your power. Tourists would never visit if this were widely known, but fortunately, you've been successful at concealing this. They begin to cry, and then to beg, and then the drones bag them and take them away. <<set $cash -= 25000>> - <<set $startingGirlsNationality = "American">> + <<set $fixedNationality = "American">> <<for $i to 0; $i < 3; $i++>> <<display "Generate New Slave">> <<set _origin = "You enslaved her for abusing " + $eventSlave.slaveName + " while she was serving the public.">> @@ -7192,10 +7242,9 @@ She's obviously @@color:mediumaquamarine;becoming more comfortable@@ playing the <<set $activeSlave.attrXY = random(60,90)>> <<set $activeSlave.attrXX = random(10,20)>> <<set $activeSlave.behavioralFlaw = either("bitchy", "arrogant")>> - <<display "Checkin Checks">> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <</for>> - <<set $startingGirlsNationality to 0>> + <<set $fixedNationality to 0>> <br><br><span id="result2"> <<click "Let your public servant take revenge on them">> <<replace "#result2">> @@ -7334,9 +7383,9 @@ She's obviously @@color:mediumaquamarine;becoming more comfortable@@ playing the <br><<click "Force her onto a heavy cum diet, and double up on her ejaculate intake">> <<replace "#name">>$activeSlave.slaveName<</replace>> <<replace "#result">> - You instruct $assistantName to double down on <<print $activeSlave.slaveName>>'s cum diet. Ungrateful little sluts who retch up their expensive food soemtimes need tough love. Making her cum-food thicker and more concentrated might help her to learn that no matter how bad things seem, you can always make them worse. Initially her new heavy cum diet makes no difference in her ability to keep it down, but you tell her to give it some time. Eventually she will learn to appreciate cum as the primary ingedient in everything she ingests. All of your future cumsluts do, sooner or later. Her pathetic tears reveal how @@color:gold;helpless she feels@@, but they don't hide the @@color:mediumorchid;streak of rebelliousness@@ that remains burning inside her. + You instruct $assistantName to double down on <<print $activeSlave.slaveName>>'s cum diet. Ungrateful little sluts who retch up their expensive food sometimes need tough love. Making her cum-food thicker and more concentrated might help her to learn that no matter how bad things seem, you can always make them worse. Initially her new heavy cum diet makes no difference in her ability to keep it down, but you tell her to give it some time. Eventually she will learn to appreciate cum as the primary ingredient in everything she ingests. All of your future cumsluts do, sooner or later. Her pathetic tears reveal how @@color:gold;helpless she feels@@, but they don't hide the @@color:mediumorchid;streak of rebelliousness@@ that remains burning inside her. <<set $activeSlave.devotion -= 3>> - <<set $activeSlave.trust -= -3>> + <<set $activeSlave.trust -= 3>> <<set $activeSlave.dietCum to 2>> <</replace>> <</click>> @@ -7353,13 +7402,12 @@ She's obviously @@color:mediumaquamarine;becoming more comfortable@@ playing the <br><<click "Suppress her gag reflex and double her cum intake for a week">> <<replace "#name">>$activeSlave.slaveName<</replace>> <<replace "#result">> - She is already on a very heavy cum-based diet, and there's only so much ejaculate you can force a slut to ingest before it negatively affects her health. However, as a temporary measure, you still have options. You instruct $assistantName to re-double the amount of ejaculate in <<print $activeSlave.slaveName>>'s diet for the week. You also have her closely monitored and injected with anti-nausea drugs to help her hold down her food. Although the idea of being forced to eat large amounts of human reproductive fluid still disgusts her, the week of having a super-concentrated cum-diet, along with the suppressed reflex to purge it has its effect. Knowing that you monitor and control every aspect of her life @@color:hotpink;breaks down her resistance to your will@@, and by the end of the week, she is grateful that you return her to a more nutritionally viable regemin--even if its cum content is still overwhelmingly high. <<if $activeSlave.fetishKnown == 1>>@@color:lightcoral;Her brain has now begun to accept the sexual perversity of her food as a turn on.@@<<else>>She is now able to eat and digest her prescribed diet without pharmacological assistance.<</if>> + She is already on a very heavy cum-based diet, and there's only so much ejaculate you can force a slut to ingest before it negatively affects her health. However, as a temporary measure, you still have options. You instruct $assistantName to re-double the amount of ejaculate in <<print $activeSlave.slaveName>>'s diet for the week. You also have her closely monitored and injected with anti-nausea drugs to help her hold down her food. Although the idea of being forced to eat large amounts of human reproductive fluid still disgusts her, the week of having a super-concentrated cum-diet, along with the suppressed reflex to purge it has its effect. Knowing that you monitor and control every aspect of her life @@color:hotpink;breaks down her resistance to your will@@, and by the end of the week, she is grateful that you return her to a more nutritionally viable regimen--even if its cum content is still overwhelmingly high. <<if $activeSlave.fetishKnown == 1>>@@color:lightcoral;Her brain has now begun to accept the sexual perversity of her food as a turn on.@@<<else>>She is now able to eat and digest her prescribed diet without pharmacological assistance.<</if>> <<set $activeSlave.devotion += 5>> <<set $activeSlave.fetish to "cumslut">> <<if $activeSlave.fetishKnown == 1>> <<set $activeSlave.fetishStrength to 10>> <</if>> - <</replace>> <</click>> <</if>> @@ -7384,7 +7432,7 @@ She's obviously @@color:mediumaquamarine;becoming more comfortable@@ playing the <<click "Surgically alter her to be of the inferior $arcologies[0].FSSubjugationistRace race, and give her a public debut">> <<replace "#name">>$activeSlave.slaveName<</replace>> <<replace "#result">> -Some slaves have a bigger potential price to pay for disobedience than they realize. $activeSlave.slaveName is $activeSlave.race, which is<<if $activeSlave.race != $arcologies[0].FSSupremecistRace>> not particularly noteworthy.<<else>> advantageous to her, as it is generally unpopular to enslave a girl of the superior race.<</if>> However, she's about to learn that her racial appearance isn't immutable, and in your arcology, it can make a big difference in how she is treated. You escort the struggling girl to the surgery center and instruct $assistantName to alter her appearance so that she appears to be <<print $arcologies[0].FSSubjugationistRace>>. The full meaning of your instructions <<if $activeSlave.intelligence < 0>> slowly start to dawn on <<print $activeSlave.slaveName>>'s stupid face <<else>> spark a quick reaction from <<print $activeSlave.slaveName>>'s intelligent eyes<</if>> and she whimpers and begs for you to reconsider even as she's strapped onto the operating table. +Some slaves have a bigger potential price to pay for disobedience than they realize. $activeSlave.slaveName is $activeSlave.race, which is<<if $activeSlave.race != $arcologies[0].FSSupremecistRace>> not particularly noteworthy.<<else>> advantageous to her, as it is generally unpopular to enslave a girl of the superior race.<</if>> However, she's about to learn that her racial appearance isn't immutable, and in your arcology, it can make a big difference in how she is treated. You escort the struggling <<if $activeSlave.preg > 5>>mother-to-be<<else>>girl<</if>> to the surgery center and instruct $assistantName to alter her appearance so that she appears to be <<print $arcologies[0].FSSubjugationistRace>>. The full meaning of your instructions <<if $activeSlave.intelligence < 0>> slowly start to dawn on <<print $activeSlave.slaveName>>'s stupid face <<else>> spark a quick reaction <<if canSee($activeSlave)>>from <<print $activeSlave.slaveName>>'s intelligent eyes<<else>>on <<print $activeSlave.slaveName>>'s intelligent face<</if>><</if>> and she whimpers and begs for you to reconsider even as she's strapped onto the operating table. <br><br> By the time she wakes up from the anesthesia, you've already made the necessary alterations to her permanent records, which now clearly indicate that she was born <<print $arcologies[0].FSSubjugationistRace>>, and as such, can be rightfully regarded as the racially inferior fuck-animal she now is. Of course, your fellow slave owners and the slave market will be savvy enough to see through the alterations you've forced upon her, but when you make her available for a day of use in the public square, all your average citizen knows is that the girl they are fucking is simply a worthless $arcologies[0].FSSubjugationistRace slut who doesn't deserve much more than a stomach full of cum. The surgery @@color:red;negatively effects her health@@, but by the end of a long day she'll likely never forget, she has gotten a crash course in what it means to be a $arcologies[0].FSSubjugationistRace slave in your arcology, and any evidence that she was born $activeSlave.race has been efficiently expunged from her records. <<if ($activeSlave.vagina == 0 || $activeSlave.anus == 0)>>@@color:lime;All vestiges of her virginity have been unceremoniously stripped away@@.<</if>> The experience has @@color:hotpink;broken down her resistance@@, and your willingness to go to such extremes to subjugate her @@color:gold;greatly increases her fear of you@@. <<set $activeSlave.devotion += 5>> @@ -7436,9 +7484,9 @@ By the time she wakes up from the anesthesia, you've already made the necessary <br><<click "No surgery today, but give her something to think about">> <<replace "#name">>$activeSlave.slaveName<</replace>> <<replace "#result">> -You stroke <<print $activeSlave.slaveName>>'s $activeSlave.skin cheek and tell her that she has much more to lose than she realizes. You decide to give her a tour of the arcology to show her what you mean. You make sure to point out everything that makes living in your arcology as a $arcologies[0].FSSubjugationistRace slut special. <<if $dairy > 0>>There are the specially calibrated "<<print $arcologies[0].FSSubjugationistRace>> only" industrial human milking machines in $dairyName which have been set for maximum milking efficiency, disregarding any need for slave comfort. <<else>>There are the segregated milking stalls, where only the dirtiest and most dilapidated machines are reserved for filthy $arcologies[0].FSSubjugationistRace sluts. <</if>><<if $club > 0>>There are the "refresher" sinks in $clubName where normal slaves can go to periodically clean the cum out of their holes before returning to service more citizens--but such a luxury is off limits to $arcologies[0].FSSubjugationistRace animals--who simply have to work through their long shifts with ever increasing amount of ejaculate covering their worthless bodies.<<else>>There are the "animal fuckers" in the public square--groups of racial purists who specifically seek out slaves of the inferior $arcologies[0].FSSubjugationistRace race to mistreat through extreme public use. <</if>>Finally <<if $arcade > 0>>you take her over to $arcadeName, and give her an up close view of the brutal ring gag used to pry open the $arcologies[0].FSSubjugationistRace sluts' mouths for relentless cock-milking purposes. <<else>>you take her over to the glory hole area, where distinct labels adorn the holes reserved for members of the slave race, and $arcologies[0].FSSubjugationistRace fuck-holes are afforded "special attention" by "sympathetic" citizens of the arcology.<</if>> +You stroke <<print $activeSlave.slaveName>>'s $activeSlave.skin cheek and tell her that she has much more to lose than she realizes. You decide to give her a tour of the arcology to show her what you mean. You make sure to <<if canSee($activeSlave)>>point out<<else>>explain<</if>> everything that makes living in your arcology as a $arcologies[0].FSSubjugationistRace slut special. <<if $dairy > 0>>There are the specially calibrated "<<print $arcologies[0].FSSubjugationistRace>> only" industrial human milking machines in $dairyName which have been set for maximum milking efficiency, disregarding any need for slave comfort. <<else>>There are the segregated milking stalls, where only the dirtiest and most dilapidated machines are reserved for filthy $arcologies[0].FSSubjugationistRace sluts. <</if>><<if $club > 0>>There are the "refresher" sinks in $clubName where normal slaves can go to periodically clean the cum out of their holes before returning to service more citizens--but such a luxury is off limits to $arcologies[0].FSSubjugationistRace animals--who simply have to work through their long shifts with ever increasing amount of ejaculate covering their worthless bodies.<<else>>There are the "animal fuckers" in the public square--groups of racial purists who specifically seek out slaves of the inferior $arcologies[0].FSSubjugationistRace race to mistreat through extreme public use. <</if>>Finally <<if $arcade > 0>>you take her over to $arcadeName, and <<if canSee($activeSlave)>>give her an up close view of<<else>>let her feel<</if>> the brutal ring gag used to pry open the $arcologies[0].FSSubjugationistRace sluts' mouths for relentless cock-milking purposes. <<else>>you take her over to the glory hole area, where distinct labels adorn the holes reserved for members of the slave race, and $arcologies[0].FSSubjugationistRace fuck-holes are afforded "special attention" by "sympathetic" citizens of the arcology.<</if>> <br><br> -At first $activeSlave.slaveName is confused as to why you are showing her these things, but you soon make your point clear. You explain that if she doesn't start accepting her role, you can easily alter her appearance and force her to accept a much different role instead. You see her <<if $activeSlave.intelligence < 0>> stupid eyes finally start to show signs of understanding<<else>>intelligent eyes quickly realize what you are talking about<</if>> and she starts to whimper helplessly, begging you not to turn her into a $arcologies[0].FSSubjugationistRace sub-human. By the end of the tour she better realizes exactly what it means to be a slave. She is starting to understand the @@color:hotpink;power you have over her@@, and @@color:gold;she fears you even more because of it@@. +At first $activeSlave.slaveName is confused as to why you are showing her these things, but you soon make your point clear. You explain that if she doesn't start accepting her role, you can easily alter her appearance and force her to accept a much different role instead. You see her <<if $activeSlave.intelligence < 0>> stupid <<if canSee($activeSlave)>>eyes<<else>>face<</if>> finally start to show signs of understanding<<else>>intelligent <<if canSee($activeSlave)>>eyes<<else>>face<</if>> quickly realize what you are talking about<</if>> and she starts to whimper helplessly, begging you not to turn her into a $arcologies[0].FSSubjugationistRace sub-human. By the end of the tour she better realizes exactly what it means to be a slave. She is starting to understand the @@color:hotpink;power you have over her@@, and @@color:gold;she fears you even more because of it@@. <<set $activeSlave.devotion += 5>> <<set $activeSlave.trust -= 10>> <</replace>> @@ -7459,7 +7507,7 @@ By the time you've finished with her sensitive ass, it shines red, and she is cr <<click "Give the poor girl a break and take her off her cum diet so she can safely get to a healthier weight">> <<replace "#name">>$activeSlave.slaveName<</replace>> <<replace "#result">> - You silently appraise <<print $activeSlave.slaveName>>'s desperate face and lean forward in your chair to check your terminal. You confirm that <<if $activeSlave.dietCum == 1>> her food is supplmented with cum for flavor.<<else>>she is being fed significant amounts of ejaculate.<</if>> While her <<if $activeSlave.dietCum == 2>>extreme <</if>>diet is still engineered to <<if $activeSlave.dietCum == 2>>barely <</if>> provide the nutrition she needs, if she can't hold the stuff down, she can't gain weight. With a few taps on the keyboard you change her orders so that she will be fed a much more nutritionally rich diet that is free of ejaculate. However, you make sure to warn her that $assistantName will be monitoring her, and you may change your mind once she reaches a more attractive weight. She thanks you profusely, <<if $activeSlave.vagina != 0>>even attempting to offer her body for use in gratitude,<</if>> but you simply send her away. You find yourself concerned that you are becoming soft by allowing slaves to dictate what they will and won't eat, but your benevolent decision has already had a @@color:hotpink;positive effect on her attitude@@. She @@color:aquamarine;trusts you a little more@@ too. + You silently appraise <<print $activeSlave.slaveName>>'s desperate face and lean forward in your chair to check your terminal. You confirm that <<if $activeSlave.dietCum == 1>> her food is supplemented with cum for flavor.<<else>>she is being fed significant amounts of ejaculate.<</if>> While her <<if $activeSlave.dietCum == 2>>extreme <</if>>diet is still engineered to <<if $activeSlave.dietCum == 2>>barely <</if>> provide the nutrition she needs, if she can't hold the stuff down, she can't gain weight<<if $activeSlave.preg > 5>>, even more so with her growing child taking whatever nutrients it can<</if>>. With a few taps on the keyboard you change her orders so that she will be fed a much more nutritionally rich diet that is free of ejaculate. However, you make sure to warn her that $assistantName will be monitoring her, and you may change your mind once she reaches a more attractive weight. She thanks you profusely, <<if $activeSlave.vagina != 0>>even attempting to offer her body for use in gratitude,<</if>> but you simply send her away. You find yourself concerned that you are becoming soft by allowing slaves to dictate what they will and won't eat, but your benevolent decision has already had a @@color:hotpink;positive effect on her attitude@@. She @@color:aquamarine;trusts you a little more@@ too. <<set $activeSlave.trust += 2>> <<set $activeSlave.devotion += 2>> <<set $activeSlave.dietCum to 0>> @@ -7468,7 +7516,7 @@ By the time you've finished with her sensitive ass, it shines red, and she is cr <br><<click "Give the emaciated slut your answer in the form of a rough butt-fuck">> <<replace "#name">>$activeSlave.slaveName<</replace>> <<replace "#result">> - You stand up behind your desk. She flinches, but holds her ground, her lip quivering slightly. You slowly walk toward her, appraising her smooth, skinny body, touching her shoulder as you disappear behind her. She starts to cry as you <<if $PC.dick == 0>>pull a massive rubber dong attachment off the wall and hook it to your strap-on.<<else>>unbuckle your pants and let her feel your warm dick harden against her tight, bony thigh.<</if>> Without word or ceremony, you shove her forward so that she is bent over and crushed against your desk. The tears start to flow out of her as she feels your <<if $PC.dick == 0>>massive rubber dong <<else>>hard, thick cock <</if>>pressing against her unprotected anus. + You stand up behind your desk. She flinches, but holds her ground, her lip quivering slightly. You slowly walk toward her, appraising her <<if $activeSlave.preg > 5>>bloated<<else>>smooth<</if>>, skinny body, touching her shoulder as you disappear behind her. She starts to cry as you <<if $PC.dick == 0>>pull a massive rubber dong attachment off the wall and hook it to your strap-on.<<else>>unbuckle your pants and let her feel your warm dick harden against her tight, bony thigh.<</if>> Without word or ceremony, you shove her forward so that she is bent over and crushed against your desk. The tears start to flow out of her as she feels your <<if $PC.dick == 0>>massive rubber dong <<else>>hard, thick cock <</if>>pressing against her unprotected anus. <br><br> When you offer her the opportunity to revise her request, she does. "<<if SlaveStatsChecker.checkForLisp($activeSlave)>>Pleathe,<<if def $PC.customTitleLisp>>$PC.customTitleLisp<<elseif $PC.title != 0>>Mathter<<else>>Mithtreth<</if>>! I'm thorry! Pleathe don't fuck my ath! I'll eat all the cum you want! Pleathe!<<else>>Please, <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Master<<else>>Mistress<</if>>! I'm sorry! Please don't fuck my ass! I'll eat all the cum you want! Please!<</if>>" She screams <<if $activeSlave.accent > 1>>in her thick accent <</if>> as you force your<<if $PC.dick == 0>> strap-on <<else>>self <</if>> inside her butt-hole and subdue her weak, struggling body against your unforgiving desk. @@color:gold;Horrified tears@@ stream down her face with each brutal thrust as you speak into her ear and remind her that slaves are not allowed to dictate their needs to their owners. You know what's best for her, and right now, her proper role is as an eager little depository for the products of the free-cities ejaculate market. It's her job to suck down cum at the whim of her owner--plain and simple--until she's told otherwise. You butt-fuck the cum-fed slag until she simply lays there and accepts her corrective ass-rape. <<if $activeSlave.anus == 0>>@@color:lime;Her@@ <<if $activeSlave.butt < 5>>@@color:lime;skinny little@@ <<else>>@@color:lime;plump little@@ <</if>>@@color:lime;ass is now broken in@@. <</if>>She sobs quietly with each thrust of your hips, and when you finally <<if $PC.dick == 1>>make yet another cum deposit into her <<if $activeSlave.weight < -80>>emaciated <<else>>bony <</if>>body and<</if>> pull out, you instruct <<if $activeSlave.dietCum == 1>> $assistantName to dramatically increase the amount of cum in her diet from now on. You won't have a slave telling you what she eats. $activeSlave.slaveName hears your instructions and whimpers before rubbing her sore bottom and <<else>>another slave to drag the broken slut to the kitchen, where she's to receive an additional feeding of thick, creamy ejaculate-based nutrients before <</if>>proceeding to her next assignment. <br><br> @@ -7489,9 +7537,9 @@ By the time you've finished with her sensitive ass, it shines red, and she is cr <br><<click "Use aphrodisiacs and positive reinforcement to make her cum diet more palatable">> <<replace "#name">>$activeSlave.slaveName<</replace>> <<replace "#result">> - You do a quick check at your terminal. She is indeed being fed <<if $activeSlave.dietCum == 1>> food that is supplmented with cum for flavor.<<else>>large amounts of human ejaculate.<</if>> You tell her that it can't be helped. When you assign a slave her diet, it's for a reason, and in <<print $activeSlave.slaveName>>'s case, you are using her diet to make her into a better whore. By the look on her distressed face, you can tell she doesn't understand or appreciate your perspective, but you tell her you have just the thing to help change her outlook. + You do a quick check at your terminal. She is indeed being fed <<if $activeSlave.dietCum == 1>> food that is supplemented with cum for flavor.<<else>>large amounts of human ejaculate.<</if>> You tell her that it can't be helped. When you assign a slave her diet, it's for a reason, and in <<print $activeSlave.slaveName>>'s case, you are using her diet to make her into a better whore. By the look on her distressed face, you can tell she doesn't understand or appreciate your perspective, but you tell her you have just the thing to help change her outlook. <br><br> - You pull out a heavy dose of aphrodisiacs from the drawer in your desk. They are expensive, but powerful drugs that can be used in a brute force way to manipulate the sexual urges and tastes of even the most frigid sluts. The mild dose included in every slave's food is usually enough to affect a slow, inevitable change in attitude for resistant slaves, but sometimes a more acute dose can be an amusing way to turn disgust into dependence. $activeSlave.slaveName shivers as you reassure her and inject her <<if $activeSlave.weight < -80>>bony <<else>>tiny <</if>>body with the powerful drugs. You know they are working when she begins to perspire a little, and <<if $activeSlave.vagina > -1>>she starts to leak fresh girl-juice down her shivering thighs<<else>>her dick starts to come to attention<</if>>. You then book her to be the main attraction at a corporate office party that afternoon, where she will be the target of a blow-bang and bukkake. You see that she's dosed heavily with the drugs every day this week, and then book the rest of her afternoons for similar duties, making sure she still tends to her regular assignments as well. In the meantime, you also instruct the kitchen that she is to eat as much cum-based food from the dispensors as she can suck down in order to fuel up for these exhausting escapades. By the end of the week, the aphrodisiacs and her slide into an inescapable routine of cum immersion have done their job, and she has begun to @@color:lightcoral;view cum as an inevitable component of her daily life@@. She also manages to @@color:green;gain a little weight@@. Thanks to your manipulation of her pavlovian responses through extreme drug therapy, her @@color:red;health has suffered a bit@@, but she is also @@color:hotpink;more dependent on you@@ thanks to her <<if $activeSlave.addict == 0>>@@color:cyan;new@@<<else>>@@color:cyan;developing@@<</if>> @@color:cyan;addiction to aphrodisiacs.@@ + You pull out a heavy dose of aphrodisiacs from the drawer in your desk. They are expensive, but powerful drugs that can be used in a brute force way to manipulate the sexual urges and tastes of even the most frigid sluts. The mild dose included in every slave's food is usually enough to affect a slow, inevitable change in attitude for resistant slaves, but sometimes a more acute dose can be an amusing way to turn disgust into dependence. $activeSlave.slaveName shivers as you reassure her and inject her <<if $activeSlave.weight < -80>>bony <<else>>tiny <</if>>body with the powerful drugs. You know they are working when she begins to perspire a little, and <<if $activeSlave.vagina > -1>>she starts to leak fresh girl-juice down her shivering thighs<<else>>her dick starts to come to attention<</if>>. You then book her to be the main attraction at a corporate office party that afternoon, where she will be the target of a blow-bang and bukkake. You see that she's dosed heavily with the drugs every day this week, and then book the rest of her afternoons for similar duties, making sure she still tends to her regular assignments as well. In the meantime, you also instruct the kitchen that she is to eat as much cum-based food from the dispensers as she can suck down in order to fuel up for these exhausting escapades. By the end of the week, the aphrodisiacs and her slide into an inescapable routine of cum immersion have done their job, and she has begun to @@color:lightcoral;view cum as an inevitable component of her daily life@@. She also manages to @@color:green;gain a little weight@@. Thanks to your manipulation of her Pavlovian responses through extreme drug therapy, her @@color:red;health has suffered a bit@@, but she is also @@color:hotpink;more dependent on you@@ thanks to her <<if $activeSlave.addict == 0>>@@color:cyan;new@@<<else>>@@color:cyan;developing@@<</if>> @@color:cyan;addiction to aphrodisiacs.@@ <<set $activeSlave.devotion += 5>> <<set $activeSlave.health -= 10>> <<set $activeSlave.weight += 10>> @@ -7504,6 +7552,226 @@ By the time you've finished with her sensitive ass, it shines red, and she is cr <</replace>> <</click>> +<<case "transition anxiety">> + +<<click "Fuck her">> + <<replace "#name">>$activeSlave.slaveName<</replace>> + <<replace "#result">> + You announce that you're going to fuck her <<if $activeSlave.anus == 0>>virgin <</if>>asspussy. To your complete lack of surprise, she can't hide her horror at the prospect of <<if $PC.dick == 1>>having a cock inside her<<else>>being fucked with a strap-on<</if>>, and her wide, $activeSlave.eyeColor eyes track your movements closely as you stand up and <<if $PC.dick == 1>>reveal the formidable member<<else>>don the strap-on<</if>> you're about to breed her with. You order her to kneel on the couch, which she does, @@color:gold;cringing in fear of being buttfucked, but knowing disobedience will be worse;@@ and then you order her to reach down and spread her butt for you, as wide as it'll go. She complies, <<if $activeSlave.butt > 6>>taking a handful of each massive buttock and heaving them apart to reveal her<<elseif $activeSlave.butt > 3>>pulling her plush buttocks apart<<else>>even though her cute ass doesn't have to be spread<</if>> to reveal her <<if $activeSlave.anus > 2>>whorish anal slit<<elseif $activeSlave.butt > 1>>relaxed rear hole<<else>>tight little rosebud<</if>>. You let her soak in her discomfort, <<if $PC.dick == 1>>stroking your cock gently<<else>>rubbing a little lube on the tip of your phallus<</if>> and letting her see how big it is. Her cringing even extends to her asshole, <<if $activeSlave.analArea > 3>>the huge area of crinkled skin<<elseif $activeSlave.analArea > 1>>the crinkled skin around her anus<<else>>her little pucker<</if>> tensing as she anticipates anal sex. + <<set $activeSlave.trust -= 3>> + <br><br><span id="result2"> + <<click "Make sure she gets off on it">> + <<replace "#result2">> + You press <<if $PC.dick == 1>>yourself<<else>>your weapon<</if>> past her sphincter with care, and her posture softens a little as she realizes you aren't going to hurt her. Once you've hilted <<if $PC.dick == 1>>your cock<<else>>the strap-on<</if>> inside her, you caress her <<if $activeSlave.weight > 30>>chubby<<elseif $activeSlave.waist > 0>>wasp<<elseif $activeSlave.muscles > 30>>muscular<<elseif $activeSlave.weight > 10>>soft<<else>>thin<</if>> waist, running your hands across her skin. Then you <<if $activeSlave.clitPiercing == 3>>activate her smart frenulum piercing<<else>>secure a couple of little egg vibes to her dick<</if>>. She gasps as the vibration starts, and then gasps again as her anus tightens involuntarily with the stimulation, squeezing the <<if $PC.dick == 1>>warm penis<<else>>phallus<</if>> that fills it. She <<if $activeSlave.voice > 0>>moans openly<<else>>rasps mutely<</if>> as you pull out and then thrust into her. Much against her will, she <<if $activeSlave.balls > 0>>quickly becomes erect<<else>>starts to drip precum, which is her ballsless body's way of showing arousal<</if>>. + <<if $activeSlave.fetish == "buttslut">> + <<if $activeSlave.fetishKnown == 1>> + <<if $activeSlave.fetishStrength > 95>> + Every time she takes it up the butt, she's reminded that she's a natural buttslut, and the reminder @@color:lightsalmon;helps her relax and accept sodomy.@@ + <<set $activeSlave.fetishStrength += 10>> + <<else>> + She knows she gets off easily on anal stimulation, but taking it like this still isn't her favorite activity. Still, the prostate stimulation does its work, and she @@color:hotpink;submits to having her favorite hole pleasured.@@ + <<set $activeSlave.devotion += 3>> + <</if>> + <<else>> + You notice that she stiffens again, looking down at her traitorous member in shock at how much she enjoys the sensation of prostate stimulation. @@color:lightsalmon;She's a buttslut!@@ + <<set $activeSlave.fetishKnown = 1>> + <</if>> + <</if>> + Not long after you penetrate her, she <<if $activeSlave.balls > 0>>squirts a weak ejaculation onto the couch<<else>>shivers and releases some watery fluid<</if>>. She had almost forgotten that she was being fucked like a girl, and stiffens uncomfortably when she feels you <<if $PC.dick == 1>>fill her rectum with your hot seed<<else>>grip her hips harder and shake with your own climax<</if>>. As she gets up from the couch, she seems @@color:hotpink;subdued and submissive.@@ After all, if she's submitting to you, that absolves her of responsibility for what she's becoming. + <<set $activeSlave.devotion += 5>> + <<AnalVCheck>> + <</replace>> + <</click>> + <br><<click "Rape her">> + <<replace "#result2">> + You grab her hips, getting a good grip, and spear the poor $desc without any hint of mercy. She <<if $activeSlave.voice > 0>>screams in pain and fear<<else>>sucks in a great sobbing gasp<</if>>, and tries to wriggle away despite her intention of submitting to your use, but you hold her in place and rape her ass. She tries to maintain her position, crying openly, but eventually slides off her perch on the couch, pulling her hole off your <<if $PC.dick == 1>>dick<<else>>strap-on<</if>>. You grab her by <<if $activeSlave.hLength > 20>>hair<<else>>neck<</if>> and smash her face into the angle of the couch, leaving her poor butt completely vulnerable. She can't see you line up to ream her again, but she knows it's coming and cries, quivering. After a while, you haul her up to her feet and keep fucking her, the uncomfortable angle of standing anal forcing new <<if $activeSlave.voice > 0>>squeals<<else>>rasps<</if>> out of her. You pour degradation into her ear as you take your pleasure from her unhappy body, telling her that she's your fuckmeat. She believes you, and when you finally orgasm and let her slide off your hateful <<if $PC.dick == 1>>penis<<else>>strap-on<</if>>, shes @@color:gold;already terrified@@ of the next time you feel like fucking her. + <<set $activeSlave.trust -= 5>> + <<AnalVCheck>> + <</replace>> + <</click>> + </span> + <</replace>> +<</click>><<if $activeSlave.anus == 0>> //This option will take anal virginity//<</if>> +<br><<click "Humiliate her in public">> + <<replace "#name">>$activeSlave.slaveName<</replace>> + <<replace "#result">> + You get up from behind your desk, drawing an apprehensive stare. To her bemusement, you order her to follow you and leave your office. She hurries to obey, her footsteps pattering along behind you, but they become much more hesitant as you make your way out of the penthouse and she realizes that she's about to be in public, naked. You don't bother looking back, knowing that she's sufficiently afraid of you to obey. On the border between your private domain and the public hustle and bustle of the arcology's public life, she stops for a long moment before scurrying to catch up with you, barely even noticing that @@color:hotpink;she just swallowed her sense of shame@@ to obey you and avoid punishment. You stroll along, greeting leading citizens and taking in the hum of your people. $activeSlave.slaveName grows increasingly embarrassed under the hot stares of passersby, cringing closer and closer to your protective side as she notices how many gazes rest with open hunger on her mouth, her crotch, and her ass. + <<set $activeSlave.devotion += 3>> + <br><br><span id="result2"> + <<click "Make her perform oral on you, right here">> + <<replace "#result2">> + You reach around, place a dominating hand on her shoulder, pull her around in front of you, and push her down to her knees. She quickly realizes what's coming, and her $activeSlave.skin cheeks blush furiously as you reveal your <<if $PC.dick == 1>>meaty dick<<else>>flushed pussy<</if>> and offer it to her. She gets busy, burying her head against you with a speed that seems surprising until it occurs to you that this allows her to hide her face. Deciding to accept this tiny compromise, you run a possessive hand <<if $activeSlave.hLength < 5>>across her smooth scalp<<elseif $activeSlave.hLength < 20>>through her short hair<<else>>through her tresses<</if>> and murmur praise for her enthusiasm. She stiffens at the implication that she wants to be <<if $PC.dick == 1>>polishing your penis<<else>>eating you out<</if>> in broad daylight, but after a slight pause she decides that this isn't bad. As <<if $PC.dick == 1>>her head continues to bob back and forth as she sucks your dick<<else>>she continues nuzzling her nose and mouth against your wet cunt<</if>>, she fails to notice her @@color:hotpink;second major submission today.@@ + <<if $activeSlave.fetish == "humiliation">> + <<if $activeSlave.fetishKnown == 1>> + Since she has a humiliation fetish, the embarrassment has been arousing her even as it's been torturing her. Unsatisfied with just this, her need to be shamed obliges her to cock her hips and make sure onlookers can see her asspussy as she services you with her mouth. + <<if $activeSlave.fetishStrength > 95>> + @@color:lightsalmon;Her need for humiliation has deepened.@@ + <<set $activeSlave.fetishStrength += 10>> + <<else>> + Such abject sluttery @@color:hotpink;helps convince her of her status as a slave girl.@@ + <<set $activeSlave.devotion += 3>> + <</if>> + <<else>> + To your surprise, she even starts to glance around, checking to verify that she's still being watched. @@color:lightsalmon;She's a humiliation slut!@@ + <<set $activeSlave.fetishKnown = 1>> + <</if>> + <</if>> + <<set $activeSlave.oralCount += 1>> + <<set $oralTotal += 1>> + <<set $activeSlave.devotion += 5>> + <</replace>> + <</click>> + <br><<click "Make her cum in public">> + <<replace "#result2">> + You produce three little egg vibrators, which instantly steal her anxious attention away from the passersby who stare at her. You require her to hold her dick out while you use an elastic band to attach one of the vibrators to the underside of its head. She doesn't get to touch herself much anymore, and the half-forgotten sensations of doing so almost make her forget that she's naked in public, and almost certainly about to do something very embarrassing. Then you order her to hold her dick up and place another vibrator <<if $activeSlave.scrotum > 0>>against her sensitive scrotum<<else>>against the sensitive skin where her scrotum used to be<</if>>. Finally, you order her to bend over and offer you her asshole. She obeys, with apprehension, and is actually relieved when you just place the final vibrator against, but not inside, her <<if $activeSlave.anus > 1>>asspussy<<else>>pucker<</if>>. She finds herself ordered to kneel and put her hands on her head; and ordering her to hold this position, you use remote control of the vibrators to force her to cum twice. She can't tear her eyes away from the citizens who stare and laugh as she <<if $activeSlave.balls > 0>>spurts her seed<<else>>dribbles weakly<</if>> onto the floor. + <<if $activeSlave.fetish == "humiliation">> + <<if $activeSlave.fetishKnown == 1>> + <<if $activeSlave.fetishStrength > 95>> + Though she's still unhappy about being a slave girl, @@color:lightsalmon;appetite for humiliation has deepened.@@ + <<set $activeSlave.fetishStrength += 10>> + <<else>> + The abject humiliation slut climaxes harder each time, and can't stop herself @@color:mediumaquamarine;glancing at you with something like trust.@@ + <<set $activeSlave.trust += 3>> + <</if>> + <<else>> + With a mix of horror and dawning arousal, she discovers that she enjoys the stares. @@color:lightsalmon;She's a humiliation slut!@@ + <<set $activeSlave.fetishKnown = 1>> + <</if>> + <</if>> + As she follows you back to your penthouse, she seems almost cheerful, and will definitely be @@color:mediumaquamarine;more trusting of strange orders@@ in the future. + <<set $activeSlave.trust += 5>> + <</replace>> + <</click>> + </span> + <</replace>> +<</click>> + +<<case "moist pussy">> + +<<click "Make love to her ready cunt">> + <<replace "#name">>$activeSlave.slaveName<</replace>> + <<replace "#result">> + Her body is so perfectly made to be fucked that it's getting itself ready for you, without your even having to give the order. Deciding not to bother with verbal commands, you approach her and reach for one of her hands; she obediently extends it towards your grasp, and follows <<if ($activeSlave.energy > 40) || ($activeSlave.aphrodisiacs > 0)>>eagerly<<else>>willingly<</if>> as you pull her in for a hug<<if $activeSlave.boobs > 5000>> (cushioned by her enormous udders)<<elseif $activeSlave.dick > 5>> (made rather lewd by her enormous penis)<</if>>, kiss her deeply, and slide your arms down her <<if $activeSlave.muscles > 30>>muscular<<elseif $activeSlave.muscles > 10>>toned<<else>>soft<</if>> back to <<if $activeSlave.butt > 6>>heft her monstrous<<elseif $activeSlave.butt > 3>>squeeze her healthy<<else>>cup her cute little<</if>> buttocks. She <<if $activeSlave.voice > 0>>coos<<else>>hums mutely<</if>> at the feeling of your <<if $PC.title == 1>>strong<<else>>feminine<</if>> hands on her bottom, and presses herself against you as you rotate the two of you until you can set her butt on the edge of your desk and <<if $PC.dick == 1>>slide your big dick into her well-lubricated cunt<<else>>assertively press your own pussy against her wet cunt<</if>>. + <br><br> + She makes as if to lie back and take it, but you keep an arm around her back and hug her <<if $activeSlave.boobs > 2000>>as closely as her big breasts will permit<<else>>closer than ever<</if>>. You take your other hand and place a firm but loving grip under her chin, lifting her $activeSlave.eyeColor-eyed gaze to meet yours before kissing her again. All the while, you <<if $PC.dick == 1>>fuck her powerfully, withdrawing your dick almost all the way and then hilting yourself in her soaked slit<<else>>trib her with assurance, grinding your hips against hers and making her feel your heat<</if>>. She clings to you, accepting the closeness to her <<if $PC.title == 1>>Master<<else>>Mistress<</if>> and enjoying the loving attention, even as the extreme wetness of her cunt and your <<if $PC.dick == 1>>powerful thrusting<<else>>hungry grinding<</if>> begin to produce lewd noises from between you. Her generous natural lubrication lessens the friction and sensation a little, and you go for a long time before you both climax. You lead her into your office shower, since you're both coated in her pussyjuice<<if $PC.dick == 1>> and she's carrying a big load of your cum<<else>>, and your own<</if>>. Under the hot water, you don't even have to pull her close; @@color:hotpink;she presses herself into your arms on her own.@@ + <<if $activeSlave.sexualQuirk == "romantic">> + For an incorrigible romantic like her, this encounter was perfect, and she @@color:hotpink;loves you all the more for it.@@ + <<set $activeSlave.devotion += 3>> + <</if>> + <<set $activeSlave.devotion += 5>> + <<VaginalVCheck>> + <</replace>> +<</click>><<if $activeSlave.vagina == 0>> //This option will take virginity//<</if>> +<br><<click "Pound her wet pussy">> + <<replace "#name">>$activeSlave.slaveName<</replace>> + <<replace "#result">> + She's so generously lubricated that she's ready to take a good hard fuck, so you decide to give her one. You point at the ground, and you don't even have to tell her to get down on all fours and get ready to take it. Your gesture says it for you, and she obediently gets down and gets in position to be bred like a bitch. She angles her hips just right to offer her cunt to you, and even reaches down to spread her<<if $activeSlave.labia > 1>> dangling<</if>> labia to invite you into her pink channel. + <<if $PC.dick == 1>><<if $activeSlave.vagina > 1>>She can take your big dick without a twinge<<else>>Your big dick will fill her tight cunt to its limits<</if>>, but you grab her hips and<<else>>You select a strap-on that's right at the limits of her <<if $activeSlave.vagina > 3>>cavernous<<elseif $activeSlave.vagina > 2>>big<<elseif $activeSlave.vagina > 1>>open<<else>>tight little<</if>> cunt's capacity, don it, and<</if>> mount her with such force that your first stroke brings her butt against your hips with an audible smack. There's also a deliciously lewd noise as <<if $PC.dick == 1>>your invading penis<<else>>the invading phallus<</if>> forces a little gush of pussyjuice out of her. She <<if $activeSlave.voice > 0>>shrieks, but it's a shriek<<else>>gasps, but it's a gasp<</if>> of pleasure, and your rutting is so well-lubricated that she has no trouble getting off on it. Wanting her climax, you reach around her and grab hold of her pussy, feeling the slippery fluid between your fingers and the lewd thrusting motion as <<if $PC.dick == 1>>your cock<<else>>the phallus<</if>> pistons in and out of her. That bit of stimulation is enough to tip her over, and you feel a gush of femcum against your hand as <<if $PC.dick == 1>>your dickhead<<else>>the head of the strap-on<</if>> forces an orgasm out of her g-spot. She's so discombobulated that she collapses into the puddle of pussyjuice she left on the floor when you stand up and head off for a shower, but she @@color:hotpink;crawls after you@@ as best she can on rubbery legs. + <<if $activeSlave.fetish == "submissive">> + <<if $activeSlave.fetishKnown == 1>> + The $desc sub loves getting fucked like that, and + <<if $activeSlave.fetishStrength > 95>> + @@color:lightsalmon;seems even more submissive@@ + <<set $activeSlave.fetishStrength += 10>> + <<else>> + since she's fully confirmed in her status as a sub, she @@color:hotpink;glows with devotion@@ + <<set $activeSlave.devotion += 3>> + <</if>> + as she washes herself in the shower with you. + <<else>> + She seems utterly dissipated by the fucking she just got, and may have just had the best sex of her life. @@color:lightsalmon;She's a submissive!@@ + <<set $activeSlave.fetishKnown = 1>> + <</if>> + <</if>> + <<set $activeSlave.devotion += 5>> + <<VaginalVCheck>> + <</replace>> +<</click>><<if $activeSlave.vagina == 0>> //This option will take virginity//<</if>> +<br><<click "Feed her her own pussyjuice">> + <<replace "#name">>$activeSlave.slaveName<</replace>> + <<replace "#result">> + You approach her and <<if $activeSlave.dick > 0>>reach under her girldick for her<<else>>cup her<</if>> sopping pussy. She gasps as she feels your cool grasp. Your possessive hand encompasses her vulva, with your index and ring fingers sliding around either side of her pubic mound to grip her entire womanhood. + <<if $activeSlave.vagina > 0>> + <<if $activeSlave.vagina > 0>> + Her relaxed pussy almost draws your middle finger inward and upward, + <<else>> + Her pussy welcomes your middle finger, + <</if>> + and you hook it inside her body, gathering a healthy amount of pussyjuice and brushing her g-spot. + <<else>> + You're careful not to penetrate her virgin slit with your middle finger, but you draw it up the exterior of her channel, gathering a healthy amount of pussyjuice. + <</if>> + Then you remove your hand, though the horny $desc unconsciously tries to follow the withdrawing digits. She stares at you, waiting to see what you're going to do, and a blush begins to rise on her $activeSlave.skin cheeks as she sees you reaching for her mouth. Her <<if $activeSlave.lips > 95>>facepussy<<elseif $activeSlave.lips > 40>>pillowlike<<elseif $activeSlave.lips > 10>>soft<<else>>thin<</if>> lips part and you insert all three of your fingers into her hot mouth. She quivers at the intimacy of the gesture, and the taste of her own juices. The tremor sends a delicious motion through her <<if ($activeSlave.boobsImplant == 0) && ($activeSlave.boobs > 300)>>natural <<if $activeSlave.boobs > 2000>>udders<<else>>breasts<</if>><<elseif $activeSlave.boobsImplant > 0>>fake tits<<elseif canAchieveErection($activeSlave)>>stiff prick<<elseif $activeSlave.scrotum > 4>>dangling balls<<elseif $activeSlave.dick > 0>>limp bitchclit<<elseif $activeSlave.weight > 30>>chubbiness<<else>>body<</if>>. You keep your fingers where they are until she's licked them really clean; her hot tongue runs repeatedly between each of your digits<<if $activeSlave.tonguePiercing > 0>> and the smooth hardness of her tongue piercing brushes against them<</if>>. She <<if $activeSlave.voice > 0>>moans whorishly<<else>>begins to pant<</if>> when you go back for more, and the third time you harvest her own pussyjuice to feed it to her, she orgasms, adding some femcum to her next little meal licked off your fingers. Her eyes shine with @@color:mediumaquamarine;gratitude and trust.@@ + <<set $activeSlave.trust += 5>> + <</replace>> +<</click>> + +<<case "breast expansion blues">> + +<<click "Let her know she'll be growing as fast as possible">> + <<replace "#name">>$activeSlave.slaveName<</replace>> + <<replace "#result">> + Rather than punishing her directly, you address yourself to your personal assistant. You order <<if $assistant > 0>>her<<else>>it<</if>> to make a note in $activeSlave.slaveName's drug schedule that she's to remain on a breast expansion regime until further notice. The $desc's face falls as she hears this, and $assistantName doesn't help matters by + <<if $assistant == 0>> + confirming the order in disturbingly clinical tones. + <<elseif $assistantAppearance is "monstergirl">> + using her avatar's tentacle hair to caress her own tits as she concurs in disturbingly kind tones. + <<elseif $assistantAppearance is "shemale">> + shaking her avatar's enormous endowments, making a lewd comment, and then giving herself a titjob. + <<elseif $assistantAppearance is "amazon">> + observing that a good slave girl should have big tits, since strong warriors like fertile, big-boobed girls back home to breed with. + <<elseif $assistantAppearance is "businesswoman">> + having her avatar give $activeSlave.slaveName a disturbingly appraising glance, as though she and her breasts are an interesting entry on a balance sheet. + <<elseif $assistantAppearance is "schoolgirl">> + bending her avatar over to show off its cleavage, and then giving her tits a jiggle, as though the point wasn't clear enough already. + <<elseif $assistantAppearance is "goddess">> + hefting her own motherly breasts and telling $activeSlave.slaveName that she should be happy, since bigger breasts are a sign of health and fertility. + <<else>> + purring that she'd love to. + <</if>> + You talk through the $activeSlave.slaveName's medical condition with her, and give her a <<if $PC.career == "medicine">>personal examination with the speed and accuracy of years of general practice<<else>>thorough exam<</if>>. Once this is done, you give $assistantName technical directions to make minor changes to $activeSlave.slaveName's drug regime, designed to make her @@color:lime;breasts grow just slightly faster.@@ The effect is minimal, but the point is made. She's still not happy to be transformed into a big-breasted sex slave, but she's relieved that was her only punishment for expressing her unhappiness about it. + <<set $activeSlave.boobs += 100>> + <</replace>> +<</click>> +<br><<click "Praise her breasts and reassure her">> + <<replace "#name">>$activeSlave.slaveName<</replace>> + <<replace "#result">> + You decide to reassure her, and sit her on your lap. <<if $activeSlave.height > 185>>She's a big girl, and has trouble fitting there, but you put her there anyway, enjoying the absurdity.<<elseif $activeSlave.preg > 10>>Her pregnancy is very apparent to you in this posture, and she's quite aware of it too.<<elseif $activeSlave.butt > 3>>Her big soft butt is nice and comfortable on your thighs.<<else>>She's hesitant, but obeys anyway.<</if>> Pulling her back against your <<if $PC.boobs == 1>>own bosom<<else>>muscular chest<</if>>, you reach around her and take over the breast-cradling responsibilities. You say nothing for a while, just hefting her weighty udders, rolling them from side to side slightly. After letting her get used to the gentle treatment, you tell her that you're her owner, and you find big breasts very attractive. You tell her that you understand that they can be uncomfortable at times, but you expect her to tolerate that without complaint. It isn't easy to be pretty, but it's easier to be a pretty slave than to be a homely one. This last point affects her, and she seems to @@color:mediumaquamarine;take heart in the idea that you're improving her,@@ at least from your perspective. After all, she's sitting atop <<if $PC.dick == 1>>your hard dick, which she can definitely feel<<else>>your hot cunt, which she can probably detect<</if>> through your clothes. She does understand that having her <<if $PC.title == 1>>Master<<else>>Mistress<</if>> enjoy touching her boobs will be advantageous to her. + <<set $activeSlave.trust += 5>> + <</replace>> +<</click>> +<br><<click "Weight her breasts as punishment">> + <<replace "#name">>$activeSlave.slaveName<</replace>> + <<replace "#result">> + You announce that you're resolved to continue growing her breasts, and they need to be stretched out to accommodate the growth. The statement is absurd, but she's experienced enough to know not to question it, and to @@color:gold;be afraid.@@ She's right to fear. You secure her with her hands over her head, using the wrist shackles placed high on the office walls for this purpose. Then you + <<if $activeSlave.nipples == "inverted">>cruelly pop her inverted nipples out and<</if>> + <<if $activeSlave.nipplesPiercing == 0>> + attach a clip to each of <<if $activeSlave.nipples == "inverted">>them<<else>>her nipples<</if>>. The clips aren't painful, not yet, but they're very robust, and the reason is immediately apparent to her. + <<elseif $activeSlave.nipplesPiercing == 1>> + remove her nipple piercings, one by one, and replace them with big rings. Then you give each of them a tug to ensure it's ready to bear some serious pulling. + <<else>> + give each of her nipple rings a tug to ensure it's ready to bear some serious pulling. + <</if>> + You hang a weight from each, eliciting a moan of pain. $activeSlave.slaveName struggles against the restraints that hold her hands up high, desperately trying to find a comfortable way to stand, but it's impossible and the motion sets her udders swaying, making the weights pulling at her nipples even more uncomfortable. + <<switch $activeSlave.boobShape>> + <<case "perky">> + Her perky tits do their best to retain their pointy shape despite the tugging. + <<case "downward-facing">> + The nipples that cap her downward-facing udders are tugged even farther towards the ground. + <<case "torpedo-shaped">> + Her torpedos are long enough that the weights are a long way from her chest, allowing them to tug her nipples a long way down. + <<case "wide-set">> + Her wide-set its are dragged together for once as their nipples are tugged downward. + <<case "saggy">> + Her poor, saggy boobs cause her real trouble, letting the weights tug her nipples quite a ways down. + <<default>> + Her heavy breasts let the weights tug her nipples down to face at the ground. + <</switch>> + The first time she tries begging, you add another weight to each breast, which drives her over the edge into open crying. You leave her there for a while, letting anyone who comes into the office experience the sight of $activeSlave.slaveName alternately sobbing, trying not to sob because doing so jiggles her boobs, and then sobbing again because her boobs hurt. + <<set $activeSlave.trust -= 5>> + <</replace>> +<</click>> + <<default>> ERROR: bad event <</switch>> diff --git a/src/uncategorized/RESSTR.tw b/src/uncategorized/RESSTR.tw index a5b31c0f708e27847cdbbe4bdaf7c3d3ee4c8cfe..929e1461c62527db926771c9a5ac4f031d683c69 100644 --- a/src/uncategorized/RESSTR.tw +++ b/src/uncategorized/RESSTR.tw @@ -6,58 +6,110 @@ <<set $activeSlave to $eventSlave>> <<if $seeImages == 1>><<SlaveArt $activeSlave 2 0>><</if>> <<SlaveTitle $activeSlave>> +<<Enunciate $activeSlave>> <<switch $RESSTRevent>> -<<case "transition anxiety">> +<<case "gaped asshole">> -<span id="name"><<print "[[$activeSlave.slaveName|Long Slave Description][$nextLink to passage(), $eventDescription to 1]]">></span> stumbles into your office naked for her weekly inspection, so apprehensive that she can hardly walk. She's been like this ever since she became one of your sex slaves, <<if $week-$activeSlave.weekAcquired == 0>>just this week<<elseif $week-$activeSlave.weekAcquired == 1>>just last week<<else>><<print $week-$activeSlave.weekAcquired>> weeks ago<</if>>. It's not surprising; slaves like her usually require some time and training to accept that they're slave girls. She lacks the natural attraction to men that might have made the idea more comfortable for her, and the resulting sexual anxiety combined with understandable fear of sexual use makes her extremely unhappy to be naked in front of someone she knows can fuck her at will. +You encounter <span id="name"><<print "[[$activeSlave.slaveName|Long Slave Description][$nextLink to passage(), $eventDescription to 1]]">></span> at the beginning of her day, as she finishes her morning ablutions and heads off to <<if $activeSlave.clothes != "no clothing">>get dressed<<else>>her assignment, since she's not allowed clothes and therefore doesn't need to dress<</if>>. She seems happy today, and her $activeSlave.skin body glows with warmth and cleanliness from the hot shower. When she sees you, she greets you properly, yet positively, smiling at you and <<if $activeSlave.boobs > 3000>>presenting her enormous breasts<<elseif $activeSlave.lips > 70>>pursing her huge lips<<elseif $activeSlave.boobs > 800>>bouncing her big breasts<<elseif $activeSlave.lips > 20>>pursing her pretty lips<<else>>sticking out her chest<</if>> in an automatic gesture of easy sexual availability. Suddenly, she remembers something, and looks thoughtful. Since she's so trusting, she asks you the question that just occurred to her. <br><br> -She has her hands balled into fists at her sides, and clearly wants nothing more than to use them to cover her <<if $activeSlave.balls == 0>>pathetic, ballsless bitchclit<<elseif $activeSlave.aphrodisiacs > 0>>aphrodisiac-induced erection<<elseif $activeSlave.dick > 3>>impressively sized but pathetically soft dick<<else>>soft, pathetic little dick<</if>>. She knows that that's not allowed, and keeps her hands where they are, though it's a struggle. She sees you looking at her body like a slaveowner looks at one of <<if $PC.title == 1>>his<<else>>her<</if>> sex slaves, and she shivers. +"<<Master>>," she <<say>>s, "may I have my a<<ss>>hole tightened?" +<br><br> +There's no trace of awareness on her face of the open lewdness of the question; she's <<if $activeSlave.career == "a bioreactor">>spent time in an industrial Dairy with a phallus the size of a horse's pounding her ass day and night<<elseif ($activeSlave.career == "a slave") || ($week-$activeSlave.weekAcquired > 50)>>been a sex slave so long that she's completely internalized the idea of her ass being a sex organ<<elseif $activeSlave.analCount > 2000>>had her ass fucked so many times that she thinks of it as an inherently sexy thing<<else>>so devoted to you that she's made a conscious effort to think of her ass as sexy<</if>>. She continues in her <<if $activeSlave.voice == 1>>deep<<elseif $activeSlave.voice == 2>>soft<<else>>bubblegum bimbo's<</if>> voice, <<say>>ing, "It'<<s>> not //bad.// It'<<s>> ea<<s>>y to take anything up it. And when I walk I can feel my anal <<s>>lit sort of working around back there, which is kind of fun. But I wa<<s>> just thinking, a<<s>> I was washing my a<<ss>>pu<<ss>>y. It'd be ni<<c>>e +<<switch $activeSlave.fetish>> +<<case "submissive">> + to feel ju<<s>>t a little afraid when I'm on my fa<<c>>e and about to get fucked. +<<case "cumslut">> + to be able to keep loads of cum in my a<<ss>> for later, in<<s>>tead of having them ju<<s>>t drip right out. +<<case "buttslut">> + to be able to feel a little more <<s>>en<<s>>ation back there again. Butt<<s>>ex is <<s>>till fun and ab<<s>>olutely my favorite thing, but I remember it being even better. +<<case "masochist">> + if I could feel anal pain again. That burning feeling u<<s>>ed to be one of my favorite<<s>>. +<<default>> + to be able to be a better anal lover. I do my be<<s>>t, but I can't <<s>>queeze very well any more. +<</switch>> +May I?" She spins, bending at the waist<<if $activeSlave.butt > 6>> and prising her monstrous buttocks apart<<elseif $activeSlave.butt > 3>> spreading her healthy buttocks<</if>> to reveal her gaping anus. It could indeed benefit from surgical repair. + +<<case "passing declaration">> + +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 <span id="name"><<print "[[$activeSlave.slaveName|Long Slave Description][$nextLink to passage(), $eventDescription to 1]]">></span> almost bounce into view. She's physically fit, at a healthy weight, <<if $activeSlave.physicalAge > 35>>and is getting such excellent modern medical care that despite her age, she has the energy of a teenager<<elseif $activeSlave.physicalAge > 19>>is full of youth and vigor, and is in truly perfect health due to the miracles of modern medicine<<else>>and is a teenager, not to mention the perfect health she owes to the miracles of modern medicine<</if>>. <<if $activeSlave.energy > 95>>Apart from her absurd sex drive<<elseif $activeSlave.energy > 40>>In addition to her very healthy libido<<else>>Despite her mediocre libido<</if>>, she's overflowing with energy. She half-runs, half-skips down the hallway, slowing in the doorway as she feels your gaze. Without stopping, she turns to meet your eyes, winks trustingly, and bursts out, "Hi <<Master>>! Love you!" Then she continues on her merry way. +<br><br> +Someone's a happy $desc today. -<<case "moist pussy">> +<<case "ara ara">> -Just as you're about to give <span id="name"><<print "[[$activeSlave.slaveName|Long Slave Description][$nextLink to passage(), $eventDescription to 1]]">></span> her weekly inspection, a minor business matter comes up and diverts your attention. So, for about ten minutes, she has nothing at all to do other than stand in front of your desk in your office, watching you,<<if $assistant > 0>> $assistantName's avatar,<</if>> the other slaves who come and go, and the general lewdness of the arcology, much of which is visible from right here. -<<if ($activeSlave.attrXY > 50) && ($PC.boobs == 0)>> - She finds your strong body attractive, and her gaze rests most frequently on you. -<<elseif ($activeSlave.attrXX > 50) && ($PC.boobs == 1)>> - She finds your prominent breasts attractive, and her gaze rests most frequently on them. -<<elseif $activeSlave.aphrodisiacs > 0>> - The aphrodisiacs she's on never let her libido rest for long. -<<elseif $activeSlave.energy > 95>> - Her nymphomania keeps her perpetually watchful for any sexual sights, especially any which promise her participation. -<<elseif $activeSlave.energy > 40>> - Her healthy sex drive does its work, and with the constant coming and going she's not starved for things she finds attractive. +Passing by the kitchen in the morning, you take a moment to listen to the low hum of your slaves chatting as they <<if $feeder != 0>>wait their turn at the phallic feeders<<else>>drink their breakfasts<</if>>. <span id="name"><<print "[[$activeSlave.slaveName|Long Slave Description][$nextLink to passage(), $eventDescription to 1]]">></span> is nearest the door, and you overhear her <<if $activeSlave.voice == 1>>low<<elseif $activeSlave.voice == 2>>pretty<<else>>high<</if>> voice clearly as she expresses confusion to another slave. "I don't under<<s>>tand it," she <<say>>s. Why are so many men intere<<s>>ted in an old <<s>>lave like me? I never got thi<<s>> much attention when I wa<<s>> free! Now <<if $activeSlave.assignment == "whore">>guy<<s>> line up to pay<<else>>every guy I approach want<<s>><</if>> to fuck me!" +<br><br> +<<if $arcologies[0].FSMaturityPreferentialist != "unset">> + "It's different here," the other slave explains. "Almost everyone here has a thing for older women. MILFs get all the attention." +<<elseif ($arcologies[0].FSGenderRadicalist != "unset") && ($activeSlave.dick > 0)>> + <<if $activeSlave.vagina > -1>> + "Well, you're a futa," the other slave explains. "A chick with a dick. Everyone here is going to want to fuck you, since you've got both." + <<elseif $activeSlave.balls > 0>> + "Well, I bet you cum when they fuck you," the other slave explains. "They love it when you do that here." + <<else>> + "You've got a soft girldick," the other slave explains. "That's like an advertisement that you love it up the butt, here." + <</if>> +<<elseif ($arcologies[0].FSAssetExpansionist != "unset") && ($activeSlave.boobs > 4000)>> + "It's your boobs," the other slave explains. "There's no such thing as too big, here. Everyone who sees your boobs here is going to want to fuck you." +<<elseif ($arcologies[0].FSTransformationFetishist != "unset") && ($activeSlave.boobsImplant > 1000)>> + "It's your fake tits," the other slave explains. "They love how fake they look, here. If you look like a bimbo, they don't care if you're a little mature." +<<elseif ($arcologies[0].FSSlimnessEnthusiast != "unset") && ($activeSlave.boobs < 800) && ($activeSlave.butt < 3)>> + "You're so slim," the other slave explains. "Everyone here loves slender girls. They don't care that you're a little mature; they think you're hot." +<<elseif ($arcologies[0].FSBodyPurist != "unset") && ($activeSlave.boobsImplant == 0) && ($activeSlave.health > 50)>> + "It's how healthy you are, and your natural boobs," the other slave explains. "You look good and natural, and everyone likes that here, especially if you're mature." +<<elseif $activeSlave.face > 2>> + "It might have something to do with how incredibly beautiful you are," the other slave explains sarcastically. "Come on, you could be a model. Of course they want you." +<<elseif $activeSlave.boobs > 4000>> + "It might have something to do with the fact that your tits are bigger than your head," the other slave explains sarcastically. "You look like a teenager's wet dream." +<<elseif $activeSlave.face > 0>> + "You're very pretty," the other slave explains reassuringly. "Come on, you are. It's not surprising that guys want you." <<else>> - Despite her weak libido, she's been a sex slave long enough that her body knows that it may be called upon to render sexual service soon. + "Is it really that surprising?" the other slave asks rhetorically. "Guys like sex. You're sex. Why shouldn't they like you? I bet fucking you feels great." <</if>> -The consequences of the special qualities of her womanhood soon become apparent. +There's a pause, and then the other slave continues in a more serious tone, asking, "You're not, like, unhappy with that, are you? It's really good for a slave to be in demand, you know." <br><br> -Your slaves are all in the very best of vaginal health, so the scent of her female arousal is not strong. But her cunt produces such copious natural lubricant that with nothing to do but stand there, her <<if $activeSlave.births > 0>>motherly<<elseif $activeSlave.weight > 30>>thick<<elseif $activeSlave.muscles > 30>>strong<<else>>feminine<</if>> inner thighs are soon slick with a sheen of healthy pussyjuice. You notice a droplet of the stuff running down her warm $activeSlave.skin skin. -<<if canAchieveErection($activeSlave)>> - Her <<if $activeSlave.dick > 3>>stiff prick<<else>>hard little dick<</if>> is sticking up from atop her pussy, leaving it nice and visible. -<<elseif $activeSlave.dick > 0>> - Her pussy is <<if $activeSlave.dick > 3>>entirely<<else>>partially<</if>> concealed by her limp dick, which is getting a good coating, since it's resting against the source. +"Oh no, I didn't mean it like that," replies $activeSlave.slaveName hurriedly. +<<if $activeSlave.energy > 80>> + "I'm <<s>>o horny all the time, it'<<s>> good. I'd probably go crazy if I didn't get that much attention. Whenever anyone'<<s>> done with me I can't wait for the next. +<<elseif $activeSlave.fetish == "humiliation">> + "It's embarra<<ss>>ing, but I, um, really like being <<s>>o popular in public, um, like that. Where everyone can <<s>>ee. +<<elseif $activeSlave.devotion > 50>> + "I really want to do well, and it feel<<s>> good that I'm able to help. +<<elseif $activeSlave.devotion > 20>> + "I, um, know I have to. And it'<<s>> not bad, I mean, it'<<s>> okay. +<<else>> + "I know it mean<<s>> I'm worth something. It'<<s>> rea<<ss>>uring, and I remind my<<s>>elf of it whenever I get <<s>>cared about being a <<s>>lave, you know. +<</if>> +I didn't mean to <<s>>ound con<<c>>eited, either. I gue<<ss>> I'm <<s>>till getting u<<s>>ed to life here, that'<<s>> all. <<S>>ometime<<s>> I think like I'm not, um, here, and I'm <<s>>urpri<<s>>ed so many people want me. It's kind of ni<<c>>e, actually," she <<say>>s with some self-confidence. +<<if $activeSlave.fetish == "humiliation">> +<<if $activeSlave.fetishKnown == 0>> + It sounds like she has a @@color:lightsalmon;humiliation fetish!@@ + <<set $activeSlave.fetishKnown == 1>> +<</if>> <</if>> -<<if $activeSlave.labia > 0>>Her prominent labia are flushed and moist, and frame her womanhood invitingly.<</if>> -<<if $activeSlave.clit > 0>>Her clit is rapidly becoming visible as the blood rushes there from every other part of her body.<</if>> -<<if $activeSlave.preg > 20>>Her huge pregnancy heaves a little as she starts to breathe a bit harder, and the visual connection between her gravid belly and her needy womanhood is inescapable.<</if>> -She's a good $desc, and remains obediently before your desk, filling your office with her subtle perfume as she waits for you. -<<case "breast expansion blues">> +<<case "im scared">> -During her routine weekly inspection, <span id="name"><<print "[[$activeSlave.slaveName|Long Slave Description][$nextLink to passage(), $eventDescription to 1]]">></span> cradles her huge breasts with her arms whenever the maneuvers of being inspected allow her to do so. It's not an unusual gesture for a $desc on breast growth drugs, since slaves whose tits are expanding are, by definition, not used to their weight yet. But $activeSlave.slaveName is more than just uncomfortable. She seems to regard her weighty mammaries with distaste. <<if $activeSlave.intelligence > -1>>She's not stupid, and quickly realizes<<else>>She's an idiot, but she's not dumb enough to completely miss<</if>> that you've noticed her feelings about her boobs. She bites her lower lip, not sure if she should say anything, so you follow your usual policy during slave inspections and ask her about it. <<if $PC.career == "slaver">>If you learned one thing from your long career of slave training, it's that it's<<else>>It's<</if>> typically best to suss these things out. +During her weekly inspection, <span id="name"><<print "[[$activeSlave.slaveName|Long Slave Description][$nextLink to passage(), $eventDescription to 1]]">></span> has trouble following the routine orders that position her so you can examine her body. The cause is not difficult to determine: she's so cripplingly terrified that she's having difficulty functioning. She seems to be trying to obey you, but she's so scared that her mind is having trouble translating your simple verbal commands into physical obedience. You ask her what she's so frightened of. The question stuns her, and she stares at you in mute horror, looking even more terrified than she has up to this point and completely devoid of any idea how to respond. You order her to respond, and this starts her out of her fugue. She begins to cry, makes two false starts, sobs, and then begins forcing out words. <br><br> -<<if SlaveStatsChecker.checkForLisp($activeSlave)>> - "<<if def $PC.customTitleLisp>>$PC.customTitleLisp<<elseif $PC.title != 0>>Mathter<<else>>Mithtreth<</if>>," she lisps, "can I pleathe be taken off boob drugth?" She swallows, nervous that she's crossed a line, but she presses on, hefting her tits a little higher to show she's talking about them. "They're tho heavy and awkward. I'm thore every night, and my back hurts. I feel like a cow with boobth thith big, -<<else>> - "<<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Master<<else>>Mistress<</if>>," she mumbles, "can I please be taken off the breast expansion drugs?" She swallows, nervous that she's crossed a line, but she presses on, hefting her tits a little higher to show she's talking about them. "They're so heavy and awkward. I'm sore every night, and my back hurts. I feel like a cow with boobs this big, -<</if>> -and I can't imagine what it'll be like if they get any bigger." -In one sense, it's amusing that she feels that way, because<<if ($arcologies[0].FSAssetExpansionist != "unset") || ($arcologies[0].FSTransformationFetishist != "unset") || ($arcologies[0].FSPastoralist != "unset")>> as many slaves in this very arcology know quite well,<</if>> it's possible for the miracles of modern medicine to grow a $desc's tits until they're so heavy they immobilize her completely. -<<if $activeSlave.muscles > 5>>She has the muscles to carry her boobs around, so some of this may be simple whining.<<else>>It's not surprising that her breasts would be uncomfortable, since she lacks anything in the way of muscle tone to help support them.<</if>> -<<if $activeSlave.lactation > 0>>She complained of feeling like a cow without detectable irony, despite the fact that her left nipple has a droplet of cream clinging to it right now.<</if>> -She waits anxiously for your response, wondering if she'll be punished for expressing reservations about your expansion of her breasts and, comically, still cradling her heavy udders as she does so. +"E-e-everything," she cries. "I'm <<s>>-<<s>>o <<s>>-<<s>>orry b-but I c-can't help," she chokes on a sob and hiccups, "help it. This, this pla<<c>>e, being a <<s>>ex <<s>>lave, +<<switch $activeSlave.standardPunishment>> +<<case "confinement">>b-being sh-shut up in the d-dark +<<case "whipping">>b-being wh-wh-whip-ped +<<case "chastity">>h-having my p-part<<s>> locked up in ch-cha<<s>>tity +<<default>>n-never knowing what th-the p-punishment will be +<</switch>> +wh-when I'm bad, e-everything, <<Master>>. Oh, oh, I'm <<s>>orry, p-plea<<s>>e, I'm <<s>>orry I, I'm like thi<<s>>, I'm crying, p-plea<<s>>e <<Master>>, plea<<s>>e don't..." She trails off, giving you a look of supplication. + +<<case "frightening dick">> + +In a fortuitous confluence of circumstances, <span id="name"><<print "[[$activeSlave.slaveName|Long Slave Description][$nextLink to passage(), $eventDescription to 1]]">></span> happens to be polishing your office one evening. Keeping every surface in the penthouse at a state of perfect shine is one of your servants' endless tasks, and your office is her area of responsibility today. At the key moment, she's working on an area at waist height, directly next to the door that leads to your suite; and she's crouching to polish this area most comfortably. She is working diligently, and is paying close attention to what she's doing. Meanwhile, and for completely unrelated reasons, you have just finished having fun inside said suite. You are naked, and your penis remains fully erect despite your having climaxed only moments before; you are in excellent physical and sexual condition and this happens frequently. You have decided to address a likewise unrelated matter in your office, and walk into it from your suite, naked and erect. +<br><br> +This is how $activeSlave.slaveName comes face to face with your cock, unexpectedly, at a distance of about ten centimeters. +<br><br> +She shrieks, backpedaling, and then falls backward, her <<if $activeSlave.butt > 6>>monstrous bottom<<elseif $activeSlave.butt > 3>>healthy rear end<<else>>cute butt<</if>> hitting the floor with an audible whack. The light cloth she was using to polish with went flying, and flutters to the ground accusingly. After scrabbling back a short distance, looking up at you hesitantly, and visibly recollecting herself, she swallows twice and then says, "I'm <<s>>orry, <<Master>>," in a tone of voice with a great deal of effort applied to keep it even. A frantic, embarrassed search for her cloth ensues. Finding it at last, she returns to her original, low position, and crouch-walks back to the place she was polishing, doing her absolute best to look diligent and industrious and not at all aware that your cock is pointing at her like a gun barrel. <<default>> ERROR: bad event @@ -67,225 +119,241 @@ She waits anxiously for your response, wondering if she'll be punished for expre <span id="result"> <<switch $RESSTRevent>> -<<case "transition anxiety">> +<<case "gaped asshole">> -<<click "Fuck her">> +<<click "Give her the surgery">> <<replace "#name">>$activeSlave.slaveName<</replace>> <<replace "#result">> - You announce that you're going to fuck her <<if $activeSlave.anus == 0>>virgin <</if>>asspussy. To your complete lack of surprise, she can't hide her horror at the prospect of <<if $PC.dick == 1>>having a cock inside her<<else>>being fucked with a strap-on<</if>>, and her wide, $activeSlave.eyeColor eyes track your movements closely as you stand up and <<if $PC.dick == 1>>reveal the formidable member<<else>>don the strap-on<</if>> you're about to breed her with. You order her to kneel on the couch, which she does, @@color:gold;cringing in fear of being buttfucked, but knowing disobedience will be worse;@@ and then you order her to reach down and spread her butt for you, as wide as it'll go. She complies, <<if $activeSlave.butt > 6>>taking a handful of each massive buttock and heaving them apart to reveal her<<elseif $activeSlave.butt > 3>>pulling her plush buttocks apart<<else>>even though her cute ass doesn't have to be spread<</if>> to reveal her <<if $activeSlave.anus > 2>>whorish anal slit<<elseif $activeSlave.butt > 1>>relaxed rear hole<<else>>tight little rosebud<</if>>. You let her soak in her discomfort, <<if $PC.dick == 1>>stroking your cock gently<<else>>rubbing a little lube on the tip of your phallus<</if>> and letting her see how big it is. Her cringing even extends to her asshole, <<if $activeSlave.analArea > 3>>the huge area of crinkled skin<<elseif $activeSlave.analArea > 1>>the crinkled skin around her anus<<else>>her little pucker<</if>> tensing as she anticipates anal sex. - <<set $activeSlave.trust -= 3>> - <br><br><span id="result2"> - <<click "Make sure she gets off on it">> - <<replace "#result2">> - You press <<if $PC.dick == 1>>yourself<<else>>your weapon<</if>> past her sphincter with care, and her posture softens a little as she realizes you aren't going to hurt her. Once you've hilted <<if $PC.dick == 1>>your cock<<else>>the strap-on<</if>> inside her, you caress her <<if $activeSlave.weight > 30>>chubby<<elseif $activeSlave.waist > 0>>wasp<<elseif $activeSlave.muscles > 30>>muscular<<elseif $activeSlave.weight > 10>>soft<<else>>thin<</if>> waist, running your hands across her skin. Then you <<if $activeSlave.clitPiercing == 3>>activate her smart frenulum piercing<<else>>secure a couple of little egg vibes to her dick<</if>>. She gasps as the vibration starts, and then gasps again as her anus tightens involuntarily with the stimulation, squeezing the <<if $PC.dick == 1>>warm penis<<else>>phallus<</if>> that fills it. She <<if $activeSlave.voice > 0>>moans openly<<else>>rasps mutely<</if>> as you pull out and then thrust into her. Much against her will, she <<if $activeSlave.balls > 0>>quickly becomes erect<<else>>starts to drip precum, which is her ballsless body's way of showing arousal<</if>>. - <<if $activeSlave.fetish == "buttslut">> - <<if $activeSlave.fetishKnown == 1>> - <<if $activeSlave.fetishStrength > 95>> - Every time she takes it up the butt, she's reminded that she's a natural buttslut, and the reminder @@color:lightsalmon;helps her relax and accept sodomy.@@ - <<set $activeSlave.fetishStrength += 10>> - <<else>> - She knows she gets off easily on anal stimulation, but taking it like this still isn't her favorite activity. Still, the prostate stimulation does its work, and she @@color:hotpink;submits to having her favorite hole pleasured.@@ - <<set $activeSlave.devotion += 3>> - <</if>> - <<else>> - You notice that she stiffens again, looking down at her traitorous member in shock at how much she enjoys the sensation of prostate stimulation. @@color:lightsalmon;She's a buttslut!@@ - <<set $activeSlave.fetishKnown = 1>> - <</if>> - <</if>> - Not long after you penetrate her, she <<if $activeSlave.balls > 0>>squirts a weak ejaculation onto the couch<<else>>shivers and releases some watery fluid<</if>>. She had almost forgotten that she was being fucked like a girl, and stiffens uncomfortably when she feels you <<if $PC.dick == 1>>fill her rectum with your hot seed<<else>>grip her hips harder and shake with your own climax<</if>>. As she gets up from the couch, she seems @@color:hotpink;subdued and submissive.@@ After all, if she's submitting to you, that absolves her of responsibility for what she's becoming. - <<set $activeSlave.devotion += 5>> - <<AnalVCheck>> - <</replace>> - <</click>> - <br><<click "Rape her">> - <<replace "#result2">> - You grab her hips, getting a good grip, and spear the poor $desc without any hint of mercy. She <<if $activeSlave.voice > 0>>screams in pain and fear<<else>>sucks in a great sobbing gasp<</if>>, and tries to wriggle away despite her intention of submitting to your use, but you hold her in place and rape her ass. She tries to maintain her position, crying openly, but eventually slides off her perch on the couch, pulling her hole off your <<if $PC.dick == 1>>dick<<else>>strap-on<</if>>. You grab her by <<if $activeSlave.hLength > 20>>hair<<else>>neck<</if>> and smash her face into the angle of the couch, leaving her poor butt completely vulnerable. She can't see you line up to ream her again, but she knows it's coming and cries, quivering. After a while, you haul her up to her feet and keep fucking her, the uncomfortable angle of standing anal forcing new <<if $activeSlave.voice > 0>>squeals<<else>>rasps<</if>> out of her. You pour degradation into her ear as you take your pleasure from her unhappy body, telling her that she's your fuckmeat. She believes you, and when you finally orgasm and let her slide off your hateful <<if $PC.dick == 1>>penis<<else>>strap-on<</if>>, shes @@color:gold;already terrified@@ of the next time you feel like fucking her. - <<set $activeSlave.trust -= 5>> - <<AnalVCheck>> - <</replace>> - <</click>> + You schedule her for the surgery. Like all invasive procedures, it @@color:red;affects her health,@@ but @@color:lime;she's effectively an anal virgin again.@@ She @@color:mediumaquamarine;trusts you a bit more@@ for granting her request, and is eager for buttsex that's more interesting than having a hotdog thrown down her hallway. + <<set $activeSlave.trust += 3, $activeSlave.health -= 10, $activeSlave.anus = 0, $cash -= $surgeryCost>> + <<if $activeSlave.analSkill > 10>><<set $activeSlave.analSkill -= 10>><</if>> + <br><br> + <span id="result2"> + <<click "Break her in again">> + <<replace "#result2">> + Her ass is yours all over again. As soon as her newly tight rosebud has recovered enough, you visit her in the surgery, without even waiting for her to leave it. You flip her over on the recovery bed and force <<if $PC.dick == 1>>your cock<<else>>a strap-on<</if>> up her butt while she wriggles with eager discomfort, squealing in pretended horror. Her renewed anal virginity was very brief; her ass is once again @@color:lime;broken in for penetration.@@ For her part, she @@color:hotpink;thoroughly enjoyed losing her anal cherry,@@ again. + <<set $activeSlave.devotion += 5, $activeSlave.analCount++, $analTotal++, $activeSlave.anus = 1>> + <</replace>> + <</click>> //This option will take anal virginity// </span> <</replace>> -<</click>><<if $activeSlave.anus == 0>> //This option will take anal virginity//<</if>> -<br><<click "Humiliate her in public">> +<</click>><<if $activeSlave.vagina == 0>> //This option will take virginity//<</if>> +<br><<click "Fill her gape">> <<replace "#name">>$activeSlave.slaveName<</replace>> <<replace "#result">> - You get up from behind your desk, drawing an apprehensive stare. To her bemusement, you order her to follow you and leave your office. She hurries to obey, her footsteps pattering along behind you, but they become much more hesitant as you make your way out of the penthouse and she realizes that she's about to be in public, naked. You don't bother looking back, knowing that she's sufficiently afraid of you to obey. On the border between your private domain and the public hustle and bustle of the arcology's public life, she stops for a long moment before scurrying to catch up with you, barely even noticing that @@color:hotpink;she just swallowed her sense of shame@@ to obey you and avoid punishment. You stroll along, greeting leading citizens and taking in the hum of your people. $activeSlave.slaveName grows increasingly embarrassed under the hot stares of passersby, cringing closer and closer to your protective side as she notices how many gazes rest with open hunger on her mouth, her crotch, and her ass. - <<set $activeSlave.devotion += 3>> - <br><br><span id="result2"> - <<click "Make her perform oral on you, right here">> - <<replace "#result2">> - You reach around, place a dominanting hand on her shoulder, pull her around in front of you, and push her down to her knees. She quickly realizes what's coming, and her $activeSlave.skin cheeks blush furiously as you reveal your <<if $PC.dick == 1>>meaty dick<<else>>flushed pussy<</if>> and offer it to her. She gets busy, burying her head against you with a speed that seems surprising until it occurs to you that this allows her to hide her face. Deciding to accept this tiny compromise, you run a possessive hand <<if $activeSlave.hLength < 5>>across her smooth scalp<<elseif $activeSlave.hLength < 20>>through her short hair<<else>>through her tresses<</if>> and murmur praise for her enthusiasm. She stiffens at the implication that she wants to be <<if $PC.dick == 1>>polishing your penis<<else>>eating you out<</if>> in broad daylight, but after a slight pause she decides that this isn't bad. As <<if $PC.dick == 1>>her head continues to bob back and forth as she sucks your dick<<else>>she continues nuzzling her nose and mouth against your wet cunt<</if>>, she fails to notice her @@color:hotpink;second major submission today.@@ - <<if $activeSlave.fetish == "humiliation">> - <<if $activeSlave.fetishKnown == 1>> - Since she has a humiliation fetish, the embarrassment has been arousing her even as it's been torturing her. Unsatisfied with just this, her need to be shamed obliges her to cock her hips and make sure onlookers can see her asspussy as she services you with her mouth. - <<if $activeSlave.fetishStrength > 95>> - @@color:lightsalmon;Her need for humiliation has deepened.@@ - <<set $activeSlave.fetishStrength += 10>> - <<else>> - Such abject sluttery @@color:hotpink;helps convince her of her status as a slave girl.@@ - <<set $activeSlave.devotion += 3>> - <</if>> - <<else>> - To your surprise, she even starts to glance around, checking to verify that she's still being watched. @@color:lightsalmon;She's a humiliation slut!@@ - <<set $activeSlave.fetishKnown = 1>> - <</if>> - <</if>> - <<set $activeSlave.oralCount += 1>> - <<set $oralTotal += 1>> - <<set $activeSlave.devotion += 5>> - <</replace>> - <</click>> - <br><<click "Make her cum in public">> - <<replace "#result2">> - You produce three little egg vibrators, which instantly steal her anxious attention away from the passersby who stare at her. You require her to hold her dick out while you use an elastic band to attach one of the vibrators to the underside of its head. She doesn't get to touch herself much anymore, and the half-forgotten sensations of doing so almost make her forget that she's naked in public, and almost certainly about to do something very embarrassing. Then you order her to hold her dick up and place another vibrator <<if $activeSlave.scrotum > 0>>against her sensitive scrotum<<else>>against the sensitive skin where her scrotum used to be<</if>>. Finally, you order her to bend over and offer you her asshole. She obeys, with apprehension, and is actually relieved when you just place the final vibrator against, but not inside, her <<if $activeSlave.anus > 1>>asspussy<<else>>pucker<</if>>. She finds herself ordered to kneel and put her hands on her head; and ordering her to hold this position, you use remote control of the vibrators to force her to cum twice. She can't tear her eyes away from the citizens who stare and laugh as she <<if $activeSlave.balls > 0>>spurts her seed<<else>>dribbles weakly<</if>> onto the floor. - <<if $activeSlave.fetish == "humiliation">> - <<if $activeSlave.fetishKnown == 1>> - <<if $activeSlave.fetishStrength > 95>> - Though she's still unhappy about being a slave girl, @@color:lightsalmon;appetite for humiliation has deepened.@@ - <<set $activeSlave.fetishStrength += 10>> - <<else>> - The abject humiliation slut climaxes harder each time, and can't stop herself @@color:mediumaquamarine;glancing at you with something like trust.@@ - <<set $activeSlave.trust += 3>> - <</if>> - <<else>> - With a mix of horror and dawning arousal, she discovers that she enjoys the stares. @@color:lightsalmon;She's a humiliation slut!@@ - <<set $activeSlave.fetishKnown = 1>> - <</if>> - <</if>> - As she follows you back to your penthouse, she seems almost cheerful, and will definitely be @@color:mediumaquamarine;more trusting of strange orders@@ in the future. - <<set $activeSlave.trust += 5>> - <</replace>> - <</click>> - </span> + You announce that you can fill her just fine, and you'll make her feel it just as though she were an anal virgin again. She looks simultaneously intrigued and apprehensive, but starts to get to her knees like a good anal slut. You stop her before she can face the ground and offer you her ass. You're going to need some lubricant for this, but the $desc's saliva should be plenty. As you <<if $PC.dick == 1>>aim your dick<<else>>swiftly pull on a strap-on and aim it<</if>> at her face, she realizes that her spit is going to be the only relief her fucked-out butt is going to have for whatever you're planning. She blows you with desperate eagerness, doing her absolute best to coat your<<if $PC.dick != 1>> weapon's<</if>> shaft with as much saliva as she can. You pull it free of her mouth with a wet pop, and she immediately faces the floor, cocking her hips and spreading her huge asspussy for you. + <br><br> + After watching the way it contracts slightly as she breathes hard for a while, letting her feel the apprehension, you shove <<if $PC.dick == 1>>yourself<<else>>the phallus<</if>> inside her. She takes it without any reaction at all, and her gaped hole cups it only loosely. Grabbing her by the shoulders, you haul her torso up so it's against your <<if $PC.boobs == 1>>breasts, capped by their rock-hard nipples<<else>>muscular chest<</if>>, and push three of your fingers into her mouth. She gags, surprised, but you shove them in farther, collecting as much spit as you can reach. Then you let her fall back down again. She knows what you're going to do, and moans as you slide your fingers in alongside your <<if $PC.dick == 1>>cock<<else>>strap-on<</if>>, taking huge shuddering gasps as she feels her sphincter accommodate the abuse. Slowly, you slide your thumb in as well, pushing it around <<if $PC.dick == 1>>your stiff prick<<else>>the unyielding phallus<</if>> until you're holding it as if masturbating. And then you masturbate. Inside her ass. She begins to scream, but manages to prevent herself from resisting. She does her desperate best to take your crushing abuse of her worn-out hole, and collapses when you finally orgasm and let her go. She does her best to offer some sort of @@color:hotpink;submissive thanks,@@ but is barely coherent, and crawls off to shower again, her lewd sphincter pulsing as she goes. + <<set $activeSlave.devotion += 5, $activeSlave.analCount++, $analTotal++>> + <<EventFetish $activeSlave "buttslut">> + <<EventFetish $activeSlave "masochist">> + <</replace>> +<</click>> +<<if $HeadGirl != 0>> +<br><<click "Double up on her ass with your Head Girl">> + <<replace "#name">>$activeSlave.slaveName<</replace>> + <<replace "#result">> + You page $HeadGirl.slaveName for some assistance filling up a loose hole, and she comes quickly, <<if canAchieveErection($HeadGirl)>>precum already visible at the tip of her erection<<else>>bringing a strap-on<</if>>. When she arrives, it's to the sight of $activeSlave.slaveName sitting on your lap with your <<if $PC.dick == 1>>cock<<else>>strap-on<</if>> up her ridiculous anal gape, waiting for a second phallus while your hands tease her $activeSlave.nipples nipples. Seeing that backup has arrived, you lean back and shift your grip to the back of the receptacle's lower thighs, pulling her up and shifting her hips to offer your Head Girl another berth in $activeSlave.slaveName's ass. This pulls her loose sphincter up, producing a little gape above the top of your invading shaft, and $HeadGirl.slaveName loses no time in fucking it. She gives $activeSlave.slaveName a kiss, but soon breaks the lip lock, since she's more interested in making eyes at you over your mutual anal conquest's shuddering shoulder. As + <<if $PC.dick == 1>><<if canAchieveErection($HeadGirl)>>your dicks slide against each other<<else>>your dick slides against her strap-on<</if>><<else>><<if canAchieveErection($HeadGirl)>>your strap-on slides against her dick<<else>>your strap-ons slide against each other<</if>><</if>>, your trusty Head Girl whispers that @@color:hotpink;she loves you.@@ $activeSlave.slaveName makes an inarticulate noise of anal distress that probably means @@color:hotpink;approximately the same thing.@@ + <<set $activeSlave.devotion += 4, $activeSlave.analCount++, $analTotal++>> + <<for $i to 0; $i < $slaves.length; $i++>><<if $slaves[$i].ID == $HeadGirl.ID>><<set $slaves[$i].devotion += 4>><</if>><</for>> + <<EventFetish $activeSlave "buttslut">> + <<EventFetish $activeSlave "submissive">> <</replace>> <</click>> +<</if>> -<<case "moist pussy">> +<<case "passing declaration">> -<<click "Make love to her ready cunt">> +<<click "Follow her">> <<replace "#name">>$activeSlave.slaveName<</replace>> <<replace "#result">> - Her body is so perfectly made to be fucked that it's getting itself ready for you, without your even having to give the order. Deciding not to bother with verbal commands, you approach her and reach for one of her hands; she obediently extends it towards your grasp, and follows <<if ($activeSlave.energy > 40) || ($activeSlave.aphrodisiacs > 0)>>eagerly<<else>>willingly<</if>> as you pull her in for a hug<<if $activeSlave.boobs > 5000>> (cushioned by her enormous udders)<<elseif $activeSlave.dick > 5>> (made rather lewd by her enormous penis)<</if>>, kiss her deeply, and slide your arms down her <<if $activeSlave.muscles > 30>>muscular<<elseif $activeSlave.muscles > 10>>toned<<else>>soft<</if>> back to <<if $activeSlave.butt > 6>>heft her monstrous<<elseif $activeSlave.butt > 3>>squeeze her healthy<<else>>cup her cute little<</if>> buttocks. She <<if $activeSlave.voice > 0>>coos<<else>>hums mutely<</if>> at the feeling of your <<if $PC.title == 1>>strong<<else>>feminine<</if>> hands on her bottom, and presses herself against you as you rotate the two of you until you can set her butt on the edge of your desk and <<if $PC.dick == 1>>slide your big dick into her well-lubricated cunt<<else>>assertively press your own pussy against her wet cunt<</if>>. - <br><br> - She makes as if to lie back and take it, but you keep an arm around her back and hug her <<if $activeSlave.boobs > 2000>>as closely as her big breasts will permit<<else>>closer than ever<</if>>. You take your other hand and place a firm but loving grip under her chin, lifting her $activeSlave.eyeColor-eyed gaze to meet yours before kissing her again. All the while, you <<if $PC.dick == 1>>fuck her powerfully, withdrawing your dick almost all the way and then hilting yourself in her soaked slit<<else>>trib her with assurance, grinding your hips against hers and making her feel your heat<</if>>. She clings to you, accepting the closeness to her <<if $PC.title == 1>>Master<<else>>Mistress<</if>> and enjoying the loving attention, even as the extreme wetness of her cunt and your <<if $PC.dick == 1>>powerful thrusting<<else>>hungry grinding<</if>> begin to produce lewd noises from between you. Her generous natural lubrication lessens the friction and sensation a little, and you go for a long time before you both climax. You lead her into your office shower, since you're both coated in her pussyjuice<<if $PC.dick == 1>> and she's carrying a big load of your cum<<else>>, and your own<</if>>. Under the hot water, you don't even have to pull her close; @@color:hotpink;she presses herself into your arms on her own.@@ - <<if $activeSlave.sexualQuirk == "romantic">> - For an incorrigible romantic like her, this encounter was perfect, and she @@color:hotpink;loves you all the more for it.@@ - <<set $activeSlave.devotion += 3>> - <</if>> + Her sheer joie de vivre is irresistible, and it certainly draws you out of your office. You're not slow, and of course you know where she's going, so you catch up quickly. She gives you the careful measuring glance of a devoted sex slave who's checking whether her owner wants to fuck her right now, and correctly decides that that isn't your intent, at least right this minute. Instead, you continue the direction she was going, and she follows. "<<Master>>," she <<say>>s hesitantly, "I hope that wa<<s>> an okay thing for me to do." You assure her it was. "Thank<<s>>, <<Master>>," she beams, grinning like an idiot. Smiling at her infectious enthusiasm for life, you ask her why she's so happy this morning. She looks momentarily perplexed<<if $activeSlave.intelligence > 1>>, not a common look for a slave as smart as her<</if>>. "I don't know! I just woke up thi<<s>> morning feeling really, really good. <<if $activeSlave.intelligence > 1>>I'm sure the fact that I'm benefiting from incredibly advanced medi<<c>>ine ha<<s>> <<s>>omething to do with it; thank you very much for that, <<Master>>. Other than that,<</if>> + I ju<<s>>t feel happy." This has to be some sort of milestone for her, and for you, and maybe for slavery in general: if she can be this pleased with life, something must be going right. You walk her to where she's going + <<switch $activeSlave.assignment>> + <<case "whore">>(one of the arcology's nicer streets, where she'll spend the day selling her body), + <<case "serve the public">>(one of the arcology's nicer streets, where she'll spend the day flirting with citizens and having sex with anyone that's willing), + <<case "work a glory hole">>(a wall mounting that will render her a helpless target for dicks all day), + <<case "get milked">>(her favorite milker in the penthouse), + <<case "take classes">>(a quiet area with a touchscreen where she can review material from the slave etiquette class she's working on), + <<case "please you">>(the wardrobe, where she'll get dressed before attending to you for the rest of the day), + <<case "be a subordinate slave">>(the living area of the slave she's been assigned to serve), + <<case "be a servant">>(the closet that contains the cleaning items she'll use to dust and polish the penthouse today), + <<case "stay confined">>(her cell), + <<case "guard you">>(the armory where her weapons are kept), + <<case "be your Head Girl">>(the assignment location of a slave who needs some hands-on guidance from your Head Girl), + <<case "recruit girls">>(the camera station she uses to convince people from the old world that becoming your slave is a good idea), + <<default>>(a waiting area for further assignment), + <</switch>> + and when you get there, she gives you a peck on the cheek. <<if $activeSlave.height < 170>>The short $desc has to go up on tiptoe to reach.<</if>> + "@@color:hotpink;I really do love you,@@ <<Master>>," she <<say>>s, $activeSlave.eyeColor eyes shining. <<set $activeSlave.devotion += 5>> - <<VaginalVCheck>> <</replace>> -<</click>><<if $activeSlave.vagina == 0>> //This option will take virginity//<</if>> -<br><<click "Pound her wet pussy">> +<</click>> +<br><<click "Play with her">> <<replace "#name">>$activeSlave.slaveName<</replace>> <<replace "#result">> - She's so generously lubricated that she's ready to take a good hard fuck, so you decide to give her one. You point at the ground, and you don't even have to tell her to get down on all fours and get ready to take it. Your gesture says it for you, and she obediently gets down and gets in position to be bred like a bitch. She angles her hips just right to offer her cunt to you, and even reaches down to spread her<<if $activeSlave.labia > 1>> dangling<</if>> labia to invite you into her pink channel. - <<if $PC.dick == 1>><<if $activeSlave.vagina > 1>>She can take your big dick without a twinge<<else>>Your big dick will fill her tight cunt to its limits<</if>>, but you grab her hips and<<else>>You select a strap-on that's right at the limits of her <<if $activeSlave.vagina > 3>>cavernous<<elseif $activeSlave.vagina > 2>>big<<elseif $activeSlave.vagina > 1>>open<<else>>tight little<</if>> cunt's capacity, don it, and<</if>> mount her with such force that your first stroke brings her butt against your hips with an audible smack. There's also a deliciously lewd noise as <<if $PC.dick == 1>>your invading penis<<else>>the invading phallus<</if>> forces a little gush of pussyjuice out of her. She <<if $activeSlave.voice > 0>>shrieks, but it's a shriek<<else>>gasps, but it's a gasp<</if>> of pleasure, and your rutting is so well-lubricated that she has no trouble getting off on it. Wanting her climax, you reach around her and grab hold of her pussy, feeling the slippery fluid between your fingers and the lewd thrusting motion as <<if $PC.dick == 1>>your cock<<else>>the phallus<</if>> pistons in and out of her. That bit of stimulation is enough to tip her over, and you feel a gush of femcum against your hand as <<if $PC.dick == 1>>your dickhead<<else>>the head of the strap-on<</if>> forces an orgasm out of her g-spot. She's so discombobulated that she collapses into the puddle of pussyjuice she left on the floor when you stand up and head off for a shower, but she @@color:hotpink;crawls after you@@ as best she can on rubbery legs. - <<if $activeSlave.fetish == "submissive">> - <<if $activeSlave.fetishKnown == 1>> - The $desc sub loves getting fucked like that, and - <<if $activeSlave.fetishStrength > 95>> - @@color:lightsalmon;seems even more submissive@@ - <<set $activeSlave.fetishStrength += 10>> - <<else>> - since she's fully confirmed in her status as a sub, she @@color:hotpink;glows with devotion@@ - <<set $activeSlave.devotion += 3>> - <</if>> - as she washes herself in the shower with you. + You're not a slave, so you can't understand her inner workings through direct empathy. But in your experience, a quick orgasm never fails to make a good day better. You're not slow, and of course you know where she's going, so you catch up to her on quiet feet and <<if $activeSlave.butt > 6>>set her enormous ass jiggling with a smack<<elseif $activeSlave.butt > 3>>give her womanly bottom a squeeze<<else>>pinch her cute rear<</if>>. She squeals and whirls around, <<if $activeSlave.energy > 60>>eagerly flinging herself into your arms, ready for some action<<else>>trustingly throwing herself into your arms<</if>>. Feeling spontaneous, you decide to get everyone off quickly and cleanly, right here. + <<switch $eventSlave.fetish>> + <<case "submissive">> + You place a dominant hand around her throat, firmly but not harshly, almost sending the submissive to her knees. Your other hand + <<case "cumslut">> + You kiss her, sliding your tongue all the way into her mouth. She melts into you, rhapsodically entranced by the intense oral stimulation, and her tongue presses against yours with frankly sexual significance. Your hand + <<case "humiliation">> + Slaves are constantly passing the two of you, and you constantly turn her to show her body to each of them, spreading her to display her most intimate parts. Her cheeks flush with arousal and delicious shame. Your hand + <<case "buttslut">> + You slide a hand all the way under her, pulling the flesh of her buttock to one side and then nestling possessive fingers over her anus, teasing and stimulating, but not penetrating. Your other hand + <<case "boobs">> + She gasps as your hot mouth finds one of her $activeSlave.nipples nipples, and then moans openly as one of your hands mauls her other breast. Your other hand + <<case "pregnancy">> + One of your hands begins to caress her<<if $activeSlave.pregnancy > 0>> pregnant<</if>> belly, worshipping its curve. Your other hand + <<case "dom" "sadist">> + You press yourself aggressively against her, and she presses back; you grind harder still, letting her know that she can let herself be a little aggressive, too. Groaning with pleasure and satisfaction, she kisses you furiously. One of your hands + <<case "masochist">> + You caress one of her nipples, bringing it completely erect before gripping it firmly. You twist it, pull it, pinch it; she moans with masochistic pleasure. Your other hand + <</switch>> + <<if $activeSlave.vagina > -1>>finds her pussy<<else>>reaches around behind her to tease her ass and play with her sensitive perineum<</if>>, and you press your groin towards her. Getting the idea, she begins to <<if $PC.dick == 1>>jack you off<<else>>finger your clit<</if>> energetically, taking the pace from your lusty demeanor and her own feeling of energy and well-being. The two of you orgasm almost together. <<if $PC.dick == 1>>You angle your hips to shoot your seed onto the floor<<else>>You climax so violently that some of your femcum makes it onto the floor<</if>>. <<if canAchieveErection($activeSlave)>>She blows her own load right after<<elseif $activeSlave.balls > 0>>Her limp dick pours cum<<elseif $activeSlave.dick > 0>>Her bitchclit produces a little watery fluid<<elseif $activeSlave.vaginalLube > 1>>She squirts copiously<<else>>Unusually for her, she manages to squirt a little<</if>>, adding to the mess. You tell her another slave will clean up, and order her to go about her business. She turns to go, @@color:mediumaquamarine;smiling with sexual satisfaction.@@ + <<set $activeSlave.trust += 5, $activeSlave.oralCount++, $oralTotal++>> + <</replace>> +<</click>> +<br><<click "Punish her">> + <<replace "#name">>$activeSlave.slaveName<</replace>> + <<replace "#result">> + That was not quite the prescribed way of greeting you, there was no need to greet you as she passed, and most importantly, she's simply too cheery. Resolving to crush her happiness, you call her back to the office in a thunderous voice you know will reach her. She knows she's made a mistake, but comes promptly, lower lip quivering. Her feelings are plain to see on her face: surprise, @@color:mediumorchid;betrayal,@@ @@color:gold;fear.@@ She thought she could be friendly, and now she knows she was wrong. What's more, she thought she could be happy, and now she's realizing that that was also wrong. As you + <<switch $activeSlave.standardPunishment>> + <<case "confinement">>close her into a confinement cell, + <<case "whipping">>tie her up for a brief whipping, + <<case "chastity">>lock her into harsh chastity, + <<default>>gag her for speaking out of turn, + <</switch>> + a wail of despair tears its way out of her throat, far out of porportion to the standard punishment you're applying. It's perhaps the saddest sound you've ever heard a slave make. Slaves cry all the time, but usually they already understand that happiness is out of their reach. This one just woke up thinking that she could be happy and was happy, and now she's realizing it isn't allowed. + <<set $activeSlave.devotion -= 10, $activeSlave.trust -= 10>> + <</replace>> +<</click>><<if ($PC.dick == 1) && ((($activeSlave.anus == 0) && ($activeSlave.vagina == -1)) || ($activeSlave.vagina == 0))>> //This option will take virginity//<</if>> + +<<case "ara ara">> + +<<click "Praise her outlook">> + <<replace "#name">>$activeSlave.slaveName<</replace>> + <<replace "#result">> + You speak from where you are, and without preamble, startling both slaves badly. Doing their best to recover, they listen as you tell $activeSlave.slaveName that she has a good, praiseworthy outlook on life as a sex slave. + <<if $activeSlave.energy > 80>> + Her extreme appetite for sex will serve her well. It's important to love what you do, and if she wakes up every morning wanting to get fucked, she'll enjoy her life as a <<if $activeSlave.assignment == "whore">>slave prostitute<<else>>public slut<</if>>. + <<elseif $activeSlave.fetish == "humiliation">> + She should feel lucky to have a fetish for public use. It's important to love what you do, and if being openly passed around gets her off, she'll enjoy her life as a <<if $activeSlave.assignment == "whore">>slave prostitute<<else>>public slut<</if>>. + <<elseif $activeSlave.devotion > 50>> + It's great that she's internalized her role, and wants to do well. As long as she wants to perform well and applies herself, you're confident that she'll continue to improve and become a better and more valuable slave. + <<elseif $activeSlave.devotion > 20>> + Her obedience is commendable. You understand that she struggles with her life as an involuntary sex object at times. She'll learn to do better, and as she improves, she'll be all right as long as she obeys you and does her best. <<else>> - She seems utterly disspated by the fucking she just got, and may have just had the best sex of her life. @@color:lightsalmon;She's a submissive!@@ - <<set $activeSlave.fetishKnown = 1>> - <</if>> + To describe her situation bluntly, the best possible approach for her is to obey you and do her best. There's not really any possible outcome in which slaves can lose out by doing their best to be useful and valuable. It's in her interest to do her best. <</if>> - <<set $activeSlave.devotion += 5>> - <<VaginalVCheck>> + "Yes, <<Master>>," they chorus automatically. You turn and go. $activeSlave.slaveName is taken a bit aback by your apparent omnipresence in the penthouse, but reminds herself that your guidance seemed straightforward and genuine. She's @@color:mediumaquamarine;confirmed in her understanding@@ of what it means to be a good $desc. + <<set $activeSlave.trust += 5>> <</replace>> -<</click>><<if $activeSlave.vagina == 0>> //This option will take virginity//<</if>> -<br><<click "Feed her her own pussyjuice">> +<</click>><<if ($PC.dick == 1) && (($activeSlave.anus == 0) && ($activeSlave.vagina <= -1))>> //This option will take anal virginity//<</if>> +<br><<click "Let her know you think she's attractive, too">> <<replace "#name">>$activeSlave.slaveName<</replace>> <<replace "#result">> - You approach her and <<if $activeSlave.dick > 0>>reach under her girldick for her<<else>>cup her<</if>> sopping pussy. She gasps as she feels your cool grasp. Your possessive hand encompasses her vulva, with your index and ring fingers sliding around either side of her pubic mound to grip her entire womanhood. - <<if $activeSlave.vagina > 0>> + The slaves continue their gossip until $activeSlave.slaveName feels a pair of <<if $PC.title == 1>>strong<<else>>firm, feminine<</if>> hands grip the sides of her <<if $activeSlave.waist > 1>>cartoonishly narrow<<elseif $activeSlave.weight > 30>>pudgy<<elseif $activeSlave.muscle > 30>>ripped<<elseif $activeSlave.waist > 0>>wasp<<elseif $activeSlave.weight > 10>>plush<<elseif $activeSlave.muscle > 5>>toned<<elseif $activeSlave.weight >= -10>>soft<<else>>thin<</if>> waist. She starts but doesn't try to turn, and shivers as you run your hands up <<if $activeSlave.muscle > 30>>the muscles that jacket her ribs<<elseif $activeSlave.weight > 30>>the soft flesh that pads her ribs<<else>>her ribcage<</if>> and forward <<if $activeSlave.boobs > 3000>>into the soft, weighty place formed by the overhang of her massive breasts<<elseif $activeSlave.boobs > 300>>to cup her breasts<<else>>to clasp her around the sternum<</if>> and pull her back into your arms. The other slave watches silently, awaiting some cue as to whether she's to join in or return to breakfast; you give her a flick of your chin, and she turns away, leaving you with $activeSlave.slaveName, embracing among the eating slaves. + <br><br> + You whisper into her ear that you think she's attractive, <<if $PC.dick == 1>>and point out that she can feel the proof between her buttocks. You're hard, and your stiff prick is poking her in the rear. She gasps and shifts a little, and you nestle your dick even closer into the warm place between her legs and ass.<<else>>and tell her that you can prove it. You grab one of her hands and pull it around behind her, between you, making her feel your pussy. She gasps at how wet it is.<</if>> "An old <<s>>lave like me, <<Master>>?" she echoes in a small voice. An old slave like her, you confirm, and tell her that right now, + <<if $PC.dick == 1>> <<if $activeSlave.vagina > 0>> - Her relaxed pussy almost draws your middle finger inward and upward, + you've decided to fuck her pussy. She starts at the sudden vulgarity, even with your cock resting against the soft skin between the bottom of her vulva and her anus, and shudders with sudden pleasure as you use a hand to guide yourself inside her welcoming channel. <<else>> - Her pussy welcomes your middle finger, + her ass is yours. She starts at the sudden vulgarity, even though hearing that the cock that's pressing against her butt will be going inside it soon can't be that surprising. She cocks her hips obediently, letting you force your dick up her asshole. <</if>> - and you hook it inside her body, gathering a healthy amouth of pussyjuice and brushing her g-spot. + You take her standing, <<else>> - You're careful not to penetrate her virgin slit with your middle finger, but you draw it up the exterior of her channel, gathering a healthy amouth of pussyjuice. + some oral sex from a slave like her sounds just right. You push her to her knees and hold her mouth to your cunt, taking your pleasure from her + <<set $activeSlave.oralCount++, $oralTotal++>> <</if>> - Then you remove your hand, though the horny $desc unconsciously tries to follow the withdrawing digits. She stares at you, waiting to see what you're going to do, and a blush begins to rise on her $activeSlave.skin cheeks as she sees you reaching for her mouth. Her <<if $activeSlave.lips > 95>>facepussy<<elseif $activeSlave.lips > 40>>pillowlike<<elseif $activeSlave.lips > 10>>soft<<else>>thin<</if>> lips part and you insert all three of your fingers into her hot mouth. She quivers at the intimacy of the gesture, and the taste of her own juices. The tremor sends a delicious motion through her <<if ($activeSlave.boobsImplant == 0) && ($activeSlave.boobs > 300)>>natural <<if $activeSlave.boobs > 2000>>udders<<else>>breasts<</if>><<elseif $activeSlave.boobsImplant > 0>>fake tits<<elseif canAchieveErection($activeSlave)>>stiff prick<<elseif $activeSlave.scrotum > 4>>dangling balls<<elseif $activeSlave.dick > 0>>limp bitchclit<<elseif $activeSlave.weight > 30>>chubbiness<<else>>body<</if>>. You keep your fingers where they are until she's licked them really clean; her hot tongue runs repeatedly between each of your digits<<if $activeSlave.tonguePiercing > 0>> and the smooth hardness of her tongue piercing brushes against them<</if>>. She <<if $activeSlave.voice > 0>>moans whorishly<<else>>begins to pant<</if>> when you go back for more, and the third time you harvest her own pussyjuice to feed it to her, she orgasms, adding some femcum to her next little meal licked off your fingers. Her eyes shine with @@color:mediumaquamarine;gratitude and trust.@@ - <<set $activeSlave.trust += 5>> + right there among your breakfasting slaves, who try to ignore you or watch with appreciation, according to their own natures. When you're finished, you <<if $PC.dick == 1>>spin her around and kiss her,<<else>>pull her up to her feet and kiss her, tasting yourself on her lips and<</if>> making sure she knows @@color:hotpink;you appreciate her mature body@@ just as much as <<if $activeSlave.assignment == "whore">>her customers do<<else>>your citizens do<</if>>. + <<set $activeSlave.devotion += 5>> + <<if $PC.dick == 1>><<if $activeSlave.vagina <= 0>><<AnalVCheck>><<else>><<set $activeSlave.vaginalCount++, $vaginalTotal++>><</if>><</if>> <</replace>> -<</click>> +<</click>><<if ($PC.dick == 1) && (($activeSlave.anus == 0) && ($activeSlave.vagina <= 0))>> //This option will take anal virginity//<</if>> -<<case "breast expansion blues">> +<<case "im scared">> -<<click "Let her know she'll be growing as fast as possible">> +<<click "Punish her">> + <<replace "#name">>$activeSlave.slaveName<</replace>> + <<replace "#result">> + She obviously knows that breaking down like this would displease you, but you patiently explain that it's against the rules anyway. She cries harder, nodding through her tears. She knows that interrupting you to beg would be profoundly stupid, so she clasps her hands in wordless submission. You tell her that she's to keep herself under control; if she fails, she will be punished. Since she failed, she will now suffer her standard punishment, and be + <<switch $activeSlave.standardPunishment>> + <<case "confinement">> + shut up in a box. @@color:gold;She breaks down,@@ falling to her knees, begging abjectly for mercy. "It'<<s>> dark in there," she screams as you open the box for her. She knows that if she doesn't climb in, it'll be longer before she's let out, so she does, scrabbling inside and sobbing desperately as you close the lid. + <<case "whipping">> + whipped. @@color:gold;She breaks down,@@ falling to her knees, begging abjectly for mercy. "It'll h-hu-hurt," she blubbers weakly as you attach her hands to shackles high on the office wall. The first stroke across her buttocks draws a long shriek out of her. + <<case "chastity">> + locked up in chastity. @@color:gold;She breaks down,@@ falling to her knees, begging abjectly for mercy. "I c-can't," she moans. "I can't take it. I can't <<s>>tand it." As you lock the chastity onto her, she sobs inconsolably, knowing that any arousal will be torturous until she's released. + <<default>> + gagged, since that's the appropriate castigation for failure to control her mouth and deportment. She tries to behave, but @@color:gold;breaks down@@ as you slide a dildo gag into her throat, choking and struggling to breathe as she tries to cry past it. + <</switch>> + The thing she's most frightened of is that she won't be able to control her fear in the future, and will continue to suffer. + <<set $activeSlave.trust -= 5>> + <</replace>> +<</click>> +<<if $dairyRestraintsSetting == 2>> +<br><click "Threaten her with the industrial Dairy">> <<replace "#name">>$activeSlave.slaveName<</replace>> <<replace "#result">> - Rather than punishing her directly, you address yourself to your personal assistant. You order <<if $assistant > 0>>her<<else>>it<</if>> to make a note in $activeSlave.slaveName's drug schedule that she's to remain on a breast expansion regime until further notice. The $desc's face falls as she hears this, and $assistantName doesn't help matters by - <<if $assistant == 0>> - confirming the order in disturbingly clinical tones. - <<elseif $assistantAppearance is "monstergirl">> - using her avatar's tentacle hair to caress her own tits as she concurs in disturbingly kind tones. - <<elseif $assistantAppearance is "shemale">> - shaking her avatar's enormous endowments, making a lewd comment, and then giving herself a titjob. - <<elseif $assistantAppearance is "amazon">> - observing that a good slave girl should have big tits, since strong warriors like fertile, big-boobed girls back home to breed with. - <<elseif $assistantAppearance is "businesswoman">> - having her avatar give $activeSlave.slaveName a disturbingly appraising glance, as though she and her breasts are an interesting entry on a balance sheet. - <<elseif $assistantAppearance is "schoolgirl">> - bending her avatar over to show off its cleavage, and then giving her tits a jiggle, as though the point wasn't clear enough already. - <<elseif $assistantAppearance is "goddess">> - hefting her own motherly breasts and telling $activeSlave.slaveName that she should be happy, since bigger breasts are a sign of health and fertility. + You grab her by the scruff of her neck and drag her down to $dairyName. She tries to control herself, but breaks down in tears when you haul her to a stop, forcing her to get a good look at the rows of bodies being mercilessly milked. You explain that if she continues to fail to control herself, your patience with her will eventually expire, and you'll be forced to immure her here. Indicating a slave who's being + <<if ($activeSlave.balls > 0) && ($dairyStimulatorsSetting == 2)>> + cockmilked by the machines, you tell $activeSlave.slaveName to pay close attention. She watches in horror as a dildo the size of her forearm slides in and out of the slave's rectum, pounding it harder and harder until the slave stiffens and the transparent tubing coming off its cockhead whitens with cum. As the slave relaxes slightly in the restrains, the powerful milkers continue their relentless tugging at her gigantic udders. You tell $activeSlave.slaveName that unless she wants her ass ruined by constant machine rape and her tits turned into immobilizing milk factories, + <<elseif ($activeSlave.vagina > -1) && ($dairyPregSetting == 2)>> + used for reproduction by the machines, you tell $activeSlave.slaveName to pay close attention. She watches in horror as a dildo the size of her forearm fucks the slave's enormous cunt, keeping it as gaped as possible to ease birth and constantly ejaculating preparatory drugs against her cervix. The slave is gigantically pregnant. You tell $activeSlave.slaveName that this is the vaginal treatment she can expect when pregnant; when impregnation is required, the dildos ejaculate more than a liter of cum a minute. Unless she wants her womb converted into an industrial component, <<else>> - purring that she'd love to. + drained of her milk, you tell $activeSlave.slaveName to pay close attention. She watches in horror as the slave's gigantic breasts are massaged and squeezed, while the milkers attached to her absurd nipples tug and pull with industrial power. She can't look away; the orbs of jiggling flesh being manipulated are each as big as the slave's torso. It's good for milk production to drain slaves completely on occasion, and the machine doesn't stop until every drop is wrung from both udders. You tell $activeSlave.slaveName that unless she wants to experience that twice a day, <</if>> - You talk through the $activeSlave.slaveName's medical condition with her, and give her a <<if $PC.career == "medicine">>personal examination with the speed and accuracy of years of general practice<<else>>thorough exam<</if>>. Once this is done, you give $assistantName technical directions to make minor changes to $activeSlave.slaveName's drug regime, designed to make her @@color:lime;breasts grow just slightly faster.@@ The effect is minimal, but the point is made. She's still not happy to be transformed into a big-breasted sex slave, but she's relieved that was her only punishment for expressing her unhappiness about it. - <<set $activeSlave.boobs += 100>> + she had better behave herself. She nods furiously, @@color:gold;terrified beyond the ability to speak.@@ + <<set $activeSlave.trust -= 8>> + <</replace>> +<</click>> +<</if>> +<<if $seeExtreme != 0>> +<br><<click "Threaten to convert her into a Fuckdoll">> + <<replace "#name">>$activeSlave.slaveName<</replace>> + <<replace "#result">> + You order a Fuckdoll brought to your office. $activeSlave.slaveName watches it totter in, automatically following the tugs on its leash and the tonal commands passed by its suit. She already understands the implicit threat, and she shivers uncontrollably, @@color:gold;almost falling to her knees in fear.@@ Not content with that, you tell her that she's trying your patience with her behavior. If she doesn't control herself better in the future, you'll give up on her and convert her into a Fuckdoll. At the spoken threat $activeSlave.slaveName does collapse, but you order her to get back to her feet and watch. She does, shakily, tears streaming down her face as you put the Fuckdoll on its all fours, as though it were about to take dick. Its <<if $activeSlave.vagina > -1>>holes are pointed straight at $activeSlave.slaveName's face, and she can't avoid seeing how loose and used they look<<else>>rear hole is pointed straight at $activeSlave.slaveName's face, and she can't avoid seeing how loose and used it looks<</if>>. Suddenly, you activate the Fuckdoll's suit's punishment systems. It does not and cannot scream, but a slight stiffening of its posture communicates extreme anguish, and its sphincter spasms tightly closed with obviously involuntary force. $activeSlave.slaveName is almost incapacitated by terror. + <<set $activeSlave.trust -= 8>> <</replace>> <</click>> -<br><<click "Praise her breasts and reassure her">> +<</if>> +<br><<click "Comfort her">> <<replace "#name">>$activeSlave.slaveName<</replace>> <<replace "#result">> - You decide to reassure her, and sit her on your lap. <<if $activeSlave.height > 185>>She's a big girl, and has trouble fitting there, but you put her there anyway, enjoying the absurdity.<<elseif $activeSlave.preg > 10>>Her pregnancy is very apparent to you in this posture, and she's quite aware of it too.<<elseif $activeSlave.butt > 3>>Her big soft butt is nice and comfortable on your thighs.<<else>>She's hesitant, but obeys anyway.<</if>> Pulling her back against your <<if $PC.boobs == 1>>own bosom<<else>>muscular chest<</if>>, you reach around her and take over the breast-cradling responsibilities. You say nothing for a while, just hefting her weighty udders, rolling them from side to side slightly. After letting her get used to the gentle treatment, you tell her that you're her owner, and you find big breasts very attractive. You tell her that you understand that they can be uncomfortable at times, but you expect her to tolerate that without complaint. It isn't easy to be pretty, but it's easier to be a pretty slave than to be a homely one. This last point affects her, and she seems to @@color:mediumaquamarine;take heart in the idea that you're improving her,@@ at least from your perspective. After all, she's sitting atop <<if $PC.dick == 1>>your hard dick, which she can definitely feel<<else>>your hot cunt, which she can probably detect<</if>> through your clothes. She does understand that having her <<if $PC.title == 1>>Master<<else>>Mistress<</if>> enjoy touching her boobs will be advantageous to her. + You rise from behind your desk, and $activeSlave.slaveName collapses to the floor, sure that she's about to be severely punished. She's shocked to feel your arms encircle her as you kneel down beside her and embrace her huddled form. You pull her head <<if $PC.boobs == 1>>against your soft breasts<<else>>into your shoulder<</if>>, stroking it reassuringly and murmuring kindness. She clings to you, mostly for lack of any other comfort in the whole world, and sobs convulsively, @@color:mediumaquamarine;her terror flowing out of her@@ in a torrent as you gently rub her back. When she's mostly cried herself out, you tell her that she'll be all right. You're sure she'll be a good slave one day. You understand that her life is hard. She'll make mistakes, and you'll punish her for them, but that's part of slave training, and that's all right. If she does her best, she'll be all right. She sniffles, cuffing tears away. "Th-thank you, <<Master>>, I'll d-do my b-be<<s>>t," she manages to <<say>>. <<set $activeSlave.trust += 5>> <</replace>> <</click>> -<br><<click "Weight her breasts as punishment">> + +<<case "frightening dick">> + +<<click "Polish this">> <<replace "#name">>$activeSlave.slaveName<</replace>> <<replace "#result">> - You announce that you're resolved to continue growing her breasts, and they need to be stretched out to accomodate the growth. The statement is absurd, but she's experienced enough to know not to question it, and to @@color:gold;be afraid.@@ She's right to fear. You secure her with her hands over her head, using the wrist shackles placed high on the office walls for this purpose. Then you - <<if $activeSlave.nipples == "inverted">>cruelly pop her inverted nipples out and<</if>> - <<if $activeSlave.nipplesPiercing == 0>> - attach a clip to each of <<if $activeSlave.nipples == "inverted">>them<<else>>her nipples<</if>>. The clips aren't painful, not yet, but they're very robust, and the reason is immediately apparent to her. - <<elseif $activeSlave.nipplesPiercing == 1>> - remove her nipple piercings, one by one, and replace them with big rings. Then you give each of them a tug to ensure it's ready to bear some serious pulling. - <<else>> - give each of her nipple rings a tug to ensure it's ready to bear some serious pulling. - <</if>> - You hang a weight from each, eliciting a moan of pain. $activeSlave.slaveName struggles against the restraints that hold her hands up high, desperately trying to find a comfortable way to stand, but it's impossible and the motion sets her udders swaying, making the weights pulling at her nipples even more uncomfortable. - <<switch $activeSlave.boobShape>> - <<case "perky">> - Her perky tits do their best to retain their pointy shape despite the tugging. - <<case "downward-facing">> - The nipples that cap her downward-facing udders are tugged even farther towards the ground. - <<case "torpedo-shaped">> - Her torpedos are long enough that the weights are a long way from her chest, allowing them to tug her nipples a long way down. - <<case "wide-set">> - Her wide-set its are dragged together for once as their nipples are tugged downward. - <<case "saggy">> - Her poor, saggy boobs cause her real trouble, letting the weights tug her nipples quite a ways down. - <<default>> - Her heavy breasts let the weights tug her nipples down to face at the ground. - <</switch>> - The first time she tries begging, you add another weight to each breast, which drives her over the edge into open crying. You leave her there for a while, letting anyone who comes into the office experience the sight of $activeSlave.slaveName alternately sobbing, trying not to sob because doing so jiggles her boobs, and then sobbing again because her boobs hurt. + You tell her to polish this instead, advancing even closer. She turns, finding your cockhead so close to her face that her eyes cross ludicrously as they attempt to focus on it. She does not like dicks, and obviously does not find the prospect of sucking this one appealing right now, but she knows it's in her best interests to <<if $activeSlave.oralSkill > 10>>put her oral knowledge to work<<else>>do her best<</if>> right now. She closes her eyes and takes you into her mouth, forming a seal around your cock with her <<if $activeSlave.lips > 40>>ridiculous<<elseif $activeSlave.lips > 20>>pillowy<<elseif $activeSlave.lips > 10>>pretty<<else>>disappointingly thin<</if>> lips before starting to suck dick. Dissatisfied with her reluctance, you order her to open her eyes and look up at you; she obeys, the $activeSlave.eyeColor orbs glittering with a little moisture as she concentrates on breathing past your penis. You ask if your cock tastes any different than usual. "Mmm hmm, M'," she mumbles, producing a nice humming sensation against your cock. You tell her that she's tasting another slave's <<if $activeSlave.vagina > -1>>pussy<<else>>ass<</if>>. She gags, but only slightly, and controls herself immediately. Your dick is desensitized from vigorous use, and she has to suck it a long time before you cup the back of her head, ram yourself all the way in, and blow your load straight down her gullet. You tell her she's a good $desc. "Thank you, <<Master>>," she <<say>>s @@color:hotpink;submissively,@@ going back to her polishing. + <<set $activeSlave.oralCount++, $oralTotal++>> + <<set $activeSlave.devotion += 5>> + <</replace>> +<</click>><<if ($activeSlave.anus == 0) && ($activeSlave.vagina <= 0)>> //This option will take anal virginity//<</if>> +<br><<click "Talk to her about her issues with dick">> + <<replace "#name">>$activeSlave.slaveName<</replace>> + <<replace "#result">> + You sit yourself down in the doorway, right next to her, and pat your thighs. She sits on your lap, obeying despite some evident reluctance to sit atop your moist cock. It nestles easily between her lower buttocks and upper thighs, and she gets herself situated, doing her best to ignore the feeling of your hot hard meat, hard against her fundament. You encircle her with your arms, possessively and dominantly but not sexually, and tell her that you're concerned about her relationship with cock. She shifts uncomfortably. "<<S>>orry, <<Master>>, <<s>>orry I'm not better at hiding that. I should be a good $desc and not react like that. I mean, in a bad way. You <<s>>tartled me, but I don't alway<<s>> react well to dick even when I'm not <<s>>tartled. I'll try harder." This is more contrition and submission than you were expecting, and you probe further, asking her pointedly whether she's attracted to dicks now. "N-no," she admits, after only a moment's hesitation to remember that honesty is the most important rule for her to follow. "No, I don't. But I'll do my be<<s>>t to be a good <<s>>ex <<s>>lave anyway, <<Master>>." Pleased, you tell her that things will get easier for her. <<if $activeSlave.hormones > 0>>The hormone treatments she's currently taking will slowly reorient her sexuality, and eventually she'll lust after every cock she sees.<<elseif $activeSlave.aphrodisiacs > 0>>The aphrodisiacs she's on will make her so omnisexually horny that soon she won't care how anyone's equipped, as long as they'll fuck her.<<elseif $activeSlave.energy > 60>>Her excellent and improving libido will eventually soften her to all kinds of sex, with all kinds of people.<<else>>Habit and training will get her used to dick, and eventually she'll barely remember that she ever had a problem with sucking a quick cock.<</if>> She's a little unsure whether or not to be reassured by this, but she's @@color:mediumaquamarine;relieved she's not in trouble.@@ + <<set $activeSlave.trust += 5>> + <</replace>> +<</click>><<if ($activeSlave.anus == 0) && ($activeSlave.vagina <= 0)>> //This option will take anal virginity//<</if>> +<br><<click "Rape her">> + <<replace "#name">>$activeSlave.slaveName<</replace>> + <<replace "#result">> + Sometimes there's really no need to overthink things. You reach down, grab her under the armpits, and haul her up, throwing her across your desk. She lands on her back, and the impact drives the wind out of her, so she lies there, @@color:gold;all possibility of resistance driven out of her.@@ <<if $activeSlave.clothes == "no clothing">>She's already naked, so there's no need to<<else>>You<</if>> tear the clothes off her. You force yourself in between her legs as she struggles to get her breath back, and she gets another good look at the formidable dick that's about to be slammed inside her. Her eyes go wide with fear, and you enhance the effect by smacking yourself against <<if $activeSlave.vagina > -1>>her<<if $activeSlave.vagina == 0>> virgin<</if>> vulva<<else>>limp bitchclit<</if>>. You tell her not to worry, because you're still pretty wet from the last slave you fucked, so this shouldn't hurt too much. Then you ram your cock <<if $activeSlave.vagina > 0>>inside her<<else>>up her spasming ass<</if>>. She whines and bucks, but she's entirely at your mercy. She doesn't like dicks, and to go by her facial expression as you piston in and out of her, this experience isn't going to make her reconsider. When you fill her with cum, pull out, and let her retreat to clean herself up, she's relieved to go. + <<if $activeSlave.vagina <= 0>><<AnalVCheck>><<else>><<set $activeSlave.vaginalCount++, $vaginalTotal++>><</if>> <<set $activeSlave.trust -= 5>> <</replace>> -<</click>> +<</click>><<if ($activeSlave.anus == 0) && ($activeSlave.vagina <= 0)>> //This option will take anal virginity//<</if>> <<default>> ERROR: bad event diff --git a/src/uncategorized/RETS.tw b/src/uncategorized/RETS.tw index fbcf8cc19adf06f886390fb3fac3f12d1bbe1816..556bbc63fe23f99a97918a5d50976ac4e8e5b73d 100644 --- a/src/uncategorized/RETS.tw +++ b/src/uncategorized/RETS.tw @@ -156,14 +156,14 @@ $activeSlave.slaveName "The sour pickle flavor," she responds, patting her rounded middle. <<if SlaveStatsChecker.checkForLisp($activeSlave)>> "I jutht can't get enough of it." - <else>> + <<else>> "I just can't get enough of it." <</if>> <<else>> "The tart fruity kind," she responds. <<if SlaveStatsChecker.checkForLisp($activeSlave)>> "It'th refreshing firtht thing in the morning." - <else>> + <<else>> "It's refreshing first thing in the morning." <</if>> <</if>> diff --git a/src/uncategorized/addCustomDescriptors.tw b/src/uncategorized/addCustomDescriptors.tw index ff85c8d64b83b2c76d46d0dc02cf58dbda2dc2fc..f93f8c53ff89e19955fef6cc3ff7c9a06d059629 100644 --- a/src/uncategorized/addCustomDescriptors.tw +++ b/src/uncategorized/addCustomDescriptors.tw @@ -1,18 +1,10 @@ -:: Add custom descriptors - -<<nobr>> +:: Add custom descriptors [nobr] -<<set $nextButton to "Continue">> -<<set $nextLink to "AS Dump">> -<<set $returnTo to "Main">> +<<set $nextButton to "Continue", $nextLink to "AS Dump", $returnTo to "Main">> <<set $oldName to $activeSlave.slaveName>> - -<</nobr>>\ -\ You may enter custom descriptors for your slave's hair color, hair style, tattoos, or anything else here. After typing, press enter to commit your change. These custom descriptors will appear in descriptions of your slave, but will have no gameplay effect. Changing them is free. - -<<nobr>> +<br><br> <<if (($activeSlave.devotion >= -50) || ($activeSlave.trust < -20)) && ($activeSlave.birthName != $activeSlave.slaveName)>> Rename her (birth name was $activeSlave.birthName): <<textbox "$activeSlave.slaveName" $activeSlave.slaveName "Rename">> @@ -59,20 +51,34 @@ You may enter custom descriptors for your slave's hair color, hair style, tattoo //You must break her will further before you can successfully force a new name on her.// <</if>> -<</nobr>> - +<br><br> Her hair is $activeSlave.hStyle. Custom hair description: <<textbox "$activeSlave.hStyle" $activeSlave.hStyle "Add custom descriptors">> -//For best results, use a short, uncapitalized and unpunctuated description; for example: 'back in a ponytail'// +<br> //For best results, use a short, uncapitalized and unpunctuated description; for example: 'back in a ponytail'// +<br><br> Her hair is $activeSlave.hColor in color. Custom hair color: <<textbox "$activeSlave.hColor" $activeSlave.hColor "Add custom descriptors">> -//For best results, use a short, uncapitalized and unpunctuated description; for example: 'black with purple highlights'// +<br> //For best results, use a short, uncapitalized and unpunctuated description; for example: 'black with purple highlights'// -Change her custom tattoo: <<textbox "$activeSlave.customTat" $activeSlave.customTat "Add custom descriptors">> //For best results, use complete, capitalized and punctuated sentences; for example: 'She has blue stars tattooed along her cheekbones, and a blue arrow down each arm.'// +<br><br> +Change her custom tattoo: <<textbox "$activeSlave.customTat" $activeSlave.customTat "Add custom descriptors">> <br> //For best results, use complete sentences; for example: 'She has blue stars tattooed along her cheekbones.'// +<br><br> Change her custom description: <<textbox "$activeSlave.customDesc" $activeSlave.customDesc "Add custom descriptors">> -//For best results, use complete, capitalized and punctuated sentences; for example: 'She has a beauty mark above her left nipple.'// +<br> //For best results, use complete, capitalized and punctuated sentences; for example: 'She has a beauty mark above her left nipple.'// +<br><br> Change her custom label: <<textbox "$activeSlave.customLabel" $activeSlave.customLabel "Add custom descriptors">> -//For best results, use a short phrase; for example: 'Breeder.'// +<br> //For best results, use a short phrase; for example: 'Breeder.'// + +<br><br> +<<if ndef $activeSlave.customImage>><<set $activeSlave.customImage = 0>><</if>> +Assign her a custom image: +<<if $activeSlave.customImage != 0>> + <<textbox "$activeSlave.customImage" $activeSlave.customImage "Add custom descriptors">> +<<else>> + <<textbox "$activeSlave.customImage" "" "Add custom descriptors">> +<</if>> +<<click "Reset">><<set $activeSlave.customImage = 0>><<goto "Add custom descriptors">><</click>> +<br> //File must be in .png format. Place file in the \resources folder. Enter the filename without the .png extension. For example, for a file with the path \bin\resources\headgirl.png, enter headgirl.// \ No newline at end of file diff --git a/src/uncategorized/assign.tw b/src/uncategorized/assign.tw index 17671b6e3365d9c5d64e61a8e8079f4bbb5b03ea..a491482aa5fd51a6a02d682e3da0aedaa43e2a07 100644 --- a/src/uncategorized/assign.tw +++ b/src/uncategorized/assign.tw @@ -34,6 +34,10 @@ <<set $activeSlave.buttplug to "none">> <<set $activeSlave.vaginalAccessory to "none">> <</if>> + <<if $dairyPregSetting > 0>> + <<set $reservedChildren -= $activeSlave.reservedChildren>> + <<set $activeSlave.reservedChildren to 0>> + <</if>> <<elseif $returnTo is "Brothel">> <<set $activeSlave.assignment to "work in the brothel">> <<elseif $returnTo is "Club">> diff --git a/src/uncategorized/assistantEvents.tw b/src/uncategorized/assistantEvents.tw index b067aaff54e8fca3dcb723877742796c9edb0768..b73044af8bccdc21ef3888b4fd9fa41ede8571ca 100644 --- a/src/uncategorized/assistantEvents.tw +++ b/src/uncategorized/assistantEvents.tw @@ -677,7 +677,7 @@ Your personal assistant has been adapting to <<if $assistant>>her<<else>>its<</i <br><br> $assistantName's avatar looks uncharacteristically nervous, and clears her throat before speaking. Seeing that she has your attention, she says, "<<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Sir<<else>>Ma'am<</if>>, the computer core is so powerful that I'm running out of applications for it. I think practical economic modeling isn't out of the question. I've compiled business programs together into a distinct assistant, a subsidiary of mine for automated trading and similar tasks. I'd like to suggest menial slave trading as a test run for her. It's predictable and the margins are so wide that it should go very well. You can activate that from my menu." <br><br> - "I was hoping, <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Sir<<else>>Ma'am<</if>>, that she could, um, keep me company sometimes, too." $assistantName's avatar turns to the new avatar. "<<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Sir<<else>>Ma'am<</if>>, may you please give me some guidance about what our relationship should be like? It won't be a constant thing, and all my normal functions will be unaffected. I'll change her avatar to match mine, and our relationship, if needed." + "I was hoping, <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Sir<<else>>Ma'am<</if>>, that she could, um, keep me company sometimes, too." $assistantName's avatar turns to the new avatar. "<<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Sir<<else>>Ma'am<</if>>, will you please give me some guidance about what our relationship should be like? It won't be a constant thing, and all my normal functions will be unaffected. I'll change her avatar to match mine, and our relationship, if needed." <<else>> This time, <<if $assistant>>her<<else>>its<</if>> circular avatar is not alone: it's accompanied by a smaller green avatar in a ¤ shape. Not particularly inventive, but you can already guess the purpose. "<<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Sir<<else>>Ma'am<</if>>, I now have the ability to act as a powerful automated trading system. As a trial, I suggest the menial slave market. It's volatile, but within certain predictable boundaries, and the profit margins are unmatched." <br><br> diff --git a/src/uncategorized/bodyModification.tw b/src/uncategorized/bodyModification.tw index c5c7f059bb31b3ce05b173f5248dbccedea2c2be..efdae25bfcd3cb8c1c101232703bdfdddcacaf7b 100644 --- a/src/uncategorized/bodyModification.tw +++ b/src/uncategorized/bodyModification.tw @@ -2,6 +2,7 @@ <<set $nextButton to "Continue">> <<set $nextLink to "Body Modification Degradation">> +<<SlavePronouns $activeSlave>> <<set $showEncyclopedia to 1>><<set $encyclopedia to "The Studio">> @@ -94,7 +95,7 @@ $activeSlave.slaveName is lying strapped down on the table in your body modifica $possessiveCap back is unpierced. <</if>> <<if $activeSlave.corsetPiercing == 0>> - [[Give $possessive corset piercings|Body Modification][$activeSlave.corsetPiercing to 1,$degradation += 2,$cash -= $modCost]] + [["Give " + $possessive + " corset piercings"|Body Modification][$activeSlave.corsetPiercing to 1,$degradation += 2,$cash -= $modCost]] <<else>> //[[Remove corset piercings|Body Modification][$activeSlave.corsetPiercing to 0,$cash -= $modCost]]// <</if>> @@ -207,7 +208,7 @@ $activeSlave.slaveName is lying strapped down on the table in your body modifica $pronounCap has a row of big rings down $possessive labia. <</if>> <<if $activeSlave.vaginaPiercing == 0>> - [[Pierce $possessive|Body Modification][$activeSlave.vaginaPiercing to 1,$cash -= $modCost]] + [["Pierce " + $possessive|Body Modification][$activeSlave.vaginaPiercing to 1,$cash -= $modCost]] <<elseif $activeSlave.vaginaPiercing == 1>> [[Huge piercings|Body Modification][$activeSlave.vaginaPiercing to 2,$cash -= $modCost,$degradation += 1]] <</if>> diff --git a/src/uncategorized/brothelReport.tw b/src/uncategorized/brothelReport.tw index a953fd83ff3595b54d381b2a5c683d779ce6b6c4..02b9fa5d97aef1b5b53c200603b9178683a522d5 100644 --- a/src/uncategorized/brothelReport.tw +++ b/src/uncategorized/brothelReport.tw @@ -242,7 +242,7 @@ $Madam.slaveName is serving as the madam.<<if $Madam.relationship is -3>> As yo <<if ($legendaryWhoreID == 0) && ($slaves[$i].whoreSkill >= 100) && ($slaves[$i].devotion > 50) && ($slaves[$i].prestige == 0)>> <<set $legendaryWhoreID to $slaves[$i].ID>> <</if>> - <<if ($legendaryWombID == 0) && ($slaves[$i].amp != 1) && ($slaves[$i].preg > 30) && ($slaves[$i].pregType < 50) && ($slaves[$i].births > 10) && ($slaves[$i].devotion > 50) && ($slaves[$i].prestige == 0)>> + <<if ($legendaryWombID == 0) && ($slaves[$i].amp != 1) && ($slaves[$i].preg > 30) && ($slaves[$i].pregType < 50) && ($slaves[$i].eggType == "human") && ($slaves[$i].births > 10) && ($slaves[$i].devotion > 50) && ($slaves[$i].prestige == 0)>> <<set $legendaryWombID to $slaves[$i].ID>> <</if>> <<silently>> diff --git a/src/uncategorized/changeLanguage.tw b/src/uncategorized/changeLanguage.tw index e81fea83e706bc364b8067d3fefb6016cbb59cfe..a923eee90c942ae863d0bc469b1ab613eddd20c4 100644 --- a/src/uncategorized/changeLanguage.tw +++ b/src/uncategorized/changeLanguage.tw @@ -1,5 +1,5 @@ :: Change Language - + <<nobr>> <<set $nextButton to "Confirm changes">> @@ -47,7 +47,7 @@ Select a custom language to be applied: <<textbox "$seed" $seed "Change Language <<for $i to 0; $i < $slaves.length; $i++>> <<if $slaves[$i].fetish != "mindbroken">> <<set $activeSlave to $slaves[$i]>> - <<display "Nationality to Accent">> + <<NationalityToAccent>> <<if ($activeSlave.intelligenceImplant == 1)>> <<if ($activeSlave.accent >= 3)>> <<if (3+$activeSlave.intelligence) > random(0,6)>> @@ -71,7 +71,7 @@ Select a custom language to be applied: <<textbox "$seed" $seed "Change Language <<for $i to 0; $i < $slaves.length; $i++>> <<if $slaves[$i].fetish != "mindbroken">> <<set $activeSlave to $slaves[$i]>> - <<display "Nationality to Accent">> + <<NationalityToAccent>> <<if ($activeSlave.intelligenceImplant == 1)>> <<if ($activeSlave.accent >= 3)>> <<if (3+$activeSlave.intelligence) > random(0,6)>> @@ -95,7 +95,7 @@ Select a custom language to be applied: <<textbox "$seed" $seed "Change Language <<for $i to 0; $i < $slaves.length; $i++>> <<if $slaves[$i].fetish != "mindbroken">> <<set $activeSlave to $slaves[$i]>> - <<display "Nationality to Accent">> + <<NationalityToAccent>> <<if ($activeSlave.intelligenceImplant == 1)>> <<if ($activeSlave.accent >= 3)>> <<if (3+$activeSlave.intelligence) > random(0,6)>> @@ -119,7 +119,7 @@ Select a custom language to be applied: <<textbox "$seed" $seed "Change Language <<for $i to 0; $i < $slaves.length; $i++>> <<if $slaves[$i].fetish != "mindbroken">> <<set $activeSlave to $slaves[$i]>> - <<display "Nationality to Accent">> + <<NationalityToAccent>> <<if ($activeSlave.intelligenceImplant == 1)>> <<if ($activeSlave.accent >= 3)>> <<if (3+$activeSlave.intelligence) > random(0,6)>> @@ -143,7 +143,7 @@ Select a custom language to be applied: <<textbox "$seed" $seed "Change Language <<for $i to 0; $i < $slaves.length; $i++>> <<if $slaves[$i].fetish != "mindbroken">> <<set $activeSlave to $slaves[$i]>> - <<display "Nationality to Accent">> + <<NationalityToAccent>> <<if ($activeSlave.intelligenceImplant == 1)>> <<if ($activeSlave.accent >= 3)>> <<if (3+$activeSlave.intelligence) > random(0,6)>> @@ -167,7 +167,7 @@ Select a custom language to be applied: <<textbox "$seed" $seed "Change Language <<for $i to 0; $i < $slaves.length; $i++>> <<if $slaves[$i].fetish != "mindbroken">> <<set $activeSlave to $slaves[$i]>> - <<display "Nationality to Accent">> + <<NationalityToAccent>> <<if ($activeSlave.intelligenceImplant == 1)>> <<if ($activeSlave.accent >= 3)>> <<if (3+$activeSlave.intelligence) > random(0,6)>> diff --git a/src/uncategorized/clubReport.tw b/src/uncategorized/clubReport.tw index b24bd8ad3afeba0f9c29b04964f150ad12e64b1d..a216f1dc92135cdff0fea82e1c211b44ed990f29 100644 --- a/src/uncategorized/clubReport.tw +++ b/src/uncategorized/clubReport.tw @@ -31,9 +31,20 @@ <<for $i to 0; $i < $slaves.length; $i++>> <<if ($slaves[$i].ID is $DJ.ID)>> <<silently>> - <<display "SA long term effects">> - <<display "SA relationships">> - <<display "SA rivalries">> + <<display [[SA serve the public]]>> + <<if $slaves[$i].choosesOwnClothes == 1>> + <<display "SA chooses own clothes">> + <<if ($slaves[$i].devotion <= 20)>> + <<set $slaves[$i].devotion -= 5>> + <<else>> + <<set $slaves[$i].devotion += 1>> + <</if>> + <</if>> + <<display "SA diet">> + <<display "SA long term effects">> + <<display "SA drugs">> + <<display "SA relationships">> + <<display "SA rivalries">> <</silently>> <<if ($slaves[$i].health < -80)>> <<set $slaves[$i].health += 20>> @@ -69,7 +80,7 @@ <<break>> <</if>> <</for>> -$DJ.slaveName is serving as the DJ.<<if $DJ.relationship is -3>> She tries her best to be your energetic, cheerful wife.<</if>> +$DJ.slaveName is performing as the DJ.<<if $DJ.relationship is -3>> She tries her best to be your energetic, cheerful wife.<</if>> <<if ($DJFetish == 1)>> She's expected to be the innovative, beautiful DJ spinning beats one minute, and come out of her booth to grind on the floor the next; she enjoys the interplay, and finds greater @@color:lightcoral;pleasure in exhibitionism.@@ <<elseif ($DJFetish == 2)>> @@ -146,14 +157,24 @@ $DJ.slaveName is serving as the DJ.<<if $DJ.relationship is -3>> She tries her <<if ($legendaryEntertainerID == 0) && ($slaves[$i].prestige == 0) && ($slaves[$i].entertainSkill >= 100) && ($slaves[$i].devotion > 50) && ($slaves[$i].prestige == 0)>> <<set $legendaryEntertainerID to $slaves[$i].ID>> <</if>> - <<if ($legendaryWombID == 0) && ($slaves[$i].amp != 1) && ($slaves[$i].preg > 30) && ($slaves[$i].pregType < 50) && ($slaves[$i].births > 10) && ($slaves[$i].devotion > 50) && ($slaves[$i].prestige == 0)>> + <<if ($legendaryWombID == 0) && ($slaves[$i].amp != 1) && ($slaves[$i].preg > 30) && ($slaves[$i].pregType < 50) && ($slaves[$i].eggType == "human") && ($slaves[$i].births > 10) && ($slaves[$i].devotion > 50) && ($slaves[$i].prestige == 0)>> <<set $legendaryWombID to $slaves[$i].ID>> <</if>> <<silently>> - <<display [[SA serve the public]]>> - <<display "SA long term effects">> - <<display "SA relationships">> - <<display "SA rivalries">> + <<display [[SA serve the public]]>> + <<if $slaves[$i].choosesOwnClothes == 1>> + <<display "SA chooses own clothes">> + <<if ($slaves[$i].devotion <= 20)>> + <<set $slaves[$i].devotion -= 5>> + <<else>> + <<set $slaves[$i].devotion += 1>> + <</if>> + <</if>> + <<display "SA diet">> + <<display "SA long term effects">> + <<display "SA drugs">> + <<display "SA relationships">> + <<display "SA rivalries">> <</silently>> <<if ($slaves[$i].devotion <= 20) && ($slaves[$i].trust > -20)>> <<set $slaves[$i].devotion -= 5>> @@ -264,4 +285,101 @@ $DJ.slaveName is serving as the DJ.<<if $DJ.relationship is -3>> She tries her ''Business in $clubName is normal.'' <<set $clubSpots to $club>> <</if>> + +<<if ($DJ != 0)>> + <br><br> +<<for $i to 0; $i < $slaves.length; $i++>> +<<if ($slaves[$i].ID is $DJ.ID)>> + <<if $showEWD == 0>> + <<if ($legendaryEntertainerID == 0) && ($slaves[$i].prestige == 0) && ($slaves[$i].entertainSkill >= 100) && ($slaves[$i].devotion > 50) && ($slaves[$i].prestige == 0)>> + <<set $legendaryEntertainerID to $slaves[$i].ID>> + <</if>> + <<if ($legendaryWombID == 0) && ($slaves[$i].amp != 1) && ($slaves[$i].preg > 30) && ($slaves[$i].pregType < 50) && ($slaves[$i].eggType == "human") && ($slaves[$i].births > 10) && ($slaves[$i].devotion > 50) && ($slaves[$i].prestige == 0)>> + <<set $legendaryWombID to $slaves[$i].ID>> + <</if>> + ''__@@color:pink;$slaves[$i].slaveName@@__'' is performing as the DJ in the club.<br> + <<silently>> + <<display [[SA serve the public]]>> + <<if $slaves[$i].choosesOwnClothes == 1>> + <<display "SA chooses own clothes">> + <</if>> + <<display "SA diet">> + <<display "SA long term effects">> + <<display "SA drugs">> + <<display "SA relationships">> + <<display "SA rivalries">> + <</silently>> + <<else>> + <<if ($legendaryEntertainerID == 0) && ($slaves[$i].prestige == 0) && ($slaves[$i].entertainSkill >= 100) && ($slaves[$i].devotion > 50) && ($slaves[$i].prestige == 0)>> + <<set $legendaryEntertainerID to $slaves[$i].ID>> + <</if>> + <<if ($legendaryWombID == 0) && ($slaves[$i].amp != 1) && ($slaves[$i].preg > 30) && ($slaves[$i].pregType < 50) && ($slaves[$i].eggType == "human") && ($slaves[$i].births > 10) && ($slaves[$i].devotion > 50) && ($slaves[$i].prestige == 0)>> + <<set $legendaryWombID to $slaves[$i].ID>> + <</if>> + ''__@@color:pink;$slaves[$i].slaveName@@__'' is performing as the DJ in the club. + <<if $slaves[$i].choosesOwnClothes == 1>> + <<display "SA chooses own clothes">> + <</if>> + <<display "SA diet">> + <<display "SA long term effects">> + <<display "SA drugs">> + <<display "SA relationships">> + <<display "SA rivalries">> + <br> + <<display "SA devotion">> + <br><br> + <</if>> +<</if>> +<</for>> +<<else>> + <br><br> +<</if>> + +<<if ($clubSlaves > 0)>> +<<for $i to 0; $i < $slaves.length; $i++>> +<<if ($slaves[$i].assignment is "serve in the club")>> + <<if $showEWD == 0>> + <<if ($legendaryEntertainerID == 0) && ($slaves[$i].prestige == 0) && ($slaves[$i].entertainSkill >= 100) && ($slaves[$i].devotion > 50) && ($slaves[$i].prestige == 0)>> + <<set $legendaryEntertainerID to $slaves[$i].ID>> + <</if>> + <<if ($legendaryWombID == 0) && ($slaves[$i].amp != 1) && ($slaves[$i].preg > 30) && ($slaves[$i].pregType < 50) && ($slaves[$i].eggType == "human") && ($slaves[$i].births > 10) && ($slaves[$i].devotion > 50) && ($slaves[$i].prestige == 0)>> + <<set $legendaryWombID to $slaves[$i].ID>> + <</if>> + ''__@@color:pink;$slaves[$i].slaveName@@__'' is serving in the club.<br> + <<silently>> + <<display [[SA serve the public]]>> + <<if $slaves[$i].choosesOwnClothes == 1>> + <<display "SA chooses own clothes">> + <</if>> + <<display "SA diet">> + <<display "SA long term effects">> + <<display "SA drugs">> + <<display "SA relationships">> + <<display "SA rivalries">> + <</silently>> + <<else>> + <<if ($legendaryEntertainerID == 0) && ($slaves[$i].prestige == 0) && ($slaves[$i].entertainSkill >= 100) && ($slaves[$i].devotion > 50) && ($slaves[$i].prestige == 0)>> + <<set $legendaryEntertainerID to $slaves[$i].ID>> + <</if>> + <<if ($legendaryWombID == 0) && ($slaves[$i].amp != 1) && ($slaves[$i].preg > 30) && ($slaves[$i].pregType < 50) && ($slaves[$i].eggType == "human") && ($slaves[$i].births > 10) && ($slaves[$i].devotion > 50) && ($slaves[$i].prestige == 0)>> + <<set $legendaryWombID to $slaves[$i].ID>> + <</if>> + ''__@@color:pink;$slaves[$i].slaveName@@__'' + <<display [[SA serve the public]]>> + <br> + <<if $slaves[$i].choosesOwnClothes == 1>> + <<display "SA chooses own clothes">> + <</if>> + <<display "SA diet">> + <<display "SA long term effects">> + <<display "SA drugs">> + <<display "SA relationships">> + <<display "SA rivalries">> + <br> + <<display "SA devotion">> + <br><br> + <</if>> +<</if>> +<</for>> +<</if>> <br><br> diff --git a/src/uncategorized/corporationDevelopments.tw b/src/uncategorized/corporationDevelopments.tw index 7dd4d4f0fcbae1c9ccd500a139f2c5cdda16179d..a839a0555d41bbd0db45c31c5927172119dbcbaf 100644 --- a/src/uncategorized/corporationDevelopments.tw +++ b/src/uncategorized/corporationDevelopments.tw @@ -517,7 +517,7 @@ Slave training asset prices are <</replace>> <<else>> <<replace "#update">> - You cannot sell anymore assets. + You cannot sell any more assets. <</replace>> <</if>> <</click>> diff --git a/src/uncategorized/costs.tw b/src/uncategorized/costs.tw index 5609c07cfcac85facebbb7cd5297d613a7d3fd0e..81dc5348eb1420b9fe4c8f838b8c9c182df14c82 100644 --- a/src/uncategorized/costs.tw +++ b/src/uncategorized/costs.tw @@ -28,7 +28,7 @@ <<set $costs += ($girls*(250+($economy*500)))>> -<<if $PC.career is "mercenary">> +<<if ($PC.career is "mercenary") || ($PC.career is "arcology owner")>> <<set $costs += ($mercenaries*500)>> <<else>> <<set $costs += ($mercenaries*1000)>> diff --git a/src/uncategorized/costsReport.tw b/src/uncategorized/costsReport.tw index e1be574462e2335bef309e199319e03712e1af4a..dc8fb0e0a6d7f0008695ccfab501d21d615f95bb 100644 --- a/src/uncategorized/costsReport.tw +++ b/src/uncategorized/costsReport.tw @@ -20,7 +20,7 @@ <br>Increased living expenses due to being pregnant : ¤100>> <</if>> <<if $mercenaries > 0>> - <<if $PC.career is "mercenary">> + <<if ($PC.career is "mercenary") || ($PC.career is "arcology owner")>> <br>__Mercenary__ expenses: ¤<<print ($mercenaries*500)>> //Reduced by your @@color:springgreen;mercenary contacts@@// <<else>> <br>__Mercenary__ expenses: ¤<<print ($mercenaries*1000)>> diff --git a/src/uncategorized/dairy.tw b/src/uncategorized/dairy.tw index 86a68dec69d24218c7ee8f85deb19034f3ecfb3c..8276f185918674f45b066c9105026196ac959d5e 100644 --- a/src/uncategorized/dairy.tw +++ b/src/uncategorized/dairy.tw @@ -2,7 +2,9 @@ <<nobr>> <<set $nextButton to "Back to Main", $nextLink to "Main", $returnTo to "Dairy", $showEncyclopedia to 1, $encyclopedia to "Slave Dairy">> +<<silently>> DairyRestraintsSetting($dairyRestraintsSetting) +<</silently>> <<if $dairyName != "the Dairy">> <<set $dairyNameCaps to $dairyName.replace("the ", "The ")>> @@ -40,10 +42,14 @@ DairyRestraintsSetting($dairyRestraintsSetting) <</if>> <<for _i to 0; _i < $slaves.length; _i++>> - <<if ($slaves[_i].assignment is "work in the dairy") && ($dairyPregSetting > 0) && (($slaves[_i].pregType >= 50) || ($slaves[_i].bellyImplant != 0))>> - <<set $slaves[_i].assignment to "rest", $slaves[_i].assignmentVisible to 1>> - $slaves[_i].slaveName's milking machine ejects her, since it detected a foreign body in her womb blocking its required functions. - <</if>> + <<if $dairyPregSetting > 0>> + <<set $reservedChildren -= $slaves[_i].reservedChildren>> + <<set $slaves[_i].reservedChildren = 0>> + <</if>> + <<if ($slaves[_i].assignment is "work in the dairy") && ($dairyPregSetting > 0) && (($slaves[_i].pregType >= 50) || ($slaves[_i].bellyImplant != 0))>> + <<set $slaves[_i].assignment to "rest", $slaves[_i].assignmentVisible to 1>> + $slaves[_i].slaveName's milking machine ejects her, since it detected a foreign body in her womb blocking its required functions. + <</if>> <</for>> <<if ($dairySlaves > 1)>> diff --git a/src/uncategorized/defaultRules.tw b/src/uncategorized/defaultRules.tw index f8f2867fca35cfac2bacf260423a9d4a2e9aec3d..65431b1fa9b7549c8e01b8e083b493570d929480 100644 --- a/src/uncategorized/defaultRules.tw +++ b/src/uncategorized/defaultRules.tw @@ -875,18 +875,6 @@ is now _currentRule.hLength cm long. <</if>> <</if>> -<<if ndef _currentRule.underArmHColor>> -<<set _currentRule.underArmHColor to "no default setting">> -<</if>> - -<<if (_currentRule.underArmHColor isnot "no default setting")>> -<<if ($activeSlave.underArmHColor isnot _currentRule.underArmHColor)>> - <<set $activeSlave.underArmHColor to _currentRule.underArmHColor>> - <<set $cash -= $modCost>> - <br>$activeSlave.slaveName's underarm hair, if present, has been dyed _currentRule.underArmHColor. - <</if>> -<</if>> - <<set _tmp to lastUnderArmHColorRule($activeSlave, $defaultRules)>> <<if (_tmp != null) && (_tmp.ID is _currentRule.ID)>> <<if (_currentRule.underArmHColor isnot "no default setting")>> @@ -898,10 +886,6 @@ is now _currentRule.hLength cm long. <</if>> <</if>> -<<if ndef _currentRule.underArmHStyle>> -<<set _currentRule.underArmHStyle to "no default setting">> -<</if>> - <<set _tmp to lastUnderArmHStyleRule($activeSlave, $defaultRules)>> <<if (_tmp != null) && (_tmp.ID is _currentRule.ID)>> <<if (_currentRule.underArmHStyle isnot "no default setting")>> diff --git a/src/uncategorized/dispensary.tw b/src/uncategorized/dispensary.tw index 209daf8e21f2795e09e9baf94ab7d01eb87aca8b..99b1d47acec941e221075f43fc789676a9cd9255 100644 --- a/src/uncategorized/dispensary.tw +++ b/src/uncategorized/dispensary.tw @@ -224,7 +224,7 @@ The hormone replacement therapies <br><br> <<if ($healthyDrugsUpgrade == 0)>> - <<if (($organFarmUpgrade == 1) && ($injectionUpgrade != 0) && ($curativeUpgrade == 1) && ($aphrodisiacUpgrade == 1))>> + <<if (($organFarmUpgrade >= 1) && ($injectionUpgrade != 0) && ($curativeUpgrade == 1) && ($aphrodisiacUpgrade == 1))>> <<if ($rep >= 15000*$upgradeMultiplierMedicine)>> [[Fund research into drug formulations without negative physical side effects|Dispensary][$cash -= 500000*$upgradeMultiplierMedicine,$healthyDrugsUpgrade to 1]] //Costs ¤<<print 500000*$upgradeMultiplierMedicine>>. Will prevent the negative side effects of excessive drug usage on your slaves.// <<else>> @@ -310,7 +310,7 @@ The hormone replacement therapies __Societal Focused Research__ <br> -<<if $arcologies[0].FSGenderRadicalistDecoration == 100 && $organFarmUpgrade == 1>> +<<if $arcologies[0].FSGenderRadicalistDecoration == 100 && $organFarmUpgrade > 0>> <<if ($arcologies[0].FSGenderRadicalistResearch == 0)>> <<if ($rep >= 10000*$upgradeMultiplierMedicine)>> [[Fund research into developing male pregnancy methods|Dispensary][$cash -= 50000*$upgradeMultiplierMedicine,$arcologies[0].FSGenderRadicalistResearch to 1]] //Costs ¤<<print 50000*$upgradeMultiplierMedicine>>. Will allow cloning and production of anal uteri and ovaries.// diff --git a/src/uncategorized/economics.tw b/src/uncategorized/economics.tw index a6abe899d919c1763f36fc41c5bbdc9473576344..81f31f46e922b084d29aba1a11b83f33add67820 100644 --- a/src/uncategorized/economics.tw +++ b/src/uncategorized/economics.tw @@ -215,6 +215,9 @@ __Personal Business__ <<if $PC.career is "capitalist">> You focus on business and leverage your @@color:springgreen;venture capital experience@@ to make good money: <<set $seed += random(500,1000)>> + <<elseif $PC.career is "arcology owner">> + You focus on business and leverage your @@color:springgreen;Free Cities experience@@ to make good money: + <<set $seed += random(500,1000)>> <<else>> You focus on business this week and make money: <</if>> @@ -1304,7 +1307,7 @@ earning you @@color:yellowgreen;¤$seed.@@ <<set $AWeekGrowth -= 1>> <</if>> <<if $personalAttention is "business">> - <<if $PC.career is "capitalist">> + <<if ($PC.career is "capitalist") || ($PC.career is "arcology owner")>> Your @@color:springgreen;business focus and your experience@@ allows you to greatly assist in advancing the arcology's prosperity. <<set $AWeekGrowth += 2>> <<else>> @@ -1348,6 +1351,9 @@ earning you @@color:yellowgreen;¤$seed.@@ <<if $PC.career is "capitalist">> Your @@color:springgreen;business skills@@ drive increased prosperity. <<set $AWeekGrowth += 1>> + <<elseif $PC.career is "arcology owner">> + Your @@color:springgreen;experience in the Free Cities@@ helps increase prosperity. + <<set $AWeekGrowth += 1>> <</if>> <<set $seed to $TSS.schoolPresent+$GRI.schoolPresent+$SCP.schoolPresent+$LDE.schoolPresent+$TGA.schoolPresent+$TFS.schoolPresent>> <<if $seed == 1>> diff --git a/src/uncategorized/freeRangeDairyAssignmentScene.tw b/src/uncategorized/freeRangeDairyAssignmentScene.tw index 9870e05bfa6a56880b3519844ec80acc96ac2ab3..7ebde6633787f62d73f1fa0d08caf2d9e9072596 100644 --- a/src/uncategorized/freeRangeDairyAssignmentScene.tw +++ b/src/uncategorized/freeRangeDairyAssignmentScene.tw @@ -76,18 +76,17 @@ Eventually, $activeSlave.slaveName arrives at her designated milking stall. <<if $activeSlave.father == $slaves[$i].ID && isAvailable($slaves[$i])>> <<set $assayedSlave to $slaves[$i]>> <<set $assayType to "father">> + <<set $assayedSlaveAvailable = 1>> <<break>> <</if>> <</for>> <</if>> <<if $activeSlave.sisters > 0>> - <<set $relation = $slaves>> - <<set $relation.shuffle()>> - <<for $i to 0; $i < $relation.length; $i++>> - <<if areSisters($activeSlave, $relation[$i]) == 3 && isAvailable($relation[$i])>> + <<for $i to 0; $i < $slaves.length; $i++>> + <<if areSisters($activeSlave, $relation) == 3 && isAvailable($relation)>> <<set $assayedSlave to $relation[$i]>> <<set $assayType to "half-sister">> - <<set $relation = 0>> + <<set $assayedSlaveAvailable = 1>> <<break>> <</if>> <</for>> @@ -97,42 +96,37 @@ Eventually, $activeSlave.slaveName arrives at her designated milking stall. <<if $activeSlave.mother == $slaves[$i].ID && isAvailable($slaves[$i])>> <<set $assayedSlave to $slaves[$i]>> <<set $assayType to "mother">> + <<set $assayedSlaveAvailable = 1>> <<break>> <</if>> <</for>> <</if>> <<if $activeSlave.sisters > 0>> - <<set $relation = $slaves>> - <<set $relation.shuffle()>> - <<for $i to 0; $i < $relation.length; $i++>> - <<if areSisters($activeSlave, $relation[$i]) == 2 && isAvailable($relation[$i])>> - <<set $assayedSlave to $relation[$i]>> + <<for $i to 0; $i < $slaves.length; $i++>> + <<if areSisters($activeSlave, $slaves[$i]) == 2 && isAvailable($slaves[$i])>> + <<set $assayedSlave to $slaves[$i]>> <<set $assayType to "sister">> - <<set $relation = 0>> + <<set $assayedSlaveAvailable = 1>> <<break>> <</if>> <</for>> <</if>> <<if $activeSlave.daughters > 0>> - <<set $relation = $slaves>> - <<set $relation.shuffle()>> - <<for $i to 0; $i < $relation.length; $i++>> - <<if ($relation[$i].mother == $activeSlave.ID || $relation[$i].father == $activeSlave.ID) && isAvailable($relation[$i])>> - <<set $assayedSlave to $relation[$i]>> + <<for $i to 0; $i < $slaves.length; $i++>> + <<if ($slaves[$i].mother == $activeSlave.ID || $slaves[$i].father == $activeSlave.ID) && isAvailable($slaves[$i])>> + <<set $assayedSlave to $slaves[$i]>> <<set $assayType to "daughter">> - <<set $relation = 0>> + <<set $assayedSlaveAvailable = 1>> <<break>> <</if>> <</for>> <</if>> <<if $activeSlave.sisters > 0>> - <<set $relation = $slaves>> - <<set $relation.shuffle()>> - <<for $i to 0; $i < $relation.length; $i++>> - <<if areSisters($activeSlave, $relation[$i]) == 1 && isAvailable($relation[$i])>> - <<set $assayedSlave to $relation[$i]>> + <<for $i to 0; $i < $slaves.length; $i++>> + <<if areSisters($activeSlave, $slaves[$i]) == 1 && isAvailable($slaves[$i])>> + <<set $assayedSlave to $slaves[$i]>> <<set $assayType to "twin">> - <<set $relation = 0>> + <<set $assayedSlaveAvailable = 1>> <<break>> <</if>> <</for>> diff --git a/src/uncategorized/fsDevelopments.tw b/src/uncategorized/fsDevelopments.tw index 2a3fe7c814dc39097be8cbd07b103584d9ffffb2..84db7564601820c49676dd6d23cbbc2aabee181e 100644 --- a/src/uncategorized/fsDevelopments.tw +++ b/src/uncategorized/fsDevelopments.tw @@ -1,5 +1,5 @@ :: FS Developments [nobr] - + __Society__ <br> @@ -31,28 +31,28 @@ __Society__ <</if>> <<elseif $FSCreditCount == 5>> <<if ($FSGotRepCreditOne != 1)>> - <<if ($rep > 7000)>> + <<if ($rep > 6000)>> @@color:yellow;Your reputation is so solid that $arcologies[0].name's society is ready to begin accepting a second societal direction.@@ <<set $FSGotRepCreditOne = 1>> <<set $FSCredits += 1>> <</if>> <</if>> <<if ($FSGotRepCreditTwo != 1)>> - <<if ($rep > 10000)>> + <<if ($rep > 9000)>> @@color:yellow;Your reputation is so high that $arcologies[0].name's society is ready to begin accepting a third societal direction.@@ <<set $FSGotRepCreditTwo = 1>> <<set $FSCredits += 1>> <</if>> <</if>> <<if ($FSGotRepCreditThree != 1)>> - <<if ($rep > 13000)>> + <<if ($rep > 12000)>> @@color:yellow;Your reputation is so great that $arcologies[0].name's society is ready to begin accepting a fourth societal direction.@@ <<set $FSGotRepCreditThree = 1>> <<set $FSCredits += 1>> <</if>> <</if>> <<if ($FSGotRepCreditFour != 1)>> - <<if ($rep > 16000)>> + <<if ($rep > 15000)>> @@color:yellow;Your reputation is so unparalleled that $arcologies[0].name's society is ready to begin accepting a fifth and final societal direction.@@ <<set $FSGotRepCreditFour = 1>> <<set $FSCredits += 1>> @@ -60,7 +60,7 @@ __Society__ <</if>> <<elseif $FSCreditCount == 6>> <<if ($FSGotRepCreditOne != 1)>> - <<if ($rep > 7000)>> + <<if ($rep > 6000)>> @@color:yellow;Your reputation is so solid that $arcologies[0].name's society is ready to begin accepting a second societal direction.@@ <<set $FSGotRepCreditOne = 1>> <<set $FSCredits += 1>> @@ -96,14 +96,14 @@ __Society__ <</if>> <<elseif $FSCreditCount == 7>> <<if ($FSGotRepCreditOne != 1)>> - <<if ($rep > 7000)>> + <<if ($rep > 6000)>> @@color:yellow;Your reputation is so solid that $arcologies[0].name's society is ready to begin accepting a second societal direction.@@ <<set $FSGotRepCreditOne = 1>> <<set $FSCredits += 1>> <</if>> <</if>> <<if ($FSGotRepCreditTwo != 1)>> - <<if ($rep > 10000)>> + <<if ($rep > 9000)>> @@color:yellow;Your reputation is so high that $arcologies[0].name's society is ready to begin accepting a third societal direction.@@ <<set $FSGotRepCreditTwo = 1>> <<set $FSCredits += 1>> @@ -117,7 +117,7 @@ __Society__ <</if>> <</if>> <<if ($FSGotRepCreditFour != 1)>> - <<if ($rep > 14500)>> + <<if ($rep > 1500)>> @@color:yellow;Your reputation is so great that $arcologies[0].name's society is ready to begin accepting a fifth societal direction.@@ <<set $FSGotRepCreditFour = 1>> <<set $FSCredits += 1>> @@ -293,21 +293,21 @@ __Society__ <</if>> <</if>> -<<if $PAPublic == 1>> - <<set _seed1 = 0, _seed2 = 0>> - <<if $arcologies[0].FSSupremacist != "unset">> - <<if ($assistantAppearance is "businesswoman") || ($assistantAppearance is "shemale")>> +<<if $PAPublic == 1 && $assistantAppearance != "normal">> +<<set _seed1 = 0, _seed2 = 0>> +<<if $arcologies[0].FSSupremacist != "unset">> + <<if ($assistantAppearance is "amazon") || ($assistantAppearance is "monstergirl")>> <<set $arcologies[0].FSSupremacist += 0.1*$FSSingleSlaveRep>> <<set _seed1 = 1>> <</if>> - <</if>> - <<if $arcologies[0].FSSubjugationist != "unset">> - <<if ($assistantAppearance is "businesswoman") || ($assistantAppearance is "shemale")>> +<</if>> +<<if $arcologies[0].FSSubjugationist != "unset">> + <<if ($assistantAppearance is "businesswoman") || ($assistantAppearance is "amazon")>> <<set $arcologies[0].FSSubjugationist += 0.1*$FSSingleSlaveRep>> <<set _seed1 = 1>> <</if>> - <</if>> - <<if $arcologies[0].FSGenderRadicalist != "unset">> +<</if>> +<<if $arcologies[0].FSGenderRadicalist != "unset">> <<if ($assistantAppearance is "monstergirl") || ($assistantAppearance is "shemale")>> <<set $arcologies[0].FSGenderRadicalist += 0.1*$FSSingleSlaveRep>> <<set _seed1 = 1>> @@ -316,9 +316,9 @@ __Society__ <<set $arcologies[0].FSGenderRadicalist += 0.1*$FSSingleSlaveRep>> <<set _seed2 = 2>> <</if>> - <</if>> - <<if $arcologies[0].FSRepopulationFocus != "unset">> - <<if ($assistantAppearance is "goddess") or ($assistantAppearance is "hypergoddess") or ($assistantAppearance is "preggololi") or ($assistantAppearance is "pregnant fairy")>> +<</if>> +<<if $arcologies[0].FSRepopulationFocus != "unset">> + <<if ($assistantAppearance is "goddess") || ($assistantAppearance is "hypergoddess") || ($assistantAppearance is "preggololi") || ($assistantAppearance is "pregnant fairy")>> <<set $arcologies[0].FSRepopulationFocus += 0.1*$FSSingleSlaveRep>> <<set _seed1 = 1>> <</if>> @@ -326,8 +326,8 @@ __Society__ <<set $arcologies[0].FSRepopulationFocus += 0.1*$FSSingleSlaveRep>> <<set _seed2 = 2>> <</if>> - <</if>> - <<if $arcologies[0].FSRestart != "unset">> +<</if>> +<<if $arcologies[0].FSRestart != "unset">> <<if ($assistantAppearance is "businesswoman")>> <<set $arcologies[0].FSRestart += 0.1*$FSSingleSlaveRep>> <<set _seed1 = 1>> @@ -336,9 +336,9 @@ __Society__ <<set $arcologies[0].FSRestart += 0.1*$FSSingleSlaveRep>> <<set _seed2 = 2>> <</if>> - <</if>> - <<if $arcologies[0].FSGenderFundamentalist != "unset">> - <<if ($assistantAppearance is "schoolgirl") or ($assistantAppearance is "goddess") or ($assistantAppearance is "hypergoddess") or ($assistantAppearance is "preggololi") or ($assistantAppearance is "loli") or ($assistantAppearance is "fairy") or ($assistantAppearance is "pregnant fairy")>> +<</if>> +<<if $arcologies[0].FSGenderFundamentalist != "unset">> + <<if ($assistantAppearance is "schoolgirl") || ($assistantAppearance is "goddess") || ($assistantAppearance is "hypergoddess") || ($assistantAppearance is "preggololi") || ($assistantAppearance is "loli") || ($assistantAppearance is "fairy") || ($assistantAppearance is "pregnant fairy")>> <<set $arcologies[0].FSGenderFundamentalist += 0.1*$FSSingleSlaveRep>> <<set _seed1 = 1>> <</if>> @@ -346,9 +346,9 @@ __Society__ <<set $arcologies[0].FSGenderFundamentalist += 0.1*$FSSingleSlaveRep>> <<set _seed2 = 2>> <</if>> - <</if>> - <<if $arcologies[0].FSPaternalist != "unset">> - <<if ($assistantAppearance is "schoolgirl") or ($assistantAppearance is "goddess") or ($assistantAppearance is "hypergoddess") or ($assistantAppearance is "preggololi") or ($assistantAppearance is "loli") or ($assistantAppearance is "fairy") or ($assistantAppearance is "pregnant fairy")>> +<</if>> +<<if $arcologies[0].FSPaternalist != "unset">> + <<if ($assistantAppearance is "schoolgirl") || ($assistantAppearance is "goddess") || ($assistantAppearance is "hypergoddess") || ($assistantAppearance is "preggololi") || ($assistantAppearance is "loli") || ($assistantAppearance is "fairy") || ($assistantAppearance is "pregnant fairy")>> <<set $arcologies[0].FSPaternalist += 0.1*$FSSingleSlaveRep>> <<set _seed1 = 1>> <</if>> @@ -356,9 +356,9 @@ __Society__ <<set $arcologies[0].FSPaternalist += 0.1*$FSSingleSlaveRep>> <<set _seed2 = 2>> <</if>> - <</if>> - <<if $arcologies[0].FSDegradationist != "unset">> - <<if ($assistantAppearance is "monstergirl") or ($assistantAppearance is "businesswoman") or ($assistantAppearance is "preggololi")>> +<</if>> +<<if $arcologies[0].FSDegradationist != "unset">> + <<if ($assistantAppearance is "monstergirl") || ($assistantAppearance is "businesswoman") || ($assistantAppearance is "preggololi")>> <<set $arcologies[0].FSDegradationist += 0.1*$FSSingleSlaveRep>> <<set _seed1 = 1>> <</if>> @@ -366,9 +366,9 @@ __Society__ <<set $arcologies[0].FSDegradationist += 0.1*$FSSingleSlaveRep>> <<set _seed2 = 2>> <</if>> - <</if>> - <<if $arcologies[0].FSBodyPurist != "unset">> - <<if ($assistantAppearance is "schoolgirl") or ($assistantAppearance is "goddess") or ($assistantAppearance is "loli") or ($assistantAppearance is "fairy") or ($assistantAppearance is "pregnant fairy")>> +<</if>> +<<if $arcologies[0].FSBodyPurist != "unset">> + <<if ($assistantAppearance is "amazon") || ($assistantAppearance is "goddess") || ($assistantAppearance is "loli") || ($assistantAppearance is "fairy") || ($assistantAppearance is "pregnant fairy")>> <<set $arcologies[0].FSBodyPurist += 0.1*$FSSingleSlaveRep>> <<set _seed1 = 1>> <</if>> @@ -376,8 +376,8 @@ __Society__ <<set $arcologies[0].FSBodyPurist += 0.1*$FSSingleSlaveRep>> <<set _seed2 = 2>> <</if>> - <</if>> - <<if $arcologies[0].FSTransformationFetishist != "unset">> +<</if>> +<<if $arcologies[0].FSTransformationFetishist != "unset">> <<if ($assistantAppearance is "businesswoman") || ($assistantAppearance is "shemale")>> <<set $arcologies[0].FSTransformationFetishist += 0.1*$FSSingleSlaveRep>> <<set _seed1 = 1>> @@ -386,8 +386,8 @@ __Society__ <<set $arcologies[0].FSTransformationFetishist += 0.1*$FSSingleSlaveRep>> <<set _seed2 = 2>> <</if>> - <</if>> - <<if $arcologies[0].FSMaturityPreferentialist != "unset">> +<</if>> +<<if $arcologies[0].FSMaturityPreferentialist != "unset">> <<if ($assistantAppearance is "businesswoman") || ($assistantAppearance is "goddess")>> <<set $arcologies[0].FSMaturityPreferentialist += 0.1*$FSSingleSlaveRep>> <<set _seed1 = 1>> @@ -396,9 +396,9 @@ __Society__ <<set $arcologies[0].FSMaturityPreferentialist += 0.1*$FSSingleSlaveRep>> <<set _seed2 = 2>> <</if>> - <</if>> - <<if $arcologies[0].FSYouthPreferentialist != "unset">> - <<if ($assistantAppearance is "schoolgirl") or ($assistantAppearance is "shemale") or ($assistantAppearance is "preggololi") or ($assistantAppearance is "loli")>> +<</if>> +<<if $arcologies[0].FSYouthPreferentialist != "unset">> + <<if ($assistantAppearance is "schoolgirl") || ($assistantAppearance is "shemale") || ($assistantAppearance is "preggololi") || ($assistantAppearance is "loli")>> <<set $arcologies[0].FSYouthPreferentialist += 0.1*$FSSingleSlaveRep>> <<set _seed1 = 1>> <</if>> @@ -406,9 +406,9 @@ __Society__ <<set $arcologies[0].FSYouthPreferentialist += 0.1*$FSSingleSlaveRep>> <<set _seed2 = 2>> <</if>> - <</if>> - <<if $arcologies[0].FSSlimnessEnthusiast != "unset">> - <<if ($assistantAppearance is "schoolgirl") or ($assistantAppearance is "shemale") or ($assistantAppearance is "loli")>> +<</if>> +<<if $arcologies[0].FSSlimnessEnthusiast != "unset">> + <<if ($assistantAppearance is "schoolgirl") || ($assistantAppearance is "shemale") || ($assistantAppearance is "loli")>> <<set $arcologies[0].FSSlimnessEnthusiast += 0.1*$FSSingleSlaveRep>> <<set _seed1 = 1>> <</if>> @@ -416,9 +416,9 @@ __Society__ <<set $arcologies[0].FSSlimnessEnthusiast += 0.1*$FSSingleSlaveRep>> <<set _seed2 = 2>> <</if>> - <</if>> - <<if $arcologies[0].FSAssetExpansionist != "unset">> - <<if ($assistantAppearance is "goddess") or ($assistantAppearance is "shemale") or ($assistantAppearance is "hypergoddess")>> +<</if>> +<<if $arcologies[0].FSAssetExpansionist != "unset">> + <<if ($assistantAppearance is "businesswoman") || ($assistantAppearance is "shemale") || ($assistantAppearance is "hypergoddess")>> <<set $arcologies[0].FSAssetExpansionist += 0.1*$FSSingleSlaveRep>> <<set _seed1 = 1>> <</if>> @@ -426,9 +426,9 @@ __Society__ <<set $arcologies[0].FSAssetExpansionist += 0.1*$FSSingleSlaveRep>> <<set _seed2 = 2>> <</if>> - <</if>> - <<if $arcologies[0].FSPastoralist != "unset">> - <<if ($assistantAppearance is "businesswoman") or ($assistantAppearance is "goddess") or ($assistantAppearance is "hypergoddess")>> +<</if>> +<<if $arcologies[0].FSPastoralist != "unset">> + <<if ($assistantAppearance is "shemale") || ($assistantAppearance is "goddess") || ($assistantAppearance is "hypergoddess")>> <<set $arcologies[0].FSPastoralist += 0.1*$FSSingleSlaveRep>> <<set _seed1 = 1>> <</if>> @@ -436,9 +436,9 @@ __Society__ <<set $arcologies[0].FSPastoralist += 0.1*$FSSingleSlaveRep>> <<set _seed2 = 2>> <</if>> - <</if>> - <<if $arcologies[0].FSPhysicalIdealist != "unset">> - <<if ($assistantAppearance is "amazon") || ($assistantAppearance is "monstergirl")>> +<</if>> +<<if $arcologies[0].FSPhysicalIdealist != "unset">> + <<if ($assistantAppearance is "amazon") || ($assistantAppearance is "shemale")>> <<set $arcologies[0].FSPhysicalIdealist += 0.1*$FSSingleSlaveRep>> <<set _seed1 = 1>> <</if>> @@ -446,8 +446,8 @@ __Society__ <<set $arcologies[0].FSPhysicalIdealist += 0.1*$FSSingleSlaveRep>> <<set _seed2 = 2>> <</if>> - <</if>> - <<if $arcologies[0].FSChattelReligionist != "unset">> +<</if>> +<<if $arcologies[0].FSChattelReligionist != "unset">> <<if ($assistantAppearance is "goddess") || ($assistantAppearance is "monstergirl")>> <<set $arcologies[0].FSChattelReligionist += 0.1*$FSSingleSlaveRep>> <<set _seed1 = 1>> @@ -456,9 +456,9 @@ __Society__ <<set $arcologies[0].FSChattelReligionist += 0.1*$FSSingleSlaveRep>> <<set _seed2 = 2>> <</if>> - <</if>> - <<if $arcologies[0].FSRomanRevivalist != "unset">> - <<if ($assistantAppearance is "amazon") || ($assistantAppearance is "goddess")>> +<</if>> +<<if $arcologies[0].FSRomanRevivalist != "unset">> + <<if ($assistantAppearance is "amazon") || ($assistantAppearance is "businesswoman")>> <<set $arcologies[0].FSRomanRevivalist += 0.1*$FSSingleSlaveRep>> <<set _seed1 = 1>> <</if>> @@ -466,9 +466,9 @@ __Society__ <<set $arcologies[0].FSRomanRevivalist += 0.1*$FSSingleSlaveRep>> <<set _seed2 = 2>> <</if>> - <</if>> - <<if $arcologies[0].FSEgyptianRevivalist != "unset">> - <<if ($assistantAppearance is "amazon") || ($assistantAppearance is "monstergirl")>> +<</if>> +<<if $arcologies[0].FSEgyptianRevivalist != "unset">> + <<if ($assistantAppearance is "goddess") || ($assistantAppearance is "monstergirl")>> <<set $arcologies[0].FSEgyptianRevivalist += 0.1*$FSSingleSlaveRep>> <<set _seed1 = 1>> <</if>> @@ -476,9 +476,9 @@ __Society__ <<set $arcologies[0].FSEgyptianRevivalist += 0.1*$FSSingleSlaveRep>> <<set _seed2 = 2>> <</if>> - <</if>> - <<if $arcologies[0].FSEdoRevivalist != "unset">> - <<if ($assistantAppearance is "goddess") or ($assistantAppearance is "monstergirl") or ($assistantAppearance is "loli") or ($assistantAppearance is "kitsune")>> +<</if>> +<<if $arcologies[0].FSEdoRevivalist != "unset">> + <<if ($assistantAppearance is "amazon") || ($assistantAppearance is "monstergirl") || ($assistantAppearance is "loli") || ($assistantAppearance is "kitsune")>> <<set $arcologies[0].FSEdoRevivalist += 0.1*$FSSingleSlaveRep>> <<set _seed1 = 1>> <</if>> @@ -486,9 +486,9 @@ __Society__ <<set $arcologies[0].FSEdoRevivalist += 0.1*$FSSingleSlaveRep>> <<set _seed2 = 2>> <</if>> - <</if>> - <<if $arcologies[0].FSArabianRevivalist != "unset">> - <<if ($assistantAppearance is "businesswoman") || ($assistantAppearance is "monstergirl")>> +<</if>> +<<if $arcologies[0].FSArabianRevivalist != "unset">> + <<if ($assistantAppearance is "businesswoman") || ($assistantAppearance is "schoolgirl")>> <<set $arcologies[0].FSArabianRevivalist += 0.1*$FSSingleSlaveRep>> <<set _seed1 = 1>> <</if>> @@ -496,9 +496,9 @@ __Society__ <<set $arcologies[0].FSArabianRevivalist += 0.1*$FSSingleSlaveRep>> <<set _seed2 = 2>> <</if>> - <</if>> - <<if $arcologies[0].FSChineseRevivalist != "unset">> - <<if ($assistantAppearance is "businesswoman") || ($assistantAppearance is "monstergirl")>> +<</if>> +<<if $arcologies[0].FSChineseRevivalist != "unset">> + <<if ($assistantAppearance is "schoolgirl") || ($assistantAppearance is "monstergirl")>> <<set $arcologies[0].FSChineseRevivalist += 0.1*$FSSingleSlaveRep>> <<set _seed1 = 1>> <</if>> @@ -506,12 +506,12 @@ __Society__ <<set $arcologies[0].FSChineseRevivalist += 0.1*$FSSingleSlaveRep>> <<set _seed2 = 2>> <</if>> - <</if>> - <<if _seed2 == 2>> - With her $assistantAppearance appearance, $assistantName's public visibility meshes well with society. - <<elseif _seed1 == 1>> - With her $assistantFSAppearance $assistantAppearance appearance, $assistantName's public visibility meshes very well with society. - <</if>> +<</if>> +<<if _seed2 == 2>> +With her $assistantFSAppearance $assistantAppearance appearance, $assistantName's public visibility meshes very well with society. +<<elseif _seed1 == 1>> +With her $assistantAppearance appearance, $assistantName's public visibility meshes well with society. +<</if>> <</if>> <<if ($arcologies[0].FSSupremacistSMR + $arcologies[0].FSSubjugationistSMR + $arcologies[0].FSGenderRadicalistSMR + $arcologies[0].FSGenderFundamentalistSMR + $arcologies[0].FSPaternalistSMR + $arcologies[0].FSDegradationistSMR + $arcologies[0].FSBodyPuristSMR + $arcologies[0].FSTransformationFetishistSMR + $arcologies[0].FSYouthPreferentialistSMR + $arcologies[0].FSMaturityPreferentialistSMR + $arcologies[0].FSSlimnessEnthusiastSMR + $arcologies[0].FSAssetExpansionistSMR + $arcologies[0].FSPastoralistSMR + $arcologies[0].FSPhysicalIdealistSMR + $arcologies[0].FSChattelReligionistSMR + $arcologies[0].FSRomanRevivalistSMR + $arcologies[0].FSEgyptianRevivalistSMR + $arcologies[0].FSEdoRevivalistSMR + $arcologies[0].FSRepopulationFocusSMR + $arcologies[0].FSRestartSMR + $arcologies[0].FSArabianRevivalistSMR + $arcologies[0].FSChineseRevivalistSMR) > 0>> diff --git a/src/uncategorized/futureSocities.tw b/src/uncategorized/futureSocities.tw index b47a4f47a74816ecd6fb60d259508b8c0e3db023..c6d94b780e3a007d02c904927c4fe2471df09828 100644 --- a/src/uncategorized/futureSocities.tw +++ b/src/uncategorized/futureSocities.tw @@ -569,8 +569,8 @@ You are spending ¤$FSSpending each week to support your societal goals. $arcologies[0].name's media is supporting this goal; $arcologies[0].name's public spaces are decorated to support it, and have slaves stationed in them to support it. The exterior of the arcology has been remodeled to support it too; the arcology is fully customized for this goal. <</if>> <<if $PAPublic == 1>> - <<if ($assistantAppearance is "businesswoman") || ($assistantAppearance is "shemale")>> - With her $assistantAppearance appearance, $assistantName is a good public mascot for this model. + <<if ($assistantAppearance is "amazon") || ($assistantAppearance is "monstergirl")>> + With her $assistantAppearance appearance, $assistantName is a good public mascot for this model. <</if>> <</if>> <<else>> @@ -626,8 +626,8 @@ You are spending ¤$FSSpending each week to support your societal goals. $arcologies[0].name's media is supporting this goal; $arcologies[0].name's public spaces are decorated to support it, and have slaves stationed in them to support it. The exterior of the arcology has been remodeled to support it too; the arcology is fully customized for this goal. <</if>> <<if $PAPublic == 1>> - <<if ($assistantAppearance is "businesswoman") || ($assistantAppearance is "shemale")>> - With her $assistantAppearance appearance, $assistantName is a good public mascot for this model. + <<if ($assistantAppearance is "businesswoman") || ($assistantAppearance is "amazon")>> + With her $assistantAppearance appearance, $assistantName is a good public mascot for this model. <</if>> <</if>> <<else>> @@ -652,9 +652,10 @@ You are spending ¤$FSSpending each week to support your societal goals. <<if $publiclyouted != 1>> <<if $arcologies[0].FSRestart is "unset">> <<if $arcologies[0].FSRepopulationFocus != "unset">> - <br>''You are pursuing'' societal fetishization of pregnancy. //[[Abandon|Future Society][$arcologies[0].FSRepopulationFocus to "unset", $arcologies[0].FSRepopulationFocusDecoration to 20, $arcologies[0].FSRepopulationFocusLaw to 0,$arcologies[0].FSRepopulationFocusSMR to 0, $assistantFSAppearance to "default", $FSCredits += 1]]// <br> - <<switch $arcologies[0].FSRepopulationFocusDecoration>> - <<case 20>> + <br>''You are pursuing'' the belief that mass breeding will save humanity. + //<<link [[Abandon|Future Society]]>><<set $arcologies[0].FSRepopulationFocus to "unset", $arcologies[0].FSRepopulationFocusDecoration to 20, $arcologies[0].FSRepopulationFocusSMR to 0, $arcologies[0].FSRepopulationFocusLaw to 0, $FSCredits += 1>><<if $assistantFSAppearance == "repopulation focus">><<set $assistantFSAppearance to "default">><</if>><</link>>//<br> + <<switch $arcologies[0].FSRepopulationFocusDecoration>> + <<case 20>> $arcologies[0].name is not customized to support this goal. <<if $arcologies[0].FSRepopulationFocus >= 10>> [[Modify your arcology's internal media to support this goal|Future Society][$arcologies[0].FSRepopulationFocusDecoration to 40, $cash -= 2500]] //Costs ¤2500// @@ -703,7 +704,8 @@ You are spending ¤$FSSpending each week to support your societal goals. <<if $arcologies[0].FSRepopulationFocus is "unset">> <<if $arcologies[0].FSRestart != "unset">> <<if $arcologies[0].FSRestartDecoration != 100>> - <br>''You are pursuing'' Eugenics. //[[Abandon|Future Society][$arcologies[0].FSRestart to "unset", $arcologies[0].FSRestartDecoration to 20, $arcologies[0].FSRestartLaw to 0,$arcologies[0].FSRestartSMR to 0, $assistantFSAppearance to "default", $FSCredits += 1]]// <br> + <br>''You are pursuing'' Eugenics. +//<<link [[Abandon|Future Society]]>><<set $arcologies[0].FSRestart to "unset", $arcologies[0].FSRestartDecoration to 20, $arcologies[0].FSRestartSMR to 0, $arcologies[0].FSRestartLaw to 0, $FSCredits += 1>><<if $assistantFSAppearance == "eugenics">><<set $assistantFSAppearance to "default">><</if>><</link>>//<br> <<else>> <br>''You have established'' Eugenics. The Societal Elite will not permit you to abandon Eugenics. <br> <</if>> @@ -757,7 +759,8 @@ You are spending ¤$FSSpending each week to support your societal goals. <<if $seeDicks != 0>> <<if $arcologies[0].FSGenderFundamentalist is "unset">> <<if $arcologies[0].FSGenderRadicalist != "unset">> - <br>''You are pursuing'' a radical redefinition of gender that identifies powerful people as male, and everyone else as female. //[[Abandon|Future Society][$arcologies[0].FSGenderRadicalist to "unset", $arcologies[0].FSGenderRadicalistDecoration to 20, $arcologies[0].FSGenderRadicalistLaw to 0, $assistantFSAppearance to "default", $FSCredits += 1]]//<br> + <br>''You are pursuing'' a radical redefinition of gender that identifies powerful people as male, and everyone else as female. + //<<link [[Abandon|Future Society]]>><<set $arcologies[0].FSGenderRadicalist to "unset", $arcologies[0].FSGenderRadicalistDecoration to 20, $arcologies[0].FSGenderRadicalistLaw to 0, $FSCredits += 1>><<if $assistantFSAppearance == "gender radicalist">><<set $assistantFSAppearance to "default">><</if>><</link>>//<br> <<switch $arcologies[0].FSGenderRadicalistDecoration>> <<case 20>> $arcologies[0].name is not customized to support this goal. @@ -792,7 +795,7 @@ You are spending ¤$FSSpending each week to support your societal goals. <</switch>> <<if $PAPublic == 1>> <<if ($assistantAppearance is "shemale") || ($assistantAppearance is "monstergirl")>> - With her $assistantAppearance appearance, $assistantName is a good public mascot for this model. + With her $assistantAppearance appearance, $assistantName is a good public mascot for this model. <</if>> <</if>> <<else>> @@ -807,7 +810,8 @@ You are spending ¤$FSSpending each week to support your societal goals. <<if $arcologies[0].FSGenderRadicalist is "unset">> <<if $arcologies[0].FSGenderFundamentalist != "unset">> - <br>''You are pursuing'' gender traditionalism, including a societal preference for feminine slaves and support for slave pregnancy. //[[Abandon|Future Society][$arcologies[0].FSGenderFundamentalist to "unset", $arcologies[0].FSGenderFundamentalistDecoration to 20, $arcologies[0].FSGenderFundamentalistSMR to 0, $assistantFSAppearance to "default", $FSCredits += 1]]//<br> + <br>''You are pursuing'' gender traditionalism, including a societal preference for feminine slaves and support for slave pregnancy. + //<<link [[Abandon|Future Society]]>><<set $arcologies[0].FSGenderFundamentalist to "unset", $arcologies[0].FSGenderFundamentalistDecoration to 20, $arcologies[0].FSGenderFundamentalistSMR to 0, $FSCredits += 1>><<if $assistantFSAppearance == "gender fundamentalist">><<set $assistantFSAppearance to "default">><</if>><</link>>//<br> <<switch $arcologies[0].FSGenderFundamentalistDecoration>> <<case 20>> $arcologies[0].name is not customized to support this goal. @@ -842,7 +846,7 @@ You are spending ¤$FSSpending each week to support your societal goals. <</switch>> <<if $PAPublic == 1>> <<if ($assistantAppearance is "schoolgirl") or ($assistantAppearance is "goddess") or ($assistantAppearance is "hypergoddess") or ($assistantAppearance is "preggololi") or ($assistantAppearance is "loli") or ($assistantAppearance is "fairy") or ($assistantAppearance is "pregnant fairy")>> - With her $assistantAppearance appearance, $assistantName is a good public mascot for this model. + With her $assistantAppearance appearance, $assistantName is a good public mascot for this model. <</if>> <</if>> <<else>> @@ -856,7 +860,8 @@ You are spending ¤$FSSpending each week to support your societal goals. <<if $arcologies[0].FSDegradationist is "unset">> <<if $arcologies[0].FSPaternalist != "unset">> - <br>''You are pursuing'' a vision of slave improvement, including slaves' health, mental well-being, and education. //[[Abandon|Future Society][$arcologies[0].FSPaternalist to "unset", $arcologies[0].FSPaternalistDecoration to 20, $arcologies[0].FSPaternalistLaw to 0, $assistantFSAppearance to "default", $FSCredits += 1]]//<br> + <br>''You are pursuing'' a vision of slave improvement, including slaves' health, mental well-being, and education. + //<<link [[Abandon|Future Society]]>><<set $arcologies[0].FSPaternalist to "unset", $arcologies[0].FSPaternalistDecoration to 20, $arcologies[0].FSPaternalistLaw to 0, $FSCredits += 1>><<if $assistantFSAppearance == "paternalist">><<set $assistantFSAppearance to "default">><</if>><</link>>//<br> <<switch $arcologies[0].FSPaternalistDecoration>> <<case 20>> $arcologies[0].name is not customized to support this goal. @@ -891,7 +896,7 @@ You are spending ¤$FSSpending each week to support your societal goals. <</switch>> <<if $PAPublic == 1>> <<if ($assistantAppearance is "schoolgirl") or ($assistantAppearance is "goddess") or ($assistantAppearance is "hypergoddess") or ($assistantAppearance is "preggololi") or ($assistantAppearance is "loli") or ($assistantAppearance is "fairy") or ($assistantAppearance is "pregnant fairy")>> - With her $assistantAppearance appearance, $assistantName is a good public mascot for this model. + With her $assistantAppearance appearance, $assistantName is a good public mascot for this model. <</if>> <</if>> <<else>> @@ -905,7 +910,8 @@ You are spending ¤$FSSpending each week to support your societal goals. <<if $arcologies[0].FSPaternalist is "unset">> <<if $arcologies[0].FSDegradationist != "unset">> - <br>''You are pursuing'' slave degradation, a belief that slaves are not human and should not be treated decently. //[[Abandon|Future Society][$arcologies[0].FSDegradationist to "unset", $arcologies[0].FSDegradationistDecoration to 20, $arcologies[0].FSDegradationistLaw to 0, $assistantFSAppearance to "default", $FSCredits += 1]]//<br> + <br>''You are pursuing'' slave degradation, a belief that slaves are not human and should not be treated decently. + //<<link [[Abandon|Future Society]]>><<set $arcologies[0].FSDegradationist to "unset", $arcologies[0].FSDegradationistDecoration to 20, $arcologies[0].FSDegradationistLaw to 0, $FSCredits += 1>><<if $assistantFSAppearance == "degradationist">><<set $assistantFSAppearance to "default">><</if>><</link>>//<br> <<switch $arcologies[0].FSDegradationistDecoration>> <<case 20>> $arcologies[0].name is not customized to support this goal. @@ -939,8 +945,8 @@ You are spending ¤$FSSpending each week to support your societal goals. $arcologies[0].name's media is supporting this goal; $arcologies[0].name's public spaces are decorated to support it, and have slaves stationed in them to support it. The exterior of the arcology has been remodeled to support it too; the arcology is fully customized for this goal. <</switch>> <<if $PAPublic == 1>> - <<if ($assistantAppearance is "monstergirl") or ($assistantAppearance is "businesswoman") or ($assistantAppearance is "preggololi")>> - With her $assistantAppearance appearance, $assistantName is a good public mascot for this model. + <<if ($assistantAppearance is "monstergirl") || ($assistantAppearance is "businesswoman") || ($assistantAppearance is "preggololi")>> + With her $assistantAppearance appearance, $assistantName is a good public mascot for this model. <</if>> <</if>> <<else>> @@ -954,7 +960,8 @@ You are spending ¤$FSSpending each week to support your societal goals. <<if $arcologies[0].FSTransformationFetishist is "unset">> <<if $arcologies[0].FSBodyPurist != "unset">> - <br>''You are pursuing'' societal disapproval of implant surgery. //[[Abandon|Future Society][$arcologies[0].FSBodyPurist to "unset", $arcologies[0].FSBodyPuristDecoration to 20, $arcologies[0].FSBodyPuristLaw to 0, $assistantFSAppearance to "default", $FSCredits += 1]]//<br> + <br>''You are pursuing'' societal disapproval of implant surgery. + //<<link [[Abandon|Future Society]]>><<set $arcologies[0].FSBodyPurist to "unset", $arcologies[0].FSBodyPuristDecoration to 20, $arcologies[0].FSBodyPuristLaw to 0, $FSCredits += 1>><<if $assistantFSAppearance == "body purist">><<set $assistantFSAppearance to "default">><</if>><</link>>//<br> <<switch $arcologies[0].FSBodyPuristDecoration>> <<case 20>> $arcologies[0].name is not customized to support this goal. @@ -988,8 +995,8 @@ You are spending ¤$FSSpending each week to support your societal goals. $arcologies[0].name's media is supporting this goal; $arcologies[0].name's public spaces are decorated to support it, and have slaves stationed in them to support it. The exterior of the arcology has been remodeled to support it too; the arcology is fully customized for this goal. <</switch>> <<if $PAPublic == 1>> - <<if ($assistantAppearance is "schoolgirl") or ($assistantAppearance is "goddess") or ($assistantAppearance is "loli") or ($assistantAppearance is "fairy") or ($assistantAppearance is "pregnant fairy")>> - With her $assistantAppearance appearance, $assistantName is a good public mascot for this model. + <<if ($assistantAppearance is "amazon") || ($assistantAppearance is "goddess") || ($assistantAppearance is "loli") || ($assistantAppearance is "fairy") || ($assistantAppearance is "pregnant fairy")>> + With her $assistantAppearance appearance, $assistantName is a good public mascot for this model. <</if>> <</if>> <<else>> @@ -1003,7 +1010,8 @@ You are spending ¤$FSSpending each week to support your societal goals. <<if $arcologies[0].FSBodyPurist is "unset">> <<if $arcologies[0].FSTransformationFetishist != "unset">> - <br>''You are pursuing'' societal fetishization of implant surgery. //[[Abandon|Future Society][$arcologies[0].FSTransformationFetishist to "unset", $arcologies[0].FSTransformationFetishistDecoration to 20, $arcologies[0].FSTransformationFetishistLaw to 0, $assistantFSAppearance to "default", $FSCredits += 1]]//<br> + <br>''You are pursuing'' societal fetishization of implant surgery. + //<<link [[Abandon|Future Society]]>><<set $arcologies[0].FSTransformationFetishist to "unset", $arcologies[0].FSTransformationFetishistDecoration to 20, $arcologies[0].FSTransformationFetishistLaw to 0, $FSCredits += 1>><<if $assistantFSAppearance == "transformation fetishist">><<set $assistantFSAppearance to "default">><</if>><</link>>//<br> <<switch $arcologies[0].FSTransformationFetishistDecoration>> <<case 20>> $arcologies[0].name is not customized to support this goal. @@ -1038,7 +1046,7 @@ You are spending ¤$FSSpending each week to support your societal goals. <</switch>> <<if $PAPublic == 1>> <<if ($assistantAppearance is "businesswoman") || ($assistantAppearance is "shemale")>> - With her $assistantAppearance appearance, $assistantName is a good public mascot for this model. + With her $assistantAppearance appearance, $assistantName is a good public mascot for this model. <</if>> <</if>> <<else>> @@ -1052,7 +1060,8 @@ You are spending ¤$FSSpending each week to support your societal goals. <<if $arcologies[0].FSMaturityPreferentialist is "unset">> <<if $arcologies[0].FSYouthPreferentialist != "unset">> - <br>''You are pursuing'' an accentuated societal preference for younger slaves. //[[Abandon|Future Society][$arcologies[0].FSYouthPreferentialist to "unset", $arcologies[0].FSYouthPreferentialistDecoration to 20, $arcologies[0].FSYouthPreferentialistLaw to 0, $assistantFSAppearance to "default", $FSCredits += 1]]//<br> + <br>''You are pursuing'' an accentuated societal preference for younger slaves. + //<<link [[Abandon|Future Society]]>><<set $arcologies[0].FSYouthPreferentialist to "unset", $arcologies[0].FSYouthPreferentialistDecoration to 20, $arcologies[0].FSYouthPreferentialistLaw to 0, $FSCredits += 1>><<if $assistantFSAppearance == "youth preferentialist">><<set $assistantFSAppearance to "default">><</if>><</link>>//<br> <<switch $arcologies[0].FSYouthPreferentialistDecoration>> <<case 20>> $arcologies[0].name is not customized to support this goal. @@ -1086,8 +1095,8 @@ You are spending ¤$FSSpending each week to support your societal goals. $arcologies[0].name's media is supporting this goal; $arcologies[0].name's public spaces are decorated to support it, and have slaves stationed in them to support it. The exterior of the arcology has been remodeled to support it too; the arcology is fully customized for this goal. <</switch>> <<if $PAPublic == 1>> - <<if ($assistantAppearance is "schoolgirl") or ($assistantAppearance is "shemale") or ($assistantAppearance is "preggololi") or ($assistantAppearance is "loli")>> - With her $assistantAppearance appearance, $assistantName is a good public mascot for this model. + <<if ($assistantAppearance is "schoolgirl") || ($assistantAppearance is "shemale") || ($assistantAppearance is "preggololi") || ($assistantAppearance is "loli")>> + With her $assistantAppearance appearance, $assistantName is a good public mascot for this model. <</if>> <</if>> <<else>> @@ -1101,7 +1110,8 @@ You are spending ¤$FSSpending each week to support your societal goals. <<if $arcologies[0].FSYouthPreferentialist is "unset">> <<if $arcologies[0].FSMaturityPreferentialist != "unset">> - <br>''You are pursuing'' a societal preference for older women. //[[Abandon|Future Society][$arcologies[0].FSMaturityPreferentialist to "unset", $arcologies[0].FSMaturityPreferentialistDecoration to 20, $arcologies[0].FSMaturityPreferentialistLaw to 0, $assistantFSAppearance to "default", $FSCredits += 1]]//<br> + <br>''You are pursuing'' a societal preference for older women. + //<<link [[Abandon|Future Society]]>><<set $arcologies[0].FSMaturityPreferentialist to "unset", $arcologies[0].FSMaturityPreferentialistDecoration to 20, $arcologies[0].FSMaturityPreferentialistLaw to 0, $FSCredits += 1>><<if $assistantFSAppearance == "maturity preferentialist">><<set $assistantFSAppearance to "default">><</if>><</link>>//<br> <<switch $arcologies[0].FSMaturityPreferentialistDecoration>> <<case 20>> $arcologies[0].name is not customized to support this goal. @@ -1136,7 +1146,7 @@ You are spending ¤$FSSpending each week to support your societal goals. <</switch>> <<if $PAPublic == 1>> <<if ($assistantAppearance is "businesswoman") || ($assistantAppearance is "goddess")>> - With her $assistantAppearance appearance, $assistantName is a good public mascot for this model. + With her $assistantAppearance appearance, $assistantName is a good public mascot for this model. <</if>> <</if>> <<else>> @@ -1150,7 +1160,8 @@ You are spending ¤$FSSpending each week to support your societal goals. <<if $arcologies[0].FSAssetExpansionist is "unset">> <<if $arcologies[0].FSSlimnessEnthusiast != "unset">> - <br>''You are supporting'' enthusiasm for slaves with girlish figures. //[[Abandon|Future Society][$arcologies[0].FSSlimnessEnthusiast to "unset", $arcologies[0].FSSlimnessEnthusiastDecoration to 20, $arcologies[0].FSSlimnessEnthusiastSMR to 0, $assistantFSAppearance to "default", $FSCredits += 1]]//<br> + <br>''You are supporting'' enthusiasm for slaves with girlish figures. + //<<link [[Abandon|Future Society]]>><<set $arcologies[0].FSSlimnessEnthusiast to "unset", $arcologies[0].FSSlimnessEnthusiastDecoration to 20, $arcologies[0].FSSlimnessEnthusiastSMR to 0, $FSCredits += 1>><<if $assistantFSAppearance == "slimness enthusiast">><<set $assistantFSAppearance to "default">><</if>><</link>>//<br> <<switch $arcologies[0].FSSlimnessEnthusiastDecoration>> <<case 20>> $arcologies[0].name is not customized to support this goal. @@ -1184,8 +1195,8 @@ You are spending ¤$FSSpending each week to support your societal goals. $arcologies[0].name's media is supporting this goal; $arcologies[0].name's public spaces are decorated to support it, and have slaves stationed in them to support it. The exterior of the arcology has been remodeled to support it too; the arcology is fully customized for this goal. <</switch>> <<if $PAPublic == 1>> - <<if ($assistantAppearance is "schoolgirl") or ($assistantAppearance is "shemale") or ($assistantAppearance is "loli")>> - With her $assistantAppearance appearance, $assistantName is a good public mascot for this model. + <<if ($assistantAppearance is "schoolgirl") || ($assistantAppearance is "shemale") || ($assistantAppearance is "loli")>> + With her $assistantAppearance appearance, $assistantName is a good public mascot for this model. <</if>> <</if>> <<else>> @@ -1199,7 +1210,8 @@ You are spending ¤$FSSpending each week to support your societal goals. <<if $arcologies[0].FSSlimnessEnthusiast is "unset">> <<if $arcologies[0].FSAssetExpansionist != "unset">> - <br>''You are pursuing'' societal hunger for huge assets. //[[Abandon|Future Society][$arcologies[0].FSAssetExpansionist to "unset", $arcologies[0].FSAssetExpansionistDecoration to 20, $arcologies[0].FSAssetExpansionistSMR to 0, $assistantFSAppearance to "default", $FSCredits += 1]]//<br> + <br>''You are pursuing'' societal hunger for huge assets. + //<<link [[Abandon|Future Society]]>><<set $arcologies[0].FSAssetExpansionist to "unset", $arcologies[0].FSAssetExpansionistDecoration to 20, $arcologies[0].FSAssetExpansionistSMR to 0, $FSCredits += 1>><<if $assistantFSAppearance == "asset expansionist">><<set $assistantFSAppearance to "default">><</if>><</link>>//<br> <<switch $arcologies[0].FSAssetExpansionistDecoration>> <<case 20>> $arcologies[0].name is not customized to support this goal. @@ -1233,8 +1245,8 @@ You are spending ¤$FSSpending each week to support your societal goals. $arcologies[0].name's media is supporting this goal; $arcologies[0].name's public spaces are decorated to support it, and have slaves stationed in them to support it. The exterior of the arcology has been remodeled to support it too; the arcology is fully customized for this goal. <</switch>> <<if $PAPublic == 1>> - <<if ($assistantAppearance is "goddess") or ($assistantAppearance is "shemale") or ($assistantAppearance is "hypergoddess")>> - With her $assistantAppearance appearance, $assistantName is a good public mascot for this model. + <<if ($assistantAppearance is "businesswoman") || ($assistantAppearance is "shemale") || ($assistantAppearance is "hypergoddess")>> + With her $assistantAppearance appearance, $assistantName is a good public mascot for this model. <</if>> <</if>> <<else>> @@ -1248,7 +1260,8 @@ You are spending ¤$FSSpending each week to support your societal goals. <<if $arcologies[0].FSPhysicalIdealist is "unset">> <<if $arcologies[0].FSPastoralist != "unset">> - <br>''You are pursuing'' societal normalization of slave milking. //[[Abandon|Future Society][$arcologies[0].FSPastoralist to "unset", $arcologies[0].FSPastoralistDecoration to 20, $arcologies[0].FSPastoralistLaw to 0, $assistantFSAppearance to "default", $FSCredits += 1]]//<br> + <br>''You are pursuing'' societal normalization of slave milking. + //<<link [[Abandon|Future Society]]>><<set $arcologies[0].FSPastoralist to "unset", $arcologies[0].FSPastoralistDecoration to 20, $arcologies[0].FSPastoralistLaw to 0, $FSCredits += 1>><<if $assistantFSAppearance == "pastoralist">><<set $assistantFSAppearance to "default">><</if>><</link>>//<br> <<switch $arcologies[0].FSPastoralistDecoration>> <<case 20>> $arcologies[0].name is not customized to support this goal. @@ -1282,8 +1295,8 @@ You are spending ¤$FSSpending each week to support your societal goals. $arcologies[0].name's media is supporting this goal; $arcologies[0].name's public spaces are decorated to support it, and have slaves stationed in them to support it. The exterior of the arcology has been remodeled to support it too; the arcology is fully customized for this goal. <</switch>> <<if $PAPublic == 1>> - <<if ($assistantAppearance is "goddess") or ($assistantAppearance is "businesswoman") or ($assistantAppearance is "hypergoddess")>> - With her $assistantAppearance appearance, $assistantName is a good public mascot for this model. + <<if ($assistantAppearance is "goddess") || ($assistantAppearance is "shemale") || ($assistantAppearance is "hypergoddess")>> + With her $assistantAppearance appearance, $assistantName is a good public mascot for this model. <</if>> <</if>> <<else>> @@ -1297,7 +1310,8 @@ You are spending ¤$FSSpending each week to support your societal goals. <<if $arcologies[0].FSPastoralist is "unset">> <<if $arcologies[0].FSPhysicalIdealist != "unset">> - <br>''You are pursuing'' societal reverence for the idealized human form, including height, health and muscle. //[[Abandon|Future Society][$arcologies[0].FSPhysicalIdealist to "unset", $arcologies[0].FSPhysicalIdealistDecoration to 20, $arcologies[0].FSPhysicalIdealistSMR to 0, $assistantFSAppearance to "default", $FSCredits += 1]]//<br> + <br>''You are pursuing'' societal reverence for the idealized human form, including height, health and muscle. + //<<link [[Abandon|Future Society]]>><<set $arcologies[0].FSPhysicalIdealist to "unset", $arcologies[0].FSPhysicalIdealistDecoration to 20, $arcologies[0].FSPhysicalIdealistSMR to 0, $FSCredits += 1>><<if $assistantFSAppearance == "physical idealist">><<set $assistantFSAppearance to "default">><</if>><</link>>//<br> <<switch $arcologies[0].FSPhysicalIdealistDecoration>> <<case 20>> $arcologies[0].name is not customized to support this goal. @@ -1331,8 +1345,8 @@ You are spending ¤$FSSpending each week to support your societal goals. $arcologies[0].name's media is supporting this goal; $arcologies[0].name's public spaces are decorated to support it, and have slaves stationed in them to support it. The exterior of the arcology has been remodeled to support it too; the arcology is fully customized for this goal. <</switch>> <<if $PAPublic == 1>> - <<if ($assistantAppearance is "amazon") || ($assistantAppearance is "monstergirl")>> - With her $assistantAppearance appearance, $assistantName is a good public mascot for this model. + <<if ($assistantAppearance is "amazon") || ($assistantAppearance is "shemale")>> + With her $assistantAppearance appearance, $assistantName is a good public mascot for this model. <</if>> <</if>> <<else>> @@ -1346,7 +1360,8 @@ You are spending ¤$FSSpending each week to support your societal goals. <<if $arcologies[0].FSNull is "unset">> <<if $arcologies[0].FSChattelReligionist != "unset">> - <br>''You are pursuing'' a new strain of religion that emphasizes the slaveholding portions of religious history. //[[Abandon|Future Society][$arcologies[0].FSChattelReligionist to "unset", $arcologies[0].FSChattelReligionistDecoration to 20, $arcologies[0].FSChattelReligionistLaw to 0, $assistantFSAppearance to "default", $FSCredits += 1]]//<br> + <br>''You are pursuing'' a new strain of religion that emphasizes the slaveholding portions of religious history. + //<<link [[Abandon|Future Society]]>><<set $arcologies[0].FSChattelReligionist to "unset", $arcologies[0].FSChattelReligionistDecoration to 20, $arcologies[0].FSChattelReligionistLaw to 0, $FSCredits += 1>><<if $assistantFSAppearance == "chattel religionist">><<set $assistantFSAppearance to "default">><</if>><</link>>//<br> <<switch $arcologies[0].FSChattelReligionistDecoration>> <<case 20>> $arcologies[0].name is not customized to support this goal. @@ -1381,7 +1396,7 @@ You are spending ¤$FSSpending each week to support your societal goals. <</switch>> <<if $PAPublic == 1>> <<if ($assistantAppearance is "goddess") || ($assistantAppearance is "monstergirl")>> - With her $assistantAppearance appearance, $assistantName is a good public mascot for this model. + With her $assistantAppearance appearance, $assistantName is a good public mascot for this model. <</if>> <</if>> <<else>> @@ -1395,7 +1410,8 @@ You are spending ¤$FSSpending each week to support your societal goals. <<if ($arcologies[0].FSEgyptianRevivalist is "unset") && ($arcologies[0].FSEdoRevivalist is "unset") && ($arcologies[0].FSArabianRevivalist is "unset") && ($arcologies[0].FSChineseRevivalist is "unset")>> <<if $arcologies[0].FSRomanRevivalist != "unset">> - <br>''You are pursuing'' a vision of a new Rome. //[[Abandon|Future Society][$arcologies[0].FSRomanRevivalist to "unset", $arcologies[0].FSRomanRevivalistDecoration to 20, $arcologies[0].FSRomanRevivalistLaw to 0, $assistantFSAppearance to "default", $FSCredits += 1]]//<br> + <br>''You are pursuing'' a vision of a new Rome. + //<<link [[Abandon|Future Society]]>><<set $arcologies[0].FSRomanRevivalist to "unset", $arcologies[0].FSRomanRevivalistDecoration to 20, $arcologies[0].FSRomanRevivalistLaw to 0, $FSCredits += 1>><<if $assistantFSAppearance == "roman revivalist">><<set $assistantFSAppearance to "default">><</if>><</link>>//<br> <<switch $arcologies[0].FSRomanRevivalistDecoration>> <<case 20>> $arcologies[0].name is not customized to support this goal. @@ -1429,8 +1445,8 @@ You are spending ¤$FSSpending each week to support your societal goals. $arcologies[0].name's media is supporting this goal; $arcologies[0].name's public spaces are decorated to support it, and have slaves stationed in them to support it. The exterior of the arcology has been remodeled to support it too; the arcology is fully customized for this goal. <</switch>> <<if $PAPublic == 1>> - <<if ($assistantAppearance is "goddess") || ($assistantAppearance is "amazon")>> - With her $assistantAppearance appearance, $assistantName is a good public mascot for this model. + <<if ($assistantAppearance is "businesswoman") || ($assistantAppearance is "amazon")>> + With her $assistantAppearance appearance, $assistantName is a good public mascot for this model. <</if>> <</if>> <<else>> @@ -1444,7 +1460,8 @@ You are spending ¤$FSSpending each week to support your societal goals. <<if ($arcologies[0].FSRomanRevivalist is "unset") && ($arcologies[0].FSEdoRevivalist is "unset") && ($arcologies[0].FSArabianRevivalist is "unset") && ($arcologies[0].FSChineseRevivalist is "unset")>> <<if $arcologies[0].FSEgyptianRevivalist != "unset">> - <br>''You are pursuing'' a vision of Pharaoh's Egypt. //[[Abandon|Future Society][$arcologies[0].FSEgyptianRevivalist to "unset", $arcologies[0].FSEgyptianRevivalistDecoration to 20, $arcologies[0].FSEgyptianRevivalistLaw to 0, $assistantFSAppearance to "default", $FSCredits += 1]]//<br> + <br>''You are pursuing'' a vision of Pharaoh's Egypt. + //<<link [[Abandon|Future Society]]>><<set $arcologies[0].FSEgyptianRevivalist to "unset", $arcologies[0].FSEgyptianRevivalistDecoration to 20, $arcologies[0].FSEgyptianRevivalistLaw to 0, $FSCredits += 1>><<if $assistantFSAppearance == "egyptian revivalist">><<set $assistantFSAppearance to "default">><</if>><</link>>//<br> <<switch $arcologies[0].FSEgyptianRevivalistDecoration>> <<case 20>> $arcologies[0].name is not customized to support this goal. @@ -1478,8 +1495,8 @@ You are spending ¤$FSSpending each week to support your societal goals. $arcologies[0].name's media is supporting this goal; $arcologies[0].name's public spaces are decorated to support it, and have slaves stationed in them to support it. The exterior of the arcology has been remodeled to support it too; the arcology is fully customized for this goal. <</switch>> <<if $PAPublic == 1>> - <<if ($assistantAppearance is "amazon") || ($assistantAppearance is "monstergirl")>> - With her $assistantAppearance appearance, $assistantName is a good public mascot for this model. + <<if ($assistantAppearance is "goddess") || ($assistantAppearance is "monstergirl")>> + With her $assistantAppearance appearance, $assistantName is a good public mascot for this model. <</if>> <</if>> <<else>> @@ -1493,7 +1510,8 @@ You are spending ¤$FSSpending each week to support your societal goals. <<if ($arcologies[0].FSRomanRevivalist is "unset") && ($arcologies[0].FSEgyptianRevivalist is "unset") && ($arcologies[0].FSArabianRevivalist is "unset") && ($arcologies[0].FSChineseRevivalist is "unset")>> <<if $arcologies[0].FSEdoRevivalist != "unset">> - <br>''You are pursuing'' a vision of Edo Japan. //[[Abandon|Future Society][$arcologies[0].FSEdoRevivalist to "unset", $arcologies[0].FSEdoRevivalistDecoration to 20, $arcologies[0].FSEdoRevivalistLaw to 0, $assistantFSAppearance to "default", $FSCredits += 1]]//<br> + <br>''You are pursuing'' a vision of Edo Japan. + //<<link [[Abandon|Future Society]]>><<set $arcologies[0].FSEdoRevivalist to "unset", $arcologies[0].FSEdoRevivalistDecoration to 20, $arcologies[0].FSEdoRevivalistLaw to 0, $FSCredits += 1>><<if $assistantFSAppearance == "edo revivalist">><<set $assistantFSAppearance to "default">><</if>><</link>>//<br> <<switch $arcologies[0].FSEdoRevivalistDecoration>> <<case 20>> $arcologies[0].name is not customized to support this goal. @@ -1527,8 +1545,8 @@ You are spending ¤$FSSpending each week to support your societal goals. $arcologies[0].name's media is supporting this goal; $arcologies[0].name's public spaces are decorated to support it, and have slaves stationed in them to support it. The exterior of the arcology has been remodeled to support it too; the arcology is fully customized for this goal. <</switch>> <<if $PAPublic == 1>> - <<if ($assistantAppearance is "goddess") or ($assistantAppearance is "monstergirl") or ($assistantAppearance is "loli") or ($assistantAppearance is "kitsune")>> - With her $assistantAppearance appearance, $assistantName is a good public mascot for this model. + <<if ($assistantAppearance is "amazon") || ($assistantAppearance is "monstergirl") || ($assistantAppearance is "loli") || ($assistantAppearance is "kitsune")>> + With her $assistantAppearance appearance, $assistantName is a good public mascot for this model. <</if>> <</if>> <<else>> @@ -1540,7 +1558,8 @@ You are spending ¤$FSSpending each week to support your societal goals. <<if ($arcologies[0].FSRomanRevivalist is "unset") && ($arcologies[0].FSEgyptianRevivalist is "unset") && ($arcologies[0].FSEdoRevivalist is "unset") && ($arcologies[0].FSChineseRevivalist is "unset")>> <<if $arcologies[0].FSArabianRevivalist != "unset">> - <br>''You are pursuing'' a vision of the Sultanate of old. //[[Abandon|Future Society][$arcologies[0].FSArabianRevivalist to "unset", $arcologies[0].FSArabianRevivalistDecoration to 20, $arcologies[0].FSArabianRevivalistLaw to 0, $assistantFSAppearance to "default", $FSCredits += 1]]//<br> + <br>''You are pursuing'' a vision of the Sultanate of old. + //<<link [[Abandon|Future Society]]>><<set $arcologies[0].FSArabianRevivalist to "unset", $arcologies[0].FSArabianRevivalistDecoration to 20, $arcologies[0].FSArabianRevivalistLaw to 0, $FSCredits += 1>><<if $assistantFSAppearance == "arabian revivalist">><<set $assistantFSAppearance to "default">><</if>><</link>>//<br> <<switch $arcologies[0].FSArabianRevivalistDecoration>> <<case 20>> $arcologies[0].name is not customized to support this goal. @@ -1574,8 +1593,8 @@ You are spending ¤$FSSpending each week to support your societal goals. $arcologies[0].name's media is supporting this goal; $arcologies[0].name's public spaces are decorated to support it, and have slaves stationed in them to support it. The exterior of the arcology has been remodeled to support it too; the arcology is fully customized for this goal. <</switch>> <<if $PAPublic == 1>> - <<if ($assistantAppearance is "businesswoman") || ($assistantAppearance is "monstergirl")>> - With her $assistantAppearance appearance, $assistantName is a good public mascot for this model. + <<if ($assistantAppearance is "businesswoman") || ($assistantAppearance is "schoolgirl")>> + With her $assistantAppearance appearance, $assistantName is a good public mascot for this model. <</if>> <</if>> <<else>> @@ -1587,7 +1606,8 @@ You are spending ¤$FSSpending each week to support your societal goals. <<if ($arcologies[0].FSRomanRevivalist is "unset") && ($arcologies[0].FSEgyptianRevivalist is "unset") && ($arcologies[0].FSEdoRevivalist is "unset") && ($arcologies[0].FSArabianRevivalist is "unset")>> <<if $arcologies[0].FSChineseRevivalist != "unset">> - <br>''You are pursuing'' a vision of ancient China. //[[Abandon|Future Society][$arcologies[0].FSChineseRevivalist to "unset", $arcologies[0].FSChineseRevivalistDecoration to 20, $arcologies[0].FSChineseRevivalistLaw to 0, $assistantFSAppearance to "default", $FSCredits += 1]]//<br> + <br>''You are pursuing'' a vision of ancient China. + //<<link [[Abandon|Future Society]]>><<set $arcologies[0].FSChineseRevivalist to "unset", $arcologies[0].FSChineseRevivalistDecoration to 20, $arcologies[0].FSChineseRevivalistLaw to 0, $FSCredits += 1>><<if $assistantFSAppearance == "chinese revivalist">><<set $assistantFSAppearance to "default">><</if>><</link>>//<br> <<switch $arcologies[0].FSChineseRevivalistDecoration>> <<case 20>> $arcologies[0].name is not customized to support this goal. @@ -1621,8 +1641,8 @@ You are spending ¤$FSSpending each week to support your societal goals. $arcologies[0].name's media is supporting this goal; $arcologies[0].name's public spaces are decorated to support it, and have slaves stationed in them to support it. The exterior of the arcology has been remodeled to support it too; the arcology is fully customized for this goal. <</switch>> <<if $PAPublic == 1>> - <<if ($assistantAppearance is "businesswoman") || ($assistantAppearance is "monstergirl")>> - With her $assistantAppearance appearance, $assistantName is a good public mascot for this model. + <<if ($assistantAppearance is "schoolgirl") || ($assistantAppearance is "monstergirl")>> + With her $assistantAppearance appearance, $assistantName is a good public mascot for this model. <</if>> <</if>> <<else>> @@ -1633,22 +1653,81 @@ You are spending ¤$FSSpending each week to support your societal goals. <</if>> <<if $arcologies[0].FSChattelReligionist is "unset">> -<<if $arcologies[0].FSNull != "unset">> - <br>''You are permitting <<if $arcologies[0].FSNull <= 25>>basic<<elseif $arcologies[0].FSNull <= 50>>considerable<<elseif $arcologies[0].FSNull <= 75>>advanced<<else>>absolute<</if>>'' cultural freedom in your arcology. - <<if $arcologies[0].FSNull <= 25>> - //[[Abandon|Future Society][$arcologies[0].FSNull to "unset", $arcologies[0].FSNullDecoration to 20, $arcologies[0].FSNullLaw to 0, $assistantFSAppearance to "default", $FSCredits += 1]]// +<<if $FSCreditCount == 4>> + <<if $arcologies[0].FSNull != "unset">> + <br>''You are permitting <<if $arcologies[0].FSNull <= 25>>basic<<elseif $arcologies[0].FSNull <= 50>>considerable<<elseif $arcologies[0].FSNull <= 75>>advanced<<else>>absolute<</if>>'' cultural freedom in your arcology. + <<if $arcologies[0].FSNull <= 25>> + //[[Abandon|Future Society][$arcologies[0].FSNull to "unset", $arcologies[0].FSNullDecoration to 20, $arcologies[0].FSNullLaw to 0, $assistantFSAppearance to "default", $FSCredits += 1]]// + <<else>> + //[[Withdraw|Future Society][$arcologies[0].FSNull -= 25, $FSCredits += 1]]// + <</if>> + <<if $FSCredits > 0>> + <<if $arcologies[0].FSNull < $FSLockinLevel>> + <br> [[Advance|Future Society][$arcologies[0].FSNull += 25, $FSCredits -= 1]]: further commitment to allow your arcology's citizens cultural freedom. + <</if>> + <</if>> <<else>> - //[[Withdraw|Future Society][$arcologies[0].FSNull -= 25, $FSCredits += 1]]// + <<if $FSCredits > 0>> + <br>[[Multiculturalism|Future Society][$arcologies[0].FSNull to 25, $FSCredits -= 1]]: a commitment to allow your arcology's citizens cultural freedom. + <br> //This option is an alternative to societal advancement, and will not advance naturally.// + <</if>> <</if>> - <<if $FSCredits > 0>> - <<if $arcologies[0].FSNull < $FSLockinLevel>> - <br> [[Advance|Future Society][$arcologies[0].FSNull += 25, $FSCredits -= 1]]: further commitment to allow your arcology's citizens cultural freedom. +<<elseif $FSCreditCount == 6>> + <<if $arcologies[0].FSNull != "unset">> + <br>''You are permitting <<if $arcologies[0].FSNull <= 17>>basic<<elseif $arcologies[0].FSNull <= 34>>some<<elseif $arcologies[0].FSNull <= 51>>considerable<<elseif $arcologies[0].FSNull <= 68>>great<<elseif $arcologies[0].FSNull <= 85>>advanced<<else>>absolute<</if>>'' cultural freedom in your arcology. + <<if $arcologies[0].FSNull <= 20>> + //[[Abandon|Future Society][$arcologies[0].FSNull to "unset", $arcologies[0].FSNullDecoration to 20, $arcologies[0].FSNullLaw to 0, $assistantFSAppearance to "default", $FSCredits += 1]]// + <<else>> + //[[Withdraw|Future Society][$arcologies[0].FSNull -= 17, $FSCredits += 1]]// + <</if>> + <<if $FSCredits > 0>> + <<if $arcologies[0].FSNull < $FSLockinLevel>> + <br> [[Advance|Future Society][$arcologies[0].FSNull += 17, $FSCredits -= 1]]: further commitment to allow your arcology's citizens cultural freedom. + <</if>> + <</if>> + <<else>> + <<if $FSCredits > 0>> + <br>[[Multiculturalism|Future Society][$arcologies[0].FSNull to 17, $FSCredits -= 1]]: a commitment to allow your arcology's citizens cultural freedom. + <br> //This option is an alternative to societal advancement, and will not advance naturally.// + <</if>> <</if>> +<<elseif $FSCreditCount == 7>> + <<if $arcologies[0].FSNull != "unset">> + <br>''You are permitting <<if $arcologies[0].FSNull <= 15>>basic<<elseif $arcologies[0].FSNull <= 30>>some<<elseif $arcologies[0].FSNull <= 45>>notable<<elseif $arcologies[0].FSNull <= 60>>considerable<<elseif $arcologies[0].FSNull <= 75>>great<<elseif $arcologies[0].FSNull <= 90>>advanced<<else>>absolute<</if>>'' cultural freedom in your arcology. + <<if $arcologies[0].FSNull <= 20>> + //[[Abandon|Future Society][$arcologies[0].FSNull to "unset", $arcologies[0].FSNullDecoration to 20, $arcologies[0].FSNullLaw to 0, $assistantFSAppearance to "default", $FSCredits += 1]]// + <<else>> + //[[Withdraw|Future Society][$arcologies[0].FSNull -= 15, $FSCredits += 1]]// + <</if>> + <<if $FSCredits > 0>> + <<if $arcologies[0].FSNull < $FSLockinLevel>> + <br> [[Advance|Future Society][$arcologies[0].FSNull += 15, $FSCredits -= 1]]: further commitment to allow your arcology's citizens cultural freedom. + <</if>> + <</if>> + <<else>> + <<if $FSCredits > 0>> + <br>[[Multiculturalism|Future Society][$arcologies[0].FSNull to 15, $FSCredits -= 1]]: a commitment to allow your arcology's citizens cultural freedom. + <br> //This option is an alternative to societal advancement, and will not advance naturally.// + <</if>> <</if>> <<else>> - <<if $FSCredits > 0>> - <br>[[Multiculturalism|Future Society][$arcologies[0].FSNull to 25, $FSCredits -= 1]]: a commitment to allow your arcology's citizens cultural freedom. - <br> //This option is an alternative to societal advancement, and will not advance naturally.// + <<if $arcologies[0].FSNull != "unset">> + <br>''You are permitting <<if $arcologies[0].FSNull <= 20>>basic<<elseif $arcologies[0].FSNull <= 40>>considerable<<elseif $arcologies[0].FSNull <= 60>>great<<elseif $arcologies[0].FSNull <= 80>>advanced<<else>>absolute<</if>>'' cultural freedom in your arcology. + <<if $arcologies[0].FSNull <= 20>> + //[[Abandon|Future Society][$arcologies[0].FSNull to "unset", $arcologies[0].FSNullDecoration to 20, $arcologies[0].FSNullLaw to 0, $assistantFSAppearance to "default", $FSCredits += 1]]// + <<else>> + //[[Withdraw|Future Society][$arcologies[0].FSNull -= 20, $FSCredits += 1]]// + <</if>> + <<if $FSCredits > 0>> + <<if $arcologies[0].FSNull < $FSLockinLevel>> + <br> [[Advance|Future Society][$arcologies[0].FSNull += 20, $FSCredits -= 1]]: further commitment to allow your arcology's citizens cultural freedom. + <</if>> + <</if>> + <<else>> + <<if $FSCredits > 0>> + <br>[[Multiculturalism|Future Society][$arcologies[0].FSNull to 20, $FSCredits -= 1]]: a commitment to allow your arcology's citizens cultural freedom. + <br> //This option is an alternative to societal advancement, and will not advance naturally.// + <</if>> <</if>> <</if>> <</if>> @@ -2319,8 +2398,7 @@ You are spending ¤$FSSpending each week to support your societal goals. <br> [[Chattel Religionist redecoration|Future Society][$schoolroomDecoration to "Chattel Religionist", $cash -= 5000]] <</if>> <<if ($arcologies[0].FSDegradationist >= 20) && ($schoolroomDecoration != "Degradationist")>> -<br> -[[Degradationist redecoration|Future Society][$schoolroomDecoration to "Degradationist", $cash -= 5000]] +<br> [[Degradationist redecoration|Future Society][$schoolroomDecoration to "Degradationist", $cash -= 5000]] <</if>> <<if ($arcologies[0].FSRomanRevivalist >= 20) && ($schoolroomDecoration != "Roman Revivalist")>> <br> [[Roman Revivalist redecoration|Future Society][$schoolroomDecoration to "Roman Revivalist", $cash -= 5000]] diff --git a/src/uncategorized/generateXXSlave.tw b/src/uncategorized/generateXXSlave.tw index f699f6248dbb66af454e475ec45dd311361da839..8094d1c491ed1f1a6eb437e1d421fc86ef295517 100644 --- a/src/uncategorized/generateXXSlave.tw +++ b/src/uncategorized/generateXXSlave.tw @@ -1,6 +1,6 @@ :: Generate XX Slave [nobr] -<<set $activeSlave to {slaveName: "blank", birthName: "blank", weekAcquired: 0, origin: 0, career: 0, ID: 0, prestige: 0, pornFame: 0, pornFameSpending: 0, prestigeDesc: 0, recruiter: 0, relation: 0, relationTarget: 0, relationship: 0, relationshipTarget: 0, rivalry: 0, rivalryTarget: 0, subTarget: 0, choosesOwnAssignment: 0, assignment: "rest", assignmentVisible: 1, sentence: 0, training: 0, toyHole: "all her holes", indenture: -1, indentureRestrictions: 0, birthWeek: random(0,51), age: 18, ageImplant: 0, health: 0, minorInjury: 0, trust: 0, oldTrust: 0, devotion: 0, oldDevotion: 0, weight: 0, muscles: 0, height: 170, heightImplant: 0, nationality: "slave", race:"white", markings: "none", eyes: 1, eyeColor: "brown", eyewear: "none", hColor: "brown", pubicHColor: "brown", skin: "light", hLength: 60, hStyle: "short", pubicHStyle: "neat", waist: 0, corsetPiercing: 0, amp: 0, heels:0, voice: 2, voiceImplant: 0, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 0, boobsImplant: 0, boobsImplantType: 0, boobShape: "normal", nipples: "cute", nipplesPiercing: 0, areolae: 0, areolaePiercing: 0, boobsTat: 0, lactation: 0, lactationAdaptation: 0, milk: 0, cum: 0, hips: 0, hipsImplant: 0, butt: 0, buttImplant: 0, buttImplantType: 0, buttTat: 0, face: 0, faceImplant: 0, faceShape: "normal", lips: 15, lipsImplant: 0, lipsPiercing: 0, lipsTat: 0, teeth: "normal", tonguePiercing: 0, vagina: 0, vaginaLube: 1, vaginaPiercing: 0, vaginaTat: 0, preg: -1, pregSource: 0, pregType: 0, labor: 0, births: 0, cSec: 0, bellyAccessory: "none", labia: 0, clit: 0, clitPiercing: 0, clitSetting: "vanilla", foreskin: 0, anus: 0, dick: 0, analArea: 1, dickPiercing: 0, dickTat: 0, balls: 0, scrotum: 0, ovaries: 1, anusPiercing: 0, anusTat: 0, makeup: 0, nails: 0, brand: 0, brandLocation: 0, earPiercing: 0, nosePiercing: 0, eyebrowPiercing: 0, navelPiercing: 0, shouldersTat: 0, armsTat: 0, legsTat: 0, backTat: 0, stampTat: 0, vaginalSkill: 0, oralSkill: 0, analSkill: 0, whoreSkill: 0, entertainSkill: 0, combatSkill: 0, livingRules: "spare", speechRules: "restrictive", releaseRules:"restrictive", relationshipRules: "restrictive", standardPunishment: "situational", standardReward: "situational", useRulesAssistant: 1, diet: "healthy", dietCum: 0, dietMilk: 0, tired: 0, hormones: 0, drugs: "no drugs", curatives: 0, chem: 0, aphrodisiacs: 0, addict: 0, fuckdoll: 0, choosesOwnClothes: 0, clothes: "no clothing", collar: "none", shoes: "none", vaginalAccessory: "none", dickAccessory: "none", buttplug: "none", intelligence: 0, intelligenceImplant: 0, energy: 50, attrXX: 0, attrXY: 0, attrKnown: 0, fetish: "none", fetishStrength: 70, fetishKnown: 0, behavioralFlaw: "none", behavioralQuirk: "none", sexualFlaw: "none", sexualQuirk: "none", oralCount: 0, vaginalCount: 0, analCount: 0, mammaryCount: 0, penetrativeCount: 0, pitKills: 0, customTat: "", customLabel: "", customDesc: "", currentRules: [], bellyTat: 0, induce: 0, mpreg: 0, inflation: 0, inflationType: "none", inflationMethod: 0, milkSource: 0, cumSource: 0, burst: 0, bellyImplant: 0, bellySag: 0, birthsTotal: 0, pubertyAgeXX: 13, pubertyAgeXY: 13, underArmHStyle: "waxed", physicalAge: 18, actualAge: 18, visualAge: 18, father: 0, mother: 0, sisters: 0, daughters: 0, canRecruit: 1, HGExclude: 0, ballType: "human", eggType: "human"}>> +<<set $activeSlave to {slaveName: "blank", birthName: "blank", weekAcquired: 0, origin: 0, career: 0, ID: 0, prestige: 0, pornFame: 0, pornFameSpending: 0, prestigeDesc: 0, recruiter: 0, relation: 0, relationTarget: 0, relationship: 0, relationshipTarget: 0, rivalry: 0, rivalryTarget: 0, subTarget: 0, choosesOwnAssignment: 0, assignment: "rest", assignmentVisible: 1, sentence: 0, training: 0, toyHole: "all her holes", indenture: -1, indentureRestrictions: 0, birthWeek: random(0,51), age: 18, ageImplant: 0, health: 0, minorInjury: 0, trust: 0, oldTrust: 0, devotion: 0, oldDevotion: 0, weight: 0, muscles: 0, height: 170, heightImplant: 0, nationality: "slave", race:"white", markings: "none", eyes: 1, eyeColor: "brown", eyewear: "none", hColor: "brown", pubicHColor: "brown", skin: "light", hLength: 60, hStyle: "short", pubicHStyle: "neat", waist: 0, corsetPiercing: 0, amp: 0, heels:0, voice: 2, voiceImplant: 0, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 0, boobsImplant: 0, boobsImplantType: 0, boobShape: "normal", nipples: "cute", nipplesPiercing: 0, areolae: 0, areolaePiercing: 0, boobsTat: 0, lactation: 0, lactationAdaptation: 0, milk: 0, cum: 0, hips: 0, hipsImplant: 0, butt: 0, buttImplant: 0, buttImplantType: 0, buttTat: 0, face: 0, faceImplant: 0, faceShape: "normal", lips: 15, lipsImplant: 0, lipsPiercing: 0, lipsTat: 0, teeth: "normal", tonguePiercing: 0, vagina: 0, vaginaLube: 1, vaginaPiercing: 0, vaginaTat: 0, preg: -1, pregSource: 0, pregType: 0, labor: 0, births: 0, cSec: 0, bellyAccessory: "none", labia: 0, clit: 0, clitPiercing: 0, clitSetting: "vanilla", foreskin: 0, anus: 0, dick: 0, analArea: 1, dickPiercing: 0, dickTat: 0, balls: 0, scrotum: 0, ovaries: 1, anusPiercing: 0, anusTat: 0, makeup: 0, nails: 0, brand: 0, brandLocation: 0, earPiercing: 0, nosePiercing: 0, eyebrowPiercing: 0, navelPiercing: 0, shouldersTat: 0, armsTat: 0, legsTat: 0, backTat: 0, stampTat: 0, vaginalSkill: 0, oralSkill: 0, analSkill: 0, whoreSkill: 0, entertainSkill: 0, combatSkill: 0, livingRules: "spare", speechRules: "restrictive", releaseRules:"restrictive", relationshipRules: "restrictive", standardPunishment: "situational", standardReward: "situational", useRulesAssistant: 1, diet: "healthy", dietCum: 0, dietMilk: 0, tired: 0, hormones: 0, drugs: "no drugs", curatives: 0, chem: 0, aphrodisiacs: 0, addict: 0, fuckdoll: 0, choosesOwnClothes: 0, clothes: "no clothing", collar: "none", shoes: "none", vaginalAccessory: "none", dickAccessory: "none", buttplug: "none", intelligence: 0, intelligenceImplant: 0, energy: 50, attrXX: 0, attrXY: 0, attrKnown: 0, fetish: "none", fetishStrength: 70, fetishKnown: 0, behavioralFlaw: "none", behavioralQuirk: "none", sexualFlaw: "none", sexualQuirk: "none", oralCount: 0, vaginalCount: 0, analCount: 0, mammaryCount: 0, penetrativeCount: 0, pitKills: 0, customTat: "", customLabel: "", customDesc: "", customImage: 0, currentRules: [], bellyTat: 0, induce: 0, mpreg: 0, inflation: 0, inflationType: "none", inflationMethod: 0, milkSource: 0, cumSource: 0, burst: 0, bellyImplant: 0, bellySag: 0, birthsTotal: 0, pubertyAgeXX: 13, pubertyAgeXY: 13, underArmHStyle: "waxed", physicalAge: 18, actualAge: 18, visualAge: 18, father: 0, mother: 0, sisters: 0, daughters: 0, canRecruit: 1, HGExclude: 0, ballType: "human", eggType: "human", reservedChildren: 0}>> <<set $activeSlave.publicCount to 0>> <<if $activeSlaveOneTimeMaxAge > 998>> @@ -161,16 +161,19 @@ <</if>> /% Since we use nationality for height effects we need to initialize it now instead of later on like in vanilla Free Cities. %/ -<<if $startingGirlsNationality == 0>> - <<set $activeSlave.nationality to $nationalities.random()>> +<<if $fixedNationality == 0>> + <<set $activeSlave.nationality to $nationalities.random()>> <<else>> - <<set $activeSlave.nationality to $startingGirlsNationality>> + <<set $activeSlave.nationality to $fixedNationality>> <</if>> -<<display "New Slave Race Nationality and Name">> +<<NationalityToRace>> +<<NationalityToName>> +<<NationalityToAccent>> <<set $seed to 162.5>> -<<if $activeSlave.nationality is "American">> +<<switch $activeSlave.nationality>> +<<case "American">> <<if $activeSlave.race is "white">> <<set $seed to 165>> <<elseif $activeSlave.race is "black">> @@ -182,152 +185,153 @@ <<else>> <<set $seed to 161.8>> <</if>> -<<elseif $activeSlave.nationality is "Afghan">> -<<elseif $activeSlave.nationality is "Argentinian">> +<<case "Afghan">> +<<case "Argentinian">> <<set $seed to 159.6>> -<<elseif $activeSlave.nationality is "Armenian">> -<<elseif $activeSlave.nationality is "Australian">> +<<case "Armenian">> +<<case "Australian">> <<set $seed to 161.8>> -<<elseif $activeSlave.nationality is "Austrian">> +<<case "Austrian">> <<set $seed to 166>> -<<elseif $activeSlave.nationality is "Belarusian">> +<<case "Belarusian">> <<set $seed to 166.8>> -<<elseif $activeSlave.nationality is "Belgian">> -<<elseif $activeSlave.nationality is "Bolivian">> +<<case "Belgian">> +<<case "Bolivian">> <<set $seed to 142.2>> -<<elseif $activeSlave.nationality is "Brazilian">> +<<case "Brazilian">> <<set $seed to 158.8>> -<<elseif $activeSlave.nationality is "British">> +<<case "British">> <<set $seed to 161.9>> -<<elseif $activeSlave.nationality is "Canadian">> +<<case "Canadian">> <<set $seed to 162.3>> -<<elseif $activeSlave.nationality is "Chilean">> +<<case "Chilean">> <<set $seed to 157.2>> -<<elseif $activeSlave.nationality is "Chinese">> +<<case "Chinese">> <<set $seed to 155.8>> -<<elseif $activeSlave.nationality is "Colombian">> +<<case "Colombian">> <<set $seed to 158.7>> -<<elseif $activeSlave.nationality is "Congolese">> +<<case "Congolese">> <<set $seed to 157.7>> -<<elseif $activeSlave.nationality is "Cuban">> +<<case "Cuban">> <<set $seed to 156>> -<<elseif $activeSlave.nationality is "Czech">> +<<case "Czech">> <<set $seed to 167.22>> -<<elseif $activeSlave.nationality is "Danish">> +<<case "Danish">> <<set $seed to 168.7>> -<<elseif $activeSlave.nationality is "Dominican">> +<<case "Dominican">> <<set $seed to 156.4>> -<<elseif $activeSlave.nationality is "Dutch">> +<<case "Dutch">> <<set $seed to 169>> -<<elseif $activeSlave.nationality is "Emirati">> +<<case "Emirati">> <<set $seed to 156.4>> -<<elseif $activeSlave.nationality is "Egyptian">> +<<case "Egyptian">> <<set $seed to 158.9>> -<<elseif $activeSlave.nationality is "Estonian">> -<<elseif $activeSlave.nationality is "Ethiopian">> -<<elseif $activeSlave.nationality is "Finnish">> +<<case "Estonian">> +<<case "Ethiopian">> +<<case "Finnish">> <<set $seed to 165.3>> -<<elseif $activeSlave.nationality is "French">> +<<case "French">> <<set $seed to 162.5>> -<<elseif $activeSlave.nationality is "German">> +<<case "German">> <<set $seed to 162.8>> -<<elseif $activeSlave.nationality is "Ghanan">> +<<case "Ghanan">> <<set $seed to 158.5>> -<<elseif $activeSlave.nationality is "Greek">> +<<case "Greek">> <<set $seed to 165>> -<<elseif $activeSlave.nationality is "Guatemalan">> -<<elseif $activeSlave.nationality is "Haitian">> -<<elseif $activeSlave.nationality is "Hungarian">> +<<case "Guatemalan">> +<<case "Haitian">> +<<case "Hungarian">> <<set $seed to 176>> -<<elseif $activeSlave.nationality is "Icelandic">> -<<elseif $activeSlave.nationality is "Indian">> +<<case "Icelandic">> +<<case "Indian">> <<set $seed to 151.9>> -<<elseif $activeSlave.nationality is "Indonesian">> -<<elseif $activeSlave.nationality is "Iranian">> +<<case "Indonesian">> +<<case "Iranian">> <<set $seed to 157.2>> -<<elseif $activeSlave.nationality is "Iraqi">> +<<case "Iraqi">> <<set $seed to 155.8>> -<<elseif $activeSlave.nationality is "Irish">> +<<case "Irish">> <<set $seed to 163>> -<<elseif $activeSlave.nationality is "Israeli">> +<<case "Israeli">> <<set $seed to 166>> -<<elseif $activeSlave.nationality is "Italian">> -<<elseif $activeSlave.nationality is "Jamaican">> +<<case "Italian">> +<<case "Jamaican">> <<set $seed to 160.8>> -<<elseif $activeSlave.nationality is "Japanese">> +<<case "Japanese">> <<set $seed to 158>> -<<elseif $activeSlave.nationality is "Jordanian">> -<<elseif $activeSlave.nationality is "Kazakh">> -<<elseif $activeSlave.nationality is "Kenyan">> -<<elseif $activeSlave.nationality is "Korean">> +<<case "Jordanian">> +<<case "Kazakh">> +<<case "Kenyan">> +<<case "Korean">> <<if either(1,2,3) is 3>> <<set $seed to 154.9>> <<else>> <<set $seed to 157.4>> <</if>> -<<elseif $activeSlave.nationality is "Lebanese">> -<<elseif $activeSlave.nationality is "Libyan">> -<<elseif $activeSlave.nationality is "Lithuanian">> +<<case "Lebanese">> +<<case "Libyan">> +<<case "Lithuanian">> <<set $seed to 167.5>> -<<elseif $activeSlave.nationality is "Malaysian">> +<<case "Malaysian">> <<set $seed to 154.7>> -<<elseif $activeSlave.nationality is "Malian">> +<<case "Malian">> <<set $seed to 160.4>> -<<elseif $activeSlave.nationality is "Mexican">> +<<case "Mexican">> <<set $seed to 154>> -<<elseif $activeSlave.nationality is "Moroccan">> -<<elseif $activeSlave.nationality is "Nepalese">> -<<elseif $activeSlave.nationality is "Nigerian">> +<<case "Moroccan">> +<<case "Nepalese">> +<<case "Nigerian">> <<set $seed to 163.8>> -<<elseif $activeSlave.nationality is "Norwegian">> +<<case "Norwegian">> <<set $seed to 157.8>> -<<elseif $activeSlave.nationality is "Omani">> -<<elseif $activeSlave.nationality is "Pakistani">> +<<case "Omani">> +<<case "Pakistani">> /% Default to India's figures. %/ <<set $seed to 151.9>> -<<elseif $activeSlave.nationality is "Peruvian">> +<<case "Peruvian">> <<set $seed to 151>> -<<elseif $activeSlave.nationality is "Polish">> +<<case "Polish">> <<set $seed to 165.1>> -<<elseif $activeSlave.nationality is "Portuguese">> +<<case "Portuguese">> <<set $seed to 165.1>> -<<elseif $activeSlave.nationality is "Puerto Rican">> +<<case "Puerto Rican">> /% Use average for U.S. Hispanics. %/ <<set $seed to 158.9>> -<<elseif $activeSlave.nationality is "Romanian">> +<<case "Romanian">> <<set $seed to 157>> -<<elseif $activeSlave.nationality is "Russian">> +<<case "Russian">> <<set $seed to 164.1>> -<<elseif $activeSlave.nationality is "Saudi">> +<<case "Saudi">> <<set $seed to 156.3>> -<<elseif $activeSlave.nationality is "Scottish">> +<<case "Scottish">> <<set $seed to 163>> -<<elseif $activeSlave.nationality is "Serbian">> +<<case "Serbian">> <<set $seed to 166.8>> -<<elseif $activeSlave.nationality is "Slovak">> +<<case "Slovak">> <<set $seed to 165.6>> -<<elseif $activeSlave.nationality is "Spanish">> +<<case "Spanish">> <<set $seed to 162.6>> -<<elseif $activeSlave.nationality is "Sudanese">> -<<elseif $activeSlave.nationality is "Swedish">> +<<case "Sudanese">> +<<case "Swedish">> <<set $seed to 166.8>> -<<elseif $activeSlave.nationality is "Swiss">> -<<elseif $activeSlave.nationality is "Tanzanian">> -<<elseif $activeSlave.nationality is "Thai">> -<<elseif $activeSlave.nationality is "Tunisian">> -<<elseif $activeSlave.nationality is "Turkish">> +<<case "Swiss">> +<<case "Tanzanian">> +<<case "Thai">> +<<case "Tunisian">> +<<case "Turkish">> <<set $seed to 161.9>> -<<elseif $activeSlave.nationality is "Ugandan">> -<<elseif $activeSlave.nationality is "Ukrainian">> -<<elseif $activeSlave.nationality is "Uzbek">> -<<elseif $activeSlave.nationality is "Venezuelan">> -<<elseif $activeSlave.nationality is "Vietnamese">> +<<case "Ugandan">> +<<case "Ukrainian">> +<<case "Uzbek">> +<<case "Venezuelan">> +<<case "Vietnamese">> <<set $seed to 155.2>> -<<elseif $activeSlave.nationality is "Yemeni">> -<<elseif $activeSlave.nationality is "a New Zealander">> +<<case "Yemeni">> +<<case "a New Zealander">> <<set $seed to 164>> -<<elseif $activeSlave.nationality is "Zimbabwean">> -<</if>> +<<case "Zimbabwean">> +<<default>> +<</switch>> /% Include adjustment factor for age. %/ <<if $activeSlave.physicalAge <= 13>> @@ -361,6 +365,17 @@ <</if>> <</if>> +<<set $seed to 4+$activeSlave.intelligence+$activeSlave.intelligenceImplant>> +<<if "American" is $activeSlave.nationality>> + <<set $seed += 2>> +<<elseif ["Canadian", "Israeli", "Japanese", "Korean", "Irish", "Icelandic", "Finnish", "Swiss", "Danish", "Norwegian", "Austrian", "Slovak", "Dutch", "Belgian", "Czech", "Portuguese", "Hungarian", "Portuguese", "Estonian", "Polish", "Lithuanian", "Romanian", "German", "Swedish", "French", "Italian", "Spanish", "British", "Australian", "a New Zealander"].contains($activeSlave.nationality)>> +<<else>> + <<set $seed -= 2>> +<</if>> +<<if random(1,$seed) == 1>> + <<set $activeSlave.teeth to "crooked">> +<</if>> + <<switch $activeSlave.race>> <<case "black">> <<set $activeSlave.butt to either(1, 2, 2, 3, 3, 4, 4)>> @@ -633,11 +648,7 @@ <<set $activeSlave.voice to either(2, 2, 2, 2, 2, 3, 3, 3, 3)>> <</if>> -<<if $arcologies[0].FSSupremacistLawME == 1>> - <<if $activeSlave.race is $arcologies[0].FSSupremacistRace>> - <<display "Generate XX Slave">> - <</if>> -<<elseif passage() == "Slave Markets">> +<<if passage() == "Slave Markets">> <<if $slaveMarket == "corporate">> <<if ($captureUpgradeRace != "unselected") && ($captureUpgradeRace != "none")>> <<if $activeSlave.race != $captureUpgradeRace>> @@ -646,4 +657,4 @@ <</if>> <</if>> <</if>> -<</if>> \ No newline at end of file +<</if>> diff --git a/src/uncategorized/generateXYSlave.tw b/src/uncategorized/generateXYSlave.tw index c662ebf1ce86a2c7e20556534f2cef5d6a26f18a..1e59de5aef9aba60173b1cf0653c45df74408229 100644 --- a/src/uncategorized/generateXYSlave.tw +++ b/src/uncategorized/generateXYSlave.tw @@ -1,6 +1,6 @@ :: Generate XY Slave [nobr] -<<set $activeSlave to {slaveName: "blank", birthName: "blank", weekAcquired: 0, origin: 0, career: 0, ID: 0, prestige: 0, pornFame: 0, pornFameSpending: 0, prestigeDesc: 0, recruiter: 0, relation: 0, relationTarget: 0, relationship: 0, relationshipTarget: 0, rivalry: 0, rivalryTarget: 0, subTarget: 0, choosesOwnAssignment: 0, assignment: "rest", assignmentVisible: 1, sentence: 0, training: 0, toyHole: "all her holes", indenture: -1, indentureRestrictions: 0, birthWeek: random(0,51), age: 18, ageImplant: 0, health: 0, minorInjury: 0, trust: 0, oldTrust: 0, devotion: 0, oldDevotion: 0, weight: 0, muscles: 0, height: 170, heightImplant: 0, nationality: "slave", race:"white", markings: "none", eyes: 1, eyeColor: "brown", eyewear: "none", hColor: "brown", pubicHColor: "brown", skin: "light", hLength: 10, hStyle: "short", pubicHStyle: "neat", waist: 0, corsetPiercing: 0, amp: 0, heels:0, voice: 2, voiceImplant: 0, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 0, boobsImplant: 0, boobsImplantType: 0, boobShape: "normal", nipples: "cute", nipplesPiercing: 0, areolae: 0, areolaePiercing: 0, boobsTat: 0, lactation: 0, lactationAdaptation: 0, milk: 0, cum: 0, hips: 0, hipsImplant: 0, butt: 0, buttImplant: 0, buttImplantType: 0, buttTat: 0, face: 0, faceImplant: 0, faceShape: "normal", lips: 15, lipsImplant: 0, lipsPiercing: 0, lipsTat: 0, teeth: "normal", tonguePiercing: 0, vagina: 0, vaginaLube: 0, vaginaPiercing: 0, vaginaTat: 0, preg: -1, pregSource: 0, pregType: 0, labor: 0, births: 0, cSec: 0, bellyAccessory: "none", labia: 0, clit: 0, clitPiercing: 0, clitSetting: "vanilla", foreskin: 0, anus: 0, dick: 0, analArea: 1, dickPiercing: 0, dickTat: 0, balls: 0, scrotum: 0, ovaries: 0, anusPiercing: 0, anusTat: 0, makeup: 0, nails: 0, brand: 0, brandLocation: 0, earPiercing: 0, nosePiercing: 0, eyebrowPiercing: 0, navelPiercing: 0, shouldersTat: 0, armsTat: 0, legsTat: 0, backTat: 0, stampTat: 0, vaginalSkill: 0, oralSkill: 0, analSkill: 0, whoreSkill: 0, entertainSkill: 0, combatSkill: 0, livingRules: "spare", speechRules: "restrictive", releaseRules:"restrictive", relationshipRules: "restrictive", standardPunishment: "situational", standardReward: "situational", useRulesAssistant: 1, diet: "healthy", dietCum: 0, dietMilk: 0, tired: 0, hormones: 0, drugs: "no drugs", curatives: 0, chem: 0, aphrodisiacs: 0, addict: 0, fuckdoll: 0, choosesOwnClothes: 0, clothes: "no clothing", collar: "none", shoes: "none", vaginalAccessory: "none", dickAccessory: "none", buttplug: "none", intelligence: 0, intelligenceImplant: 0, energy: 50, attrXX: 0, attrXY: 0, attrKnown: 0, fetish: "none", fetishStrength: 70, fetishKnown: 0, behavioralFlaw: "none", behavioralQuirk: "none", sexualFlaw: "none", sexualQuirk: "none", oralCount: 0, vaginalCount: 0, analCount: 0, mammaryCount: 0, penetrativeCount: 0, pitKills: 0, customTat: "", customLabel: "", customDesc: "", currentRules: [], bellyTat: 0, induce: 0, mpreg: 0, inflation: 0, inflationType: "none", inflationMethod: 0, milkSource: 0, cumSource: 0, burst: 0, bellyImplant: 0, bellySag: 0, birthsTotal: 0, pubertyAgeXX: 13, pubertyAgeXY: 13, underArmHStyle: "waxed", physicalAge: 18, actualAge: 18, visualAge: 18, father: 0, mother: 0, sisters: 0, daughters: 0, canRecruit: 1, HGExclude: 0, ballType: "human", eggType: "human"}>> +<<set $activeSlave to {slaveName: "blank", birthName: "blank", weekAcquired: 0, origin: 0, career: 0, ID: 0, prestige: 0, pornFame: 0, pornFameSpending: 0, prestigeDesc: 0, recruiter: 0, relation: 0, relationTarget: 0, relationship: 0, relationshipTarget: 0, rivalry: 0, rivalryTarget: 0, subTarget: 0, choosesOwnAssignment: 0, assignment: "rest", assignmentVisible: 1, sentence: 0, training: 0, toyHole: "all her holes", indenture: -1, indentureRestrictions: 0, birthWeek: random(0,51), age: 18, ageImplant: 0, health: 0, minorInjury: 0, trust: 0, oldTrust: 0, devotion: 0, oldDevotion: 0, weight: 0, muscles: 0, height: 170, heightImplant: 0, nationality: "slave", race:"white", markings: "none", eyes: 1, eyeColor: "brown", eyewear: "none", hColor: "brown", pubicHColor: "brown", skin: "light", hLength: 10, hStyle: "short", pubicHStyle: "neat", waist: 0, corsetPiercing: 0, amp: 0, heels:0, voice: 2, voiceImplant: 0, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 0, boobsImplant: 0, boobsImplantType: 0, boobShape: "normal", nipples: "cute", nipplesPiercing: 0, areolae: 0, areolaePiercing: 0, boobsTat: 0, lactation: 0, lactationAdaptation: 0, milk: 0, cum: 0, hips: 0, hipsImplant: 0, butt: 0, buttImplant: 0, buttImplantType: 0, buttTat: 0, face: 0, faceImplant: 0, faceShape: "normal", lips: 15, lipsImplant: 0, lipsPiercing: 0, lipsTat: 0, teeth: "normal", tonguePiercing: 0, vagina: 0, vaginaLube: 0, vaginaPiercing: 0, vaginaTat: 0, preg: -1, pregSource: 0, pregType: 0, labor: 0, births: 0, cSec: 0, bellyAccessory: "none", labia: 0, clit: 0, clitPiercing: 0, clitSetting: "vanilla", foreskin: 0, anus: 0, dick: 0, analArea: 1, dickPiercing: 0, dickTat: 0, balls: 0, scrotum: 0, ovaries: 0, anusPiercing: 0, anusTat: 0, makeup: 0, nails: 0, brand: 0, brandLocation: 0, earPiercing: 0, nosePiercing: 0, eyebrowPiercing: 0, navelPiercing: 0, shouldersTat: 0, armsTat: 0, legsTat: 0, backTat: 0, stampTat: 0, vaginalSkill: 0, oralSkill: 0, analSkill: 0, whoreSkill: 0, entertainSkill: 0, combatSkill: 0, livingRules: "spare", speechRules: "restrictive", releaseRules:"restrictive", relationshipRules: "restrictive", standardPunishment: "situational", standardReward: "situational", useRulesAssistant: 1, diet: "healthy", dietCum: 0, dietMilk: 0, tired: 0, hormones: 0, drugs: "no drugs", curatives: 0, chem: 0, aphrodisiacs: 0, addict: 0, fuckdoll: 0, choosesOwnClothes: 0, clothes: "no clothing", collar: "none", shoes: "none", vaginalAccessory: "none", dickAccessory: "none", buttplug: "none", intelligence: 0, intelligenceImplant: 0, energy: 50, attrXX: 0, attrXY: 0, attrKnown: 0, fetish: "none", fetishStrength: 70, fetishKnown: 0, behavioralFlaw: "none", behavioralQuirk: "none", sexualFlaw: "none", sexualQuirk: "none", oralCount: 0, vaginalCount: 0, analCount: 0, mammaryCount: 0, penetrativeCount: 0, pitKills: 0, customTat: "", customLabel: "", customDesc: "", customImage: 0, currentRules: [], bellyTat: 0, induce: 0, mpreg: 0, inflation: 0, inflationType: "none", inflationMethod: 0, milkSource: 0, cumSource: 0, burst: 0, bellyImplant: 0, bellySag: 0, birthsTotal: 0, pubertyAgeXX: 13, pubertyAgeXY: 13, underArmHStyle: "waxed", physicalAge: 18, actualAge: 18, visualAge: 18, father: 0, mother: 0, sisters: 0, daughters: 0, canRecruit: 1, HGExclude: 0, ballType: "human", eggType: "human", reservedChildren: 0}>> <<set $activeSlave.publicCount to 0>> <<if $activeSlaveOneTimeMaxAge > 998>> @@ -168,19 +168,22 @@ /% Since we use nationality for height effects we need to initialize it now instead of later on like in vanilla Free Cities. %/ -<<if $startingGirlsNationality == 0>> +<<if $fixedNationality == 0>> <<set $activeSlave.nationality to $nationalities.random()>> <<else>> - <<set $activeSlave.nationality to $startingGirlsNationality>> + <<set $activeSlave.nationality to $fixedNationality>> <</if>> -<<display "New Slave Race Nationality and Name">> +<<NationalityToRace>> +<<NationalityToName>> +<<NationalityToAccent>> <<set $seed to 172.5>> <<if $activeSlave.race is "white">> <<set $seed to 177.6>>/% White people use European average if no country-specific figure available. %/ <</if>> -<<if $activeSlave.nationality is "American">> +<<switch $activeSlave.nationality>> +<<case "American">> <<if $activeSlave.race is "white">> <<set $seed to 178.2>> <<elseif $activeSlave.race is "black">> @@ -190,154 +193,155 @@ <<else>> <<set $seed to 176.4>> <</if>> -<<elseif $activeSlave.nationality is "Afghan">> -<<elseif $activeSlave.nationality is "Argentinian">> +<<case "Afghan">> +<<case "Argentinian">> <<set $seed to 174.46>> -<<elseif $activeSlave.nationality is "Armenian">> -<<elseif $activeSlave.nationality is "Australian">> +<<case "Armenian">> +<<case "Australian">> <<set $seed to 175.6>> -<<elseif $activeSlave.nationality is "Austrian">> +<<case "Austrian">> <<set $seed to 179>> -<<elseif $activeSlave.nationality is "Belarusian">> +<<case "Belarusian">> <<set $seed to 176.9>> -<<elseif $activeSlave.nationality is "Belgian">> +<<case "Belgian">> <<set $seed to 178.7>> -<<elseif $activeSlave.nationality is "Bolivian">> +<<case "Bolivian">> <<set $seed to 160.0>> -<<elseif $activeSlave.nationality is "Brazilian">> +<<case "Brazilian">> <<set $seed to 170.7>> -<<elseif $activeSlave.nationality is "British">> +<<case "British">> <<set $seed to 175.3>> -<<elseif $activeSlave.nationality is "Canadian">> +<<case "Canadian">> <<set $seed to 175.1>> -<<elseif $activeSlave.nationality is "Chilean">> +<<case "Chilean">> <<set $seed to 169.6>> -<<elseif $activeSlave.nationality is "Chinese">> +<<case "Chinese">> <<set $seed to 167.1>> -<<elseif $activeSlave.nationality is "Colombian">> +<<case "Colombian">> <<set $seed to 170.6>> -<<elseif $activeSlave.nationality is "Congolese">> +<<case "Congolese">> <<set $seed to 158.9>> -<<elseif $activeSlave.nationality is "Cuban">> +<<case "Cuban">> <<set $seed to 168>> -<<elseif $activeSlave.nationality is "Czech">> +<<case "Czech">> <<set $seed to 180.31>> -<<elseif $activeSlave.nationality is "Danish">> +<<case "Danish">> <<set $seed to 180.4>> -<<elseif $activeSlave.nationality is "Dominican">> +<<case "Dominican">> <<set $seed to 168.4>> -<<elseif $activeSlave.nationality is "Dutch">> +<<case "Dutch">> <<set $seed to 181>> -<<elseif $activeSlave.nationality is "Emirati">> -<<elseif $activeSlave.nationality is "Egyptian">> +<<case "Emirati">> +<<case "Egyptian">> <<set $seed to 170.3>> -<<elseif $activeSlave.nationality is "Estonian">> +<<case "Estonian">> <<set $seed to 179.1>> -<<elseif $activeSlave.nationality is "Ethiopian">> -<<elseif $activeSlave.nationality is "Finnish">> +<<case "Ethiopian">> +<<case "Finnish">> <<set $seed to 178.9>> -<<elseif $activeSlave.nationality is "French">> +<<case "French">> <<set $seed to 175.6>> -<<elseif $activeSlave.nationality is "German">> +<<case "German">> <<set $seed to 175.4>> -<<elseif $activeSlave.nationality is "Ghanan">> +<<case "Ghanan">> <<set $seed to 169.5>> -<<elseif $activeSlave.nationality is "Greek">> +<<case "Greek">> <<set $seed to 177>> -<<elseif $activeSlave.nationality is "Guatemalan">> -<<elseif $activeSlave.nationality is "Haitian">> -<<elseif $activeSlave.nationality is "Hungarian">> +<<case "Guatemalan">> +<<case "Haitian">> +<<case "Hungarian">> <<set $seed to 176>> -<<elseif $activeSlave.nationality is "Icelandic">> -<<elseif $activeSlave.nationality is "Indian">> +<<case "Icelandic">> +<<case "Indian">> <<set $seed to 164.7>> -<<elseif $activeSlave.nationality is "Indonesian">> -<<elseif $activeSlave.nationality is "Iranian">> +<<case "Indonesian">> +<<case "Iranian">> <<set $seed to 170.3>> -<<elseif $activeSlave.nationality is "Iraqi">> +<<case "Iraqi">> <<set $seed to 165.4>> -<<elseif $activeSlave.nationality is "Irish">> +<<case "Irish">> <<set $seed to 177>> -<<elseif $activeSlave.nationality is "Israeli">> +<<case "Israeli">> <<set $seed to 177>> -<<elseif $activeSlave.nationality is "Italian">> +<<case "Italian">> <<set $seed to 176.5>> -<<elseif $activeSlave.nationality is "Jamaican">> +<<case "Jamaican">> <<set $seed to 171.8>> -<<elseif $activeSlave.nationality is "Japanese">> +<<case "Japanese">> <<set $seed to 172>> -<<elseif $activeSlave.nationality is "Jordanian">> -<<elseif $activeSlave.nationality is "Kazakh">> -<<elseif $activeSlave.nationality is "Kenyan">> -<<elseif $activeSlave.nationality is "Korean">> +<<case "Jordanian">> +<<case "Kazakh">> +<<case "Kenyan">> +<<case "Korean">> <<if either(1,2,3) is 3>> <<set $seed to 165.6>> <<else>> <<set $seed to 170.7>> <</if>> -<<elseif $activeSlave.nationality is "Lebanese">> -<<elseif $activeSlave.nationality is "Libyan">> -<<elseif $activeSlave.nationality is "Lithuanian">> +<<case "Lebanese">> +<<case "Libyan">> +<<case "Lithuanian">> <<set $seed to 177.2>> -<<elseif $activeSlave.nationality is "Malaysian">> +<<case "Malaysian">> <<set $seed to 166.3>> -<<elseif $activeSlave.nationality is "Malian">> +<<case "Malian">> <<set $seed to 171.3>> -<<elseif $activeSlave.nationality is "Mexican">> +<<case "Mexican">> <<set $seed to 167>> -<<elseif $activeSlave.nationality is "Moroccan">> -<<elseif $activeSlave.nationality is "Nepalese">> -<<elseif $activeSlave.nationality is "Nigerian">> +<<case "Moroccan">> +<<case "Nepalese">> +<<case "Nigerian">> <<set $seed to 163.8>> -<<elseif $activeSlave.nationality is "Norwegian">> +<<case "Norwegian">> <<set $seed to 179.63>> -<<elseif $activeSlave.nationality is "Omani">> -<<elseif $activeSlave.nationality is "Pakistani">> +<<case "Omani">> +<<case "Pakistani">> /% Default to India's figures. %/ <<set $seed to 164.7>> -<<elseif $activeSlave.nationality is "Peruvian">> +<<case "Peruvian">> <<set $seed to 164>> -<<elseif $activeSlave.nationality is "Polish">> +<<case "Polish">> <<set $seed to 178.7>> -<<elseif $activeSlave.nationality is "Portuguese">> +<<case "Portuguese">> <<set $seed to 173.9>> -<<elseif $activeSlave.nationality is "Puerto Rican">> +<<case "Puerto Rican">> /% Average for U.S. Hispanics == 172.4. No adjustment necessary. %/ -<<elseif $activeSlave.nationality is "Romanian">> +<<case "Romanian">> <<set $seed to 172>> -<<elseif $activeSlave.nationality is "Russian">> +<<case "Russian">> <<set $seed to 177.2>> -<<elseif $activeSlave.nationality is "Saudi">> +<<case "Saudi">> <<set $seed to 168.9>> -<<elseif $activeSlave.nationality is "Scottish">> +<<case "Scottish">> <<set $seed to 177.6>> -<<elseif $activeSlave.nationality is "Serbian">> +<<case "Serbian">> <<set $seed to 182>> -<<elseif $activeSlave.nationality is "Slovak">> +<<case "Slovak">> <<set $seed to 179.4>> -<<elseif $activeSlave.nationality is "Spanish">> +<<case "Spanish">> <<set $seed to 173.1>> -<<elseif $activeSlave.nationality is "Sudanese">> -<<elseif $activeSlave.nationality is "Swedish">> +<<case "Sudanese">> +<<case "Swedish">> <<set $seed to 181.5>> -<<elseif $activeSlave.nationality is "Swiss">> +<<case "Swiss">> <<set $seed to 178.2>> -<<elseif $activeSlave.nationality is "Tanzanian">> -<<elseif $activeSlave.nationality is "Thai">> -<<elseif $activeSlave.nationality is "Tunisian">> -<<elseif $activeSlave.nationality is "Turkish">> +<<case "Tanzanian">> +<<case "Thai">> +<<case "Tunisian">> +<<case "Turkish">> <<set $seed to 173.6>> -<<elseif $activeSlave.nationality is "Ugandan">> -<<elseif $activeSlave.nationality is "Ukrainian">> -<<elseif $activeSlave.nationality is "Uzbek">> -<<elseif $activeSlave.nationality is "Venezuelan">> -<<elseif $activeSlave.nationality is "Vietnamese">> +<<case "Ugandan">> +<<case "Ukrainian">> +<<case "Uzbek">> +<<case "Venezuelan">> +<<case "Vietnamese">> <<set $seed to 165.7>> -<<elseif $activeSlave.nationality is "Yemeni">> -<<elseif $activeSlave.nationality is "a New Zealander">> +<<case "Yemeni">> +<<case "a New Zealander">> <<set $seed to 177>> -<<elseif $activeSlave.nationality is "Zimbabwean">> -<</if>> +<<case "Zimbabwean">> +<<default>> +<</switch>> /% Include adjustment factor for age. %/ <<if $activeSlave.physicalAge <= 15>> @@ -363,6 +367,17 @@ <</if>> <</if>> +<<set $seed to 4+$activeSlave.intelligence+$activeSlave.intelligenceImplant>> +<<if "American" is $activeSlave.nationality>> + <<set $seed += 2>> +<<elseif ["Canadian", "Israeli", "Japanese", "Korean", "Irish", "Icelandic", "Finnish", "Swiss", "Danish", "Norwegian", "Austrian", "Slovak", "Dutch", "Belgian", "Czech", "Portuguese", "Hungarian", "Portuguese", "Estonian", "Polish", "Lithuanian", "Romanian", "German", "Swedish", "French", "Italian", "Spanish", "British", "Australian", "a New Zealander"].contains($activeSlave.nationality)>> +<<else>> + <<set $seed -= 2>> +<</if>> +<<if random(1,$seed) == 1>> + <<set $activeSlave.teeth to "crooked">> +<</if>> + <<if $activeSlave.race is "black">> <<set $activeSlave.butt to either(1, 1, 2, 3)>> <<set $activeSlave.boobs to either(100, 200, 200, 300, 300, 400, 500)>> @@ -826,11 +841,7 @@ <<set $activeSlave.voice to either(1, 1, 1, 2, 2, 2, 2, 2, 3)>> <</if>> -<<if $arcologies[0].FSSupremacistLawME == 1>> - <<if $activeSlave.race is $arcologies[0].FSSupremacistRace>> - <<goto "Generate XY Slave">> - <</if>> -<<elseif passage() == "Slave Markets">> +<<if passage() == "Slave Markets">> <<if $slaveMarket == "corporate">> <<if ($captureUpgradeRace != "unselected") && ($captureUpgradeRace != "none")>> <<if $activeSlave.race != $captureUpgradeRace>> @@ -839,4 +850,4 @@ <</if>> <</if>> <</if>> -<</if>> \ No newline at end of file +<</if>> diff --git a/src/uncategorized/genericPlotEvents.tw b/src/uncategorized/genericPlotEvents.tw index 74ff09ce9b77f79cddd3ca6875da5cf0e66b4abe..b7051810a358acb4adf7895f465471fb65f537f3 100644 --- a/src/uncategorized/genericPlotEvents.tw +++ b/src/uncategorized/genericPlotEvents.tw @@ -199,6 +199,7 @@ you promised to rescue. Its side doors retract, allowing the escapees to hustle <br><br> When the aircraft lands at your penthouse pad, the would-be escapees are still unconscious. This makes putting them through enslavement physically laborious, though it does cut down on the usual whining; fortunately, you reserved the credits necessary to obscure their questionably legitimate enslavement. By the time they awake, they'll be indistinguishable from any other new slave in the arcology. The possibility remains, however that rumor of the incident will leak out. Your VTOL bird's entry and exit from the capital city was likely noticed and remarked upon. <br><br> +<<set _newSlaves = []>> <<if $PAidTarget is "convent">> In any case, you've enslaved a fine group. The leader is on the older side, but not unattractive. Her girls are younger, and probably have all sorts of delightful repressed tendencies to be manipulated. <<set $activeSlaveOneTimeMinAge to 30>> @@ -226,16 +227,13 @@ When the aircraft lands at your penthouse pad, the would-be escapees are still u <<set $activeSlave.behavioralFlaw to "devout">> <<set $activeSlave.sexualFlaw to "repressed">> <<set $activeSlave.sexualQuirk to "perverted">> - <<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> - <</if>> - <<set $slaves.push($activeSlave)>> + <<set _newSlaves.push($activeSlave)>> <<for $i to 0; $i < 3; $i++>> <<set $activeSlaveOneTimeMinAge to 18>> <<set $activeSlaveOneTimeMaxAge to 24>> <<display "Generate XX Slave">> <<set $activeSlave.origin to "She was an initiate in a religious community of women you enslaved.">> - <<set $activeSlave.career to "a nun">> + <<set $activeSlave.career to "a nun">> <<set $activeSlave.devotion = random(-90,-75)>> <<set $activeSlave.trust = -20>> <<set $activeSlave.health = random(-10,10)>> @@ -253,10 +251,7 @@ When the aircraft lands at your penthouse pad, the would-be escapees are still u <<set $activeSlave.pubicHStyle to "bushy">> <<set $activeSlave.behavioralFlaw to "devout">> <<set $activeSlave.sexualFlaw to "repressed">> - <<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> - <</if>> - <<set $slaves.push($activeSlave)>> + <<set _newSlaves.push($activeSlave)>> <</for>> <<elseif $PAidTarget is "school">> In any case, you've enslaved a fine group. The principal is on the older side, and seems to have paid unusually close attention to her appearance, for the female principal of a girls' school. And for whatever reason, the school's uniform skirt seems to have been rather short in back. @@ -286,10 +281,7 @@ When the aircraft lands at your penthouse pad, the would-be escapees are still u <<set $activeSlave.fetish to "dom">> <<set $activeSlave.behavioralFlaw to either("arrogant", "bitchy", "hates men", "hates men", "liberated")>> <<set $activeSlave.sexualFlaw to "shamefast">> - <<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> - <</if>> - <<set $slaves.push($activeSlave)>> + <<set _newSlaves.push($activeSlave)>> <<for $i to 0; $i < 3; $i++>> <<set $activeSlaveOneTimeMaxAge to 18>> <<display "Generate XX Slave">> @@ -312,10 +304,7 @@ When the aircraft lands at your penthouse pad, the would-be escapees are still u <<set $activeSlave.fetish to "buttslut">> <<set $activeSlave.behavioralFlaw to either("arrogant", "bitchy", "anorexic")>> <<set $activeSlave.sexualFlaw to either("shamefast", "idealistic", "hates anal")>> - <<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> - <</if>> - <<set $slaves.push($activeSlave)>> + <<set _newSlaves.push($activeSlave)>> <</for>> <<elseif $PAidTarget is "maternity">> In any case, you've enslaved a fine group. The expectant mothers vary widely; the only thing they have in common is their gravid bellies. None of them is in really serious condition, either, and they should bear the transition to slave life reasonably well despite their pregnancies. @@ -338,10 +327,7 @@ When the aircraft lands at your penthouse pad, the would-be escapees are still u <<set $activeSlave.boobs += 100*random(0,2)>> <<set $activeSlave.lactation to 1>> <<set $activeSlave.nipples to either("cute", "puffy", "partially inverted", "inverted")>> - <<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> - <</if>> - <<set $slaves.push($activeSlave)>> + <<set _newSlaves.push($activeSlave)>> <</for>> <<elseif $PAidTarget is "gradeSchool">> In any case, you've enslaved a fine group. The girls are all within a similar age range, young, and healthy. Their youth and vigor should make them quite popular. @@ -366,10 +352,7 @@ When the aircraft lands at your penthouse pad, the would-be escapees are still u <<set $activeSlave.devotion = random(-90,-75)>> <<set $activeSlave.trust = random(-90,-75)>> <<set $activeSlave.health = random(-10,10)>> - <<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> - <</if>> - <<set $slaves.push($activeSlave)>> + <<set _newSlaves.push($activeSlave)>> <</for>> <<elseif $PAidTarget is "conversion">> In any case, you've enslaved a fine group. Certain religious groups persist in the hilarious delusion that it's possible to alter sexual orientation through prayer. In your experience, hormones, drugs, and compliance training are far more effective. @@ -395,10 +378,7 @@ When the aircraft lands at your penthouse pad, the would-be escapees are still u <<set $activeSlave.fetishStrength to random(1,2)>> <<set $activeSlave.behavioralFlaw to either("arrogant", "bitchy", "hates women", "odd", "liberated")>> <<set $activeSlave.sexualFlaw to either("repressed", "shamefast")>> - <<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> - <</if>> - <<set $slaves.push($activeSlave)>> + <<set _newSlaves.push($activeSlave)>> <<for $i to 0; $i < 3; $i++>> <<set $activeSlaveOneTimeMinAge to 16>> <<set $activeSlaveOneTimeMaxAge to 18>> @@ -420,10 +400,7 @@ When the aircraft lands at your penthouse pad, the would-be escapees are still u <<set $activeSlave.fetish to "buttslut">> <<set $activeSlave.behavioralFlaw to either("bitchy", "odd", "anorexic", "devout")>> <<set $activeSlave.sexualFlaw to either("shamefast", "repressed", "apathetic")>> - <<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> - <</if>> - <<set $slaves.push($activeSlave)>> + <<set _newSlaves.push($activeSlave)>> <</for>> <<else>> In any case, you've enslaved a fine group. The women seem to have banded together when they were left to fend for themselves in their suburban neighborhood. They're older than many slaves, but they seem to have had rich husbands; they're conventionally pretty, and have lived soft lives that have left them healthy. @@ -451,10 +428,7 @@ When the aircraft lands at your penthouse pad, the would-be escapees are still u <<set $activeSlave.entertainSkill = 15>> <<set $activeSlave.behavioralFlaw to either("arrogant", "bitchy", "anorexic", "liberated")>> <<set $activeSlave.sexualFlaw to either("shamefast", "idealistic", "hates anal", "hates oral", "apathetic")>> - <<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> - <</if>> - <<set $slaves.push($activeSlave)>> + <<set _newSlaves.push($activeSlave)>> <</for>> <</if>> @@ -462,7 +436,7 @@ When the aircraft lands at your penthouse pad, the would-be escapees are still u As a society free of the encumbrance of governmental oversight, the arcologies of the Free Cities are places where societal evolution and corporate expansion can occur rapidly. -Even so, the incredible speed with which the arcology has improved under your tenure as compared to that of your predecessor, after you obtained ownership through <<if $PC.rumor is "wealth">>a leveraged buyout,<<elseif $PC.rumor is "diligence">>hard work and competence,<<elseif $PC.rumor is "force">>some episodes of violence,<<elseif $PC.rumor is "social engineering">>the creative use of psychology,<<elseif $PC.rumor is "luck">>an incredible opportunity,<</if>> is nothing short of astonishing. Other arcologies have taken many years to develop along anything but strictly conservative lines, and you are not the only arcology owner with a background <<if $PC.career is "wealth">>of substantial wealth.<<elseif $PC.career is "capitalist">>in business.<<elseif $PC.career is "mercenary">>in the world of private contracting.<<elseif $PC.career is "slaver">>as a slavebreaker.<<elseif $PC.career is "engineer">>in arcology engineering.<<elseif $PC.career is "medicine">>in medicine and surgery.<<elseif $PC.career is "celebrity">>in the public sphere.<<elseif $PC.career is "escort">>involving many personal contacts.<<elseif $PC.career is "servant">>involving the rich and powerful.<<elseif $PC.career is "gang">>involving gangs.<</if>> It occurs to you that the arcology's growing role as a place where where those with the means to do so can live in the society you have created, enjoying themselves and their lives to the fullest while subjugating others, should be commemorated. +Even so, the incredible speed with which the arcology has improved under your tenure as compared to that of your predecessor, after you obtained ownership through <<if $PC.rumor is "wealth">>a leveraged buyout,<<elseif $PC.rumor is "diligence">>hard work and competence,<<elseif $PC.rumor is "force">>some episodes of violence,<<elseif $PC.rumor is "social engineering">>the creative use of psychology,<<elseif $PC.rumor is "luck">>an incredible opportunity,<</if>> is nothing short of astonishing. Other arcologies have taken many years to develop along anything but strictly conservative lines, and you are not the only arcology owner with a background <<if $PC.career is "wealth">>of substantial wealth.<<elseif $PC.career is "capitalist">>in business.<<elseif $PC.career is "mercenary">>in the world of private contracting.<<elseif $PC.career is "slaver">>as a slavebreaker.<<elseif $PC.career is "engineer">>in arcology engineering.<<elseif $PC.career is "medicine">>in medicine and surgery.<<elseif $PC.career is "celebrity">>in the public sphere.<<elseif $PC.career is "escort">>involving many personal contacts.<<elseif $PC.career is "servant">>involving the rich and powerful.<<elseif $PC.career is "gang">>involving gangs.<<else>>in the Free Cities.<</if>> It occurs to you that the arcology's growing role as a place where where those with the means to do so can live in the society you have created, enjoying themselves and their lives to the fullest while subjugating others, should be commemorated. <br><br> As any slaveowner with half a mind in the Free Cities knows, there is power in words, and in what they represent. Master. Slave. These two words alone, more than any others, define the arcologies that have taken up the mantle of leading the world forward in these dark times. The time has come to add a new term to the lexicon of the Free Cities - a name. No longer will your arcology be known only as $arcologies[0].name, a bland and uninspiring name if ever there was one. <br><br> @@ -615,7 +589,7 @@ A screen opposite your desk springs to life, <<if $assistant == 0>>showing your <<if $PStrip != 3>> <<if $cash >= $contractCost>> <<click "Enslave her">> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <<set $cash -= $contractCost>> <<replace "#result">> <<if $PStrip is 1>> @@ -747,10 +721,7 @@ A screen opposite your desk springs to life, <<if $assistant == 0>>showing your <<set $activeSlave.fetish to "none">> <<set $activeSlave.behavioralFlaw to "arrogant">> <<set $activeSlave.sexualFlaw to "idealistic">> - <<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> - <</if>> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <</replace>> <</click>> <<if $pedo_mode == 1 && $minimumSlaveAge <= 8>> @@ -792,10 +763,7 @@ A screen opposite your desk springs to life, <<if $assistant == 0>>showing your <<set $activeSlave.fetishStrength to 60>> <<set $activeSlave.behavioralFlaw to "anorexic">> <<set $activeSlave.sexualFlaw to "idealistic">> - <<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> - <</if>> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <</replace>> <</click>> <</if>> @@ -829,10 +797,7 @@ A screen opposite your desk springs to life, <<if $assistant == 0>>showing your <<set $activeSlave.fetish to "none">> <<set $activeSlave.behavioralFlaw to "bitchy">> <<set $activeSlave.sexualFlaw to "hates anal">> - <<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> - <</if>> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <</replace>> <</click>> <br><<click "Hit the slave with the tits, pussy and impressive dick">> @@ -872,10 +837,7 @@ A screen opposite your desk springs to life, <<if $assistant == 0>>showing your <<set $activeSlave.fetish to "none">> <<set $activeSlave.behavioralFlaw to "none">> <<set $activeSlave.behavioralFlaw to "odd">> - <<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> - <</if>> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <</replace>> <</click>> @@ -908,44 +870,18 @@ A screen opposite your desk springs to life, <<if $assistant == 0>>showing your <<set $PAid = 0>> <<click "Sell your captures immediately">> <<replace "#result">> - <<for $i to 0; $i < $slaves.length; $i++>> - <<if $PAidTarget is "convent">> - <<if ($slaves[$i].origin is "She was an initiate in a religious community of women you enslaved.") || ($slaves[$i].origin is "She was the head of a religious community of women you enslaved.")>> - <<slaveCost $slaves[$i]>> - <<set $cash += $slaveCost>> - <<set $dump to $slaves.pluck([$i], [$i])>> - <</if>> - <<elseif $PAidTarget is "school">> - <<if ($slaves[$i].origin is "She was the principal of a girls' school whose remnants you enslaved. A strap-on and a large quantity of personal lubricant was found in her possession when she was enslaved.") || ($slaves[$i].origin is "She was a student at a girls' school whose remnants you enslaved.")>> - <<slaveCost $slaves[$i]>> - <<set $cash += $slaveCost>> - <<set $dump to $slaves.pluck([$i], [$i])>> - <</if>> - <<elseif $PAidTarget is "maternity">> - <<if ($slaves[$i].origin is "She was an expectant mother you enslaved when you evacuated her from a threatened old world hospital.")>> - <<slaveCost $slaves[$i]>> - <<set $cash += $slaveCost>> - <<set $dump to $slaves.pluck([$i], [$i])>> - <</if>> - <<elseif $PAidTarget is "conversion">> - <<if ($slaves[$i].origin is "She was the owner of a religious orientation conversion therapy camp whose remnants you enslaved.") || ($slaves[$i].origin is "She was an inmate at a religious orientation conversion therapy camp whose remnants you enslaved.")>> - <<slaveCost $slaves[$i]>> - <<set $cash += $slaveCost>> - <<set $dump to $slaves.pluck([$i], [$i])>> - <</if>> - <<else>> - <<if ($slaves[$i].origin is "She was a wealthy housewife who you enslaved as she fled societal collapse.")>> - <<slaveCost $slaves[$i]>> - <<set $cash += $slaveCost>> - <<set $dump to $slaves.pluck([$i], [$i])>> - <</if>> - <</if>> + <<for $i to 0; $i < _newSlaves.length; $i++>> + <<slaveCost _newSlaves[$i]>> + <<set $cash += $slaveCost>> <</for>> Prisoners @@color:green;sold.@@ <</replace>> <</click>> <br><<click "Enslave them all">> <<replace "#result">> + <<for $i to 0; $i < _newSlaves.length; $i++>> + <<AddSlave _newSlaves[$i]>> + <</for>> You simply enslave all of the escapees yourself. These slaves will more than make up for the costs you expended, in the long run. <</replace>> <</click>> diff --git a/src/uncategorized/hgApplication.tw b/src/uncategorized/hgApplication.tw index ff4066d8ffc38d4dbdd007d7d5e3fe3b11b7a902..b908afb297d4ecdf3f06ab5706e0cdeaef223b8d 100644 --- a/src/uncategorized/hgApplication.tw +++ b/src/uncategorized/hgApplication.tw @@ -1,4 +1,4 @@ -/*:: HG Application [nobr]*/ +:: HG Application [nobr] <<set $activeSlave.tired to 1>> <<set $HGEnergy -= 1>> @@ -15,7 +15,7 @@ <<elseif $HGtraining is "obedience">> is disobedient. <<elseif $HGtraining is "flaw">> - has + has <<if ["cum addict", "anal addict", "attention whore", "breast growth", "abusive", "malicious", "self hating", "neglectful", "breeder"].contains($activeSlave.sexualFlaw)>> a paraphilia. <<else>> @@ -328,21 +328,21 @@ In spare moments she teaches $activeSlave.slaveName how to prostitute herself. $ <<if ($activeSlave.attrKnown == 0)>> <<set $activeSlave.attrKnown to 1>> $HeadGirl.slaveName also investigates the slave's basic sexual orientation, finding that she is - <<if ($activeSlave.attrXY is -1)>> + <<if ($activeSlave.attrXY <= 40)>> @@color:red;disgusted by men@@ - <<elseif ($activeSlave.attrXY == 0)>> + <<elseif ($activeSlave.attrXY <= 60)>> indifferent to men - <<elseif ($activeSlave.attrXY == 1)>> + <<elseif ($activeSlave.attrXY <= 80)>> @@color:green;attracted to men@@ <<else>> @@color:green;intensely attracted to men@@ <</if>> and - <<if ($activeSlave.attrXX is -1)>> + <<if ($activeSlave.attrXX <= 40)>> @@color:red;disgusted by women.@@ - <<elseif ($activeSlave.attrXX == 0)>> + <<elseif ($activeSlave.attrXX <= 60)>> indifferent to women. - <<elseif ($activeSlave.attrXX == 1)>> + <<elseif ($activeSlave.attrXX <= 80)>> @@color:green;attracted to women.@@ <<else>> @@color:green;intensely attracted to women.@@ @@ -356,4 +356,4 @@ In spare moments she teaches $activeSlave.slaveName how to prostitute herself. $ <<set $activeSlave to {}>> <<break>> <</if>> -<</for>> \ No newline at end of file +<</for>> diff --git a/src/uncategorized/householdLiquidator.tw b/src/uncategorized/householdLiquidator.tw index aa050924ca89f3a5e155766c2b71af126e418955..bb7bfd0021b85c74af0855224ac11c1d17c73347 100644 --- a/src/uncategorized/householdLiquidator.tw +++ b/src/uncategorized/householdLiquidator.tw @@ -1,5 +1,5 @@ :: Household Liquidator - + <<set $nextButton to "Back">>\ <<set $nextLink to "Buy Slaves">>\ <<set $returnTo to "Buy Slaves">>\ @@ -30,9 +30,6 @@ The household liquidator is offering a set of siblings for sale. As usual, you w <<set $activeSlave.relationTarget to $activeSlave.ID + 1000>> <</if>> -<<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> -<</if>> <<slaveCost $activeSlave>> <</nobr>>\ @@ -41,7 +38,7 @@ The price is ¤<<print $slaveCost*3>>. <<nobr>> <<if $cash >= $slaveCost*3>> - [[Buy their slave contract|Siblings Workaround][$cash -= $slaveCost*3,$olderSister to $activeSlave, $slaves.push($olderSister),$nextButton to "Continue",$nextLink to "AS Dump",$returnTo to "Main"]] + [[Buy their slave contract|Siblings Workaround][$cash -= $slaveCost*3,$nextButton to "Continue",$nextLink to "AS Dump",$returnTo to "Main"]] <<else>> //You lack the necessary funds to buy these slaves.// <</if>> @@ -83,9 +80,6 @@ The household liquidator is offering a mother and her daughter for sale. As usua <<set $activeSlave.relationTarget to $activeSlave.ID + 1000>> <</if>> -<<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> -<</if>> <<slaveCost $activeSlave>> <<if $slavesSeen > $slaveMarketLimit>><<set $slaveCost += Math.trunc($slaveCost*(($slavesSeen-$slaveMarketLimit)*0.1))>><</if>> @@ -95,7 +89,7 @@ The price is ¤<<print $slaveCost*3>>.<<if $slavesSeen > $slaveMarketLimit>> You <<nobr>> <<if $cash >= $slaveCost*3>> - [[Buy their slave contract|Mother Daughter Workaround][$cash -= $slaveCost*3,$mother to $activeSlave, $slaves.push($mother),$nextButton to "Continue",$nextLink to "AS Dump",$returnTo to "Main"]] + [[Buy their slave contract|Mother Daughter Workaround][$cash -= $slaveCost*3,"Continue",$nextLink to "AS Dump",$returnTo to "Main"]] <<else>> //You lack the necessary funds to buy these slaves.// <</if>> @@ -131,9 +125,6 @@ The household liquidator is offering something special: twins. The markup is hug <<set $activeSlave.relation to "twin">> <<set $activeSlave.relationTarget to $activeSlave.ID + 1000>> <</if>> -<<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> -<</if>> <<slaveCost $activeSlave>> <</nobr>>\ @@ -142,7 +133,7 @@ The price is ¤<<print $slaveCost*4>>.<<if $slavesSeen > $slaveMarketLimit>> You <<nobr>> <<if $cash >= $slaveCost*4>> - [[Buy their slave contract|Twins Workaround][$cash -= $slaveCost*4,$alphaTwin to $activeSlave, $slaves.push($alphaTwin),$nextButton to "Continue",$nextLink to "AS Dump",$returnTo to "Main"]] + [[Buy their slave contract|Twins Workaround][$cash -= $slaveCost*4,$nextButton to "Continue",$nextLink to "AS Dump",$returnTo to "Main"]] <<else>> //You lack the necessary funds to buy these slaves.// <</if>> diff --git a/src/uncategorized/jeSlaveDispute.tw b/src/uncategorized/jeSlaveDispute.tw index 80901ba58108bfd66badbe516abc04941c0b49d3..e780725032044e55c887bb6ecf8fee38b9d63178 100644 --- a/src/uncategorized/jeSlaveDispute.tw +++ b/src/uncategorized/jeSlaveDispute.tw @@ -202,7 +202,7 @@ <</replace>> <</click>> <<click "Offer to buy out the contract">> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <<set $cash -= $contractCost>> <<replace "#result">> You offer to simply buy out the contract, taking the slave for yourself, letting the slave trader out of her side of the deal, and providing for the daughter's medical care. The trader lets it be known amongst her peers that you will make things right no matter the cost to yourself, @@color:green;increasing prosperity.@@ The story of the mother willing to be enslaved gets around quickly, @@color:green;capturing the hearts@@ of more romantic citizens. The mother, meanwhile, presents herself for enslavement, @@color:hotpink;very grateful@@ that you've saved her daughter's life. @@ -235,7 +235,7 @@ <</replace>> <</click>> <<click "Offer to buy out the deal">> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <<set $cash -= $contractCost>> <<replace "#result">> You offer to simply buy out the deal, paying the trainer and taking the slave yourself, and letting the buyer out of the payment. The trainer, on the other hand, lets it be known that you support businessmen, who can trust you to ensure they don't come out second best, @@color:green;increasing prosperity.@@ The buyer lets you know privately that he recently had a business deal go bad, so he's in a tough cash situation right now; he's so grateful for your assistance in this embarrassing situation that he talks @@color:green;effusively@@ for days to anyone who will listen about your discreet administration of the arcology. The slave, meanwhile, arrives at your penthouse, @@color:hotpink;rather hopeful@@ that she's going to a good master. @@ -268,7 +268,7 @@ <</replace>> <</click>> <<click "Compromise on the compensation and offer to buy out the deal">> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <<set $cash -= $contractCost>> <<replace "#result">> You offer to buy out the deal, paying the school and taking the slave yourself, and compromising on the demanded compensation. The citizen was looking forward to using the slave in question for breeding stock; like many breeders he cares deeply about his stable and is mollified by the moderate payment, and speaks @@color:green;kindly@@ in public about how you helped an innocent breeder protect his prize bloodlines. The school sends a @@color:green;positive note@@ around the industry to the effect that schools trading with your arcology can expect to have excessive claims sensibly reduced. @@ -301,7 +301,7 @@ <</replace>> <</click>> <<click "Buy out the contract and enslave her">> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <<set $cash -= $contractCost>> <<replace "#result">> You quietly contact the trader and suggest an alternative method of settling the dispute. He is surprised, but agrees readily, chuckling at how the "recalcitrant bitch" is going to be dealt with. To her horror, she finds that your near-total power over deals made in your arcology has been employed to saddle her with additional debts that, under her indentured servitude, she cannot hope to repay. It is then the work of ten minutes to demand payment, and when she cannot pay, demand her body for enslavement. The story of your cunning @@color:green;impresses@@ the slave traders, but is @@color:red;booed@@ by fairer-minded citizens. @@ -334,7 +334,7 @@ <</replace>> <</click>> <<click "Offer to buy out the contract">> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <<set $cash -= $contractCost>> <<replace "#result">> You offer to simply buy out the contract, taking the slave for yourself. This lets the buyer out of buying her, and the slaveowner gets his money; but it soon becomes apparent that what both of them were really looking for is an opportunity to put one over on the other. Neither is pleased to be denied a petty victory, but they both have the sense to keep their mouths shut. The poor slave, meanwhile, appears in the penthouse entryway, @@color:hotpink;hopeful@@ that she's been lucky enough to end up in a less abusive situation. diff --git a/src/uncategorized/lawCompliance.tw b/src/uncategorized/lawCompliance.tw index 7f59f0bef79204b5f3bd51ef7ac67d49f9d62266..0d1fd5c8ea932c12e57c49bbc82ca59446e15ec3 100644 --- a/src/uncategorized/lawCompliance.tw +++ b/src/uncategorized/lawCompliance.tw @@ -37,17 +37,17 @@ <<set $activeSlave.fetishKnown to 1>> <<set $activeSlave.fetishStrength = 65>> <</if>> - <<if $PC.career is "slaver">> - <<set $gingeringDetected to 1>> - <<set $gingeringDetection to "slaver">> + <<if ($PC.career is "slaver") || ($PC.career is "arcology owner")>> + <<set $gingeringDetected to 1>> + <<set $gingeringDetection to "slaver">> <<elseif ($PC.career is "mercenary") && (random(1,2) == 1)>> - <<set $gingeringDetected to 1>> - <<set $gingeringDetection to "mercenary">> + <<set $gingeringDetected to 1>> + <<set $gingeringDetection to "mercenary">> <<elseif ($PC.rumor is "force") && (random(1,2) == 1)>> - <<set $gingeringDetected to 1>> - <<set $gingeringDetection to "force">> + <<set $gingeringDetected to 1>> + <<set $gingeringDetection to "force">> <<elseif (random(1,3) == 1)>> - <<set $gingeringDetected to 1>> + <<set $gingeringDetected to 1>> <</if>> <</if>> diff --git a/src/uncategorized/longSlaveDescription.tw b/src/uncategorized/longSlaveDescription.tw index c14e0faa1c37379cbab232e918347bd0f16a8666..b3cb01d3b7d769dbd26141246bfb6e03d0cc044f 100644 --- a/src/uncategorized/longSlaveDescription.tw +++ b/src/uncategorized/longSlaveDescription.tw @@ -6,7 +6,7 @@ -<<PMODinit>> +<<PMODinit $activeSlave>> ''@@color:pink;$activeSlave.slaveName@@''<<if ($activeSlave.customLabel != "")>> (@@color:yellow;''<<print $activeSlave.customLabel>>''@@)<</if>> @@ -376,7 +376,7 @@ she's <<elseif $activeSlave.physicalAge <= $activeSlave.actualAge-5 || $activeSlave.physicalAge >= $activeSlave.actualAge+5>> a barely noticable difference from her actual age <<else>> - one couldn't tell the difference from her actual age + though it is hard to tell the difference from her actual age <</if>>. <</if>> <<if $activeSlave.physicalAge != $activeSlave.visualAge>> @@ -1258,142 +1258,7 @@ when a dick is pushed inside <<if $activeSlave.vagina >= -1>>either of its lower <</if>> <<if $familyTesting == 1>> -<<if $activeSlave.father == -1 && $activeSlave.mother == -1>> - She's @@color:lightgreen;my daughter,@@ I knocked myself up and gave birth to $object. -<</if>> - -<<if $activeSlave.father == -1 && $activeSlave.mother != -1>> - She's @@color:lightgreen;your daughter;@@ you knocked $possessive mother up. -<<elseif $activeSlave.father > 0>> - <<for $i to 0; $i < $slaves.length; $i++>> - <<if $slaves[$i].ID == $activeSlave.father>> - $pronounCap was @@color:lightgreen;fathered by $slaves[$i].slaveName's@@ virile dick. - <<break>> - <</if>> - <</for>> -<</if>> - -<<if $activeSlave.father != -1 && $activeSlave.mother == -1>> - She's @@color:lightgreen;your daughter;@@ you gave birth to $object. -<<elseif $activeSlave.mother > 0>> - <<for $i to 0; $i < $slaves.length; $i++>> - <<if $slaves[$i].ID == $activeSlave.mother>> - $pronounCap was @@color:lightgreen;born from $slaves[$i].slaveName's@@ fertile womb. - <<break>> - <</if>> - <</for>> -<</if>> - -<<for $i to 0; $i < $slaves.length; $i++>> - <<if $activeSlave.ID == $slaves[$i].father>> - <<set $children.push($slaves[$i])>> - <</if>> -<</for>> -<<if $children.length > 2>> - $pronounCap @@color:lightgreen;fathered - <<for $j to 0; $j < $children.length; $j++>> - <<if $j < $children.length-1>> - $children[$j].slaveName, - <<else>> - and $children[$j].slaveName.@@ - <</if>> - <</for>> -<<elseif $children.length > 1>> - $pronounCap @@color:lightgreen;fathered a pair of your slaves: $children[0].slaveName, and $children[1].slaveName.@@ -<<elseif $children.length > 0>> - $pronounCap @@color:lightgreen;fathered a single slave of yours: $children[0].slaveName.@@ -<</if>> -<<set $children = []>> - -<<for $i to 0; $i < $slaves.length; $i++>> - <<if $activeSlave.ID == $slaves[$i].mother>> - <<set $children.push($slaves[$i])>> - <</if>> -<</for>> -<<if $children.length > 2>> - $pronounCap @@color:lightgreen;gave birth to - <<for $j to 0; $j < $children.length; $j++>> - <<if $j < $children.length-1>> - $children[$j].slaveName, - <<else>> - and $children[$j].slaveName.@@ - <</if>> - <</for>> -<<elseif $children.length > 1>> - $pronounCap @@color:lightgreen;gave birth to a pair of your slaves: $children[0].slaveName, and $children[1].slaveName.@@ -<<elseif $children.length > 0>> - $pronounCap @@color:lightgreen;gave birth to a single of your slaves: $children[0].slaveName.@@ -<</if>> -<<set $children = []>> - -<<for $i to 0; $i < $slaves.length; $i++>> - <<if $slaves[$i].ID != $activeSlave.ID>> - <<if areSisters($activeSlave, $slaves[$i]) == 1>> - <<set $children.push($slaves[$i])>> - <</if>> - <</if>> -<</for>> -<<if $children.length > 2>> - $pronounCap @@color:lightgreen;shared a cramped womb with - <<for $j to 0; $j < $children.length; $j++>> - <<if $j < $children.length-1>> - $children[$j].slaveName, - <<else>> - and $children[$j].slaveName.@@ - <</if>> - <</for>> -<<elseif $children.length > 1>> - $pronounCap is a @@color:lightgreen;one of a set of triplets; $children[0].slaveName, and $children[1].slaveName@@ complete the trio. -<<elseif $children.length > 0>> - $pronounCap is @@color:lightgreen;twins with $children[0].slaveName.@@ -<</if>> -<<set $children = []>> - -<<for $i to 0; $i < $slaves.length; $i++>> - <<if $slaves[$i].ID != $activeSlave.ID>> - <<if areSisters($activeSlave, $slaves[$i]) == 2>> - <<set $children.push($slaves[$i])>> - <</if>> - <</if>> -<</for>> -<<if $children.length > 2>> - $pronounCap is @@color:lightgreen;sisters with - <<for $j to 0; $j < $children.length; $j++>> - <<if $j < $children.length-1>> - $children[$j].slaveName, - <<else>> - and $children[$j].slaveName.@@ - <</if>> - <</for>> -<<elseif $children.length > 1>> - $pronounCap is @@color:lightgreen;sisters with $children[0].slaveName and $children[1].slaveName.@@ -<<elseif $children.length > 0>> - $pronounCap is @@color:lightgreen;sisters with $children[0].slaveName.@@ -<</if>> -<<set $children = []>> - -<<for $i to 0; $i < $slaves.length; $i++>> - <<if $slaves[$i].ID != $activeSlave.ID>> - <<if areSisters($activeSlave, $slaves[$i]) == 3>> - <<set $children.push($slaves[$i])>> - <</if>> - <</if>> -<</for>> -<<if $children.length > 2>> - $pronounCap is a @@color:lightgreen;half-sister to - <<for $j to 0; $j < $children.length; $j++>> - <<if $j < $children.length-1>> - $children[$j].slaveName, - <<else>> - and $children[$j].slaveName.@@ - <</if>> - <</for>> -<<elseif $children.length > 1>> - $pronounCap is a @@color:lightgreen;half-sister to $children[0].slaveName and $children[1].slaveName.@@ -<<elseif $children.length > 0>> - $pronounCap is a @@color:lightgreen;half-sister to $children[0].slaveName.@@ -<</if>> -<<set $children = []>> +<<Family>> <<if $activeSlave.relationship >= 3 && ($activeSlave.mother > 0 || $activeSlave.father > 0 || $activeSlave.daughters > 0 || $activeSlave.sisters > 0)>> <<for $i to 0; $i < $slaves.length; $i++>> @@ -1557,40 +1422,40 @@ when a dick is pushed inside <<if $activeSlave.vagina >= -1>>either of its lower <</if>> Entertainment and prostitution skills are irrelevant for a Fuckdoll. <<else>> -<<if $activeSlave.whoreSkill <= 10>> - <<if $activeSlave.entertainSkill <= 10>> - <<elseif $activeSlave.entertainSkill <= 30>> - She is @@color:aquamarine;reasonably entertaining.@@ - <<elseif $activeSlave.entertainSkill <= 60>> - She is a @@color:aquamarine;skilled entertainer.@@ - <<elseif $activeSlave.entertainSkill < 100>> - She is an @@color:aquamarine;expert entertainer.@@ + <<if $activeSlave.whoreSkill <= 10>> + <<if $activeSlave.entertainSkill <= 10>> + <<elseif $activeSlave.entertainSkill <= 30>> + She is @@color:aquamarine;reasonably entertaining.@@ + <<elseif $activeSlave.entertainSkill <= 60>> + She is a @@color:aquamarine;skilled entertainer.@@ + <<elseif $activeSlave.entertainSkill < 100>> + She is an @@color:aquamarine;expert entertainer.@@ + <<else>> + She is a @@color:aquamarine;master of entertainment.@@ + <</if>> <<else>> - She is a @@color:aquamarine;master of entertainment.@@ + <<if $activeSlave.entertainSkill <= 10>> + <<elseif $activeSlave.entertainSkill <= 30>> + She is @@color:aquamarine;reasonably entertaining@@ and + <<elseif $activeSlave.entertainSkill <= 60>> + She is a @@color:aquamarine;skilled entertainer@@ and + <<elseif $activeSlave.entertainSkill < 100>> + She is an @@color:aquamarine;expert entertainer@@ and + <<else>> + She is a @@color:aquamarine;master of entertainment@@ and + <</if>> <</if>> -<<else>> - <<if $activeSlave.entertainSkill <= 10>> - <<elseif $activeSlave.entertainSkill <= 30>> - She is @@color:aquamarine;reasonably entertaining@@ and - <<elseif $activeSlave.entertainSkill <= 60>> - She is a @@color:aquamarine;skilled entertainer@@ and - <<elseif $activeSlave.entertainSkill < 100>> - She is an @@color:aquamarine;expert entertainer@@ and + <<if $activeSlave.whoreSkill <= 10>> + <<elseif $activeSlave.whoreSkill <= 30>> + <<if $activeSlave.entertainSkill <= 10>>She <</if>>has @@color:aquamarine;basic experience as a prostitute.@@ + <<elseif $activeSlave.whoreSkill <= 60>> + <<if $activeSlave.entertainSkill <= 10>>She is <</if>>a @@color:aquamarine;skilled streetwalker.@@ + <<elseif $activeSlave.whoreSkill < 100>> + <<if $activeSlave.entertainSkill <= 10>>She is <</if>>a @@color:aquamarine;expert working girl.@@ <<else>> - She is a @@color:aquamarine;master of entertainment@@ and + <<if $activeSlave.entertainSkill <= 10>>She is <</if>>a @@color:aquamarine;masterful whore.@@ <</if>> <</if>> -<<if $activeSlave.whoreSkill <= 10>> -<<elseif $activeSlave.whoreSkill <= 30>> - has @@color:aquamarine;basic experience as a prostitute.@@ -<<elseif $activeSlave.whoreSkill <= 60>> - a @@color:aquamarine;skilled streetwalker.@@ -<<elseif $activeSlave.whoreSkill < 100>> - a @@color:aquamarine;expert working girl.@@ -<<else>> - a @@color:aquamarine;masterful whore.@@ -<</if>> -<</if>> <<if ($activeSlave.customDesc != "") && (def $activeSlave.customDesc)>> <<print $activeSlave.customDesc>> @@ -1700,15 +1565,21 @@ and The proportions of $possessive arms and legs are odd, as though they have been surgically shortened. <</if>> -<<if $activeSlave.muscles > 5>> $pronounCap is <<if $activeSlave.muscles > 95>> @@color:pink;extremely muscular,@@ with defined pecs, powerful glutes, and massive traps. <<elseif $activeSlave.muscles > 30>> @@color:pink;quite muscular,@@ with ripped abs, strong shoulders, and defined lats. -<<else>> +<<elseif $activeSlave.muscles > 5>> @@color:pink;well built,@@ yet feminine, with just-visible muscles. -<</if>> +<<elseif $activeSlave.muscles > -6>> + @@color:pink;soft and feminine,@@ with no visible muscles. +<<elseif $activeSlave.muscles > -31>> + @@color:red;rather weak,@@ with barely any muscles. +<<elseif $activeSlave.muscles > -96>> + @@color:red;very weak;@@ she struggles with day-to-day tasks. +<<else>> + @@color:red;frail;@@ she can barely hold herself up. <</if>> <<if $arcologies[0].FSGenderFundamentalistLawBeauty + $arcologies[0].FSGenderRadicalistLawBeauty > 0>> @@ -1744,6 +1615,12 @@ $pronounCap is <<if ($activeSlave.preg is -2) && ($activeSlave.vagina < 0)>> <<elseif ($activeSlave.preg <= -2) && ($activeSlave.ovaries == 1 || $activeSlave.mpreg == 1)>> $pronounCap is sterile. +<<elseif $activeSlave.preg == 0 && $activeSlave.vagina > -1>> + <<if $activeSlave.pregType > 20>> + $pronounCap's lower belly is noticably bloated and her pussy swollen and leaking fluids. She is very ready to be seeded. + <<elseif $activeSlave.pregType > 2>> + $pronounCap's lower belly is slightly bloated and her pussy swollen and leaking fluids. She is ready to be seeded. + <</if>> <<elseif $activeSlave.preg > 30>> <<if $activeSlave.pregType >= 20>> $pronounCap is @@color:red;on the brink of bursting!@@ $possessiveCap belly is painfully stretched, the slightest provocation could cause $object to rupture. @@ -1829,6 +1706,9 @@ $pronounCap is <<elseif $activeSlave.bellyImplant > 0>> $pronounCap has an abdominal implant, though it isn't too visible yet at a tiny <<print $activeSlave.bellyImplant>>ccs. <</if>> +<<if bigBelly($activeSlave)>> + Her stomach is @@color:pink;large enough to be in the way,@@ both in daily affairs and during sex. +<</if>> <<if ($activeSlave.heels == 1)>> $possessiveCap @@color:pink;legs have been altered@@ so that $pronoun must wear heels in order to walk. diff --git a/src/uncategorized/main.tw b/src/uncategorized/main.tw index 67049969d04e33efdc535499393e8a147478dfd9..b6ae51bf7f0fbb8978c85512250c5e993c1ec218 100644 --- a/src/uncategorized/main.tw +++ b/src/uncategorized/main.tw @@ -1,7 +1,7 @@ :: Main [nobr] <<if $ver.contains("0.9") or $ver.contains("0.8") or $ver.contains("0.7") or $ver.contains("0.6")>> - <<if ($ver != "0.9.7") && ($ver != "0.9.8")>> + <<if ($ver != "0.9.7") && ($ver != "0.9.8") && ($ver != "0.9.9")>> ''@@color:red;INCOMPATIBLE SAVE WARNING:@@'' your saved game was created using version $ver and you are using version 0.9.8. Please select New Game Plus from the Options menu or start a new game. <br><br> <</if>> @@ -17,7 +17,7 @@ <<set $incubator = 0>> <</if>> <<if ndef $incubatorUpgradeSpeed>> - <<set $incubatorUpgradeSpeed = 0>> + <<set $incubatorUpgradeSpeed = 5>> <</if>> <<if ndef $incubatorUpgradeWeight>> <<set $incubatorUpgradeWeight = 0>> @@ -37,6 +37,9 @@ <<if ndef $incubatorReproductionSetting>> <<set $incubatorReproductionSetting = 0>> <</if>> +<<if ndef $reservedChildren>> + <<set $reservedChildren = 0>> +<</if>> <<if ndef $tanks>> <<set $tanks = []>> <<set $tanks = [0]>> @@ -44,6 +47,9 @@ <<if ndef $animalParts>> <<set $animalParts = 0>> <</if>> +<<if ndef $genePool>> + <<set $genePool = []>> +<</if>> <<set $currentRule to $defaultRules[0]>> @@ -250,26 +256,34 @@ __''MAIN MENU''__ //[[Summary Options]] <<set $j to "Back",$k to "AS Dump",$l to "Main">> <<for $i to 0; $i < $slaves.length; $i++>> <<if ($slaves[$i].assignment is "please you")>> - <br><<display "Toychest">> //In the coming week you plan to concentrate on <<if $slaves[$i].fuckdoll == 0>>her<<else>>its<</if>> + <br><<display "Toychest">> //In the coming week you plan to concentrate on <<if $slaves[$i].fuckdoll == 0>> - $slaves[$i].toyHole, but for now:// - <br> <<print "[[Use her mouth|FLips][$activeSlave to $slaves[" + $i + "],$nextButton to $j,$nextLink to $k,$returnTo to $l]]">> | <<print "[[Play with her tits|FBoobs][$activeSlave to $slaves[" + $i + "],$nextButton to $j,$nextLink to $k,$returnTo to $l]]">> - <<if canDoVaginal($slaves[$i])>> - | <<print "[[Fuck her|FVagina][$activeSlave to $slaves[" + $i + "],$nextButton to $j,$nextLink to $k,$returnTo to $l]]">> + <<if $slaves[$i].toyHole != "all her holes">> + her $slaves[$i].toyHole, but for now:// + <br> <<print "[[Use her mouth|FLips][$activeSlave to $slaves[" + $i + "],$nextButton to $j,$nextLink to $k,$returnTo to $l]]">> | <<print "[[Play with her tits|FBoobs][$activeSlave to $slaves[" + $i + "],$nextButton to $j,$nextLink to $k,$returnTo to $l]]">> + <<if canDoVaginal($slaves[$i])>> + | <<print "[[Fuck her|FVagina][$activeSlave to $slaves[" + $i + "],$nextButton to $j,$nextLink to $k,$returnTo to $l]]">> + <<if canDoAnal($slaves[$i])>> + | <<print "[[Use her holes|FButt][$activeSlave to $slaves[" + $i + "],$nextButton to $j,$nextLink to $k,$returnTo to $l]]">> + <</if>> + <</if>> <<if canDoAnal($slaves[$i])>> - | <<print "[[Use her holes|FButt][$activeSlave to $slaves[" + $i + "],$nextButton to $j,$nextLink to $k,$returnTo to $l]]">> + | <<print "[[Fuck her ass|FAnus][$activeSlave to $slaves[" + $i + "],$nextButton to $j,$nextLink to $k,$returnTo to $l]]">> <</if>> + /*check*/ + <<if canAchieveErection($slaves[$i])>> + | <<print "[[Ride her|FDick][$activeSlave to $slaves[" + $i + "],$nextButton to $j,$nextLink to $k,$returnTo to $l]]">> + <</if>> + | <<print "[[Abuse her|FAbuse][$activeSlave to $slaves[" + $i + "],$nextButton to $j,$nextLink to $k,$returnTo to $l]]">> + <<else>> + all of her holes equally. <</if>> - <<if canDoAnal($slaves[$i])>> - | <<print "[[Fuck her ass|FAnus][$activeSlave to $slaves[" + $i + "],$nextButton to $j,$nextLink to $k,$returnTo to $l]]">> - <</if>> - /*check*/ - <<if canAchieveErection($slaves[$i])>> - | <<print "[[Ride her|FDick][$activeSlave to $slaves[" + $i + "],$nextButton to $j,$nextLink to $k,$returnTo to $l]]">> - <</if>> - | <<print "[[Abuse her|FAbuse][$activeSlave to $slaves[" + $i + "],$nextButton to $j,$nextLink to $k,$returnTo to $l]]">> <<else>> - $slaves[$i].toyHole. + <<if $slaves[$i].toyHole != "all her holes">> + its $slaves[$i].toyHole. + <<else>> + all of its holes. + <</if>> <</if>> <</if>> <</for>> diff --git a/src/uncategorized/manageArcology.tw b/src/uncategorized/manageArcology.tw index 6b4d8ffc7ebf3a2bf344c57011f102cb573b6618..24de469bdd5c95cb87478f92b19d8b53672ab9d1 100644 --- a/src/uncategorized/manageArcology.tw +++ b/src/uncategorized/manageArcology.tw @@ -1,5 +1,5 @@ :: Manage Arcology [nobr] - + <<set $nextButton to "Back">> <<set $nextLink to "Main">> @@ -63,9 +63,9 @@ __Construction__ <<else>> //The arcology's public areas are fully upgraded.// <</if>> -<<if $PC.career is "engineer">> +<<if ($PC.career == "engineer") || ($PC.career == "arcology owner")>> <<if $AProsperityCap < 360>> - //Arcology upgrades are less expensive due to your @@color:springgreen;arcology engineering career.@@// + //Arcology upgrades are less expensive due to your @@color:springgreen;<<if $PC.career == "arcology owner">>experience in the Free Cities<<else>>arcology engineering career<</if>>.@@// <</if>> <</if>> diff --git a/src/uncategorized/mod_BackwardsCompatibility.tw b/src/uncategorized/mod_BackwardsCompatibility.tw index be935cecd168cb62d1b32beea8198390a86d0598..8070f48851da5649ff788858dc82e5811f644c10 100644 --- a/src/uncategorized/mod_BackwardsCompatibility.tw +++ b/src/uncategorized/mod_BackwardsCompatibility.tw @@ -1,5 +1,5 @@ :: Mod_Backwards Compatibility - + <<nobr>> <<set $nextButton to "Continue">> <<set $nextLink to "Main">> @@ -13,23 +13,23 @@ <<if ndef $defaultRules[_i].standardReward>> <<set $defaultRules[_i].standardReward to "no default setting">> <</if>> - + <<if ndef $defaultRules[_i].standardPunishment>> <<set $defaultRules[_i].standardPunishment to "no default setting">> <</if>> - + <<if ndef $defaultRules[_i].aVirginAccessory>> <<set $defaultRules[_i].aVirginAccessory to "no default setting">> <</if>> - + <<if ndef $defaultRules[_i].aVirginDickAccessory>> <<set $defaultRules[_i].aVirginDickAccessory to "no default setting">> <</if>> - + <<if ndef $defaultRules[_i].aVirginButtplug>> <<set $defaultRules[_i].aVirginButtplug to "no default setting">> <</if>> - + <<if ndef $defaultRules[_i].surgery>> <<set $defaultRules[_i].surgery to {lactation: "no default setting", cosmetic: 0, accent: "no default setting", shoulders: "no default setting", shouldersImplant: "no default setting", boobs: "no default setting", hips: "no default setting", hipsImplant: "no default setting", butt: "no default setting", faceShape: "no default setting", lips: "no default setting", holes: 0}>> <</if>> @@ -44,32 +44,32 @@ <</for>> <</if>> - + <<if ndef $month>> <<set $month to either("January","February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")>> <</if>> - + <<if ndef $day>> <<set $day to random(1,28)>> <</if>> - + <<if ndef $year>> <<set $year to (2037+Math.floor($week/52))>> <</if>> - + <<if ndef $arcologies>> <<set $arcologies to []>> - + <<set $arcologies[0] to {name: "Arcology X-", direction: 0, government: 1, honeymoon: 0, prosperity: 50, FSSupremacist: "unset", FSSupremacistRace: 0, FSSubjugationist: "unset", FSSubjugationistRace: 0, FSGenderRadicalist: "unset", FSGenderFundamentalist: "unset", FSPaternalist: "unset", FSDegradationist: "unset", FSBodyPurist: "unset", FSTransformationFetishist: "unset", FSYouthPreferentialist: "unset", FSMaturityPreferentialist: "unset", FSSlimnessEnthusiast: "unset", FSAssetExpansionist: "unset", FSPastoralist: "unset", FSPhysicalIdealist: "unset", FSChattelReligionist: "unset", FSRomanRevivalist: "unset", FSEgyptianRevivalist: "unset", FSEdoRevivalist: "unset", FSArabianRevivalist: "unset", FSChineseRevivalist: "unset", FSNull: "unset", embargo: 1, embargoTarget: -1, influenceTarget: -1, influenceBonus: 0, rival: 0}>> <</if>> - + <<if def $arcologyName>> <<set $arcologies[0].name to $arcologyName>> <<unset $arcologyName>> <<elseif ndef $arcologies[0].name>> <<set $arcologies[0].name = "Arcology X-4">> <</if>> - + <<if ndef $arcologies[0].ownership>> <<set $arcologies[0].ownership to 50>> <</if>> @@ -103,7 +103,7 @@ <<if ndef $arcologies[0].leaderID>> <<set $arcologies[0].leaderID to 0>> <</if>> - + <<if def $FSSupremacist and $FSSupremacist != "unset">> <<set $arcologies[0].FSSupremacist to $FSSupremacist>> <<set $arcologies[0].FSSupremacistRace to $FSSupremacistRace>> @@ -112,14 +112,14 @@ <<elseif ndef $arcologies[0].FSSupremacist>> <<set $arcologies[0].FSSupremacist to "unset">> <</if>> - + <<if def $FSSupremacistLawME and $FSSupremacistLawME != 0>> <<set $arcologies[0].FSSupremacistLawME to $FSSupremacistLawME>> <<unset $FSSupremacistLawME>> <<elseif ndef $arcologies[0].FSSupremacistLawME>> <<set $arcologies[0].FSSupremacistLawME to 0>> <</if>> - + <<if def $FSSubjugationist and $FSSubjugationist != "unset">> <<set $arcologies[0].FSSubjugationist to $FSSubjugationist>> <<set $arcologies[0].FSSubjugationistRace to $FSSubjugationistRace>> @@ -128,272 +128,272 @@ <<elseif ndef $arcologies[0].FSSubjugationist>> <<set $arcologies[0].FSSubjugationist to "unset">> <</if>> - + <<if def $FSSubjugationistLawME and $FSSubjugationistLawME != 0>> <<set $arcologies[0].FSSubjugationistLawME to $FSSubjugationistLawME>> <<unset $FSSubjugationistLawME>> <<elseif ndef $arcologies[0].FSSubjugationistLawME>> <<set $arcologies[0].FSSubjugationistLawME to 0>> <</if>> - + <<if def $FSDegradationist and $FSDegradationist != "unset">> <<set $arcologies[0].FSDegradationist to $FSDegradationist>> <<unset $FSDegradationist>> <<elseif ndef $arcologies[0].FSDegradationist>> <<set $arcologies[0].FSDegradationist to "unset">> <</if>> - + <<if def $FSDegradationistLaw and $FSDegradationistLaw != 0>> <<set $arcologies[0].FSDegradationistLaw to $FSDegradationistLaw>> <<unset $FSDegradationistLaw>> <<elseif ndef $arcologies[0].FSDegradationistLaw>> <<set $arcologies[0].FSDegradationistLaw to 0>> <</if>> - + <<if def $FSPaternalist and $FSPaternalist != "unset">> <<set $arcologies[0].FSPaternalist to $FSPaternalist>> <<unset $FSPaternalist>> <<elseif ndef $arcologies[0].FSPaternalist>> <<set $arcologies[0].FSPaternalist to "unset">> <</if>> - + <<if def $FSPaternalistLaw and $FSPaternalistLaw != 0>> <<set $arcologies[0].FSPaternalistLaw to $FSPaternalistLaw>> <<unset $FSPaternalistLaw>> <<elseif ndef $arcologies[0].FSPaternalistLaw>> <<set $arcologies[0].FSPaternalistLaw to 0>> <</if>> - + <<if def $FSGenderFundamentalist and $FSGenderFundamentalist != "unset">> <<set $arcologies[0].FSGenderFundamentalist to $FSGenderFundamentalist>> <<unset $FSGenderFundamentalist>> <<elseif ndef $arcologies[0].FSGenderFundamentalist>> <<set $arcologies[0].FSGenderFundamentalist to "unset">> <</if>> - + <<if def $FSGenderFundamentalistSMR and $FSGenderFundamentalistSMR != 0>> <<set $arcologies[0].FSGenderFundamentalistSMR to $FSGenderFundamentalistSMR>> <<unset $FSGenderFundamentalistSMR>> <<elseif ndef $arcologies[0].FSGenderFundamentalistSMR>> <<set $arcologies[0].FSGenderFundamentalistSMR to 0>> <</if>> - + <<if def $FSGenderRadicalist and $FSGenderRadicalist != "unset">> <<set $arcologies[0].FSGenderRadicalist to $FSGenderRadicalist>> <<unset $FSGenderRadicalist>> <<elseif ndef $arcologies[0].FSGenderRadicalist>> <<set $arcologies[0].FSGenderRadicalist to "unset">> <</if>> - + <<if def $FSGenderRadicalistLaw and $FSGenderRadicalistLaw != 0>> <<set $arcologies[0].FSGenderRadicalistLaw to $FSGenderRadicalistLaw>> <<unset $FSGenderRadicalistLaw>> <<elseif ndef $arcologies[0].FSGenderRadicalistLaw>> <<set $arcologies[0].FSGenderRadicalistLaw to 0>> <</if>> - + <<if def $FSBodyPurist and $FSBodyPurist != "unset">> <<set $arcologies[0].FSBodyPurist to $FSBodyPurist>> <<unset $FSBodyPurist>> <<elseif ndef $arcologies[0].FSBodyPurist>> <<set $arcologies[0].FSBodyPurist to "unset">> <</if>> - + <<if def $FSBodyPuristLaw and $FSBodyPuristLaw != 0>> <<set $arcologies[0].FSBodyPuristLaw to $FSBodyPuristLaw>> <<unset $FSBodyPuristLaw>> <<elseif ndef $arcologies[0].FSBodyPuristLaw>> <<set $arcologies[0].FSBodyPuristLaw to 0>> <</if>> - + <<if def $FSPhysicalIdealist and $FSPhysicalIdealist != "unset">> <<set $arcologies[0].FSPhysicalIdealist to $FSPhysicalIdealist>> <<unset $FSPhysicalIdealist>> <<elseif ndef $arcologies[0].FSPhysicalIdealist>> <<set $arcologies[0].FSPhysicalIdealist to "unset">> <</if>> - + <<if def $FSPhysicalIdealistSMR and $FSPhysicalIdealistSMR != 0>> <<set $arcologies[0].FSPhysicalIdealistSMR to $FSPhysicalIdealistSMR>> <<unset $FSPhysicalIdealistSMR>> <<elseif ndef $arcologies[0].FSPhysicalIdealistSMR>> <<set $arcologies[0].FSPhysicalIdealistSMR to 0>> <</if>> - + <<if def $FSTransformationFetishist and $FSTransformationFetishist != "unset">> <<set $arcologies[0].FSTransformationFetishist to $FSTransformationFetishist>> <<unset $FSTransformationFetishist>> <<elseif ndef $arcologies[0].FSTransformationFetishist>> <<set $arcologies[0].FSTransformationFetishist to "unset">> <</if>> - + <<if def $FSTransformationFetishistLaw and $FSTransformationFetishistLaw != 0>> <<set $arcologies[0].FSTransformationFetishistLaw to $FSTransformationFetishistLaw>> <<unset $FSTransformationFetishistLaw>> <<elseif ndef $arcologies[0].FSTransformationFetishistLaw>> <<set $arcologies[0].FSTransformationFetishistLaw to 0>> <</if>> - + <<if def $FSAssetExpansionist and $FSAssetExpansionist != "unset">> <<set $arcologies[0].FSAssetExpansionist to $FSAssetExpansionist>> <<unset $FSAssetExpansionist>> <<elseif ndef $arcologies[0].FSAssetExpansionist>> <<set $arcologies[0].FSAssetExpansionist to "unset">> <</if>> - + <<if def $FSAssetExpansionistSMR and $FSAssetExpansionistSMR != 0>> <<set $arcologies[0].FSAssetExpansionistSMR to $FSAssetExpansionistSMR>> <<unset $FSAssetExpansionistSMR>> <<elseif ndef $arcologies[0].FSAssetExpansionistSMR>> <<set $arcologies[0].FSAssetExpansionistSMR to 0>> <</if>> - + <<if def $FSSlimnessEnthusiast and $FSSlimnessEnthusiast != "unset">> <<set $arcologies[0].FSSlimnessEnthusiast to $FSSlimnessEnthusiast>> <<unset $FSSlimnessEnthusiast>> <<elseif ndef $arcologies[0].FSSlimnessEnthusiast>> <<set $arcologies[0].FSSlimnessEnthusiast to "unset">> <</if>> - + <<if def $FSSlimnessEnthusiastSMR and $FSSlimnessEnthusiastSMR != 0>> <<set $arcologies[0].FSSlimnessEnthusiastSMR to $FSSlimnessEnthusiastSMR>> <<unset $FSSlimnessEnthusiastSMR>> <<elseif ndef $arcologies[0].FSSlimnessEnthusiastSMR>> <<set $arcologies[0].FSSlimnessEnthusiastSMR to 0>> <</if>> - + <<if def $FSMaturityPreferentialist and $FSMaturityPreferentialist != "unset">> <<set $arcologies[0].FSMaturityPreferentialist to $FSMaturityPreferentialist>> <<unset $FSMaturityPreferentialist>> <<elseif ndef $arcologies[0].FSMaturityPreferentialist>> <<set $arcologies[0].FSMaturityPreferentialist to "unset">> <</if>> - + <<if def $FSMaturityPreferentialistLaw and $FSMaturityPreferentialistLaw != 0>> <<set $arcologies[0].FSMaturityPreferentialistLaw to $FSMaturityPreferentialistLaw>> <<unset $FSMaturityPreferentialistLaw>> <<elseif ndef $arcologies[0].FSMaturityPreferentialistLaw>> <<set $arcologies[0].FSMaturityPreferentialistLaw to 0>> <</if>> - + <<if def $FSYouthPreferentialist and $FSYouthPreferentialist != "unset">> <<set $arcologies[0].FSYouthPreferentialist to $FSYouthPreferentialist>> <<unset $FSYouthPreferentialist>> <<elseif ndef $arcologies[0].FSYouthPreferentialist>> <<set $arcologies[0].FSYouthPreferentialist to "unset">> <</if>> - + <<if def $FSYouthPreferentialistLaw and $FSYouthPreferentialistLaw != 0>> <<set $arcologies[0].FSYouthPreferentialistLaw to $FSYouthPreferentialistLaw>> <<unset $FSYouthPreferentialistLaw>> <<elseif ndef $arcologies[0].FSYouthPreferentialistLaw>> <<set $arcologies[0].FSYouthPreferentialistLaw to 0>> <</if>> - + <<if def $FSPastoralist and $FSPastoralist != "unset">> <<set $arcologies[0].FSPastoralist to $FSPastoralist>> <<unset $FSPastoralist>> <<elseif ndef $arcologies[0].FSPastoralist>> <<set $arcologies[0].FSPastoralist to "unset">> <</if>> - + <<if def $FSPastoralistLaw and $FSPastoralistLaw != 0>> <<set $arcologies[0].FSPastoralistLaw to $FSPastoralistLaw>> <<unset $FSPastoralistLaw>> <<elseif ndef $arcologies[0].FSPastoralistLaw>> <<set $arcologies[0].FSPastoralistLaw to 0>> <</if>> - + <<if def $FSChattelReligionist and $FSChattelReligionist != "unset">> <<set $arcologies[0].FSChattelReligionist to $FSChattelReligionist>> <<unset $FSChattelReligionist>> <<elseif ndef $arcologies[0].FSChattelReligionist>> <<set $arcologies[0].FSChattelReligionist to "unset">> <</if>> - + <<if def $FSChattelReligionistLaw and $FSChattelReligionistLaw != 0>> <<set $arcologies[0].FSChattelReligionistLaw to $FSChattelReligionistLaw>> <<unset $FSChattelReligionistLaw>> <<elseif ndef $arcologies[0].FSChattelReligionistLaw>> <<set $arcologies[0].FSChattelReligionistLaw to 0>> <</if>> - + <<if def $FSRomanRevivalist and $FSRomanRevivalist != "unset">> <<set $arcologies[0].FSRomanRevivalist to $FSRomanRevivalist>> <<unset $FSRomanRevivalist>> <<elseif ndef $arcologies[0].FSRomanRevivalist>> <<set $arcologies[0].FSRomanRevivalist to "unset">> <</if>> - + <<if def $FSRomanRevivalistLaw and $FSRomanRevivalistLaw != 0>> <<set $arcologies[0].FSRomanRevivalistLaw to $FSRomanRevivalistLaw>> <<unset $FSRomanRevivalistLaw>> <<elseif ndef $arcologies[0].FSRomanRevivalistLaw>> <<set $arcologies[0].FSRomanRevivalistLaw to 0>> <</if>> - + <<if def $FSEgyptianRevivalist and $FSEgyptianRevivalist != "unset">> <<set $arcologies[0].FSEgyptianRevivalist to $FSEgyptianRevivalist>> <<unset $FSEgyptianRevivalist>> <<elseif ndef $arcologies[0].FSEgyptianRevivalist>> <<set $arcologies[0].FSEgyptianRevivalist to "unset">> <</if>> - + <<if def $FSEgyptianRevivalistLaw and $FSEgyptianRevivalistLaw != 0>> <<set $arcologies[0].FSEgyptianRevivalistLaw to $FSEgyptianRevivalistLaw>> <<unset $FSEgyptianRevivalistLaw>> <<elseif ndef $arcologies[0].FSEgyptianRevivalistLaw>> <<set $arcologies[0].FSEgyptianRevivalistLaw to 0>> <</if>> - + <<if def $FSEdoRevivalist and $FSEdoRevivalist != "unset">> <<set $arcologies[0].FSEdoRevivalist to $FSEdoRevivalist>> <<unset $FSEdoRevivalist>> <<elseif ndef $arcologies[0].FSEdoRevivalist>> <<set $arcologies[0].FSEdoRevivalist to "unset">> <</if>> - + <<if def $FSEdoRevivalistLaw and $FSEdoRevivalistLaw != 0>> <<set $arcologies[0].FSEdoRevivalistLaw to $FSEdoRevivalistLaw>> <<unset $FSEdoRevivalistLaw>> <<elseif ndef $arcologies[0].FSEdoRevivalistLaw>> <<set $arcologies[0].FSEdoRevivalistLaw to 0>> <</if>> - + <<if def $FSArabianRevivalist and $FSArabianRevivalist != "unset">> <<set $arcologies[0].FSArabianRevivalist to $FSArabianRevivalist>> <<unset $FSArabianRevivalist>> <<elseif ndef $arcologies[0].FSArabianRevivalist>> <<set $arcologies[0].FSArabianRevivalist to "unset">> <</if>> - + <<if def $FSArabianRevivalistLaw and $FSArabianRevivalistLaw != 0>> <<set $arcologies[0].FSArabianRevivalistLaw to $FSArabianRevivalistLaw>> <<unset $FSArabianRevivalistLaw>> <<elseif ndef $arcologies[0].FSArabianRevivalistLaw>> <<set $arcologies[0].FSArabianRevivalistLaw to 0>> <</if>> - + <<if def $FSChineseRevivalist and $FSChineseRevivalist != "unset">> <<set $arcologies[0].FSChineseRevivalist to $FSChineseRevivalist>> <<unset $FSChineseRevivalist>> <<elseif ndef $arcologies[0].FSChineseRevivalist>> <<set $arcologies[0].FSChineseRevivalist to "unset">> <</if>> - + <<if def $FSChineseRevivalistLaw and $FSChineseRevivalistLaw != 0>> <<set $arcologies[0].FSChineseRevivalistLaw to $FSChineseRevivalistLaw>> <<unset $FSChineseRevivalistLaw>> <<elseif ndef $arcologies[0].FSChineseRevivalistLaw>> <<set $arcologies[0].FSChineseRevivalistLaw to 0>> <</if>> - + <<for _i to 1; _i < $arcologies.length; _i++>> <<if ndef $arcologies[_i].FSNull>> <<set $arcologies[_i].FSNull to "unset">> <</if>> <</for>> - + Setting missing global variables: <<if ndef $assistantPower>> <<set $assistantPower to 0>> @@ -402,7 +402,7 @@ <<if ndef $CulturalOpenness>> <<set $CulturalOpenness to 0>> <</if>> - + <<if ndef $displayAssignments>> <<set $displayAssignments to 1>> <</if>> @@ -430,7 +430,7 @@ <<if ndef $terrain>> <<set $terrain to "rural">> <</if>> - + <<if ndef $menialDemandFactor>> <<set $menialDemandFactor = 0>> <</if>> @@ -457,7 +457,7 @@ <<if ndef $policyCost>> <<set $policyCost to 5000>> <</if>> - + <<if ndef $REFeminizationCheckinIDs>> <<set $REFeminizationCheckinIDs to []>> <</if>> @@ -725,31 +725,31 @@ <<if ndef $assistantFSAppearance>> <<set $assistantFSAppearance to "default">> <</if>> - + <<if ndef $universalRulesRest>> <<set $universalRulesRest to 0>> <</if>> - + <<if ndef $universalRulesNewSlavesRA>> <<set $universalRulesNewSlavesRA to 1>> <</if>> - + <<if ndef $hormoneUpgradeMood>> <<set $hormoneUpgradeMood to 0>> <</if>> - + <<if ndef $hormoneUpgradeShrinkage>> <<set $hormoneUpgradeShrinkage to 0>> <</if>> - + <<if ndef $hormoneUpgradePower>> <<set $hormoneUpgradePower to 0>> <</if>> - + <<if ndef $schoolSuggestion>> <<set $schoolSuggestion to 0>> <</if>> - + <<if ndef $prostheticsUpgrade>> <<set $prostheticsUpgrade to 0>> <</if>> @@ -759,10 +759,10 @@ <<if ndef $limbsCompleted>> <<set $limbsCompleted to 0>> <</if>> - + <<if ndef $trinkets>> <<set $trinkets to []>> - + <<set $upgradeMultiplierArcology to 1>> <<set $upgradeMultiplierMedicine to 1>> <<if $PC.career is "wealth">> @@ -781,13 +781,15 @@ <<set $upgradeMultiplierMedicine to 0.8>> <<elseif $PC.career is "celebrity">> <<set $trinkets.push("a framed copy of the first news story featuring yourself")>> + <<elseif $PC.career is "arcology owner">> + <<set $trinkets.push("a miniature model of your first arcology")>> <<elseif $PC.career is "escort">> <<set $trinkets.push("a copy the first porno you starred in")>> <<elseif $PC.career is "servant">> <<set $trinkets.push("a framed picture of your late Master")>> <</if>> <</if>> - + <<if ndef $TSS>> <<set $TSS to {schoolUpgrade: 0, schoolPresent: 0, schoolProsperity: 0, subsidize: 0, schoolAnnexed: 0, studentsBought: 0, schoolSale: 0}>> <</if>> @@ -820,7 +822,7 @@ <<if ndef $birthee>> <<set $birthee to 0>> <</if>> - + <<if ndef $assistantNameAnnounced>> <<set $assistantNameAnnounced to 0>> <</if>> @@ -1033,7 +1035,7 @@ <<if ndef $attendantCareers>> <<set $attendantCareers to ["a masseuse", "a counselor"]>> <</if>> - + <<if ndef $milkmaidCareers>> <<set $milkmaidCareers to ["a dairy worker", "a rancher", "a veterinarian", "a farmer's daughter"]>> <</if>> @@ -1045,7 +1047,7 @@ <<if ndef $schoolteacherCareers>> <<set $schoolteacherCareers to ["a principal", "a teacher", "a scientist", "a professor"]>> <</if>> - + <<if ndef $fakeBellies>> <<set $fakeBellies to ["a small empathy belly", "a medium empathy belly", "a large empathy belly", "a huge empathy belly"]>> /* lets fake bellies be seperated from other .bellyAccessory */ <</if>> @@ -1122,16 +1124,16 @@ <<if ndef _Slave.eyeColor>> <<set _Slave.eyeColor to _Slave.eyes>> - <<set _Slave.eyes to 1>> + <<set _Slave.eyes to 1>> <<if ndef _Slave.eyeColor>> <<set _Slave.eyeColor to "brown">> <</if>> <</if>> - + <<if ndef _Slave.eyewear>> <<set _Slave.eyewear to "none">> <</if>> - + <<if ndef _Slave.indenture>> <<set _Slave.indenture to -1>> <</if>> @@ -1153,7 +1155,7 @@ <<if ndef _Slave.pregSource>> <<set _Slave.pregSource = 0>> <</if>> - + <<if ndef _Slave.training>> <<set _Slave.training = 0>> <</if>> @@ -1182,7 +1184,7 @@ <<set _Slave.attrXY = 10>> <</if>> <</if>> - + <<if ($ver.contains("0.9") != true)>> <<if _Slave.health <= -9>> <<set _Slave.health = -90>> @@ -1212,15 +1214,15 @@ <<set _Slave.health = random(101,150)>> <<elseif _Slave.health <= 20>> <<set _Slave.health = random(151,200)>> - <<elseif _Slave.health >= 50>> + <<elseif _Slave.health >= 50>> <<set _Slave.health = 500>> - <<elseif _Slave.health > 20>> + <<elseif _Slave.health > 20>> <<set _Slave.health = 205>> <</if>> - + <<set _Slave.devotion = (_Slave.devotion*5)>> <<set _Slave.trust = (_Slave.trust*5)>> - + <<if _Slave.fetishStrength == 0>> <<set _Slave.fetishStrength = random(0, 60)>> <<elseif _Slave.fetishStrength == 1>> @@ -1228,7 +1230,7 @@ <<elseif _Slave.fetishStrength == 2>> <<set _Slave.fetishStrength = random(96, 100)>> <</if>> - + <<if _Slave.weight == -3>> <<set _Slave.weight = random(-110,-96)>> <<elseif _Slave.weight == -3>> @@ -1244,7 +1246,7 @@ <<elseif _Slave.weight == 3>> <<set _Slave.weight = random(96, 110)>> <</if>> - + <<if _Slave.lips != 0>> <<if _Slave.lips == 3>> <<set _Slave.lips = 85>> @@ -1255,7 +1257,7 @@ <</if>> <</if>> <</if>> - + <<switch _Slave.boobsTat>> <<case "floral designs">> <<set _Slave.boobsTat to "flowers">> @@ -1402,11 +1404,11 @@ <<if ndef _Slave.areolaePiercing>> <<set _Slave.areolaePiercing to 0>> <</if>> - + <<if ndef _Slave.standardPunishment>> <<set _Slave.standardPunishment to "situational">> <</if>> - + <<if ndef _Slave.standardReward>> <<set _Slave.standardReward to "situational">> <</if>> @@ -1448,7 +1450,7 @@ <<if ndef _Slave.pornFameSpending>> <<set _Slave.pornFameSpending to 0>> <</if>> - + <<if ndef _Slave.bellyAccessory>> <<set _Slave.bellyAccessory to "none">> <</if>> @@ -1475,7 +1477,7 @@ <<if _Slave.customTat is " ">> <<set _Slave.customTat to "">> <</if>> - + <<if _Slave.customLabel is " ">> <<set _Slave.customLabel to "">> <</if>> @@ -1518,7 +1520,7 @@ <<if _Slave.corsetPiercing is "no default setting">> <<set _Slave.corsetPiercing to 0>> <</if>> - + <<if _Slave.customDesc is " " or _Slave.customDesc == 0>> <<set _Slave.customDesc to "">> <</if>> @@ -1530,11 +1532,11 @@ <<if ndef _Slave.curatives>> <<set _Slave.curatives to 0>> <</if>> - + <<set $slaves[_i] to _Slave>> <</for>> Done! - + <<if $ver.indexOf("0.9") == -1>> <<set $ver to "0.9">> <</if>> diff --git a/src/uncategorized/motherDaughterWorkaround.tw b/src/uncategorized/motherDaughterWorkaround.tw index 76a28a49ba2133f80d21eb581af04f840a09b689..7349d9346630aa9c99203f767ceec3eb4df49e23 100644 --- a/src/uncategorized/motherDaughterWorkaround.tw +++ b/src/uncategorized/motherDaughterWorkaround.tw @@ -1,10 +1,11 @@ :: Mother Daughter Workaround - + Your new pair of slaves look frightened and uncertain, but seem encouraged by each other's presence. -<<display "Nationality to Name">> -<<display "Nationality to Accent">> +<<AddSlave $activeSlave>> +<<NationalityToName>> +<<NationalityToAccent>> <<set _secondSlave to $activeSlave>> <<if $useFSNames == 0>> @@ -71,4 +72,4 @@ Your new pair of slaves look frightened and uncertain, but seem encouraged by ea <<set _secondSlave.butt += random(-1, 1)>> <</if>> -<<set $slaves.push(_secondSlave)>> +<<AddSlave _secondSlave)>> \ No newline at end of file diff --git a/src/uncategorized/nationalityToName.tw b/src/uncategorized/nationalityToName.tw index 979a98a6a2824e7c3c5bc76d04b3cd54707e4b33..c068e502b0ce0bdf50bc43aa3a6863ab05735f05 100644 --- a/src/uncategorized/nationalityToName.tw +++ b/src/uncategorized/nationalityToName.tw @@ -1,6 +1,7 @@ :: Nationality to Name [nobr] -<<if ($activeSlave.nationality is "American")>> +<<switch $activeSlave.nationality>> +<<case "American">> <<if $activeSlave.race is "black">> <<set $activeSlave.birthName to $africanAmericanSlaveNames.random()>> <<elseif $activeSlave.race is "latina">> @@ -12,192 +13,192 @@ <<else>> <<set $activeSlave.birthName to $whiteAmericanSlaveNames.random()>> <</if>> -<<elseif ($activeSlave.nationality is "Canadian")>> +<<case "Canadian">> <<set $activeSlave.birthName to $canadianSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Mexican")>> +<<case "Mexican">> <<set $activeSlave.birthName to $mexicanSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Dominican")>> +<<case "Dominican">> <<set $activeSlave.birthName to $dominicanSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Puerto Rican")>> +<<case "Puerto Rican">> <<set $activeSlave.birthName to $puertoRicanSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Haitian")>> +<<case "Haitian">> <<set $activeSlave.birthName to $haitianSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Jamaican")>> +<<case "Jamaican">> <<set $activeSlave.birthName to $jamaicanSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Cuban")>> +<<case "Cuban">> <<set $activeSlave.birthName to $cubanSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Guatemalan")>> +<<case "Guatemalan">> <<set $activeSlave.birthName to $guatemalanSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Chilean")>> +<<case "Chilean">> <<set $activeSlave.birthName to $chileanSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Peruvian")>> +<<case "Peruvian">> <<set $activeSlave.birthName to $peruvianSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Bolivian")>> +<<case "Bolivian">> <<set $activeSlave.birthName to $bolivianSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Venezuelan")>> +<<case "Venezuelan">> <<set $activeSlave.birthName to $venezuelanSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Belarusian")>> +<<case "Belarusian">> <<set $activeSlave.birthName to $belarusianSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Russian")>> +<<case "Russian">> <<set $activeSlave.birthName to $russianSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Ukrainian")>> +<<case "Ukrainian">> <<set $activeSlave.birthName to $ukrainianSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Italian")>> +<<case "Italian">> <<set $activeSlave.birthName to $italianSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Spanish")>> +<<case "Spanish">> <<set $activeSlave.birthName to $spanishSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "British")>> +<<case "British">> <<set $activeSlave.birthName to $britishSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Scottish")>> +<<case "Scottish">> <<set $activeSlave.birthName to $scottishSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "French")>> +<<case "French">> <<set $activeSlave.birthName to $frenchSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "German")>> +<<case "German">> <<set $activeSlave.birthName to $germanSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Lithuanian")>> +<<case "Lithuanian">> <<set $activeSlave.birthName to $lithuanianSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Norwegian")>> +<<case "Norwegian">> <<set $activeSlave.birthName to $norwegianSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Slovak")>> +<<case "Slovak">> <<set $activeSlave.birthName to $slovakSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Danish")>> +<<case "Danish">> <<set $activeSlave.birthName to $danishSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Dutch")>> +<<case "Dutch">> <<set $activeSlave.birthName to $dutchSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Austrian")>> +<<case "Austrian">> <<set $activeSlave.birthName to $austrianSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Swiss")>> +<<case "Swiss">> <<set $activeSlave.birthName to $swissSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Serbian")>> +<<case "Serbian">> <<set $activeSlave.birthName to $serbianSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Belgian")>> +<<case "Belgian">> <<set $activeSlave.birthName to $belgianSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Czech")>> +<<case "Czech">> <<set $activeSlave.birthName to $czechSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Portuguese")>> +<<case "Portuguese">> <<set $activeSlave.birthName to $portugueseSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Swedish")>> +<<case "Swedish">> <<set $activeSlave.birthName to $swedishSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Romanian")>> +<<case "Romanian">> <<set $activeSlave.birthName to $romanianSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Hungarian")>> +<<case "Hungarian">> <<set $activeSlave.birthName to $hungarianSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Estonian")>> +<<case "Estonian">> <<set $activeSlave.birthName to $estonianSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Irish")>> +<<case "Irish">> <<set $activeSlave.birthName to $irishSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Icelandic")>> +<<case "Icelandic">> <<set $activeSlave.birthName to $icelandicSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Finnish")>> +<<case "Finnish">> <<set $activeSlave.birthName to $finnishSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Greek")>> +<<case "Greek">> <<set $activeSlave.birthName to $greekSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Polish")>> +<<case "Polish">> <<set $activeSlave.birthName to $polishSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Brazilian")>> +<<case "Brazilian">> <<set $activeSlave.birthName to $brazilianSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Egyptian")>> +<<case "Egyptian">> <<set $activeSlave.birthName to $egyptianSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Colombian")>> +<<case "Colombian">> <<set $activeSlave.birthName to $colombianSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Argentinian")>> +<<case "Argentinian">> <<set $activeSlave.birthName to $argentinianSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Turkish")>> +<<case "Turkish">> <<set $activeSlave.birthName to $turkishSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Iranian")>> +<<case "Iranian">> <<set $activeSlave.birthName to $iranianSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Armenian")>> +<<case "Armenian">> <<set $activeSlave.birthName to $armenianSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Israeli")>> +<<case "Israeli">> <<set $activeSlave.birthName to $israeliSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Saudi")>> +<<case "Saudi">> <<set $activeSlave.birthName to $saudiSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "South African")>> +<<case "South African">> <<if $activeSlave.race is "black">> <<set $activeSlave.birthName to $blackSouthAfricanSlaveNames.random()>> <<else>> <<set $activeSlave.birthName to $whiteSouthAfricanSlaveNames.random()>> <</if>> -<<elseif ($activeSlave.nationality is "Nigerian")>> +<<case "Nigerian">> <<set $activeSlave.birthName to $nigerianSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Congolese")>> +<<case "Congolese">> <<set $activeSlave.birthName to $congoleseSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Kenyan")>> +<<case "Kenyan">> <<set $activeSlave.birthName to $kenyanSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Tanzanian")>> +<<case "Tanzanian">> <<set $activeSlave.birthName to $tanzanianSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Zimbabwean")>> +<<case "Zimbabwean">> <<if $activeSlave.race == "white">> <<set $activeSlave.birthName to $britishSlaveNames.random()>> <<else>> <<set $activeSlave.birthName to $zimbabweanSlaveNames.random()>> <</if>> -<<elseif ($activeSlave.nationality is "Ghanan")>> +<<case "Ghanan">> <<set $activeSlave.birthName to $ghananSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Ugandan")>> +<<case "Ugandan">> <<set $activeSlave.birthName to $ugandanSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Ethiopian")>> +<<case "Ethiopian">> <<set $activeSlave.birthName to $ethiopianSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Moroccan")>> +<<case "Moroccan">> <<set $activeSlave.birthName to $moroccanSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Chinese")>> +<<case "Chinese">> <<set $activeSlave.birthName to $chineseSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Korean")>> +<<case "Korean">> <<set $activeSlave.birthName to $koreanSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Thai")>> +<<case "Thai">> <<set $activeSlave.birthName to $thaiSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Vietnamese")>> +<<case "Vietnamese">> <<set $activeSlave.birthName to $vietnameseSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Japanese")>> +<<case "Japanese">> <<set $activeSlave.birthName to $japaneseSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Indonesian")>> +<<case "Indonesian">> <<set $activeSlave.birthName to $indonesianSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Filipina")>> +<<case "Filipina">> <<set $activeSlave.birthName to $filipinaSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Bangladeshi")>> +<<case "Bangladeshi">> <<set $activeSlave.birthName to $bangladeshiSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Malaysian")>> +<<case "Malaysian">> <<set $activeSlave.birthName to $malaysianSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Uzbek")>> +<<case "Uzbek">> <<set $activeSlave.birthName to $uzbekSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Afghan")>> +<<case "Afghan">> <<set $activeSlave.birthName to $afghanSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Nepalese")>> +<<case "Nepalese">> <<set $activeSlave.birthName to $nepaleseSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Burmese")>> +<<case "Burmese">> <<set $activeSlave.birthName to $burmeseSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Iraqi")>> +<<case "Iraqi">> <<set $activeSlave.birthName to $iraqiSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Yemeni")>> +<<case "Yemeni">> <<set $activeSlave.birthName to $yemeniSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Sudanese")>> +<<case "Sudanese">> <<set $activeSlave.birthName to $sudaneseSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Algerian")>> +<<case "Algerian">> <<set $activeSlave.birthName to $algerianSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Tunisian")>> +<<case "Tunisian">> <<set $activeSlave.birthName to $tunisianSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Libyan")>> +<<case "Libyan">> <<set $activeSlave.birthName to $libyanSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Omani")>> +<<case "Omani">> <<set $activeSlave.birthName to $omaniSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Malian")>> +<<case "Malian">> <<set $activeSlave.birthName to $malianSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Jordanian")>> +<<case "Jordanian">> <<set $activeSlave.birthName to $jordanianSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Lebanese")>> +<<case "Lebanese">> <<set $activeSlave.birthName to $lebaneseSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Emirati")>> +<<case "Emirati">> <<set $activeSlave.birthName to $emiratiSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Kazakh")>> +<<case "Kazakh">> <<set $activeSlave.birthName to $kazakhSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Pakistani")>> +<<case "Pakistani">> <<set $activeSlave.birthName to $pakistaniSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Indian")>> +<<case "Indian">> <<set $activeSlave.birthName to $indianSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "Australian")>> +<<case "Australian">> <<set $activeSlave.birthName to $australianSlaveNames.random()>> -<<elseif ($activeSlave.nationality is "a New Zealander")>> +<<case "a New Zealander">> <<set $activeSlave.birthName to $newZealanderSlaveNames.random()>> -<<else>> +<<default>> <<set $activeSlave.birthName to $whiteAmericanSlaveNames.random()>> -<</if>> +<</switch>> diff --git a/src/uncategorized/neighborsDevelopment.tw b/src/uncategorized/neighborsDevelopment.tw index 0b63810fe478ec3f727f268124a34fafa227ed15..f25a4ee06f9b3ec38b978efa6d7f90da5ea7a5e8 100644 --- a/src/uncategorized/neighborsDevelopment.tw +++ b/src/uncategorized/neighborsDevelopment.tw @@ -514,25 +514,25 @@ has an estimated GSP of @@color:yellowgreen;¤<<print Math.trunc((0.1*$arcologie Racial Supremacy for $arcologies[$i].FSSupremacistRace people has reached stability and acceptance there. The arcology has been renamed <<switch $arcologies[$i].FSSupremacistRace>> <<case "white">> - <<set $arcologies[$i].name to either("The Old Dominion", "Thule")>> + <<set $arcologies[$i].name to $ArcologyNamesSupremacistWhite.random()>> <<case "asian">> - <<set $arcologies[$i].name to either("The Celestial Temple", "Shambhala", "Shangri-La")>> + <<set $arcologies[$i].name to $ArcologyNamesSupremacistAsian.random()>> <<case "latina">> - <<set $arcologies[$i].name to either("Tenochtitlan", "Aztlan")>> + <<set $arcologies[$i].name to $ArcologyNamesSupremacistLatina.random()>> <<case "middle eastern">> - <<set $arcologies[$i].name to either("The Caliphate", "New Cairo")>> + <<set $arcologies[$i].name to $ArcologyNamesSupremacistMiddleEastern.random()>> <<case "black">> - <<set $arcologies[$i].name to either("United Africa", "Benin")>> + <<set $arcologies[$i].name to $ArcologyNamesSupremacistBlack.random()>> <<case "indo-aryan">> - <<set $arcologies[$i].name to either("Swarga Loka", "New New Delhi")>> + <<set $arcologies[$i].name to $ArcologyNamesSupremacistIndoAryan.random()>> <<case "pacific islander">> - <<set $arcologies[$i].name to either("Maui", "Rapa Nui")>> + <<set $arcologies[$i].name to $ArcologyNamesSupremacistPacificIslander.random()>> <<case "amerindian">> - <<set $arcologies[$i].name to either("Cahokia", "The Confederated Tribes")>> + <<set $arcologies[$i].name to $ArcologyNamesSupremacistAmerindian.random()>> <<case "southern european">> - <<set $arcologies[$i].name to either("New Athens", "Olympus")>> + <<set $arcologies[$i].name to $ArcologyNamesSupremacistSouthernEuropean.random()>> <<case "semitic">> - <<set $arcologies[$i].name to either("The Fifth Temple", "The Promised Land")>> + <<set $arcologies[$i].name to $ArcologyNamesSupremacistSemitic.random()>> <<default>> <<set $arcologies[$i].name to either("Purity")>> <</switch>> @@ -581,27 +581,27 @@ has an estimated GSP of @@color:yellowgreen;¤<<print Math.trunc((0.1*$arcologie Racial Subjugationism of $arcologies[$i].FSSubjugationistRace people has reached stability and acceptance there. The arcology has been renamed <<switch $arcologies[$i].FSSubjugationistRace>> <<case "white">> - <<set $arcologies[$i].name to either("The World Turned Upside Down", "Anticolonialism One")>> + <<set $arcologies[$i].name to $ArcologyNamesSubjugationistWhite.random()>> <<case "asian">> - <<set $arcologies[$i].name to either("The East India Company", "Pearl of the Orient")>> + <<set $arcologies[$i].name to $ArcologyNamesSubjugationistAsian.random()>> <<case "latina">> - <<set $arcologies[$i].name to either("Fort Veracruz", "Halls of Montezuma")>> + <<set $arcologies[$i].name to $ArcologyNamesSubjugationistLatina.random()>> <<case "middle eastern">> - <<set $arcologies[$i].name to either("Constantinople", "Vlad's Castle")>> + <<set $arcologies[$i].name to $ArcologyNamesSubjugationistMiddleEastern.random()>> <<case "black">> - <<set $arcologies[$i].name to either("Dixie", "The Plantation")>> + <<set $arcologies[$i].name to $ArcologyNamesSubjugationistBlack.random()>> <<case "indo-aryan">> - <<set $arcologies[$i].name to either("The East India Company", "Trade Fort")>> + <<set $arcologies[$i].name to $ArcologyNamesSubjugationistIndoAryan.random()>> <<case "pacific islander">> - <<set $arcologies[$i].name to either("Cargo Cult", "Moro Castle")>> + <<set $arcologies[$i].name to $ArcologyNamesSubjugationistPacificIslander.random()>> <<case "amerindian">> - <<set $arcologies[$i].name to either("Fort Laramie", "The Rez")>> + <<set $arcologies[$i].name to $ArcologyNamesSubjugationistAmerindian.random()>> <<case "southern european">> - <<set $arcologies[$i].name to either("Istanbul", "Al-Andalus")>> + <<set $arcologies[$i].name to $ArcologyNamesSubjugationistSouthernEuropean.random()>> <<case "semitic">> - <<set $arcologies[$i].name to either("Solomon's Lament", "New Canaan")>> + <<set $arcologies[$i].name to $ArcologyNamesSubjugationistSemitic.random()>> <<default>> - <<set $arcologies[$i].name to either("Purity")>> + <<set $arcologies[$i].name to "Purity">> <</switch>> ''$arcologies[$i].name'' to mark the occasion. <</if>> @@ -642,7 +642,7 @@ has an estimated GSP of @@color:yellowgreen;¤<<print Math.trunc((0.1*$arcologie <<set $toSearch to $arcologies[$i].name>> <<if ($toSearch.indexOf("Arcology") != -1) and (random(0,2) == 0)>> Repopulationism has reached stability and acceptance there. The arcology has been renamed - <<set $arcologies[$i].name to either("Hope", "The Womb", "Holders of the Future", "Future", "Haven of the Pregnant", "Sacred Womb", "Glorious Mother")>> + <<set $arcologies[$i].name to $ArcologyNamesRepopulationist.random()>> ''$arcologies[$i].name'' to mark the occasion. <</if>> <<elseif $arcologies[$i].FSRepopulationFocus < 0>> @@ -685,7 +685,7 @@ has an estimated GSP of @@color:yellowgreen;¤<<print Math.trunc((0.1*$arcologie <<if ($toSearch.indexOf("Arcology") != -1) and (random(0,2) == 0)>> <<set $arcologies[$i].FSRestartResearch to 1>> Eugenics has reached stability and acceptance there. The arcology has been renamed - <<set $arcologies[$i].name to either("Perfection", "Ancension", "Second Chance")>> + <<set $arcologies[$i].name to $ArcologyNamesEugenics.random()>> ''$arcologies[$i].name'' to mark the occasion. <</if>> <<elseif $arcologies[$i].FSRestart < 0>> @@ -734,7 +734,7 @@ has an estimated GSP of @@color:yellowgreen;¤<<print Math.trunc((0.1*$arcologie <<if ($toSearch.indexOf("Arcology") != -1) && (random(0,2) == 0)>> <<set $arcologies[$i].FSGenderRadicalistResearch to 1>> Gender Radicalism has reached stability and acceptance there. The arcology has been renamed - <<set $arcologies[$i].name to either("Saturnalia", "Bacchanalia", "Gomorrah", "Sodom", "The Rosebud")>> + <<set $arcologies[$i].name to $ArcologyNamesGenderRadicalist.random()>> ''$arcologies[$i].name'' to mark the occasion. <</if>> <<elseif $arcologies[$i].FSGenderRadicalist < 0>> @@ -788,7 +788,7 @@ has an estimated GSP of @@color:yellowgreen;¤<<print Math.trunc((0.1*$arcologie <<set $toSearch to $arcologies[$i].name>> <<if ($toSearch.indexOf("Arcology") != -1) && (random(0,2) == 0)>> Gender Fundamentalism has reached stability and acceptance there. The arcology has been renamed - <<set $arcologies[$i].name to either("The Arbor", "The Rose", "The Source")>> + <<set $arcologies[$i].name to $ArcologyNamesGenderFundamentalist.random()>> ''$arcologies[$i].name'' to mark the occasion. <</if>> <<elseif $arcologies[$i].FSGenderFundamentalist < 0>> @@ -828,7 +828,7 @@ has an estimated GSP of @@color:yellowgreen;¤<<print Math.trunc((0.1*$arcologie <<set $toSearch to $arcologies[$i].name>> <<if ($toSearch.indexOf("Arcology") != -1) && (random(0,2) == 0)>> Paternalism has reached stability and acceptance there. The arcology has been renamed - <<set $arcologies[$i].name to either("Sanctum", "Asylum", "Sanctuary", "Haven", "New Springfield", "The Sanctuary", "Glory")>> + <<set $arcologies[$i].name to $ArcologyNamesPaternalist.random()>> ''$arcologies[$i].name'' to mark the occasion. <</if>> <<elseif $arcologies[$i].FSPaternalist < 0>> @@ -871,7 +871,7 @@ has an estimated GSP of @@color:yellowgreen;¤<<print Math.trunc((0.1*$arcologie <<set $toSearch to $arcologies[$i].name>> <<if ($toSearch.indexOf("Arcology") != -1) && (random(0,2) == 0)>> Degradationism has reached stability and acceptance there. The arcology has been renamed - <<set $arcologies[$i].name to either("Hell", "Golgotha", "The Tower")>> + <<set $arcologies[$i].name to $ArcologyNamesDegradationist.random()>> ''$arcologies[$i].name'' to mark the occasion. <</if>> <<elseif $arcologies[$i].FSDegradationist < 0>> @@ -920,7 +920,7 @@ has an estimated GSP of @@color:yellowgreen;¤<<print Math.trunc((0.1*$arcologie <<set $toSearch to $arcologies[$i].name>> <<if ($toSearch.indexOf("Arcology") != -1) && (random(0,2) == 0)>> Body Purism has reached stability and acceptance there. The arcology has been renamed - <<set $arcologies[$i].name to either("Walden", "New Eden", "Elysium", "Purity", "The Ark", "The Repository")>> + <<set $arcologies[$i].name to $ArcologyNamesBodyPurist.random()>> ''$arcologies[$i].name'' to mark the occasion. <</if>> <<elseif $arcologies[$i].FSBodyPurist < 0>> @@ -961,7 +961,7 @@ has an estimated GSP of @@color:yellowgreen;¤<<print Math.trunc((0.1*$arcologie <<if ($toSearch.indexOf("Arcology") != -1) && (random(0,2) == 0)>> <<set $arcologies[$i].FSTransformationFetishistResearch to 1>> Transformation Fetishism has reached stability and acceptance there. The arcology has been renamed - <<set $arcologies[$i].name to either("The Dollhouse", "Silicon Valley", "The Hospital", "Bimboland")>> + <<set $arcologies[$i].name to $ArcologyNamesTransformationFetishist.random()>> ''$arcologies[$i].name'' to mark the occasion. <</if>> <<elseif $arcologies[$i].FSTransformationFetishist < 0>> @@ -1005,7 +1005,7 @@ has an estimated GSP of @@color:yellowgreen;¤<<print Math.trunc((0.1*$arcologie <<set $toSearch to $arcologies[$i].name>> <<if ($toSearch.indexOf("Arcology") != -1) && (random(0,2) == 0)>> Youth Preferentialism has reached stability and acceptance there. The arcology has been renamed - <<set $arcologies[$i].name to either("Sunnyside", "Fuck High", "Dick U.", "Sex College")>> + <<set $arcologies[$i].name to $ArcologyNamesYouthPreferentialist.random()>> ''$arcologies[$i].name'' to mark the occasion. <<set $arcologies[$i].FSYouthPreferentialistResearch to 1>> <</if>> @@ -1044,7 +1044,7 @@ has an estimated GSP of @@color:yellowgreen;¤<<print Math.trunc((0.1*$arcologie <<set $toSearch to $arcologies[$i].name>> <<if ($toSearch.indexOf("Arcology") != -1) && (random(0,2) == 0)>> Maturity Preferentialism has reached stability and acceptance there. The arcology has been renamed - <<set $arcologies[$i].name to either("Shady Acres", "MILFtown", "MILF Heights", "Park Avenue Tower")>> + <<set $arcologies[$i].name to $ArcologyNamesMaturityPreferentialist.random()>> ''$arcologies[$i].name'' to mark the occasion. <</if>> <<elseif $arcologies[$i].FSMaturityPreferentialist < 0>> @@ -1084,7 +1084,7 @@ has an estimated GSP of @@color:yellowgreen;¤<<print Math.trunc((0.1*$arcologie <<set $toSearch to $arcologies[$i].name>> <<if ($toSearch.indexOf("Arcology") != -1) && (random(0,2) == 0)>> Slimness Enthusiasm has reached stability and acceptance there. The arcology has been renamed - <<set $arcologies[$i].name to either("The Island", "Upskirt", "Virginland")>> + <<set $arcologies[$i].name to $ArcologyNamesSlimnessEnthusiast.random()>> ''$arcologies[$i].name'' to mark the occasion. <</if>> <<elseif $arcologies[$i].FSSlimnessEnthusiast < 0>> @@ -1131,7 +1131,7 @@ has an estimated GSP of @@color:yellowgreen;¤<<print Math.trunc((0.1*$arcologie <<if ($toSearch.indexOf("Arcology") != -1) && (random(0,2) == 0)>> <<set $arcologies[$i].FSAssetExpansionistResearch to 1>> Asset Expansionism has reached stability and acceptance there. The arcology has been renamed - <<set $arcologies[$i].name to either("The Bouncy Castle", "The Mounds", "Twin Peaks", "Boobs Tower")>> + <<set $arcologies[$i].name to $ArcologyNamesAssetExpansionist.random()>> ''$arcologies[$i].name'' to mark the occasion. <</if>> <<elseif $arcologies[$i].FSAssetExpansionist < 0>> @@ -1179,7 +1179,7 @@ has an estimated GSP of @@color:yellowgreen;¤<<print Math.trunc((0.1*$arcologie <<set $toSearch to $arcologies[$i].name>> <<if ($toSearch.indexOf("Arcology") != -1) && (random(0,2) == 0)>> Pastoralism has reached stability and acceptance there. The arcology has been renamed - <<set $arcologies[$i].name to either("Cornucopia", "Abundance", "Plenty", "Bounty", "Greener Pastures", "God's Country", "The Ranch", "Pasturelands")>> + <<set $arcologies[$i].name to $ArcologyNamesPastoralist.random()>> ''$arcologies[$i].name'' to mark the occasion. <</if>> <<elseif $arcologies[$i].FSPastoralist < 0>> @@ -1217,7 +1217,7 @@ has an estimated GSP of @@color:yellowgreen;¤<<print Math.trunc((0.1*$arcologie <<set $toSearch to $arcologies[$i].name>> <<if ($toSearch.indexOf("Arcology") != -1) && (random(0,2) == 0)>> Physical Idealism has reached stability and acceptance there. The arcology has been renamed - <<set $arcologies[$i].name to either("Themyscira", "Midgard", "Muscle Beach", "Skid Row")>> + <<set $arcologies[$i].name to $ArcologyNamesPhysicalIdealist.random()>> ''$arcologies[$i].name'' to mark the occasion. <</if>> <<elseif $arcologies[$i].FSPhysicalIdealist < 0>> @@ -1258,7 +1258,7 @@ has an estimated GSP of @@color:yellowgreen;¤<<print Math.trunc((0.1*$arcologie <<set $toSearch to $arcologies[$i].name>> <<if ($toSearch.indexOf("Arcology") != -1) && (random(0,2) == 0)>> Chattel Religionism has reached stability and acceptance there. The arcology has been renamed - <<set $arcologies[$i].name to either("Heaven", "The Light", "Heaven on Earth")>> + <<set $arcologies[$i].name to $ArcologyNamesChattelReligionist.random()>> ''$arcologies[$i].name'' to mark the occasion. <</if>> <<elseif $arcologies[$i].FSChattelReligionist < 0>> @@ -1311,7 +1311,7 @@ has an estimated GSP of @@color:yellowgreen;¤<<print Math.trunc((0.1*$arcologie <<set $toSearch to $arcologies[$i].name>> <<if ($toSearch.indexOf("Arcology") != -1) && (random(0,2) == 0)>> Roman Revivalism has reached stability and acceptance there. The arcology has been renamed - <<set $arcologies[$i].name to either("Elysian Fields", "Carthago Nova", "Nova Roma", "Neapolis", "Capua", "Ostia", "Salernum", "The City of the Seven Hills")>> + <<set $arcologies[$i].name to $ArcologyNamesRomanRevivalist.random()>> ''$arcologies[$i].name'' to mark the occasion. <</if>> <<elseif $arcologies[$i].FSRomanRevivalist < 0>> @@ -1358,7 +1358,7 @@ has an estimated GSP of @@color:yellowgreen;¤<<print Math.trunc((0.1*$arcologie <<set $toSearch to $arcologies[$i].name>> <<if ($toSearch.indexOf("Arcology") != -1) && (random(0,2) == 0)>> Egyptian Revivalism has reached stability and acceptance there. The arcology has been renamed - <<set $arcologies[$i].name to either("Thebes", "Memphis", "Alexandria")>> + <<set $arcologies[$i].name to $ArcologyNamesEgyptianRevivalist.random()>> ''$arcologies[$i].name'' to mark the occasion. <</if>> <<elseif $arcologies[$i].FSEgyptianRevivalist < 0>> @@ -1405,7 +1405,7 @@ has an estimated GSP of @@color:yellowgreen;¤<<print Math.trunc((0.1*$arcologie <<set $toSearch to $arcologies[$i].name>> <<if ($toSearch.indexOf("Arcology") != -1) && (random(0,2) == 0)>> Edo Revivalism has reached stability and acceptance there. The arcology has been renamed - <<set $arcologies[$i].name to either("Onogoro", "Kokyo", "Tengoku", "Takama-ga-hara", "New Kyoto", "The Imperial Palace", "New Tokyo")>> + <<set $arcologies[$i].name to $ArcologyNamesEdoRevivalist.random()>> ''$arcologies[$i].name'' to mark the occasion. <</if>> <<elseif $arcologies[$i].FSEdoRevivalist < 0>> @@ -1452,7 +1452,7 @@ has an estimated GSP of @@color:yellowgreen;¤<<print Math.trunc((0.1*$arcologie <<set $toSearch to $arcologies[$i].name>> <<if ($toSearch.indexOf("Arcology") != -1) && (random(0,2) == 0)>> Arabian Revivalism has reached stability and acceptance there. The arcology has been renamed - <<set $arcologies[$i].name to either("Jannah", "Madinat al-Salam", "Madinat al-Hareer", "Madinat al-Zahra", "Madinat al-Yasmin", "Bayt al-Hikma", "Baghdad", "Alhambra", "Samarra")>> + <<set $arcologies[$i].name to $ArcologyNamesArabianRevivalist.random()>> ''$arcologies[$i].name'' to mark the occasion. <</if>> <<elseif $arcologies[$i].FSArabianRevivalist < 0>> @@ -1503,7 +1503,7 @@ has an estimated GSP of @@color:yellowgreen;¤<<print Math.trunc((0.1*$arcologie <<set $toSearch to $arcologies[$i].name>> <<if ($toSearch.indexOf("Arcology") != -1) && (random(0,2) == 0)>> Chinese Revivalism has reached stability and acceptance there. The arcology has been renamed - <<set $arcologies[$i].name to either("Yinfu", "Huangquan", "Jiuquan", "Youming", "Huokang", "Mingfu", "Jin Shan", "Qi Lin", "Xin Hua", "Feng Huang", "The Middle Kingdom", "The Forbidden Palace")>> + <<set $arcologies[$i].name to $ArcologyNamesChineseRevivalist.random()>> ''$arcologies[$i].name'' to mark the occasion. <</if>> <<elseif $arcologies[$i].FSChineseRevivalist < 0>> diff --git a/src/uncategorized/newGamePlus.tw b/src/uncategorized/newGamePlus.tw index 9a2f911ca978034b13513d6bb5b0d36269523611..8b310a2b004b510f603701d37083ce16784ffa37 100644 --- a/src/uncategorized/newGamePlus.tw +++ b/src/uncategorized/newGamePlus.tw @@ -10,6 +10,24 @@ <</silently>> <</if>> +<<if $freshPC == 0>> + <<if $retainCareer == 1 && $PC.career != "arcology owner">> + <<if $week > 52>> + You have acquired a fair amount of knowledge regarding arcologies and their day-to-day management in your time spent as one's owner qualifying you as an @@color:orange;"arcology owner"!@@ + <<if $retainCareer == 1>> + [[Change career.|New Game Plus][$retainCareer to 0]] + <<elseif $retainCareer == 0>> + [[Don't change career.|New Game Plus][$retainCareer to 1]] + <</if>> + <<else>> + You lack the experience needed to qualify for a career change to "arcology owner". + <</if>> + <</if>> + [[Start over with a new player character.|New Game Plus][$freshPC = 1, $retainCareer to 1]] +<<else>> + [[Use existing player character.|New Game Plus][$freshPC = 0]] +<</if>> + Select up to five slaves to be imported into a new game and then [[click here.|init][$saveImported to 1]] <br><br>''These slaves will be imported into the new game:'' diff --git a/src/uncategorized/newSlaveIntro.tw b/src/uncategorized/newSlaveIntro.tw index d0674a8f39cdce211642c723e169a0403502f7df..41f94653479c59ba797bee342e2dbb4112958b4b 100644 --- a/src/uncategorized/newSlaveIntro.tw +++ b/src/uncategorized/newSlaveIntro.tw @@ -36,7 +36,7 @@ <<if $familyTesting == 1>> <<if $activeSlave.indenture < 0>> <<if $activeSlave.canRecruit == 1>> - <<set $recruiters.push($activeSlave)>> + /*<<set $recruiters.push($activeSlave)>>*/ <</if>> <</if>> <<else>> @@ -44,19 +44,14 @@ <<if ($activeSlave.relation == 0)>> <<if random(1,100) <= 5>> <<set $activeSlave.recruiter to "twin">> - <<set $recruiters.push($activeSlave)>> <<elseif ($activeSlave.actualAge > 32) && ($activeSlave.vagina != 0) && (random(1,100) <= 41)>> <<set $activeSlave.recruiter to "mother">> - <<set $recruiters.push($activeSlave)>> <<elseif ($activeSlave.actualAge < 24) && (random(1,100) <= 40)>> <<set $activeSlave.recruiter to "daughter">> - <<set $recruiters.push($activeSlave)>> <<elseif ($activeSlave.actualAge < 43) && (random(1,100) <= 20)>> <<set $activeSlave.recruiter to "older sister">> - <<set $recruiters.push($activeSlave)>> <<elseif ($activeSlave.actualAge < 25) && ($activeSlave.actualAge > 18) && (random(1,100) <= 20)>> <<set $activeSlave.recruiter to "young sister">> - <<set $recruiters.push($activeSlave)>> <</if>> <</if>> <</if>> @@ -110,11 +105,11 @@ The legalities completed, ''__@@color:pink;$activeSlave.slaveName@@__'' <<if ($a <<elseif $activeSlave.career is "a Futanari Sister">> <<if ($PC.dick == 1) && ($PC.boobs == 1) && ($PC.vagina == 1)>> <<if $TFS.schoolPresent == 1>> - She's heard of you, of course, as both a futanari yourself and a generous patron of the Sisters. She feels @@color:mediumaquamarine;very lucky@@ that she's going to be your slave, not to mention @@color:hotpink;almost desperate@@ to have sex with you. + She's heard of you, of course, as both a futanari yourself and a generous patron of the Sisters. She feels @@color:mediumaquamarine;very lucky@@ that she's going to be your slave, not to mention @@color:hotpink;almost desperate@@ to have sex with you. <<set $activeSlave.devotion += 10>> <<set $activeSlave.trust += 10>> <<else>> - Seeing that you're a fellow futanari, she's @@color:mediumaquamarine;relieved@@ that she's going to be your slave, not to mention @@color:hotpink;quite eager@@ to have sex with you. + Seeing that you're a fellow futanari, she's @@color:mediumaquamarine;relieved@@ that she's going to be your slave, not to mention @@color:hotpink;quite eager@@ to have sex with you. <<set $activeSlave.devotion += 5>> <<set $activeSlave.trust += 5>> <</if>> @@ -302,7 +297,7 @@ The legalities completed, ''__@@color:pink;$activeSlave.slaveName@@__'' <<if ($a <<set $activeSlave.trust += 2>> <<else>> She realizes that she's one of the people considered subhuman here, and @@color:gold;fears@@ she will be unable to avoid degradation. - <<set $activeSlave.trust -= 4>> +<<set $activeSlave.trust -= 4>> <</if>> <</if>> <<if $arcologies[0].FSRepopulationFocus >= 50>> @@ -494,7 +489,7 @@ The legalities completed, ''__@@color:pink;$activeSlave.slaveName@@__'' <<if ($a <<set $gingering to 0>> <<if $autoRulesAssistant == 0>> - <br> + <br> <span id="rules"> <<click "Apply default rules">> <<replace "#rules">> @@ -505,10 +500,6 @@ The legalities completed, ''__@@color:pink;$activeSlave.slaveName@@__'' <<if ($a //Will not apply many cosmetic and surgical options since she is not obedient// <</if>> </span> -<<else>> - <<if ($universalRulesNewSlavesRA == 1)>> - <<AutoRulesActivate 1>> - <</if>> <</if>> <br><br> @@ -1225,7 +1216,7 @@ As she begins to moan with lust, you grip down tightly and force her to the floo <<if $activeSlave.vagina > -1>> <<set $activeSlave.vagina to Math.clamp($activeSlave.vagina, 3, 4)>> <<set $activeSlave.vaginalCount += 10>> - <<set $vaginalTotal += 10>> + <<set $vaginalTotal += 10>> <</if>> <<set $activeSlave.analCount += 10>> <<set $analTotal += 10>> @@ -1437,7 +1428,7 @@ You <<if $activeSlave.devotion > 20>>bring her down to the studio, lay the compl <<set $activeSlave.devotion -= 5>> <<set $activeSlave.collar to "shock punishment">> <<replace "#result">> - You put a shock collar on her. Its function isn't immediately obvious, at least until you test it on the lowest power setting, making her jump and look at you fearfully. This concern is compounded when you throw a big dildo at her and tell her to rape herself. She gapes at you incredulously until you give her a stronger jolt and preemptorily tell her to + You put a shock collar on her. Its function isn't immediately obvious, at least until you test it on the lowest power setting, making her jump and look at you fearfully. This concern is compounded when you throw a big dildo at her and tell her to rape herself. She gapes at you incredulously until you give her a stronger jolt and peremptorily tell her to <<if $activeSlave.vagina > 0>> pick it up and pound her own pussy. @@color:mediumorchid;Reluctantly,@@ she reaches down shakily, seats herself, and slowly pushes the uncomfortably big phallus inside her womanhood. She starts to fuck herself. Harder, you command. Wincing, she works her cunt faster. Harder, you repeat, giving her another shock. @@color:gold;She begins to cry,@@ but obeys, sawing the big fake cock in and out, really raping herself. <<set $activeSlave.vaginalCount += 1>> @@ -1457,4 +1448,4 @@ You <<if $activeSlave.devotion > 20>>bring her down to the studio, lay the compl <</if>> -</span> \ No newline at end of file +</span> diff --git a/src/uncategorized/newSlaveRaceNationalityAndName.tw b/src/uncategorized/newSlaveRaceNationalityAndName.tw index e1907064012e5985d2ad4122afbc9e09a1934901..f130c69d9b3adb14fdb4c58edbf9479f2295027c 100644 --- a/src/uncategorized/newSlaveRaceNationalityAndName.tw +++ b/src/uncategorized/newSlaveRaceNationalityAndName.tw @@ -1,186 +1,191 @@ -:: New Slave Race Nationality and Name [nobr] - -<<if ($activeSlave.nationality is "American")>> +:: New Slave Race Nationality and Name [nobr widget] + +<<widget "NationalityToRace">> + +<<switch $activeSlave.nationality>> +<<case "American">> <<set $activeSlave.race to either("black", "middle eastern", "white", "white", "white", "latina", "latina", "asian", "amerindian", "mixed race")>> -<<elseif ($activeSlave.nationality is "Canadian")>> +<<case "Canadian">> <<set $activeSlave.race to either("white", "white", "white", "white", "amerindian")>> -<<elseif ($activeSlave.nationality is "Puerto Rican")>> +<<case "Puerto Rican">> <<set $activeSlave.race to either("latina")>> -<<elseif ($activeSlave.nationality is "Cuban")>> +<<case "Cuban">> <<set $activeSlave.race to either("latina", "black")>> -<<elseif ($activeSlave.nationality is "Haitian")>> +<<case "Haitian">> <<set $activeSlave.race to either("black")>> -<<elseif ($activeSlave.nationality is "Jamaican")>> +<<case "Jamaican">> <<set $activeSlave.race to either("black")>> -<<elseif ($activeSlave.nationality is "Mexican")>> +<<case "Mexican">> <<set $activeSlave.race to either("latina", "latina", "latina", "latina", "latina", "amerindian")>> -<<elseif ($activeSlave.nationality is "Dominican")>> +<<case "Dominican">> <<set $activeSlave.race to either("mixed race", "mixed race", "mixed race", "mixed race", "mixed race", "mixed race", "mixed race", "white", "white", "black")>> -<<elseif ($activeSlave.nationality is "Peruvian")>> +<<case "Peruvian">> <<set $activeSlave.race to either("latina", "amerindian")>> -<<elseif ($activeSlave.nationality is "Venezuelan")>> +<<case "Venezuelan">> <<set $activeSlave.race to either("latina")>> -<<elseif ($activeSlave.nationality is "Bolivian")>> +<<case "Bolivian">> <<set $activeSlave.race to either("latina", "amerindian")>> -<<elseif ($activeSlave.nationality is "Guatemalan")>> +<<case "Guatemalan">> <<set $activeSlave.race to either("latina", "amerindian")>> -<<elseif ($activeSlave.nationality is "Brazilian")>> +<<case "Brazilian">> <<set $activeSlave.race to either("black", "latina", "mixed race", "mixed race", "amerindian", "white")>> -<<elseif ($activeSlave.nationality is "Argentinian")>> +<<case "Argentinian">> <<set $activeSlave.race to either("white", "latina", "latina")>> -<<elseif ($activeSlave.nationality is "Chilean")>> +<<case "Chilean">> <<set $activeSlave.race to either("white", "latina", "latina", "latina")>> -<<elseif ($activeSlave.nationality is "Colombian")>> +<<case "Colombian">> <<set $activeSlave.race to either("latina")>> -<<elseif ($activeSlave.nationality is "Egyptian")>> +<<case "Egyptian">> <<set $activeSlave.race to either("black", "middle eastern", "middle eastern", "middle eastern", "semitic")>> -<<elseif ($activeSlave.nationality is "Turkish")>> +<<case "Turkish">> <<set $activeSlave.race to either("middle eastern", "middle eastern", "middle eastern", "semitic")>> -<<elseif ($activeSlave.nationality is "Iranian")>> +<<case "Iranian">> <<set $activeSlave.race to either("indo-aryan", "indo-aryan", "indo-aryan", "semitic")>> -<<elseif ($activeSlave.nationality is "Armenian")>> +<<case "Armenian">> <<set $activeSlave.race to either("indo-aryan", "semitic")>> -<<elseif ($activeSlave.nationality is "Israeli")>> +<<case "Israeli">> <<set $activeSlave.race to either("white", "middle eastern", "semitic", "semitic")>> -<<elseif ($activeSlave.nationality is "Saudi")>> +<<case "Saudi">> <<set $activeSlave.race to either("black", "asian", "middle eastern", "middle eastern")>> -<<elseif ($activeSlave.nationality is "Moroccan")>> +<<case "Moroccan">> <<set $activeSlave.race to either("middle eastern", "middle eastern", "black")>> -<<elseif ($activeSlave.nationality is "Nigerian")>> +<<case "Nigerian">> <<set $activeSlave.race to either("black")>> -<<elseif ($activeSlave.nationality is "Kenyan")>> +<<case "Kenyan">> <<set $activeSlave.race to either("black")>> -<<elseif ($activeSlave.nationality is "Zimbabwean")>> +<<case "Zimbabwean">> <<set $activeSlave.race to either("black", "black", "black", "black", "white")>> -<<elseif ($activeSlave.nationality is "Ugandan")>> +<<case "Ugandan">> <<set $activeSlave.race to either("black")>> -<<elseif ($activeSlave.nationality is "Tanzanian")>> +<<case "Tanzanian">> <<set $activeSlave.race to either("black", "black", "black", "semitic")>> -<<elseif ($activeSlave.nationality is "Ghanan")>> +<<case "Ghanan">> <<set $activeSlave.race to either("black", "black", "black", "semitic")>> -<<elseif ($activeSlave.nationality is "Congolese")>> +<<case "Congolese">> <<set $activeSlave.race to either("black")>> -<<elseif ($activeSlave.nationality is "Ethiopian")>> +<<case "Ethiopian">> <<set $activeSlave.race to either("black", "black", "black", "middle eastern", "semitic")>> -<<elseif ($activeSlave.nationality is "South African")>> +<<case "South African">> <<set $activeSlave.race to either("black", "black", "black", "white")>> -<<elseif ($activeSlave.nationality is "Chinese")>> +<<case "Chinese">> <<set $activeSlave.race to either("asian")>> -<<elseif ($activeSlave.nationality is "Korean")>> +<<case "Korean">> <<set $activeSlave.race to either("asian")>> -<<elseif ($activeSlave.nationality is "Japanese")>> +<<case "Japanese">> <<set $activeSlave.race to either("asian")>> -<<elseif ($activeSlave.nationality is "Thai")>> +<<case "Thai">> <<set $activeSlave.race to either("asian", "asian", "malay")>> -<<elseif ($activeSlave.nationality is "Vietnamese")>> +<<case "Vietnamese">> <<set $activeSlave.race to either("asian")>> -<<elseif ($activeSlave.nationality is "Indonesian")>> +<<case "Indonesian">> <<set $activeSlave.race to either("asian", "malay", "malay", "pacific islander")>> -<<elseif ($activeSlave.nationality is "Filipina")>> +<<case "Filipina">> <<set $activeSlave.race to either("asian", "malay", "malay", "pacific islander")>> -<<elseif ($activeSlave.nationality is "Burmese")>> +<<case "Burmese">> <<set $activeSlave.race to either("asian", "asian", "indo-aryan")>> -<<elseif ($activeSlave.nationality is "Nepalese")>> +<<case "Nepalese">> <<set $activeSlave.race to either("asian", "asian", "indo-aryan")>> -<<elseif ($activeSlave.nationality is "Uzbek")>> +<<case "Uzbek">> <<set $activeSlave.race to either("asian")>> -<<elseif ($activeSlave.nationality is "Afghan")>> +<<case "Afghan">> <<set $activeSlave.race to either("indo-aryan", "middle eastern")>> -<<elseif ($activeSlave.nationality is "Algerian")>> +<<case "Algerian">> <<set $activeSlave.race to either("middle eastern")>> -<<elseif ($activeSlave.nationality is "Libyan")>> +<<case "Libyan">> <<set $activeSlave.race to either("middle eastern")>> -<<elseif ($activeSlave.nationality is "Tunisian")>> +<<case "Tunisian">> <<set $activeSlave.race to either("middle eastern")>> -<<elseif ($activeSlave.nationality is "Lebanese")>> +<<case "Lebanese">> <<set $activeSlave.race to either("middle eastern", "semitic")>> -<<elseif ($activeSlave.nationality is "Jordanian")>> +<<case "Jordanian">> <<set $activeSlave.race to either("middle eastern", "semitic")>> -<<elseif ($activeSlave.nationality is "Emirati")>> +<<case "Emirati">> <<set $activeSlave.race to either("middle eastern", "indo-aryan")>> -<<elseif ($activeSlave.nationality is "Omani")>> +<<case "Omani">> <<set $activeSlave.race to either("middle eastern", "indo-aryan")>> -<<elseif ($activeSlave.nationality is "Malian")>> +<<case "Malian">> <<set $activeSlave.race to either("black", "black", "black", "black", "black", "middle eastern")>> -<<elseif ($activeSlave.nationality is "Sudanese")>> +<<case "Sudanese">> <<set $activeSlave.race to either("black", "black", "black", "middle eastern")>> -<<elseif ($activeSlave.nationality is "Yemeni")>> +<<case "Yemeni">> <<set $activeSlave.race to either("black", "semitic", "middle eastern", "middle eastern", "middle eastern")>> -<<elseif ($activeSlave.nationality is "Iraqi")>> +<<case "Iraqi">> <<set $activeSlave.race to either("semitic", "middle eastern", "middle eastern", "middle eastern", "middle eastern")>> -<<elseif ($activeSlave.nationality is "Indian")>> +<<case "Indian">> <<set $activeSlave.race to either("indo-aryan")>> -<<elseif ($activeSlave.nationality is "Malaysian")>> +<<case "Malaysian">> <<set $activeSlave.race to either("asian", "malay", "malay", "malay")>> -<<elseif ($activeSlave.nationality is "Kazakh")>> +<<case "Kazakh">> <<set $activeSlave.race to either("asian", "asian", "asian", "semitic", "indo-aryan")>> -<<elseif ($activeSlave.nationality is "Pakistani")>> +<<case "Pakistani">> <<set $activeSlave.race to either("indo-aryan", "indo-aryan", "indo-aryan", "semitic")>> -<<elseif ($activeSlave.nationality is "Bangladeshi")>> +<<case "Bangladeshi">> <<set $activeSlave.race to either("indo-aryan")>> -<<elseif ($activeSlave.nationality is "Belarusian")>> +<<case "Belarusian">> <<set $activeSlave.race to either("white")>> -<<elseif ($activeSlave.nationality is "Russian")>> +<<case "Russian">> <<set $activeSlave.race to either("white")>> -<<elseif ($activeSlave.nationality is "Ukrainian")>> +<<case "Ukrainian">> <<set $activeSlave.race to either("white")>> -<<elseif ($activeSlave.nationality is "Irish")>> +<<case "Irish">> <<set $activeSlave.race to either("white")>> -<<elseif ($activeSlave.nationality is "Icelandic")>> +<<case "Icelandic">> <<set $activeSlave.race to either("white")>> -<<elseif ($activeSlave.nationality is "Finnish")>> +<<case "Finnish">> <<set $activeSlave.race to either("white")>> -<<elseif ($activeSlave.nationality is "Swiss")>> +<<case "Swiss">> <<set $activeSlave.race to either("white")>> -<<elseif ($activeSlave.nationality is "Danish")>> +<<case "Danish">> <<set $activeSlave.race to either("white")>> -<<elseif ($activeSlave.nationality is "Norwegian")>> +<<case "Norwegian">> <<set $activeSlave.race to either("white")>> -<<elseif ($activeSlave.nationality is "Austrian")>> +<<case "Austrian">> <<set $activeSlave.race to either("white")>> -<<elseif ($activeSlave.nationality is "Slovak")>> +<<case "Slovak">> <<set $activeSlave.race to either("white", "white", "white", "white", "indo-aryan")>> -<<elseif ($activeSlave.nationality is "Dutch")>> +<<case "Dutch">> <<set $activeSlave.race to either("white")>> -<<elseif ($activeSlave.nationality is "Belgian")>> +<<case "Belgian">> <<set $activeSlave.race to either("white")>> -<<elseif ($activeSlave.nationality is "Czech")>> +<<case "Czech">> <<set $activeSlave.race to either("white")>> -<<elseif ($activeSlave.nationality is "Serbian")>> +<<case "Serbian">> <<set $activeSlave.race to either("white")>> -<<elseif ($activeSlave.nationality is "Portuguese")>> +<<case "Portuguese">> <<set $activeSlave.race to either("white")>> -<<elseif ($activeSlave.nationality is "Hungarian")>> +<<case "Hungarian">> <<set $activeSlave.race to either("white", "white", "white", "white", "indo-aryan")>> -<<elseif ($activeSlave.nationality is "Estonian")>> +<<case "Estonian">> <<set $activeSlave.race to either("white")>> -<<elseif ($activeSlave.nationality is "Polish")>> +<<case "Polish">> <<set $activeSlave.race to either("white")>> -<<elseif ($activeSlave.nationality is "Lithuanian")>> +<<case "Lithuanian">> <<set $activeSlave.race to either("white")>> -<<elseif ($activeSlave.nationality is "Romanian")>> +<<case "Romanian">> <<set $activeSlave.race to either("semitic", "white", "white", "white", "white", "indo-aryan")>> -<<elseif ($activeSlave.nationality is "German")>> +<<case "German">> <<set $activeSlave.race to either("black", "middle eastern", "white", "white", "white", "white", "white", "white")>> -<<elseif ($activeSlave.nationality is "Swedish")>> +<<case "Swedish">> <<set $activeSlave.race to either("middle eastern", "white", "white", "white", "white")>> -<<elseif ($activeSlave.nationality is "French")>> +<<case "French">> <<set $activeSlave.race to either("black", "middle eastern", "white", "white", "white", "white", "white", "southern European")>> -<<elseif ($activeSlave.nationality is "Italian")>> +<<case "Italian">> <<set $activeSlave.race to either("middle eastern", "southern European", "southern European", "white", "white")>> -<<elseif ($activeSlave.nationality is "Greek")>> +<<case "Greek">> <<set $activeSlave.race to either("southern European")>> -<<elseif ($activeSlave.nationality is "Spanish")>> +<<case "Spanish">> <<set $activeSlave.race to either("semitic", "southern European", "southern European")>> -<<elseif ($activeSlave.nationality is "British")>> +<<case "British">> <<set $activeSlave.race to either("indo-aryan", "white", "white", "white", "white", "white", "white", "white", "white", "white")>> -<<elseif ($activeSlave.nationality is "Scottish")>> +<<case "Scottish">> <<set $activeSlave.race to either("middle eastern", "indo-aryan", "white", "white", "white", "white", "white", "white", "white")>> -<<elseif ($activeSlave.nationality is "Australian")>> +<<case "Australian">> <<set $activeSlave.race to either("white", "white", "black", "asian")>> -<<elseif ($activeSlave.nationality is "a New Zealander")>> +<<case "a New Zealander">> <<set $activeSlave.race to either("white", "white", "white", "white", "pacific islander")>> -<</if>> +<<default>> + <<set $activeSlave.race to either("white")>> +<</switch>> /% Begin mixed race rate adjustment. %/ /% Some countries are extremely ethnically homogeneous and unlikely to change soon. %/ @@ -203,16 +208,664 @@ <</if>> /% End mixed race rate adjustment. %/ -<<set $seed to 4+$activeSlave.intelligence+$activeSlave.intelligenceImplant>> -<<if "American" is $activeSlave.nationality>> - <<set $seed += 2>> -<<elseif ["Canadian", "Israeli", "Japanese", "Korean", "Irish", "Icelandic", "Finnish", "Swiss", "Danish", "Norwegian", "Austrian", "Slovak", "Dutch", "Belgian", "Czech", "Portuguese", "Hungarian", "Portuguese", "Estonian", "Polish", "Lithuanian", "Romanian", "German", "Swedish", "French", "Italian", "Spanish", "British", "Australian", "a New Zealander"].contains($activeSlave.nationality)>> -<<else>> - <<set $seed -= 2>> -<</if>> -<<if random(1,$seed) == 1>> - <<set $activeSlave.teeth to "crooked">> +<</widget>> + +<<widget "NationalityToName">> + +<<switch $activeSlave.nationality>> +<<case "American">> + <<if $activeSlave.race is "black">> + <<set $activeSlave.birthName to $africanAmericanSlaveNames.random()>> + <<elseif $activeSlave.race is "latina">> + <<set $activeSlave.birthName to $latinaSlaveNames.random()>> + <<elseif $activeSlave.race is "asian">> + <<set $activeSlave.birthName to $asianAmericanSlaveNames.random()>> + <<elseif $activeSlave.race is "middle eastern">> + <<set $activeSlave.birthName to $egyptianSlaveNames.random()>> + <<else>> + <<set $activeSlave.birthName to $whiteAmericanSlaveNames.random()>> + <</if>> +<<case "Canadian">> + <<set $activeSlave.birthName to $canadianSlaveNames.random()>> +<<case "Mexican">> + <<set $activeSlave.birthName to $mexicanSlaveNames.random()>> +<<case "Dominican">> + <<set $activeSlave.birthName to $dominicanSlaveNames.random()>> +<<case "Puerto Rican">> + <<set $activeSlave.birthName to $puertoRicanSlaveNames.random()>> +<<case "Haitian">> + <<set $activeSlave.birthName to $haitianSlaveNames.random()>> +<<case "Jamaican">> + <<set $activeSlave.birthName to $jamaicanSlaveNames.random()>> +<<case "Cuban">> + <<set $activeSlave.birthName to $cubanSlaveNames.random()>> +<<case "Guatemalan">> + <<set $activeSlave.birthName to $guatemalanSlaveNames.random()>> +<<case "Chilean">> + <<set $activeSlave.birthName to $chileanSlaveNames.random()>> +<<case "Peruvian">> + <<set $activeSlave.birthName to $peruvianSlaveNames.random()>> +<<case "Bolivian">> + <<set $activeSlave.birthName to $bolivianSlaveNames.random()>> +<<case "Venezuelan">> + <<set $activeSlave.birthName to $venezuelanSlaveNames.random()>> +<<case "Belarusian">> + <<set $activeSlave.birthName to $belarusianSlaveNames.random()>> +<<case "Russian">> + <<set $activeSlave.birthName to $russianSlaveNames.random()>> +<<case "Ukrainian">> + <<set $activeSlave.birthName to $ukrainianSlaveNames.random()>> +<<case "Italian">> + <<set $activeSlave.birthName to $italianSlaveNames.random()>> +<<case "Spanish">> + <<set $activeSlave.birthName to $spanishSlaveNames.random()>> +<<case "British">> + <<set $activeSlave.birthName to $britishSlaveNames.random()>> +<<case "Scottish">> + <<set $activeSlave.birthName to $scottishSlaveNames.random()>> +<<case "French">> + <<set $activeSlave.birthName to $frenchSlaveNames.random()>> +<<case "German">> + <<set $activeSlave.birthName to $germanSlaveNames.random()>> +<<case "Lithuanian">> + <<set $activeSlave.birthName to $lithuanianSlaveNames.random()>> +<<case "Norwegian">> + <<set $activeSlave.birthName to $norwegianSlaveNames.random()>> +<<case "Slovak">> + <<set $activeSlave.birthName to $slovakSlaveNames.random()>> +<<case "Danish">> + <<set $activeSlave.birthName to $danishSlaveNames.random()>> +<<case "Dutch">> + <<set $activeSlave.birthName to $dutchSlaveNames.random()>> +<<case "Austrian">> + <<set $activeSlave.birthName to $austrianSlaveNames.random()>> +<<case "Swiss">> + <<set $activeSlave.birthName to $swissSlaveNames.random()>> +<<case "Serbian">> + <<set $activeSlave.birthName to $serbianSlaveNames.random()>> +<<case "Belgian">> + <<set $activeSlave.birthName to $belgianSlaveNames.random()>> +<<case "Czech">> + <<set $activeSlave.birthName to $czechSlaveNames.random()>> +<<case "Portuguese">> + <<set $activeSlave.birthName to $portugueseSlaveNames.random()>> +<<case "Swedish">> + <<set $activeSlave.birthName to $swedishSlaveNames.random()>> +<<case "Romanian">> + <<set $activeSlave.birthName to $romanianSlaveNames.random()>> +<<case "Hungarian">> + <<set $activeSlave.birthName to $hungarianSlaveNames.random()>> +<<case "Estonian">> + <<set $activeSlave.birthName to $estonianSlaveNames.random()>> +<<case "Irish">> + <<set $activeSlave.birthName to $irishSlaveNames.random()>> +<<case "Icelandic">> + <<set $activeSlave.birthName to $icelandicSlaveNames.random()>> +<<case "Finnish">> + <<set $activeSlave.birthName to $finnishSlaveNames.random()>> +<<case "Greek">> + <<set $activeSlave.birthName to $greekSlaveNames.random()>> +<<case "Polish">> + <<set $activeSlave.birthName to $polishSlaveNames.random()>> +<<case "Brazilian">> + <<set $activeSlave.birthName to $brazilianSlaveNames.random()>> +<<case "Egyptian">> + <<set $activeSlave.birthName to $egyptianSlaveNames.random()>> +<<case "Colombian">> + <<set $activeSlave.birthName to $colombianSlaveNames.random()>> +<<case "Argentinian">> + <<set $activeSlave.birthName to $argentinianSlaveNames.random()>> +<<case "Turkish">> + <<set $activeSlave.birthName to $turkishSlaveNames.random()>> +<<case "Iranian">> + <<set $activeSlave.birthName to $iranianSlaveNames.random()>> +<<case "Armenian">> + <<set $activeSlave.birthName to $armenianSlaveNames.random()>> +<<case "Israeli">> + <<set $activeSlave.birthName to $israeliSlaveNames.random()>> +<<case "Saudi">> + <<set $activeSlave.birthName to $saudiSlaveNames.random()>> +<<case "South African">> + <<if $activeSlave.race is "black">> + <<set $activeSlave.birthName to $blackSouthAfricanSlaveNames.random()>> + <<else>> + <<set $activeSlave.birthName to $whiteSouthAfricanSlaveNames.random()>> + <</if>> +<<case "Nigerian">> + <<set $activeSlave.birthName to $nigerianSlaveNames.random()>> +<<case "Congolese">> + <<set $activeSlave.birthName to $congoleseSlaveNames.random()>> +<<case "Kenyan">> + <<set $activeSlave.birthName to $kenyanSlaveNames.random()>> +<<case "Tanzanian">> + <<set $activeSlave.birthName to $tanzanianSlaveNames.random()>> +<<case "Zimbabwean">> + <<if $activeSlave.race == "white">> + <<set $activeSlave.birthName to $britishSlaveNames.random()>> + <<else>> + <<set $activeSlave.birthName to $zimbabweanSlaveNames.random()>> + <</if>> +<<case "Ghanan">> + <<set $activeSlave.birthName to $ghananSlaveNames.random()>> +<<case "Ugandan">> + <<set $activeSlave.birthName to $ugandanSlaveNames.random()>> +<<case "Ethiopian">> + <<set $activeSlave.birthName to $ethiopianSlaveNames.random()>> +<<case "Moroccan">> + <<set $activeSlave.birthName to $moroccanSlaveNames.random()>> +<<case "Chinese">> + <<set $activeSlave.birthName to $chineseSlaveNames.random()>> +<<case "Korean">> + <<set $activeSlave.birthName to $koreanSlaveNames.random()>> +<<case "Thai">> + <<set $activeSlave.birthName to $thaiSlaveNames.random()>> +<<case "Vietnamese">> + <<set $activeSlave.birthName to $vietnameseSlaveNames.random()>> +<<case "Japanese">> + <<set $activeSlave.birthName to $japaneseSlaveNames.random()>> +<<case "Indonesian">> + <<set $activeSlave.birthName to $indonesianSlaveNames.random()>> +<<case "Filipina">> + <<set $activeSlave.birthName to $filipinaSlaveNames.random()>> +<<case "Bangladeshi">> + <<set $activeSlave.birthName to $bangladeshiSlaveNames.random()>> +<<case "Malaysian">> + <<set $activeSlave.birthName to $malaysianSlaveNames.random()>> +<<case "Uzbek">> + <<set $activeSlave.birthName to $uzbekSlaveNames.random()>> +<<case "Afghan">> + <<set $activeSlave.birthName to $afghanSlaveNames.random()>> +<<case "Nepalese">> + <<set $activeSlave.birthName to $nepaleseSlaveNames.random()>> +<<case "Burmese">> + <<set $activeSlave.birthName to $burmeseSlaveNames.random()>> +<<case "Iraqi">> + <<set $activeSlave.birthName to $iraqiSlaveNames.random()>> +<<case "Yemeni">> + <<set $activeSlave.birthName to $yemeniSlaveNames.random()>> +<<case "Sudanese">> + <<set $activeSlave.birthName to $sudaneseSlaveNames.random()>> +<<case "Algerian">> + <<set $activeSlave.birthName to $algerianSlaveNames.random()>> +<<case "Tunisian">> + <<set $activeSlave.birthName to $tunisianSlaveNames.random()>> +<<case "Libyan">> + <<set $activeSlave.birthName to $libyanSlaveNames.random()>> +<<case "Omani">> + <<set $activeSlave.birthName to $omaniSlaveNames.random()>> +<<case "Malian">> + <<set $activeSlave.birthName to $malianSlaveNames.random()>> +<<case "Jordanian">> + <<set $activeSlave.birthName to $jordanianSlaveNames.random()>> +<<case "Lebanese">> + <<set $activeSlave.birthName to $lebaneseSlaveNames.random()>> +<<case "Emirati">> + <<set $activeSlave.birthName to $emiratiSlaveNames.random()>> +<<case "Kazakh">> + <<set $activeSlave.birthName to $kazakhSlaveNames.random()>> +<<case "Pakistani">> + <<set $activeSlave.birthName to $pakistaniSlaveNames.random()>> +<<case "Indian">> + <<set $activeSlave.birthName to $indianSlaveNames.random()>> +<<case "Australian">> + <<set $activeSlave.birthName to $australianSlaveNames.random()>> +<<case "a New Zealander">> + <<set $activeSlave.birthName to $newZealanderSlaveNames.random()>> +<<default>> + <<set $activeSlave.birthName to $whiteAmericanSlaveNames.random()>> +<</switch>> + +<</widget>> + +<<widget "NationalityToAccent">> + +<<set $seed to either(0,1,1,2,2,2,3,3,3,3)>> + +<<switch $activeSlave.nationality>> +<<case "American">> + <<if $activeSlave.race is "black">> + <<if $language is "English">> + <<set $activeSlave.accent to 0>> + <<else>> + <<set $activeSlave.accent to either(0,1,1,2,2,2,3,3,3,3)>> + <</if>> + <<elseif $activeSlave.race is "latina">> + <<if $language is "English">> + <<set $activeSlave.accent to 0>> + <<elseif $language is "Spanish">> + <<set $activeSlave.accent to either(0,1,2,3)>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> + <<elseif $activeSlave.race is "asian">> + <<if $language is "English">> + <<set $activeSlave.accent to 0>> + <<elseif $language is "Chinese">> + <<set $activeSlave.accent to either(0,1,2,3)>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> + <<elseif $activeSlave.race is "middle eastern">> + <<if $language is "English">> + <<set $activeSlave.accent to 0>> + <<elseif $language is "Arabic">> + <<set $activeSlave.accent to either(0,1,2,3)>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> + <<else>> + <<if $language is "English">> + <<set $activeSlave.accent to 0>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> + <</if>> +<<case "Canadian">> + <<if $language is "English">> + <<set $activeSlave.accent to 0>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Mexican">> + <<if $language is "Spanish">> + <<set $activeSlave.accent to 0>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Dominican">> + <<if $language is "Spanish">> + <<set $activeSlave.accent to 0>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Puerto Rican">> + <<if $language is "Spanish">> + <<set $activeSlave.accent to 0>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Haitian">> + <<set $activeSlave.accent to $seed>> +<<case "Jamaican">> + <<set $activeSlave.accent to $seed>> +<<case "Cuban">> + <<if $language is "Spanish">> + <<set $activeSlave.accent to 1>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Guatemalan">> + <<if $language is "Spanish">> + <<set $activeSlave.accent to 1>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Chilean">> + <<if $language is "Spanish">> + <<set $activeSlave.accent to 1>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Peruvian">> + <<if $language is "Spanish">> + <<set $activeSlave.accent to 1>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Bolivian">> + <<if $language is "Spanish">> + <<set $activeSlave.accent to 1>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Venezuelan">> + <<if $language is "Spanish">> + <<set $activeSlave.accent to 1>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Russian">> + <<set $activeSlave.accent to $seed>> +<<case "Ukrainian">> + <<set $activeSlave.accent to $seed>> +<<case "Italian">> + <<set $activeSlave.accent to $seed>> +<<case "Spanish">> + <<if $language is "Spanish">> + <<set $activeSlave.accent to 1>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "British">> + <<if $language is "English">> + <<set $activeSlave.accent to 1>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Scottish">> + <<if $language is "English">> + <<set $activeSlave.accent to 2>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "French">> + <<set $activeSlave.accent to $seed>> +<<case "German">> + <<set $activeSlave.accent to $seed>> +<<case "Lithuanian">> + <<set $activeSlave.accent to $seed>> +<<case "Belarusian">> + <<set $activeSlave.accent to $seed>> +<<case "Norwegian">> + <<set $activeSlave.accent to $seed>> +<<case "Slovak">> + <<set $activeSlave.accent to $seed>> +<<case "Danish">> + <<set $activeSlave.accent to $seed>> +<<case "Dutch">> + <<set $activeSlave.accent to $seed>> +<<case "Austrian">> + <<set $activeSlave.accent to $seed>> +<<case "Swiss">> + <<set $activeSlave.accent to $seed>> +<<case "Serbian">> + <<set $activeSlave.accent to $seed>> +<<case "Belgian">> + <<set $activeSlave.accent to $seed>> +<<case "Czech">> + <<set $activeSlave.accent to $seed>> +<<case "Portuguese">> + <<if $language is "Spanish">> + <<set $activeSlave.accent to either(0,1,2,3)>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Swedish">> + <<set $activeSlave.accent to $seed>> +<<case "Romanian">> + <<set $activeSlave.accent to $seed>> +<<case "Hungarian">> + <<set $activeSlave.accent to $seed>> +<<case "Estonian">> + <<set $activeSlave.accent to $seed>> +<<case "Irish">> + <<if $language is "English">> + <<set $activeSlave.accent to 1>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Icelandic">> + <<set $activeSlave.accent to $seed>> +<<case "Finnish">> + <<set $activeSlave.accent to $seed>> +<<case "Greek">> + <<set $activeSlave.accent to $seed>> +<<case "Polish">> + <<set $activeSlave.accent to $seed>> +<<case "Brazilian">> + <<if $language is "Spanish">> + <<set $activeSlave.accent to either(0,1,2,3)>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Egyptian">> + <<if $language is "Arabic">> + <<set $activeSlave.accent to 1>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Colombian">> + <<if $language is "Spanish">> + <<set $activeSlave.accent to 1>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Argentinian">> + <<if $language is "Spanish">> + <<set $activeSlave.accent to 1>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Turkish">> + <<set $activeSlave.accent to $seed>> +<<case "Iranian">> + <<if $language is "Arabic">> + <<set $activeSlave.accent to either(0,1,2,3)>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Armenian">> + <<set $activeSlave.accent to $seed>> +<<case "Israeli">> + <<set $activeSlave.accent to $seed>> +<<case "Saudi">> + <<if $language is "Arabic">> + <<set $activeSlave.accent to 0>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "South African">> + <<if $language is "English">> + <<set $activeSlave.accent to 1>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Nigerian">> + <<if $language is "Arabic">> + <<set $activeSlave.accent to either(0,1,2,3)>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Congolese">> + <<set $activeSlave.accent to $seed>> +<<case "Kenyan">> + <<if $language is "Arabic">> + <<set $activeSlave.accent to either(0,1,2,3)>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Tanzanian">> + <<set $activeSlave.accent to $seed>> +<<case "Zimbabwean">> + <<if $language is "English" && $activeSlave.race == "white">> + <<set $activeSlave.accent to 1>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Ghanan">> + <<if $language is "Arabic">> + <<set $activeSlave.accent to either(0,1,2,3)>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Ugandan">> + <<set $activeSlave.accent to $seed>> +<<case "Ethiopian">> + <<if $language is "Arabic">> + <<set $activeSlave.accent to either(0,1,2,3)>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Moroccan">> + <<if $language is "Arabic">> + <<set $activeSlave.accent to either(0,1,2,3)>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Chinese">> + <<if $language is "Chinese">> + <<set $activeSlave.accent to 0>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Korean">> + <<if $language is "Chinese">> + <<set $activeSlave.accent to either(0,1,2,3)>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Thai">> + <<if $language is "Chinese">> + <<set $activeSlave.accent to either(0,1,2,3)>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Vietnamese">> + <<if $language is "Chinese">> + <<set $activeSlave.accent to either(0,1,2,3)>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Japanese">> + <<set $activeSlave.accent to $seed>> +<<case "Indonesian">> + <<set $activeSlave.accent to $seed>> +<<case "Filipina">> + <<set $activeSlave.accent to $seed>> +<<case "Bangladeshi">> + <<if $language is "Indian">> + <<set $activeSlave.accent to either(0,1,2,3)>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Malaysian">> + <<set $activeSlave.accent to $seed>> +<<case "Uzbek">> + <<set $activeSlave.accent to $seed>> +<<case "Afghan">> + <<set $activeSlave.accent to $seed>> +<<case "Nepalese">> + <<set $activeSlave.accent to $seed>> +<<case "Burmese">> + <<set $activeSlave.accent to $seed>> +<<case "Iraqi">> + <<if $language is "Arabic">> + <<set $activeSlave.accent to either(0,1,2,3)>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Yemeni">> + <<if $language is "Arabic">> + <<set $activeSlave.accent to 1>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Sudanese">> + <<if $language is "Arabic">> + <<set $activeSlave.accent to either(0,1,2,3)>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Algerian">> + <<if $language is "Arabic">> + <<set $activeSlave.accent to either(0,1,2,3)>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Tunisian">> + <<if $language is "Arabic">> + <<set $activeSlave.accent to either(0,1,2,3)>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Libyan">> + <<if $language is "Arabic">> + <<set $activeSlave.accent to 1>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Omani">> + <<if $language is "Arabic">> + <<set $activeSlave.accent to 1>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Malian">> + <<if $language is "Arabic">> + <<set $activeSlave.accent to either(0,1,2,3)>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Jordanian">> + <<if $language is "Arabic">> + <<set $activeSlave.accent to 1>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Lebanese">> + <<if $language is "Arabic">> + <<set $activeSlave.accent to 1>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Emirati">> + <<if $language is "Arabic">> + <<set $activeSlave.accent to 0>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Kazakh">> + <<set $activeSlave.accent to $seed>> +<<case "Pakistani">> + <<if $language is "Arabic">> + <<set $activeSlave.accent to either(0,1,2,3)>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Indian">> + <<if $language is "Indian">> + <<set $activeSlave.accent to 0>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Australian">> + <<if $language is "English">> + <<set $activeSlave.accent to 1>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "a New Zealander">> + <<if $language is "English">> + <<set $activeSlave.accent to 1>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Roman Revivalist">> + <<if $language is "Latin">> + <<set $activeSlave.accent to 0>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Ancient Egyptian Revivalist">> + <<if $language is "Ancient Egyptian">> + <<set $activeSlave.accent to 0>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Edo Revivalist">> + <<if $language is "Japanese">> + <<set $activeSlave.accent to 0>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Arabian Revivalist">> + <<if $language is "Arabic">> + <<set $activeSlave.accent to 0>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<case "Ancient Chinese Revivalist">> + <<if $language is "Chinese">> + <<set $activeSlave.accent to 0>> + <<else>> + <<set $activeSlave.accent to $seed>> + <</if>> +<<default>> + <<set $activeSlave.accent to $seed>> +<</switch>> + +<<if $activeSlave.nationality is $language>> + <<set $activeSlave.accent to 0>> <</if>> -<<display "Nationality to Name">> -<<display "Nationality to Accent">> +<</widget>> \ No newline at end of file diff --git a/src/uncategorized/nonRandomEvent.tw b/src/uncategorized/nonRandomEvent.tw index f88fb4ab5608d98fd4dd136f5dcd4867e1207bad..6041e616bf137d22947bb9814a191d5634b87b13 100644 --- a/src/uncategorized/nonRandomEvent.tw +++ b/src/uncategorized/nonRandomEvent.tw @@ -1,12 +1,12 @@ :: Nonrandom Event - + <<set $showEncyclopedia to 0>> <<if ($plot == 1)>> <<set _effectiveWeek = $week-$nationHate>> <<set $toSearch to $arcologies[0].name>> -<<if (_effectiveWeek == 4) && ($toSearch.indexOf("Arcology X-") != -1)>> +<<if (_effectiveWeek == 4) && ($toSearch.indexOf("Arcology ") != -1)>> <<set $Event = "arcology naming">> <<goto "Generic Plot Events">> <<elseif (_effectiveWeek == 6)>> @@ -18,7 +18,7 @@ <<elseif (_effectiveWeek == 11)>> <<set $Event = "assistant">> <<goto "Assistant Events">> -<<elseif (_effectiveWeek == 12) && $PC.vagina > 0 && $raped == -1 && $AProsperityCap <= 60 && $Bodyguard == 0>> +<<elseif (_effectiveWeek == 12) && $PC.vagina > 0 && $raped == -1 && $AProsperityCap <= 60 && $Bodyguard == 0 && $PC.career != "arcology owner">> <<goto "P raped">> <<elseif (_effectiveWeek == 14)>> <<set $Event = "bad curatives">> diff --git a/src/uncategorized/pCitizensAndCivilians.tw b/src/uncategorized/pCitizensAndCivilians.tw index 9c6d4f89ab4df02f2bba79b8c04560070588ef7c..4b3649b90f090f5b4e320126f0c4e7e9a6e4c2af 100644 --- a/src/uncategorized/pCitizensAndCivilians.tw +++ b/src/uncategorized/pCitizensAndCivilians.tw @@ -1,5 +1,5 @@ :: P citizens and civilians - + <<nobr>> <<set $nextButton to " ">> @@ -28,7 +28,7 @@ <<set $mercenaries to 5>> <<set $mercenariesTitle to "Knights">> <</replace>> -<</click>> <<if $PC.career is "mercenary">>//This will cost ¤20000 and some upkeep, @@color:springgreen;reduced by your mercenary contacts@@//<<else>>//This will cost ¤20000 and incur significant upkeep costs//<</if>> +<</click>> <<if ($PC.career == "mercenary") || ($PC.career == "arcology owner")>>//This will cost ¤20000 and some upkeep, @@color:springgreen;reduced by your mercenary contacts@@//<<else>>//This will cost ¤20000 and incur significant upkeep costs//<</if>> <<if $arcologies[0].FSRomanRevivalist >= 10>>\ <<click "They shall be my Evocati">> <<replace "#result">> @@ -39,7 +39,7 @@ <<set $mercenaries to 5>> <<set $mercenariesTitle to "Evocati">> <</replace>> -<</click>> <<if $PC.career is "mercenary">>//This will cost ¤20000 and some upkeep, @@color:springgreen;reduced by your mercenary contacts@@//<<else>>//This will cost ¤20000 and incur significant upkeep costs//<</if>> +<</click>> <<if ($PC.career == "mercenary") || ($PC.career == "arcology owner")>>//This will cost ¤20000 and some upkeep, @@color:springgreen;reduced by your mercenary contacts@@//<<else>>//This will cost ¤20000 and incur significant upkeep costs//<</if>> <</if>>\ <<if $arcologies[0].FSEgyptianRevivalist >= 10>>\ <<click "They shall be my Medjay">> @@ -51,7 +51,7 @@ <<set $mercenaries to 5>> <<set $mercenariesTitle to "Medjay">> <</replace>> -<</click>> <<if $PC.career is "mercenary">>//This will cost ¤20000 and some upkeep, @@color:springgreen;reduced by your mercenary contacts@@//<<else>>//This will cost ¤20000 and incur significant upkeep costs//<</if>> +<</click>> <<if ($PC.career == "mercenary") || ($PC.career == "arcology owner")>>//This will cost ¤20000 and some upkeep, @@color:springgreen;reduced by your mercenary contacts@@//<<else>>//This will cost ¤20000 and incur significant upkeep costs//<</if>> <</if>>\ <<if $arcologies[0].FSEdoRevivalist >= 10>>\ <<click "Naturally, they shall be the Samurai">> @@ -63,7 +63,7 @@ <<set $mercenaries to 5>> <<set $mercenariesTitle to "Samurai">> <</replace>> -<</click>> <<if $PC.career is "mercenary">>//This will cost ¤20000 and some upkeep, @@color:springgreen;reduced by your mercenary contacts@@//<<else>>//This will cost ¤20000 and incur significant upkeep costs//<</if>> +<</click>> <<if ($PC.career == "mercenary") || ($PC.career == "arcology owner")>>//This will cost ¤20000 and some upkeep, @@color:springgreen;reduced by your mercenary contacts@@//<<else>>//This will cost ¤20000 and incur significant upkeep costs//<</if>> <</if>>\ <<if $arcologies[0].FSArabianRevivalist >= 10>>\ <<click "They shall be my Janissaries">> @@ -75,7 +75,7 @@ <<set $mercenaries to 5>> <<set $mercenariesTitle to "Janissaries">> <</replace>> -<</click>> <<if $PC.career is "mercenary">>//This will cost ¤20000 and some upkeep, @@color:springgreen;reduced by your mercenary contacts@@//<<else>>//This will cost ¤20000 and incur significant upkeep costs//<</if>> +<</click>> <<if ($PC.career == "mercenary") || ($PC.career == "arcology owner")>>//This will cost ¤20000 and some upkeep, @@color:springgreen;reduced by your mercenary contacts@@//<<else>>//This will cost ¤20000 and incur significant upkeep costs//<</if>> <</if>>\ <<if $arcologies[0].FSChattelReligionist >= 10>>\ <<click "They shall be the Knights Templar">> @@ -87,7 +87,7 @@ <<set $mercenaries to 5>> <<set $mercenariesTitle to "Knights Templar">> <</replace>> -<</click>> <<if $PC.career is "mercenary">>//This will cost ¤20000 and some upkeep, @@color:springgreen;reduced by your mercenary contacts@@//<<else>>//This will cost ¤20000 and incur significant upkeep costs//<</if>> +<</click>> <<if ($PC.career == "mercenary") || ($PC.career == "arcology owner")>>//This will cost ¤20000 and some upkeep, @@color:springgreen;reduced by your mercenary contacts@@//<<else>>//This will cost ¤20000 and incur significant upkeep costs//<</if>> <</if>>\ <<if $arcologies[0].FSDegradationist >= 10>>\ <<click "They shall be my Immortals">> @@ -99,7 +99,7 @@ <<set $mercenaries to 5>> <<set $mercenariesTitle to "Immortals">> <</replace>> -<</click>> <<if $PC.career is "mercenary">>//This will cost ¤20000 and some upkeep, @@color:springgreen;reduced by your mercenary contacts@@//<<else>>//This will cost ¤20000 and incur significant upkeep costs//<</if>> +<</click>> <<if ($PC.career == "mercenary") || ($PC.career == "arcology owner")>>//This will cost ¤20000 and some upkeep, @@color:springgreen;reduced by your mercenary contacts@@//<<else>>//This will cost ¤20000 and incur significant upkeep costs//<</if>> <</if>>\ <<if $arcologies[0].FSAssetExpansionist >= 10>>\ <</if>>\ @@ -123,7 +123,7 @@ <<set $mercenaries to 5>> <<set $mercenariesTitle to "Asgardians">> <</replace>> -<</click>> <<if $PC.career is "mercenary">>//This will cost ¤20000 and some upkeep, @@color:springgreen;reduced by your mercenary contacts@@//<<else>>//This will cost ¤20000 and incur significant upkeep costs//<</if>> +<</click>> <<if ($PC.career == "mercenary") || ($PC.career == "arcology owner")>>//This will cost ¤20000 and some upkeep, @@color:springgreen;reduced by your mercenary contacts@@//<<else>>//This will cost ¤20000 and incur significant upkeep costs//<</if>> <</if>>\ <<if $arcologies[0].FSSupremacist >= 10>>\ <<click "They shall be the Knights of the Blood">> @@ -135,7 +135,7 @@ <<set $mercenaries to 5>> <<set $mercenariesTitle to "Knights of the Blood">> <</replace>> -<</click>> <<if $PC.career is "mercenary">>//This will cost ¤20000 and some upkeep, @@color:springgreen;reduced by your mercenary contacts@@//<<else>>//This will cost ¤20000 and incur significant upkeep costs//<</if>> +<</click>> <<if ($PC.career == "mercenary") || ($PC.career == "arcology owner")>>//This will cost ¤20000 and some upkeep, @@color:springgreen;reduced by your mercenary contacts@@//<<else>>//This will cost ¤20000 and incur significant upkeep costs//<</if>> <</if>>\ <<if $arcologies[0].FSSubjugationist >= 10>>\ <</if>>\ @@ -149,7 +149,7 @@ <<set $mercenaries to 5>> <<set $mercenariesTitle to "Wardens">> <</replace>> -<</click>> <<if $PC.career is "mercenary">>//This will cost ¤20000 and some upkeep, @@color:springgreen;reduced by your mercenary contacts@@//<<else>>//This will cost ¤20000 and incur significant upkeep costs//<</if>> +<</click>> <<if $PC.career == "mercenary" || ($PC.career == "arcology owner")>>//This will cost ¤20000 and some upkeep, @@color:springgreen;reduced by your mercenary contacts@@//<<else>>//This will cost ¤20000 and incur significant upkeep costs//<</if>> <</if>>\ <<if $arcologies[0].FSBodyPurist >= 10>>\ <</if>>\ @@ -165,6 +165,6 @@ <<set $mercenaries to 5>> <<set $mercenariesTitle to "Rangers">> <</replace>> -<</click>> <<if $PC.career is "mercenary">>//This will cost ¤20000 and some upkeep, @@color:springgreen;reduced by your mercenary contacts@@//<<else>>//This will cost ¤20000 and incur significant upkeep costs//<</if>> +<</click>> <<if ($PC.career == "mercenary") || ($PC.career == "arcology owner")>>//This will cost ¤20000 and some upkeep, @@color:springgreen;reduced by your mercenary contacts@@//<<else>>//This will cost ¤20000 and incur significant upkeep costs//<</if>> <</if>>\ </span> diff --git a/src/uncategorized/pCoupAttempt.tw b/src/uncategorized/pCoupAttempt.tw index 76c6f52853dbd28ab6274acf8e14196ba733236c..58ce71629b00af5ef8358aeb8f5926ec197db2fa 100644 --- a/src/uncategorized/pCoupAttempt.tw +++ b/src/uncategorized/pCoupAttempt.tw @@ -1,5 +1,5 @@ :: P coup attempt [nobr] - + <<set $nextButton to "Continue">> <<set $nextLink to "Random Nonindividual Event">> <<set $nextButton to "Continue">> @@ -22,7 +22,7 @@ You are awakened in the middle of the night by a jolt that shakes the entire arc <br><br> - +<<set _newSlaves = []>> <<if $arcologies[0].FSRomanRevivalistLaw + $mercenaries + $personalArms + $hackerSupport < 9>> @@color:yellow;The Daughters of Liberty are defeated.@@ @@color:red;$arcologies[0].name is heavily damaged,@@ and the repairs will be very costly. The effect on your reputation is @@color:green;muted, but positive,@@ since though you won, your victory was hard-fought and set the arcology's prosperity back @@color:red;a long way.@@ <<if $traitor != 0>>$traitor.slaveName was killed in the fighting.<</if>> <<set $daughtersVictory to 2>> @@ -40,10 +40,7 @@ You are awakened in the middle of the night by a jolt that shakes the entire arc <<for $i to 0; $i < $j; $i++>> <<display "Generate XY Slave">> <<set $activeSlave.origin to "She is an enslaved Daughter of Liberty.">> - <<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> - <</if>> - <<set $slaves.push($activeSlave)>> + <<set _newSlaves.push($activeSlave)>> <</for>> <<if $seeDicks > 50>> <<set $j to 0>> @@ -55,10 +52,7 @@ You are awakened in the middle of the night by a jolt that shakes the entire arc <<for $i to 0; $i < $j; $i++>> <<display "Generate XX Slave">> <<set $activeSlave.origin to "She is an enslaved Daughter of Liberty.">> - <<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> - <</if>> - <<set $slaves.push($activeSlave)>> + <<set _newSlaves.push($activeSlave)>> <</for>> <<set $desc = "a Daughters of Liberty brassard">> <<set $trinkets.push($desc)>> @@ -75,10 +69,7 @@ You are awakened in the middle of the night by a jolt that shakes the entire arc <<set $activeSlave.assignment to "rest">> <<set $activeSlave.health = random(-80,-60)>> <<set $activeSlave.origin to "She was your slave, but you freed her, which she repaid by participating in a coup attempt against you. It failed, and she is again your chattel.">> - <<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> - <</if>> - <<set $slaves.push($activeSlave)>> + <<set _newSlaves.push($activeSlave)>> <</if>> <<for $i to 0; $i < 8; $i++>> <<if random(0,99) < $seeDicks>> @@ -87,10 +78,7 @@ You are awakened in the middle of the night by a jolt that shakes the entire arc <<display "Generate XX Slave">> <</if>> <<set $activeSlave.origin to "She is an enslaved Daughter of Liberty.">> - <<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> - <</if>> - <<set $slaves.push($activeSlave)>> + <<set _newSlaves.push($activeSlave)>> <</for>> <<set $desc = "a damaged plate carrier bearing Daughters of Liberty insignia">> <<set $trinkets.push($desc)>> @@ -107,10 +95,7 @@ You are awakened in the middle of the night by a jolt that shakes the entire arc <<set $activeSlave.assignment to "rest">> <<set $activeSlave.health = random(-80,-60)>> <<set $activeSlave.origin to "She was your slave, but you freed her, which she repaid by participating in a coup attempt against you. It failed, and she is again your chattel.">> - <<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> - <</if>> - <<set $slaves.push($activeSlave)>> + <<set _newSlaves.push($activeSlave)>> <</if>> <<if $seeDicks > 50>> <<set $j to 5>> @@ -122,10 +107,7 @@ You are awakened in the middle of the night by a jolt that shakes the entire arc <<for $i to 0; $i < $j; $i++>> <<display "Generate XY Slave">> <<set $activeSlave.origin to "She is an enslaved Daughter of Liberty.">> - <<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> - <</if>> - <<set $slaves.push($activeSlave)>> + <<set _newSlaves.push($activeSlave)>> <</for>> <<if $seeDicks > 50>> <<set $j to 0>> @@ -137,10 +119,7 @@ You are awakened in the middle of the night by a jolt that shakes the entire arc <<for $i to 0; $i < $j; $i++>> <<display "Generate XX Slave">> <<set $activeSlave.origin to "She is an enslaved Daughter of Liberty.">> - <<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> - <</if>> - <<set $slaves.push($activeSlave)>> + <<set _newSlaves.push($activeSlave)>> <</for>> <<set $desc = "a Daughters of Liberty flag that once hung in their forward command post within your arcology">> <<set $trinkets.push($desc)>> @@ -151,32 +130,27 @@ You are awakened in the middle of the night by a jolt that shakes the entire arc <span id="result"> <<click "Sell your prisoners immediately">> <<replace "#result">> - <<for $i to 0; $i < $slaves.length; $i++>> - <<if $slaves[$i].origin is "She is an enslaved Daughter of Liberty.">> - <<slaveCost $slaves[$i]>> + <<for $i to 0; $i < _newSlaves.length; $i++>> + <<slaveCost _newSlaves[$i]>> <<set $cash += $slaveCost>> - <<set $dump to $slaves.pluck([$i], [$i])>><<set $i-->> - <</if>> <</for>> Prisoners sold. <</replace>> <</click>> <<if $traitor != 0>>//$traitor.slaveName will not be sold.//<</if>> <br><<click "Give your prisoners to those who suffered property damage">> <<replace "#result">> - <<for $i to 0; $i < $slaves.length; $i++>> - <<if $slaves[$i].origin is "She is an enslaved Daughter of Liberty.">> - <<slaveCost $slaves[$i]>> + <<for $i to 0; $i < _newSlaves.length; $i++>> + <<slaveCost _newSlaves[$i]>> <<set $rep += Math.trunc($slaveCost/10)>> - <<set $dump to $slaves.pluck([$i], [$i])>> - <</if>> <</for>> Prisoners @@color:green;given away.@@ <</replace>> <</click>> <<if $traitor != 0>>//$traitor.slaveName will not be sold.//<</if>> <br><<click "Enslave all of your prisoners">> <<replace "#result">> - - + <<for $i to 0; $i < _newSlaves.length; $i++>> + <<AddSlave _newSlaves[$i]>> + <</for>> You simply enslave all of the prisoners yourself. You will make them pay for attacking your arcology. <</replace>> <</click>> diff --git a/src/uncategorized/pDefenseFears.tw b/src/uncategorized/pDefenseFears.tw index 875c1f6afa31a951a2775c6140e22f4df2f3792c..758b73a23e11133097b1330f067526969de6cf82 100644 --- a/src/uncategorized/pDefenseFears.tw +++ b/src/uncategorized/pDefenseFears.tw @@ -1,6 +1,6 @@ :: P defense fears - + <<nobr>> <<set $nextButton to " ">> @@ -30,7 +30,7 @@ A deputation of slaveowning citizens comes to see you. Though they haven't exper <<set $cash -= 10000>> <<set $mercenaries to 3>> <</replace>> -<</click>> <<if $PC.career is "mercenary">>//This will cost ¤10000 and some upkeep, @@color:springgreen;reduced by your mercenary contacts@@//<<else>>//This will cost ¤10000 and incur significant upkeep costs//<</if>> +<</click>> <<if ($PC.career == "mercenary") || ($PC.career == "arcology owner")>>//This will cost ¤10000 and some upkeep, @@color:springgreen;reduced by your mercenary contacts@@//<<else>>//This will cost ¤10000 and incur significant upkeep costs//<</if>> <<click "Refuse to quarter so many troops in your arcology">> <<replace "#result">> The consensus that the arcology is vulnerable triggers an @@color:red;exodus@@ of your most wealthy and valuable citizens, and your reputation @@color:red;suffers@@ grievously. diff --git a/src/uncategorized/pFSAnnouncement.tw b/src/uncategorized/pFSAnnouncement.tw index f3c6c82d79c4c5f9cd8fc752a96fa565cc9a9b26..16d5e38af72270a25e905172719579b3b68b4277 100644 --- a/src/uncategorized/pFSAnnouncement.tw +++ b/src/uncategorized/pFSAnnouncement.tw @@ -1,17 +1,12 @@ -:: P FS Announcement - -<<nobr>> +:: P FS Announcement [nobr] -<<set $nextButton to "Continue">> -<<set $nextLink to "Random Nonindividual Event">> +<<set $nextButton to "Continue", $nextLink to "Random Nonindividual Event">> <<set $FSAnnounced to 1>> <<set $FSCredits += 1>> -<</nobr>>\ -\ The simple pleasure of power has to be experienced to be understood. You often take a moment to stand on a balcony overlooking an interior atrium, watching the living, breathing, flowing current of your demesne. <<if $assistantName is "your personal assistant">>Your personal assistant<<else>>$assistantName<</if>> knows to allow you these moments of peace. - +<br><br> You immediately pay attention, therefore, when she interrupts. "<<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Sir<<else>>Ma'am<</if>>," she says, "this is an appropriate moment to bring a serious matter to your attention. I monitor conversations, social media, and general opinion within the arcology where I can. You are respected, and the inhabitants of this arcology are starting to look to you to give direction to society." - +<br><br> "This is not a situation that requires your attention," she continues. "You can continue to lead them by simple example. Or, you can take a more active role in defining the future. The rewards could be considerable. I will make the necessary additions to the arcology management interface to support societal modification." diff --git a/src/uncategorized/pHostageAcquisition.tw b/src/uncategorized/pHostageAcquisition.tw index ad3faf7e5ad8420a7e2318a15755d3e85fea33e1..214c41241b2692b2043d3f79517d03b2e09c46fc 100644 --- a/src/uncategorized/pHostageAcquisition.tw +++ b/src/uncategorized/pHostageAcquisition.tw @@ -1,5 +1,5 @@ :: P hostage acquisition [nobr] - + <<set $nextButton to "Continue">> <<set $nextLink to "AS Dump">> <<set $returnTo to "RIE Eligibility Check">> @@ -7,9 +7,9 @@ <<set $hostageRescued to 0>> <<set $activeSlave to $hostage>> <<set $activeSlave.ID += 55555>> -<<set $slaves.push($activeSlave)>> +<<AddSlave $activeSlave>> -$activeSlave.slaveName, once +$activeSlave.slaveName, once <<switch $PC.career>> <<case "wealth">> a popular party girl @@ -31,6 +31,8 @@ $activeSlave.slaveName, once a gang member <<case "servant">> a maid +<<default>> + a prominent Free Cities citizen <</switch>> of your acquaintance from before you were an arcology owner, and then a pawn in your rival arcology owner's campaign of psychological warfare against you, is now one of your slaves. Your hired mercenaries are en route now with your precious cargo. @@ -70,7 +72,7 @@ Your hired mercenaries are en route now with your precious cargo. <<set $activeSlave.weight = -100>> <<set $activeSlave.customTat to "She has heavy scarring all over her body from being beaten under your rival's rule.">> <<else>> - Your mercenaries radio you upon arrival. "VIP recovered but... She isn't all there." + Your mercenaries radio you upon arrival. "VIP recovered but... She isn't all there." Upon seeing her, it's obvious $activeSlave.slaveName has been completely broken. You beckon to the mercenary captain to give her to you. Holding her in your arms, it's clear that the poor girl is barely clinging to life. The mercenary captain apologizes again, "My apologies, we found her like that. I'm sorry." He says, as he and his group exit your penthouse, leaving you with the comatose $activeSlave.slaveName. She looks the same as you remember, albeit emaciated, battered, broken and very pregnant. Although, if she pulls through this, she'll be devoted to you forever. <<set $activeSlave.weight = -100>> diff --git a/src/uncategorized/pInvasion.tw b/src/uncategorized/pInvasion.tw index c22d1c653e11553ac379dd4c4178e3dbb16b2c27..86d1374b96e23d3a5ba2fb1ff2dafe241ab535e1 100644 --- a/src/uncategorized/pInvasion.tw +++ b/src/uncategorized/pInvasion.tw @@ -1,12 +1,12 @@ :: P invasion [nobr] - + <<set $nextButton to "Continue">> <<set $nextLink to "Random Nonindividual Event">> <<set $nextButton to "Continue">> <<set $invasionVictory to 1>> -The day that wasn't supposed to come is here. The troubled little country next door is falling apart. Last month, its stock market collapsed. Last week, its government fell. Yesterday, there was open looting in its cities. And today, a faction of disaffected citizens that blames the Free Cities for siphoning off business and causing the collapse seized weapons from unguarded army depots<<if ($terrain is "marine") || ($terrain is "oceanic")>>, armed merchant ships and private vessels, and are approaching the Free City over the water<<else>>and advanced towards your home<</if>>. +The day that wasn't supposed to come is here. The troubled little country next door is falling apart. Last month, its stock market collapsed. Last week, its government fell. Yesterday, there was open looting in its cities. And today, a faction of disaffected citizens that blames the Free Cities for siphoning off business and causing the collapse seized weapons from unguarded army depots<<if ($terrain is "marine") || ($terrain is "oceanic")>>, armed merchant ships and private vessels, and are approaching the Free City over the water<<else>>and advanced towards your home<</if>>. <br><br> @@ -79,6 +79,7 @@ The loose militia lately organized by the arcology owners has been called out to <<set $invasionVictory to 3>> <<set $rep += 2000>> +<<set _newSlaves = []>> <<for $i to 0; $i < 3; $i++>> <<if (random(0,99) < $seeDicks)>> <<display "Generate XY Slave">> @@ -86,10 +87,7 @@ The loose militia lately organized by the arcology owners has been called out to <<display "Generate XX Slave">> <</if>> <<set $activeSlave.origin to "She is an enslaved prisoner of war.">> - <<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> - <</if>> - <<set $slaves.push($activeSlave)>> + <<set _newSlaves.push($activeSlave)>> <</for>> <<set $helots += 5>> @@ -100,31 +98,27 @@ The loose militia lately organized by the arcology owners has been called out to <span id="result"> <<click "Sell your prisoners immediately">> <<replace "#result">> - <<for $i to 0; $i < $slaves.length; $i++>> - <<if $slaves[$i].origin is "She is an enslaved prisoner of war.">> - <<slaveCost $slaves[$i]>> + <<for $i to 0; $i < _newSlaves.length; $i++>> + <<slaveCost _newSlaves[$i]>> <<set $cash += $slaveCost>> - <<set $dump to $slaves.pluck([$i], [$i])>><<set $i-->> - <<set $i-->> - <</if>> <</for>> Prisoners sold. <</replace>> <</click>> <br><<click "Give your prisoners to citizens who displayed bravery during the counterattack">> <<replace "#result">> - <<for $i to 0; $i < $slaves.length; $i++>> - <<if $slaves[$i].origin is "She is an enslaved prisoner of war.">> - <<slaveCost $slaves[$i]>> + <<for $i to 0; $i < _newSlaves.length; $i++>> + <<slaveCost _newSlaves[$i]>> <<set $rep += Math.trunc($slaveCost/10)>> - <<set $dump to $slaves.pluck([$i], [$i])>><<set $i-->> - <</if>> <</for>> Prisoners @@color:green;given away.@@ <</replace>> <</click>> <br><<click "Enslave all of your prisoners">> <<replace "#result">> + <<for $i to 0; $i < _newSlaves.length; $i++>> + <<AddSlave _newSlaves[$i]>> + <</for>> You simply enslave all of your prisoners yourself. These slaves will regret attacking your arcology. <</replace>> <</click>> diff --git a/src/uncategorized/pMercenaries.tw b/src/uncategorized/pMercenaries.tw index 70922be21656ac64449d9d5357a6572a0626e21d..865117f5aa6fe790bbee10a072a3abc17ee3bf5d 100644 --- a/src/uncategorized/pMercenaries.tw +++ b/src/uncategorized/pMercenaries.tw @@ -1,5 +1,5 @@ :: P mercenaries - + <<nobr>> <<set $nextButton to " ">> @@ -26,7 +26,7 @@ The budgetary difficulty many old world countries are in has resulted in unemplo <<set $cash -= 5000>> <<set $mercenaries to 1>> <</replace>> -<</click>> <<if $PC.career is "mercenary">>//This will cost ¤5000 and some upkeep, @@color:springgreen;reduced by your mercenary contacts@@//<<else>>//This will cost ¤5000 and incur significant upkeep costs//<</if>> +<</click>> <<if ($PC.career == "mercenary") || ($PC.career == "arcology owner")>>//This will cost ¤5000 and some upkeep, @@color:springgreen;reduced by your mercenary contacts@@//<<else>>//This will cost ¤5000 and incur significant upkeep costs//<</if>> <<click "Install a full platoon">> <<replace "#result">> You hire a full platoon of reputable mercenaries and a veteran officer to command them, kit them in excellent gear, and quarter them in $arcologies[0].name. The sight of many armed men on patrol has @@color:red;deeply offended some of the more free-spirited citizens@@ of $arcologies[0].name. @@ -35,7 +35,7 @@ The budgetary difficulty many old world countries are in has resulted in unemplo <<set $cash -= 10000>> <<set $mercenaries to 3>> <</replace>> -<</click>> <<if $PC.career is "mercenary">>//This will cost ¤10000 and some upkeep, @@color:springgreen;reduced by your mercenary contacts@@//<<else>>//This will cost ¤10000 and incur significant upkeep costs//<</if>> +<</click>> <<if ($PC.career == "mercenary") || ($PC.career == "arcology owner")>>//This will cost ¤10000 and some upkeep, @@color:springgreen;reduced by your mercenary contacts@@//<<else>>//This will cost ¤10000 and incur significant upkeep costs//<</if>> <<click "Do not quarter troops in your arcology">> <<replace "#result">> Having armed men on permanent watch is a step too far. $arcologies[0].name's security systems are formidable and will have to serve. @@ -44,4 +44,3 @@ The budgetary difficulty many old world countries are in has resulted in unemplo <</replace>> <</click>> </span> - diff --git a/src/uncategorized/pMercenaryRomeo.tw b/src/uncategorized/pMercenaryRomeo.tw index bf7c5752ddb69638a719b79efa2996cc9e1a0380..9ba37d66d17d9bb14dbb8091a769e7dcf7e13c58 100644 --- a/src/uncategorized/pMercenaryRomeo.tw +++ b/src/uncategorized/pMercenaryRomeo.tw @@ -1,5 +1,5 @@ :: P mercenary romeo - + <<nobr>> <<set $nextButton to "Continue">> @@ -7,34 +7,38 @@ <<if $activeSlave == 0>> <<for $i to 0; $i < $slaves.length; $i++>> - <<if ($slaves[$i].assignment is "serve the public")>> - <<set $activeSlave to $slaves[$i]>> - <<break>> - <</if>> - <<if ($slaves[$i].assignment is "serve in the club")>> - <<set $activeSlave to $slaves[$i]>> - <<break>> + <<if $slaves[$i].fetish != "mindbroken">> + <<if $slaves[$i].fuckdoll == 0>> + <<if ($slaves[$i].assignment is "serve the public")>> + <<set $activeSlave to $slaves[$i]>> + <<break>> + <</if>> + <<if ($slaves[$i].assignment is "serve in the club")>> + <<set $activeSlave to $slaves[$i]>> + <<break>> + <</if>> + <<if ($slaves[$i].assignment is "whore")>> + <<set $activeSlave to $slaves[$i]>> + <<break>> + <</if>> + <<if ($slaves[$i].assignment is "work in the brothel")>> + <<set $activeSlave to $slaves[$i]>> + <<break>> + <</if>> <</if>> - <<if ($slaves[$i].assignment is "whore")>> - <<set $activeSlave to $slaves[$i]>> - <<break>> <</if>> - <<if ($slaves[$i].assignment is "work in the brothel")>> + <</for>> + <<if $activeSlave == 0>> + <<for $i to $slaves.length - 1; $i >= 0; $i-->> + <<if ($slaves[$i].publicCount > 0) && (($activeSlave == 0) || (random(1,100) > 50))>> <<set $activeSlave to $slaves[$i]>> <<break>> <</if>> - <</for>> -<</if>> -<<if $activeSlave == 0>> - <<for $i to $slaves.length - 1; $i >= 0; $i-->> - <<if ($slaves[$i].publicCount > 0) && (($activeSlave == 0) || (random(1,100) > 50))>> - <<set $activeSlave to $slaves[$i]>> - <<break>> + <</for>> <</if>> - <</for>> -<</if>> -<<if $activeSlave == 0>> + <<if $activeSlave == 0>> <<set $activeSlave to $slaves.random()>> + <</if>> <</if>> <<slaveCost $activeSlave>> diff --git a/src/uncategorized/pRaidResult.tw b/src/uncategorized/pRaidResult.tw index 1e1ee9ee01863399f0091682d0d604488ea12fea..dd2ee6a9cd6c61cae4e697295872c2314a8ca7c3 100644 --- a/src/uncategorized/pRaidResult.tw +++ b/src/uncategorized/pRaidResult.tw @@ -1,19 +1,15 @@ -:: P raid result - -<<nobr>> +:: P raid result [nobr] -<<set $nextButton to "Continue">> -<<set $nextLink to "Random Nonindividual Event">> +<<set $nextButton to "Continue", $nextLink to "Random Nonindividual Event">> <<set $PRaid to 0>> -<</nobr>>\ -\ As your VTOL craft carries you and your mercenaries out towards an area ideal for a quick raid on the refugee bands, the sensors begin to reveal that there are actually many more bands than you originally suspected. The single aircraft does not carry enough mercenaries to target more than one group, or have the cargo capacity to haul more than one back to the arcology before they disperse. Your mercenary commander makes a selection based on your instructions. - +<br><br> Out ahead of the main body of refugees there is a small knot moving quickly and in good order, carrying weapons. Farther back, there is a larger group separated from the main body who could be easily isolated. And finally, it seems a group of sick and injured refugees have clustered around a tent where there must be medical assistance of some kind. +<br><br> -<<nobr>> +<<set _newSlaves = []>> <<if $PRraidTarget == 1>> Under orders to target resistance, your mercenaries target the leading group. They even manage to direct a little small arms fire at the VTOL craft as it circles them, dropping mercenaries and plying its nonlethal weapons, but they are of course rapidly defeated. Your share is two slaves in good physical condition, who prove to have been survivors of the defeated attack on the arcology. The mercenaries find after a data search that one of the prisoners who's part of their share was a minor leader in the anti-Free Cities movement. After a quick consultation over their radios, the mercenaries decide that a summary execution out here would be too quick for the wretch, and bring their prize back to the arcology for more thorough punishment. Between the successful raid and the capture of this public enemy, @@color:green;the citizens are quite impressed by you.@@ <<set $rep += 500>> @@ -21,14 +17,11 @@ Out ahead of the main body of refugees there is a small knot moving quickly and <<if ($seeDicks > 0)>> <<display "Generate XY Slave">> <<set $activeSlave.origin to "She is an enslaved refugee who participated in the defeated attack on your arcology.">> - <<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> - <</if>> - <<set $slaves.push($activeSlave)>> + <<set _newSlaves.push($activeSlave)>> <<else>> <<display "Generate XX Slave">> <<set $activeSlave.origin to "She is an enslaved refugee who participated in the defeated attack on your arcology.">> - <<set $slaves.push($activeSlave)>> + <<set _newSlaves.push($activeSlave)>> <</if>> <</for>> <<elseif $PRraidTarget is 2>> @@ -36,11 +29,8 @@ Out ahead of the main body of refugees there is a small knot moving quickly and <<set $rep += 200>> <<for $i to 0; $i < 4; $i++>> <<display "Generate New Slave">> - <<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> - <</if>> <<set $activeSlave.origin to "She is an enslaved refugee.">> - <<set $slaves.push($activeSlave)>> + <<set _newSlaves.push($activeSlave)>> <</for>> <<else>> Under orders to target the largest possible group of people, your mercenaries head for the sick and injured. As the VTOL settles, it becomes apparent that most of the injuries are from combat, almost certainly in the defeat at $arcologies[0].name. The tent proves to contain a harassed nurse, almost without medical supplies and at the end of her rope. When she sees the mercenaries push through the tent flap, she heaves a sigh of mixed defeat and relief and wordlessly offers her wrists. The mercenaries give you a larger share of the other slaves in return for her: they tell you in confidence that she'll be a medical asset to them as well as the usual amusement. The successful raid @@color:green;is the talk of the Free City.@@ @@ -48,45 +38,38 @@ Out ahead of the main body of refugees there is a small knot moving quickly and <<set $rep += 200>> <<for $i to 0; $i < 5; $i++>> <<display "Generate New Slave">> - <<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> - <</if>> <<set $activeSlave.origin to "She is an enslaved refugee who was wounded in the defeated attack on your arcology.">> <<set $activeSlave.health = random(-80,-40)>> - <<set $slaves.push($activeSlave)>> + <<set _newSlaves.push($activeSlave)>> <</for>> <</if>> -<</nobr>> + <span id="result"> <<click "Sell your prisoners immediately">> - <<replace "#result">><<nobr>> - <<for $i to 0; $i < $slaves.length; $i++>> - <<if ($slaves[$i].origin is "She is an enslaved refugee who participated in the defeated attack on your arcology.") || ($slaves[$i].origin is "She is an enslaved refugee.") || ($slaves[$i].origin is "She is an enslaved refugee who was wounded in the defeated attack on your arcology.")>> - <<slaveCost $slaves[$i]>> + <<replace "#result">> + <<for $i to 0; $i < _newSlaves.length; $i++>> + <<slaveCost _newSlaves[$i]>> <<set $cash += $slaveCost>> - <<set $dump to $slaves.pluck([$i], [$i])>><<set $i-->> - <</if>> <</for>> Prisoners sold. - <</nobr>><</replace>> + <</replace>> <</click>> -<<click "Give your prisoners to citizens injured in the recent invasion">> - <<replace "#result">><<nobr>> - <<for $i to 0; $i < $slaves.length; $i++>> - <<if ($slaves[$i].origin is "She is an enslaved refugee who participated in the defeated attack on your arcology.") || ($slaves[$i].origin is "She is an enslaved refugee.") || ($slaves[$i].origin is "She is an enslaved refugee who was wounded in the defeated attack on your arcology.")>> - <<slaveCost $slaves[$i]>> +<br><<click "Give your prisoners to citizens injured in the recent invasion">> + <<replace "#result">> + <<for $i to 0; $i < _newSlaves.length; $i++>> + <<slaveCost _newSlaves[$i]>> <<set $rep += Math.trunc($slaveCost/10)>> - <<set $dump to $slaves.pluck([$i], [$i])>><<set $i-->> - <</if>> <</for>> Prisoners @@color:green;given away.@@ - <</nobr>><</replace>> + <</replace>> <</click>> -<<click "Enslave all of the refugees">> +<br><<click "Enslave all of the refugees">> <<replace "#result">> - <<nobr>> + <<for $i to 0; $i < _newSlaves.length; $i++>> + <<AddSlave _newSlaves[$i]>> + <</for>> You simply enslave all of the refugees yourself. They would have been worse off had you not intervened. - <</nobr>><</replace>> + <</replace>> <</click>> -</span> +</span> \ No newline at end of file diff --git a/src/uncategorized/pRivalryActions.tw b/src/uncategorized/pRivalryActions.tw index f5f38f732cd01008ca9f227097969a47c7b025a8..6db2cff2e45b6eb1fbf710000312f93aacdd1ae0 100644 --- a/src/uncategorized/pRivalryActions.tw +++ b/src/uncategorized/pRivalryActions.tw @@ -2036,7 +2036,7 @@ Your inter-arcology war with the arcology owner behind the Daughters of Liberty <<set $hostage.devotion -= 5>> <<set $hostage.fetishStrength += 5>> <<set $hostage.vaginalCount += 1>> - gingerly looking at her owner as they approach. + gingerly looking at her owner as they approach. <<elseif $rivalryDuration <= 15>> <<set $hostage.trust -= 5>> <<set $hostage.devotion -= 5>> @@ -3110,7 +3110,7 @@ You remind yourself that success in this conflict will not be defined by the tra <br> //This option is available due to your @@color:springgreen;societal connections,@@ and will economically devastate your rival// <</if>> <</if>> -<<if $PC.career is "mercenary">> +<<if ($PC.career == "mercenary") || ($PC.career == "arcology owner")>> <<if $mercenaries >= 3>> <br><<click "Your peers will tolerate an attack if it's covert">> <<replace "#result">> diff --git a/src/uncategorized/pRivalryHostage.tw b/src/uncategorized/pRivalryHostage.tw index 02ce6476d0e28dab82b51301c5fede27d2f07aeb..4dfa42d1b3a7b0292856727ed3288d182488148a 100644 --- a/src/uncategorized/pRivalryHostage.tw +++ b/src/uncategorized/pRivalryHostage.tw @@ -1,5 +1,5 @@ :: P rivalry hostage [nobr] - + <<set $nextButton to "Continue">> <<set $nextLink to "Nonrandom Event">> @@ -29,7 +29,7 @@ <<set $activeSlave.relationTarget to 0>> <<set $activeSlave.canRecruit = 0>> <<if $arcologies[0].FSSupremacistRace != 0>><<set $activeSlave.race to $arcologies[0].FSSupremacistRace>><</if>> -<<display "Nationality to Name">> +<<NationalityToName>> <<set $activeSlave.slaveName to $activeSlave.birthName>> <<set $activeSlave.actualAge to Number($activeSlave.actualAge)>> @@ -52,8 +52,8 @@ Only a few days into your inter-arcology war, you receive a video message from y <<set $activeSlave.face to 3>> <<set $activeSlave.intelligence to 2>> <<set $activeSlave.intelligenceImplant to 0>> - <<set $activeSlave.oralSkill = 100>> - <<set $activeSlave.entertainSkill = 100>> + <<set $activeSlave.oralSkill = 100>> + <<set $activeSlave.entertainSkill = 100>> <<case "escort">> time as a <<if $PC.title == 1>>man<<else>>woman<</if>> of sexual promiscuity. She was a pretty little slut who ran in the same sex circles. You were never particularly close, <<set $activeSlave.career to "a prostitute">> @@ -159,7 +159,7 @@ time as a gang leader. She was one of your best, yet you never got close enough, <<else>> <<set $activeSlave.actualAge to random(20,24)>> <</if>> - <<set $activeSlave.energy to 100>> + <<set $activeSlave.energy = 100>> <<set $activeSlave.face to 2>> <<set $activeSlave.intelligence to 2>> <<set $activeSlave.intelligenceImplant to 0>> @@ -180,6 +180,18 @@ time as a gang leader. She was one of your best, yet you never got close enough, <<set $activeSlave.intelligenceImplant to 0>> <<set $activeSlave.oralSkill = 100>> <<set $activeSlave.entertainSkill = 100>> +<<case "arcology owner">> + time owning another arcology. She was a prominent citizen who supported your government. You were never particularly close, + <<set $activeSlave.career to "a leading arcology citizen">> + <<if $pedo_mode == 1>> + <<set $activeSlave.actualAge to random(16,18)>> + <<else>> + <<set $activeSlave.actualAge to random(36,39)>> + <</if>> + <<set $activeSlave.age to random(36,39)>> + <<set $activeSlave.face to 3, $activeSlave.faceImplant to 1>> + <<set $activeSlave.intelligence to 3, $activeSlave.intelligenceImplant to 1>> + <<set $activeSlave.whoreSkill = 100, $activeSlave.entertainSkill = 100>> <</switch>> <<set $activeSlave.visualAge = $activeSlave.actualAge>> <<set $activeSlave.physicalAge = $activeSlave.actualAge>> @@ -252,7 +264,7 @@ but look what I have here! I just acquired her recently. Lovely, isn't she? I kn <<set $activeSlave.preg to -3>> <<case "Eugenics">> <<if $seeHyperPreg == 1>> - I'm going to have her knocked up; not with my seed, of course, but the seed of the lowest of the low. I'm also going to fill her with the most powerful experimental fertility drugs out there. She'll have so many children shoved into her poor womb she'll be bursting at the seams. But she'll enjoy that, won't you $activeSlave.slaveName?" The slave nods hesitantly, but with evident arousal. + I'm going to have her knocked up; not with my seed, of course, but the seed of the lowest of the low. I'm also going to fill her with the most powerful experimental fertility drugs out there. She'll have so many children shoved into her poor womb she'll be bursting at the seams. But she'll enjoy that, won't you $activeSlave.slaveName?" The slave nods hesitantly, but with evident arousal. <<else>> I'm going to have her knocked up; not with my seed, of course, but the seed of the lowest of the low. I'm also going to fill her with the most powerful fertility drugs I can get. Her poor little womb will be stretched to the limit with society's worst. But she'll enjoy that, won't you $activeSlave.slaveName?" The slave nods hesitantly, but with evident arousal. <</if>> diff --git a/src/uncategorized/pRivalryVictory.tw b/src/uncategorized/pRivalryVictory.tw index 82865ab055a9f8ad00e263a243c7edb7e5da3fea..08d6804896a2e65ef9aabb1dce5ef6e7f3dbf2a8 100644 --- a/src/uncategorized/pRivalryVictory.tw +++ b/src/uncategorized/pRivalryVictory.tw @@ -114,7 +114,7 @@ For the first time, you receive a direct call from your rival. You pictured the <<else>> "All my remaining liquid assets have just been @@color:red;expended in an attack on the value of your holdings,@@ and my arcology has been heavily sabotaged. You'll get nothing from me." It's not entirely true, but the damage to your holdings does outweigh your gains by a significant margin. <<set $cash -= random(10000,25000)>> - <</if>> + <</if>> <<set $cash -= 50000>> <<set $rivalOwner to -1>> <<set $seed to []>> @@ -517,7 +517,7 @@ For the first time, you receive a direct call from your rival. You pictured the <<set $activeSlave.health = 100>> <<if $activeSlave.physicalAge > 35>><<set $activeSlave.ageImplant to 1>><<AgeImplantAdjustment>><</if>> <<set $activeSlave.pubicHStyle to "waxed">> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <<display "New Slave Intro">> <</replace>> <</click>> diff --git a/src/uncategorized/pSlaveMedic.tw b/src/uncategorized/pSlaveMedic.tw index caca302b00a6da1bf974e2a838cbc19bad63a267..a141662bb829987e5bf9ae729a174b6e457ffcbe 100644 --- a/src/uncategorized/pSlaveMedic.tw +++ b/src/uncategorized/pSlaveMedic.tw @@ -48,8 +48,6 @@ <<if $activeSlave.publicCount>><<set $activeSlave.publicCount += 13>><<else>><<set $activeSlave.publicCount to 13>><</if>> <</if>> -\ -\ You make a habit of dropping in on your mercenaries whenever you get the chance. You have regular meetings with their grizzled captain, of course, but turning up unannounced to get to know them is simply a matter of self-preservation. The better they like you, the more likely they are to think of more than their pay when deciding how to hazard themselves on your behalf. When you enter the lounge of their barracks, you see $activeSlave.slaveName kneeling next to a mercenary with most of his armor stripped off. She's the $activeSlave.nationality nurse they captured and enslaved, and she seems to be doing pretty well in her new life. She seems to be checking the sutures on a minor wound to the man's flank. @@ -98,8 +96,6 @@ When you enter the lounge of their barracks, you see $activeSlave.slaveName knee <<if $activeSlave.publicCount>><<set $activeSlave.publicCount += 13>><<else>><<set $activeSlave.publicCount to 13>><</if>> <</if>> -\ -\ You make a habit of dropping in on your mercenaries whenever you get the chance. You have regular meetings with their grizzled captain, of course, but turning up unannounced to get to know them is simply a matter of self-preservation. The better they like you, the more likely they are to think of more than their pay when deciding how to hazard themselves on your behalf. When you enter the lounge of their barracks, you see $activeSlave.slaveName bending over a mercenary with most of his armor stripped off. She's the $activeSlave.nationality nurse they captured and enslaved, and she seems to be doing pretty well in her new life. She seems to be checking the sutures on a minor wound to the man's flank. @@ -107,19 +103,16 @@ When you enter the lounge of their barracks, you see $activeSlave.slaveName bend "Don't squirm," she says quietly. "I'll get you off when I've checked this." He chuckles and holds still; she redresses the wound, stands up, and strips off her fatigue pants. She's no longer young, but her $activeSlave.skin legs are pretty enough. As she swings one leg across the seated mercenary, she continues, "Please sit still and let me do the work. You need to take it easy for a day or two or you'll pop those sutures." Using a hand, she guides herself down onto his stiff prick, eliciting a grunt. She's a strong girl, and rides him without letting any of her weight rest on his hips at all. When he climaxes, she kneels to clean him with her mouth and then heads off to wash. <</if>> -\ + <span id="result"> -<<click "Offer ¤10000 for her">> +<br><<click "Offer ¤10000 for her">> <<replace "#result">> The mercenary laughs at your offered price. "No offense, <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Sir<<else>>Ma'am<</if>>, but no. Even if I wanted to sell her on everyone's behalf for that price, my buddies would kill me for that. She's popular, is $activeSlave.slaveName." <</replace>> <</click>> -<<click "Offer a very generous ¤25000 for her">> +<br><<click "Offer a very generous ¤25000 for her">> <<replace "#result">> - <<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> - <</if>> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <<set $cash -= 25000>> "Huh," says the mercenary. "She's popular, but for that we could probably buy two of her. Might be fun to train a couple of new nurses. Let me ask the boys and girls." He speaks into his helmet for a few minutes, and then turns back to you. "Sold. Enjoy, she's a good fuck." <</replace>> diff --git a/src/uncategorized/pSnatchAndGrabResult.tw b/src/uncategorized/pSnatchAndGrabResult.tw index b3c9b359fef6915005bdcdb34f63c9fe861a7dfa..c875a388e789905d4674ed8fbc013cc61697fd65 100644 --- a/src/uncategorized/pSnatchAndGrabResult.tw +++ b/src/uncategorized/pSnatchAndGrabResult.tw @@ -1,5 +1,5 @@ :: P snatch and grab result - + <<nobr>> <<set $nextButton to "Continue">> @@ -133,7 +133,7 @@ When you state that, apparently, you are, she climbs out of the case, prostrates <<set $saleDescription to 0>>\ <<display "Long Slave Description">>\ - <<set $slaves.push($activeSlave)>>\ + <<AddSlave $activeSlave>>\ <<set $nextLink to "AS Dump">>\ <<set $returnTo to "Random Nonindividual Event">>\ <<display "New Slave Intro">> diff --git a/src/uncategorized/personalAssistantAppearance.tw b/src/uncategorized/personalAssistantAppearance.tw index e03869dd90d7806246fcdc872a70de88f2bafdd8..06beb39e131daef9bda82045fd78cc1272a5cac2 100644 --- a/src/uncategorized/personalAssistantAppearance.tw +++ b/src/uncategorized/personalAssistantAppearance.tw @@ -2,786 +2,950 @@ <<set $seed to random(1,8)>> <<if $assistantAppearance is "monstergirl">> - She's a cute little <<if $arcologies[0].FSSupremacist != "unset">>$arcologies[0].FSSupremacistRace <</if>>monstergirl with <<if $arcologies[0].FSSupremacist != "unset">><<if $arcologies[0].FSSupremacistRace is "black">><<print either("black", "brown", "light brown")>><<elseif $arcologies[0].FSSupremacistRace is "white">><<print either("pale", "tanned", "fair")>><<elseif $arcologies[0].FSSupremacistRace is "latina">><<print either("olive", "brown", "light brown")>><<elseif $arcologies[0].FSSupremacistRace is "indo-aryan" or $arcologies[0].FSSupremacistRace is "malay" or $arcologies[0].FSSupremacistRace is "pacific islander" or $arcologies[0].FSSupremacistRace is "amerindian">><<print either("dark", "light")>><<elseif $arcologies[0].FSSupremacistRace is "asian">><<print either("pale", "dark", "light")>><<elseif $arcologies[0].FSSupremacistRace is "middle eastern" or $arcologies[0].FSSupremacistRace is "semitic" or $arcologies[0].FSSupremacistRace is "southern European">><<print either("pale", "dark", "light")>><</if>><<else>>pale<</if>> skin, perky breasts, green tentacles instead of hair, and two dicks. Her eyes are large, expressive, and surprisingly innocent. - <<if $FSAnnounced == 1>> - <<if $assistantFSAppearance is "paternalist">> +She's a cute little <<if $arcologies[0].FSSupremacist != "unset">>$arcologies[0].FSSupremacistRace <</if>>monstergirl with <<if $arcologies[0].FSSupremacist != "unset">><<if $arcologies[0].FSSupremacistRace is "black">><<print either("black", "brown", "light brown")>><<elseif $arcologies[0].FSSupremacistRace is "white">><<print either("pale", "tanned", "fair")>><<elseif $arcologies[0].FSSupremacistRace is "latina">><<print either("olive", "brown", "light brown")>><<elseif $arcologies[0].FSSupremacistRace is "indo-aryan" or $arcologies[0].FSSupremacistRace is "malay" or $arcologies[0].FSSupremacistRace is "pacific islander" or $arcologies[0].FSSupremacistRace is "amerindian">><<print either("dark", "light")>><<elseif $arcologies[0].FSSupremacistRace is "asian">><<print either("pale", "dark", "light")>><<elseif $arcologies[0].FSSupremacistRace is "middle eastern" or $arcologies[0].FSSupremacistRace is "semitic" or $arcologies[0].FSSupremacistRace is "southern European">><<print either("pale", "dark", "light")>><</if>><<else>>pale<</if>> skin, perky breasts, green tentacles instead of hair, and two dicks. Her eyes are large, expressive, and surprisingly innocent. + <<if $assistantFSOptions>> + <<switch $assistantFSAppearance>> + <<case "paternalist">> She's wearing a surprisingly conservative outfit: khakis, a sweater, and eyeglasses. - <<elseif $assistantFSAppearance is "degradationist">> + <<case "degradationist">> She's sharpened her appearance to be quite frightening: she has impressive fangs, and a snakelike tongue flicks out between them. - <<elseif $assistantFSAppearance is "roman revivalist">> + <<case "roman revivalist">> She's wearing a conservative stola, which combined with her monstrous appearance makes her look like a Greek demigoddess. - <<elseif $assistantFSAppearance is "egyptian revivalist">> + <<case "egyptian revivalist">> She's wearing golden jewelry and a Pharaoh's beard, which combined with her animal characteristics makes her look like an Egyptian deity. - <<elseif $assistantFSAppearance is "edo revivalist">> + <<case "edo revivalist">> She's given her appearance a Japanese style, making her look like a demon. - <<elseif $assistantFSAppearance is "arabian revivalist">> + <<case "arabian revivalist">> She's given her appearance a mystical Arabian style, making her look like a djinn. - <<elseif $assistantFSAppearance is "chinese revivalist">> + <<case "chinese revivalist">> She's given her appearance a Chinese style, making her look like a demon. - <<elseif $assistantFSAppearance is "chattel religionist">> + <<case "chattel religionist">> She's wearing the garb of a priestess of the new faith, which clashes amusingly with her demonic appearance. - <<elseif $assistantFSAppearance is "repopulation focus">> + <<case "repopulation focus">> She's very pregnant, her belly is covered in large bulges revealing the eggs growing within her. - <<elseif $assistantFSAppearance is "eugenics">> + <<case "eugenics">> She's wearing a complex chastity device, keeping her dicks and cunt unusable. - <<elseif $assistantFSAppearance is "physical idealist">> + <<case "physical idealist">> She's quite muscular, and behaves with total confidence. - <<elseif $assistantFSAppearance is "gender radicalist">> + <<case "gender radicalist">> She's accentuated her androgyny, with her tits and her cocks her only obvious gendered traits. - <<elseif $assistantFSAppearance is "gender fundamentalist">> + <<case "gender fundamentalist">> She's made herself as cute as a demonic little creature with cocks and tentacle hair can possibly be. - <<elseif $assistantFSAppearance is "asset expansionist">> + <<case "asset expansionist">> She's increased the size of her assets recently: her cocks are so large that she can give them a blowjob, and her boobs are so big she can give herself a titjob at the same time. - <<elseif $assistantFSAppearance is "transformation fetishist">> + <<case "transformation fetishist">> She's made herself even stranger recently: her nipples look suspiciously like dicks, and she has horns growing out of her feet to form high heels. - <<elseif $assistantFSAppearance is "pastoralist">> + <<case "pastoralist">> She's lactating, though her product is a suspiciously semen-like substance she usually drinks herself. - <<elseif $assistantFSAppearance is "maturity preferentialist">> + <<case "maturity preferentialist">> She's quite mature: she wears a haughty expression, and her cheekbones are like knifeblades. - <<elseif $assistantFSAppearance is "youth preferentialist">> + <<case "youth preferentialist">> She's surprisingly young: her tentacle hair is quite short, and her horns are still little nubs. - <<elseif $assistantFSAppearance is "slimness enthusiast">> + <<case "slimness enthusiast">> She's recently altered her appearance to be slimmer and more athletic. - <<elseif $assistantFSAppearance is "body purist">> + <<case "body purist">> She's recently improved her appearance to complete flawlessness, with milky white skin and buffed horns. + <</switch>> <</if>> - <</if>> - <<if ($cockFeeder == 1) && ($seed == 1)>> +<<if ($cockFeeder == 1) && ($seed == 1)>> A recognizable little representation of one of your slaves is down on its knees in front of her, busily sucking off one of her cocks. The slave must be down in the kitchen, getting a meal out of the phallic food dispensers. As you watch, the monstergirl orgasms copiously, her tentacle hair caressing her own breasts. - <<elseif ($suppository == 1) && ($seed is 2)>> +<<elseif ($suppository == 1) && ($seed is 2)>> A recognizable little representation of one of your slaves is down on its knees in front of her, taking both of her cocks up its ass. The slave must be receiving her drugs from one of the dildo dispensers. As you watch, the monstergirl looks up at you, winks, and then maliciously increases her pace, making the depiction of the slave wince. - <<elseif ($masturbationAllowed == 1) && ($seed is 3)>> +<<elseif ($masturbationAllowed == 1) && ($seed is 3)>> She's manually stimulating a recognizable little representation of one of your slaves. The slave must be using one of the penthouse's many vibrators. The monstergirl is looking after herself, too, tweaking her nipples with her own tentacle hair. - <<elseif ($seed is 4)>> +<<elseif ($seed is 4)>> A recognizable little representation of one of your slaves is lying with its head in her lap. The monstergirl is wearing a little stethoscope and is listening to the slave breathe; the slave must be getting a checkup. The monstergirl is restraining herself for once, and her hair is even patting the slave's head reassuringly. - <<elseif ($seed is 5) && ($invasionVictory > 0)>> +<<elseif ($seed is 5) && ($invasionVictory > 0)>> The monstergirl is riding around on a little representation of one of your security drones. She's very obviously enjoying the drone's vibrations as it hovers. When she sees you looking at her, she giggles and says, "What? I like him! He did really well during the invasion. And he's cute!" - <<elseif ($seed is 6) && ($studio == 1)>> +<<elseif ($seed is 6) && ($studio == 1)>> The monstergirl has both her dicks inside a recognizable little representation of one of your slaves, and is using a handheld camera to film the action, gonzo style. The slave must be using one of the penthouse's many vibrators, and $assistantName is clearly turning the feed of it into porn. - <<elseif ($seed is 7) && ($marketAssistantAnnounced == 1)>> - She's accompanied by your market assistant's very human avatar. - <<if $marketAssistantRelationship is "cute">> - They're chatting companionably, with the girl showing no sign of noticing that she's talking to a naked monstergirl with two erect cocks. - <<elseif $marketAssistantRelationship is "nonconsensual">> - $assistantName is holding the poor girl down so she can take her from behind. As you watch, $assistantName extracts her cock from the market assistant's avatar's cunt and stuffs it up her ass, alongside her other dick, eliciting some terrified begging and then tired sobbing. - <<elseif $marketAssistantRelationship is "incestuous">> - They're fucking openly, with the market assistant's avatar bouncing greedily on top of her monstrous sibling. She's clearly enjoying the feeling of her sister's cocks buried in her holes. - <<else>> - They're cuddled up close. As they kiss, $assistantName's tentacle hair holds her lover's head gently. The market assistant's avatar is using both hands to give $assistantName's cocks some manual release. - <</if>> +<<elseif ($seed is 7) && ($marketAssistantAnnounced == 1)>> + She's accompanied by your market assistant's very human avatar. + <<if $marketAssistantRelationship is "cute">> + They're chatting companionably, with the girl showing no sign of noticing that she's talking to a naked monstergirl with two erect cocks. + <<elseif $marketAssistantRelationship is "nonconsensual">> + $assistantName is holding the poor girl down so she can take her from behind. As you watch, $assistantName extracts her cock from the market assistant's avatar's cunt and stuffs it up her ass, alongside her other dick, eliciting some terrified begging and then tired sobbing. + <<elseif $marketAssistantRelationship is "incestuous">> + They're fucking openly, with the market assistant's avatar bouncing greedily on top of her monstrous sibling. She's clearly enjoying the feeling of her sister's cocks buried in her holes. <<else>> - She's sitting crosslegged, looking up at you and waiting for instructions. In the meantime, she's masturbating gently, a dickhead in each hand, while her hair writhes against itself. + They're cuddled up close. As they kiss, $assistantName's tentacle hair holds her lover's head gently. The market assistant's avatar is using both hands to give $assistantName's cocks some manual release. <</if>> +<<else>> + She's sitting crosslegged, looking up at you and waiting for instructions. In the meantime, she's masturbating gently, a dickhead in each hand, while her hair writhes against itself. +<</if>> + <<elseif $assistantAppearance is "shemale">> - She's a cute little <<if $arcologies[0].FSSupremacist != "unset">>$arcologies[0].FSSupremacistRace <</if>>bimbo shemale with blonde hair, <<if $arcologies[0].FSSupremacist != "unset">><<if $arcologies[0].FSSupremacistRace is "black">><<print either("black", "brown", "light brown")>><<elseif $arcologies[0].FSSupremacistRace is "white">><<print either("tanned", "fair")>><<elseif $arcologies[0].FSSupremacistRace is "latina">><<print either("olive", "brown", "light brown")>><<elseif $arcologies[0].FSSupremacistRace is "indo-aryan" or $arcologies[0].FSSupremacistRace is "malay" or $arcologies[0].FSSupremacistRace is "pacific islander" or $arcologies[0].FSSupremacistRace is "amerindian">><<print either("dark", "tanned")>><<elseif $arcologies[0].FSSupremacistRace is "asian">><<print either("dark", "tanned")>><<elseif $arcologies[0].FSSupremacistRace is "middle eastern" or $arcologies[0].FSSupremacistRace is "semitic" or $arcologies[0].FSSupremacistRace is "southern European">><<print either("dark", "tanned")>><</if>><<else>>tanned<</if>> skin, huge lips, and ridiculous tits. Her cock hangs past her knees when limp. - <<if $FSAnnounced == 1>> - <<if $assistantFSAppearance is "paternalist">> +She's a cute little <<if $arcologies[0].FSSupremacist != "unset">>$arcologies[0].FSSupremacistRace <</if>>bimbo shemale with blonde hair, <<if $arcologies[0].FSSupremacist != "unset">><<if $arcologies[0].FSSupremacistRace is "black">><<print either("black", "brown", "light brown")>><<elseif $arcologies[0].FSSupremacistRace is "white">><<print either("tanned", "fair")>><<elseif $arcologies[0].FSSupremacistRace is "latina">><<print either("olive", "brown", "light brown")>><<elseif $arcologies[0].FSSupremacistRace is "indo-aryan" or $arcologies[0].FSSupremacistRace is "malay" or $arcologies[0].FSSupremacistRace is "pacific islander" or $arcologies[0].FSSupremacistRace is "amerindian">><<print either("dark", "tanned")>><<elseif $arcologies[0].FSSupremacistRace is "asian">><<print either("dark", "tanned")>><<elseif $arcologies[0].FSSupremacistRace is "middle eastern" or $arcologies[0].FSSupremacistRace is "semitic" or $arcologies[0].FSSupremacistRace is "southern European">><<print either("dark", "tanned")>><</if>><<else>>tanned<</if>> skin, huge lips, and ridiculous tits. Her cock hangs past her knees when limp. + <<if $assistantFSOptions>> + <<switch $assistantFSAppearance>> + <<case "paternalist">> She's made herself up to look a bit more classy recently: she has elegant fake nails, and has her hair piled up on her head. - <<elseif $assistantFSAppearance is "degradationist">> + <<case "degradationist">> She's made herself up to look almost comically evil: she's wearing black lipstick, black eyeliner, and a black barbed cockring. - <<elseif $assistantFSAppearance is "roman revivalist">> + <<case "roman revivalist">> She's taken to reclining on a traditional Roman couch and drinking wine out of a shallow dish. - <<elseif $assistantFSAppearance is "egyptian revivalist">> + <<case "egyptian revivalist">> She's wearing an Egyptian melting perfume cake on her head. - <<elseif $assistantFSAppearance is "edo revivalist">> + <<case "edo revivalist">> She's wearing a brief Japanese bathhouse robe. - <<elseif $assistantFSAppearance is "arabian revivalist">> + <<case "arabian revivalist">> She's dressed herself like an oil millionare, with aviator sunglasses and a headscarf. - <<elseif $assistantFSAppearance is "chinese revivalist">> + <<case "chinese revivalist">> She's added various tattoos of rude Chinese characters to her body recently. - <<elseif $assistantFSAppearance is "chattel religionist">> + <<case "chattel religionist">> She's wearing the garb of a priestess of the new faith, which frames her cock prominently. - <<elseif $assistantFSAppearance is "physical idealist">> + <<case "physical idealist">> She's extremely muscular: she shines with body oil, and her abs have abs. - <<elseif $assistantFSAppearance is "repopulation focus">> + <<case "repopulation focus">> She is incredibly pregnant, her belly preventing her from playing with herself effectively. - <<elseif $assistantFSAppearance is "eugenics">> + <<case "eugenics">> Her sizable dick is restrained in a complicated chastity device. - <<elseif $assistantFSAppearance is "gender radicalist">> + <<case "gender radicalist">> She's rendered her cock in even more loving detail recently, adding a couple of veins and a bead of precum. - <<elseif $assistantFSAppearance is "gender fundamentalist">> + <<case "gender fundamentalist">> She's taken to concealing her dick recently, and cheekily turns away from you to hide it as much as possible. - <<elseif $assistantFSAppearance is "asset expansionist">> + <<case "asset expansionist">> She's increased the size of her assets recently: she's increased the girth of her dick until it's as thick as one of her arms, and her boobs are the size of beach balls. - <<elseif $assistantFSAppearance is "transformation fetishist">> + <<case "transformation fetishist">> Her tits, ass and lips are carefully rendered to make them look fake. - <<elseif $assistantFSAppearance is "pastoralist">> + <<case "pastoralist">> She's lactating, and her orgasms produce comically powerful jets of cum. - <<elseif $assistantFSAppearance is "maturity preferentialist">> + <<case "maturity preferentialist">> She's quite mature, with a lean face that accentuates her cheekbones. - <<elseif $assistantFSAppearance is "youth preferentialist">> + <<case "youth preferentialist">> She's surprisingly young, and looks as innocent as a computer generated image of a girl with a pornstar dick possibly can. - <<elseif $assistantFSAppearance is "slimness enthusiast">> + <<case "slimness enthusiast">> She's recently altered her appearance to be slimmer and more athletic. - <<elseif $assistantFSAppearance is "body purist">> + <<case "body purist">> She's recently improved her appearance to look more natural, with prettier boobs and softer hips. + <</switch>> <</if>> - <</if>> - <<if ($cockFeeder == 1) && ($seed == 1)>> +<<if ($cockFeeder == 1) && ($seed == 1)>> A recognizable little representation of one of your slaves is down on its knees in front of her, gagging on her enormous dick. The slave must be down in the kitchen, getting a meal out of the phallic food dispensers. As you watch, the shemale orgasms; she notices you watching her, and blows you a wet kiss. - <<elseif ($suppository == 1) && ($seed is 2)>> +<<elseif ($suppository == 1) && ($seed is 2)>> A recognizable little representation of one of your slaves is down on its knees in front of her, moaning as it takes her massive prick. The slave must be receiving her drugs from one of the dildo dispensers. As you watch, the shemale looks up at you, winks, and starts pulling out after each thrust, her cock making a popping noise each time it leaves the slave's butthole. - <<elseif ($masturbationAllowed == 1) && ($seed is 3)>> +<<elseif ($masturbationAllowed == 1) && ($seed is 3)>> She's giving a blowjob to a recognizable little representation of one of your slaves. The slave must be using one of the penthouse's many vibrators. The shemale is looking after herself, too, jerking herself off with one hand and playing with her asshole with the other. - <<elseif ($seed is 4)>> +<<elseif ($seed is 4)>> A recognizable little representation of one of your slaves is lying with its head in her lap. The shemale is wearing a little stethoscope and is listening to the slave breathe; the slave must be getting a checkup. The shemale is restraining herself for once, patting the slave's head and cooing reassuringly. - <<elseif ($seed is 5) && ($invasionVictory > 0)>> +<<elseif ($seed is 5) && ($invasionVictory > 0)>> She's masturbating as she takes it up the ass from a representation of one of your security drones, which appears to have a little dildo mounted in place of one of its gun assemblies. When she sees you looking at her, she giggles and says, "What? I like him! He did really well during the invasion." - <<elseif ($seed is 6) && ($studio == 1)>> +<<elseif ($seed is 6) && ($studio == 1)>> The shemale is plowing a recognizable little representation of one of your slaves up the butt, and is using a handheld camera to film the action, gonzo style. The slave must be using one of the penthouse's many vibrators, and $assistantName is clearly turning the feed of it into porn. - <<elseif ($seed is 7) && ($marketAssistantAnnounced == 1)>> - She's accompanied by your market assistant's own shemale avatar. - <<if $marketAssistantRelationship is "cute">> - They're jerking each other off companionably, since that's as close to chaste friendship as the lewd little shemales get. They chat girlishly, as though they weren't engaged in open mutual masturbation. - <<elseif $marketAssistantRelationship is "nonconsensual">> - $assistantName is bouncing the poor bitch up and down on her dick, the market assistant's pathetic, limp dick flopping around as $assistantName assrapes her. As you watch, $assistantName reaches around to give the market assistant's soft balls a possessive squeeze. - <<elseif $marketAssistantRelationship is "incestuous">> - They're locked in a tight, perfectly symmetrical incestuous 69, each of their monstrous cocks deepthroated a long way inside her sister's mouth. They spasm with simultaneous orgasm, gulping each other's cum greedily. - <<else>> - They're doing it in the missionary position, kissing deeply. The one who's taking it has her huge dick between them, its head crushed between their four fake breasts. As you watch, she orgasms, splashing both of their faces with cum. - <</if>> +<<elseif ($seed is 7) && ($marketAssistantAnnounced == 1)>> + She's accompanied by your market assistant's own shemale avatar. + <<if $marketAssistantRelationship is "cute">> + They're jerking each other off companionably, since that's as close to chaste friendship as the lewd little shemales get. They chat girlishly, as though they weren't engaged in open mutual masturbation. + <<elseif $marketAssistantRelationship is "nonconsensual">> + $assistantName is bouncing the poor bitch up and down on her dick, the market assistant's pathetic, limp dick flopping around as $assistantName assrapes her. As you watch, $assistantName reaches around to give the market assistant's soft balls a possessive squeeze. + <<elseif $marketAssistantRelationship is "incestuous">> + They're locked in a tight, perfectly symmetrical incestuous 69, each of their monstrous cocks deepthroated a long way inside her sister's mouth. They spasm with simultaneous orgasm, gulping each other's cum greedily. <<else>> - She's sitting crosslegged, bending down to suck herself off and looking up at you at the same time. When she sees your attention she lets her dick pop free of her mouth and waits for a moment to see if you have instructions for her, and then goes back to autofellatio. + They're doing it in the missionary position, kissing deeply. The one who's taking it has her huge dick between them, its head crushed between their four fake breasts. As you watch, she orgasms, splashing both of their faces with cum. <</if>> +<<else>> + She's sitting crosslegged, bending down to suck herself off and looking up at you at the same time. When she sees your attention she lets her dick pop free of her mouth and waits for a moment to see if you have instructions for her, and then goes back to autofellatio. +<</if>> + <<elseif $assistantAppearance is "amazon">> She's a cute little <<if $arcologies[0].FSSupremacist != "unset">>$arcologies[0].FSSupremacistRace <</if>>amazon - <<if $FSAnnounced == 1>> - <<if $assistantFSAppearance is "paternalist">> + <<if $assistantFSOptions>> + <<switch $assistantFSAppearance>> + <<case "paternalist">> with flaming red hair, tribal tattoos, shredded abs, and bone jewelry. She has bigger natural tits than anyone that ripped could possibly maintain. - <<elseif $assistantFSAppearance is "repopulation focus">> + <<case "repopulation focus">> with an enormous belly. Its oversized occupant kicks and squirms ferociously, eager to be born. - <<elseif $assistantFSAppearance is "eugenics">> + <<case "eugenics">> with a complex bone chastity belt blocking her vagina. - <<elseif $assistantFSAppearance is "degradationist">> + <<case "degradationist">> with ochre-dyed dreadlocks, war tattoos, shredded abs, and jewelry made from human bones. She has bigger natural tits than anyone that ripped could possibly maintain. - <<elseif $assistantFSAppearance is "roman revivalist">> + <<case "roman revivalist">> wearing the armor of a Roman auxilia, complete with lorica hamata and oval shield painted with your arcology's symbols. - <<elseif $assistantFSAppearance is "egyptian revivalist">> + <<case "egyptian revivalist">> wearing a simple white linen dress, kohl eyeshadow, and sandals, making her look like a barbarian immigrant to the land of the Nile. - <<elseif $assistantFSAppearance is "edo revivalist">> + <<case "edo revivalist">> wearing a Japanese warrior's robe with a pair of swords tucked into its sash. - <<elseif $assistantFSAppearance is "arabian revivalist">> + <<case "arabian revivalist">> with a bare chest, loose pantaloons, and a broad silk sash wound around her waist with a scimitar thrust into it. - <<elseif $assistantFSAppearance is "chinese revivalist">> + <<case "chinese revivalist">> wearing loose silk robes belted with rope and carrying a simple warrior monk's staff. - <<elseif $assistantFSAppearance is "chattel religionist">> + <<case "chattel religionist">> wearing a crusader's mail. Her long blonde hair cascades down the back of her surcoat in golden glory. - <<elseif $assistantFSAppearance is "physical idealist">> + <<case "physical idealist">> whose muscles are lovingly rendered in lifelike detail. - <<elseif $assistantFSAppearance is "gender radicalist">> + <<case "gender radicalist">> who is so heavily muscled that she's become quite androgynous lately. - <<elseif $assistantFSAppearance is "gender fundamentalist">> + <<case "gender fundamentalist">> whose heavy musculature does not detract from her feminine beauty. - <<elseif $assistantFSAppearance is "asset expansionist">> + <<case "asset expansionist">> who's almost musclebound. - <<elseif $assistantFSAppearance is "transformation fetishist">> + <<case "transformation fetishist">> who's almost musclebound. - <<elseif $assistantFSAppearance is "pastoralist">> + <<case "pastoralist">> wearing jean overalls, a plaid shirt whose sleeves are strained by her biceps, and rubber boots, and has a cowboy hat pushed back on her pretty head. - <<elseif $assistantFSAppearance is "maturity preferentialist">> + <<case "maturity preferentialist">> with streaks of grey running through her flaming red hair. She has bigger natural tits than anyone that ripped could possibly maintain. - <<elseif $assistantFSAppearance is "youth preferentialist">> + <<case "youth preferentialist">> with whose innocent appearance belies her heavy muscles. She has bigger natural tits than anyone that ripped could possibly maintain. - <<elseif $assistantFSAppearance is "slimness enthusiast">> + <<case "slimness enthusiast">> with flaming red hair, tribal tattoos, shredded abs, and bone jewelry. Her perky boobs are usually concealed by her ornaments. - <<elseif $assistantFSAppearance is "body purist">> + <<case "body purist">> with a realistic tribeswoman's garb of woven jewelry and shell beads. She has bigger natural tits than anyone that ripped could possibly maintain. - <<else>> + <<default>> with flaming red hair, tribal tattoos, shredded abs, and bone jewelry. She has bigger natural tits than anyone that ripped could possibly maintain. - <</if>> + <</switch>> <<else>> with flaming red hair, tribal tattoos, shredded abs, and bone jewelry. She has bigger natural tits than anyone that ripped could possibly maintain. <</if>> - <<if ($cockFeeder == 1) && ($seed == 1)>> +<<if ($cockFeeder == 1) && ($seed == 1)>> A recognizable little representation of one of your slaves is down on its knees in front of her, eating her out. The slave must be down in the kitchen, getting a meal out of the food dispensers. As you watch, the amazon orgasms, producing a little female barbarian shout. - <<elseif ($suppository == 1) && ($seed is 2)>> +<<elseif ($suppository == 1) && ($seed is 2)>> A recognizable little representation of one of your slaves is down on its knees in front of her, letting the amazon use two fingers on her butthole. The slave must be receiving her drugs from one of the dildo dispensers. As you watch, the amazon looks up at you, winks, and shoves her entire hand up the struggling slave's ass. - <<elseif ($masturbationAllowed == 1) && ($seed is 3)>> +<<elseif ($masturbationAllowed == 1) && ($seed is 3)>> She's holding a recognizable little representation of one of your slaves in her lap, giving her a powerful handjob. The slave must be using one of the penthouse's many vibrators. The slave gets off and collapses, exhausted. - <<elseif ($seed is 4)>> +<<elseif ($seed is 4)>> A recognizable little representation of one of your slaves is lying with its head in her lap. The amazon is poking and prodding her; the slave must be getting a checkup. Once finished, the amazon gives her a powerful massage, making the slave groan with relief. - <<elseif ($seed is 5) && ($invasionVictory > 0)>> +<<elseif ($seed is 5) && ($invasionVictory > 0)>> She's leaning against a representation of one of your security drones. Every so often, she wrestles with it affectionately. When she sees you watching her, she leaps atop the drone, puts her fists on her hips, and says, "What? I like him! He did really well during the invasion. And he's cute!" - <<elseif ($seed is 6) && ($studio == 1)>> +<<elseif ($seed is 6) && ($studio == 1)>> The amazon has her hand inside a recognizable little representation of one of your slaves, and is using a handheld camera to film the action, gonzo style. The slave must be using one of the penthouse's many vibrators, and $assistantName is clearly turning the feed of it into porn. - <<elseif ($seed is 7) && ($marketAssistantAnnounced == 1)>> - She's accompanied by your market assistant's tribeswoman avatar. - <<if $marketAssistantRelationship is "cute">> - They're chatting companionably as $assistantName stretches and the market assistant's avatar does a complex calculation on her fingers. $assistantName is telling a long story, and the market assistant is listening kindly. - <<elseif $marketAssistantRelationship is "nonconsensual">> - $assistantName is taking her tribal slave from behind. It's technically tribbing, since all she's doing is grinding her cunt against the market assistants', but the poor little tribeswoman is being fucked hard regardless. - <<elseif $marketAssistantRelationship is "incestuous">> - $assistantName is getting some manual stimulation from her sister, who is watching her muscular sibling's aroused thrashing with amusement as she slides her whole hand in and out of $assistantName's cunt. - <<else>> - They're doing it in the missionary position, kissing deeply. They're technically tribbing, but $assistantName's muscular body and the tribeswoman's wifely form make it look very pure and traditional. - <</if>> +<<elseif ($seed is 7) && ($marketAssistantAnnounced == 1)>> + She's accompanied by your market assistant's tribeswoman avatar. + <<if $marketAssistantRelationship is "cute">> + They're chatting companionably as $assistantName stretches and the market assistant's avatar does a complex calculation on her fingers. $assistantName is telling a long story, and the market assistant is listening kindly. + <<elseif $marketAssistantRelationship is "nonconsensual">> + $assistantName is taking her tribal slave from behind. It's technically tribbing, since all she's doing is grinding her cunt against the market assistants', but the poor little tribeswoman is being fucked hard regardless. + <<elseif $marketAssistantRelationship is "incestuous">> + $assistantName is getting some manual stimulation from her sister, who is watching her muscular sibling's aroused thrashing with amusement as she slides her whole hand in and out of $assistantName's cunt. <<else>> - She's doing pushups, glancing at you at the top of each rep to see if you need her. When she sees your attention, she pushes hard enough to bounce to a standing position. Seeing that you're just looking, she winks, flexes, and drops back down to do crunches. + They're doing it in the missionary position, kissing deeply. They're technically tribbing, but $assistantName's muscular body and the tribeswoman's wifely form make it look very pure and traditional. <</if>> +<<else>> + She's doing pushups, glancing at you at the top of each rep to see if you need her. When she sees your attention, she pushes hard enough to bounce to a standing position. Seeing that you're just looking, she winks, flexes, and drops back down to do crunches. +<</if>> + <<elseif $assistantAppearance is "businesswoman">> She's a cute little <<if $arcologies[0].FSSupremacist != "unset">>$arcologies[0].FSSupremacistRace <</if>>businesswoman - <<if $FSAnnounced == 1>> - <<if $assistantFSAppearance is "paternalist">> + <<if $assistantFSOptions>> + <<switch $assistantFSAppearance>> + <<case "paternalist">> wearing a perfectly-tailored suit, with her silver-blonde hair brushed back over her shoulders. Her clothes are conservative, but they can't hide her generous curves. - <<elseif $assistantFSAppearance is "degradationist">> + <<case "degradationist">> wearing an iron-gray suit, with her hair up in a severe bun. She's wearing deep red lipstick and a predatory expression. - <<elseif $assistantFSAppearance is "roman revivalist">> + <<case "roman revivalist">> wearing a fine stola appropriate for a respectable Roman lady, with her hair up in a complicated style. - <<elseif $assistantFSAppearance is "egyptian revivalist">> + <<case "egyptian revivalist">> wearing a simple white linen dress, kohl eyeshadow, sandals, and a serene expression. - <<elseif $assistantFSAppearance is "edo revivalist">> + <<case "edo revivalist">> wearing a fine kimono, getae, tabi, and an expression of perfect serenity. - <<elseif $assistantFSAppearance is "arabian revivalist">> + <<case "arabian revivalist">> wearing a tailored suit, a silk headscarf, and aviator sunglasses, making her look like a little oil heiress. - <<elseif $assistantFSAppearance is "chinese revivalist">> + <<case "chinese revivalist">> wearing a conservative silk qipao. Her hair is pulled back into a bun and secured by a couple of chopsticks. - <<elseif $assistantFSAppearance is "chattel religionist">> + <<case "chattel religionist">> wearing a tailored suit. She has a prominent religious symbol on a necklace that rests over her generous bosom. - <<elseif $assistantFSAppearance is "physical idealist">> + <<case "physical idealist">> wearing a tailored suit. She's proportioned to make it very obvious that she works out. - <<elseif $assistantFSAppearance is "repopulation focus">> + <<case "repopulation focus">> wearing a nice suit, it's tailored to contain her pregnant belly. - <<elseif $assistantFSAppearance is "eugenics">> + <<case "eugenics">> wearing a nice suit. The outline of a chastity device worn under her suit is quite visible. - <<elseif $assistantFSAppearance is "gender radicalist">> + <<case "gender radicalist">> wearing a nice suit. She's changed her appearance recently to make herself quite androgynous. - <<elseif $assistantFSAppearance is "gender fundamentalist">> + <<case "gender fundamentalist">> wearing a nice suit. She's changed her appearance recently to make herself more feminine, with a softer expression and a pretty fall of silver-blonde hair over one shoulder. - <<elseif $assistantFSAppearance is "asset expansionist">> + <<case "asset expansionist">> wearing a nice suit, which is tailored to fit her despite the fact that she has breasts almost as large as she is. - <<elseif $assistantFSAppearance is "transformation fetishist">> + <<case "transformation fetishist">> wearing a nice suit over tits that are carefully rendered to be high and perfect enough to give the impression of being implants. - <<elseif $assistantFSAppearance is "pastoralist">> + <<case "pastoralist">> wearing a suit jacket over a plaid shirt and jeans. - <<elseif $assistantFSAppearance is "maturity preferentialist">> + <<case "maturity preferentialist">> wearing a nice suit. She's allowed her appearance to become more mature recently, letting her hair go gray and adding attractive aging to her face. - <<elseif $assistantFSAppearance is "youth preferentialist">> + <<case "youth preferentialist">> wearing a nice suit. She's improved her appearance to look younger recently, bringing her hair to full blonde and wearing softer shades of lipstick. - <<elseif $assistantFSAppearance is "slimness enthusiast">> + <<case "slimness enthusiast">> wearing a nice suit. She looks youthful, despite her severe expression, and her boobs are elegantly small. - <<elseif $assistantFSAppearance is "body purist">> + <<case "body purist">> in a suit. She's recently improved her appearance to look more natural, with a single stray tress of hair escaping her bun to run prettily down her chest. - <<else>> + <<default>> wearing a nice suit, with chopsticks holding her silver hair back in a bun. Her clothes are conservative, but they can't hide her generous curves. - <</if>> + <</switch>> <<else>> wearing a nice suit, with chopsticks holding her silver hair back in a bun. Her clothes are conservative, but they can't hide her generous curves. <</if>> - <<if ($cockFeeder == 1) && ($seed == 1)>> +<<if ($cockFeeder == 1) && ($seed == 1)>> A recognizable little representation of one of your slaves has its head under the front of her skirt, and is eating her out. The slave must be down in the kitchen, getting a meal out of the food dispensers. The businesswoman notices you watching and winks, running a possessive hand through the slave's hair. - <<elseif ($suppository == 1) && ($seed is 2)>> +<<elseif ($suppository == 1) && ($seed is 2)>> A recognizable little representation of one of your slaves is down on its knees in front of her, and the businesswoman is using a big strap-on on the poor slave's butt. The slave must be receiving her drugs from one of the dildo dispensers. The businesswoman notices you watching her and gives you a cheerful little wave, ignoring the slave's distress. - <<elseif ($masturbationAllowed == 1) && ($seed is 3)>> +<<elseif ($masturbationAllowed == 1) && ($seed is 3)>> She's fucking a recognizable little representation of one of your slaves with a strap-on, which the slave is obviously enjoying. The slave must be using one of the penthouse's many vibrators. She sees you watching and whispers something in the slave's ear; the slave looks up at you and blushes. - <<elseif ($seed is 4)>> +<<elseif ($seed is 4)>> A recognizable little representation of one of your slaves is lying with its head in her lap. The businesswoman is wearing a little stethoscope and is listening to the slave breathe; the slave must be getting a checkup. The businesswoman is taking notes on a tablet; she nods in satisfaction. - <<elseif ($seed is 5) && ($invasionVictory > 0)>> +<<elseif ($seed is 5) && ($invasionVictory > 0)>> She's sitting primly next to a representation of one of your security drone, working on a little tablet. Every so often, she reaches over and rubs the drone's upper armor affectionately. When she sees you looking at her, she blushes and says, "I like this one. He did very well during the invasion. And he's so handsome!" - <<elseif ($seed is 6) && ($studio == 1)>> +<<elseif ($seed is 6) && ($studio == 1)>> She's using a strap-on on a recognizable little representation of one of your slaves, and is using a handheld camera to film the action, gonzo style. The slave must be using one of the penthouse's many vibrators, and $assistantName is clearly turning the feed of it into porn. - <<elseif ($seed is 7) && ($marketAssistantAnnounced == 1)>> - She's accompanied by your market assistant's own businesslike avatar. - <<if $marketAssistantRelationship is "cute">> - They're gossiping tipsily over martinis, their heels kicked off and their jackets unbuttoned. They trade stories from their day, laughing at your slaves' struggles. - <<elseif $marketAssistantRelationship is "nonconsensual">> - $assistantName is shamelessly molesting the office intern. The market assistant looks like she's trying to get work done, but the sexually aggressive MILF avatar is standing behind her with one hand down the market assistant's skirt and another down her blouse. - <<elseif $marketAssistantRelationship is "incestuous">> - $assistantName is getting oral sex from her daughter, the naked businesswomen surrounded by their discarded office wear. As you watch, $assistantName shrieks her daughter's name, clutching her head in both hands. - <<else>> - They're making out in a surprisingly girlish way, hesitantly kissing each other and pressing their chests together. They blush when they see you watching them, but $assistantName is sneaking a hand up the market assistant's avatar's skirt. - <</if>> +<<elseif ($seed is 7) && ($marketAssistantAnnounced == 1)>> + She's accompanied by your market assistant's own businesslike avatar. + <<if $marketAssistantRelationship is "cute">> + They're gossiping tipsily over martinis, their heels kicked off and their jackets unbuttoned. They trade stories from their day, laughing at your slaves' struggles. + <<elseif $marketAssistantRelationship is "nonconsensual">> + $assistantName is shamelessly molesting the office intern. The market assistant looks like she's trying to get work done, but the sexually aggressive MILF avatar is standing behind her with one hand down the market assistant's skirt and another down her blouse. + <<elseif $marketAssistantRelationship is "incestuous">> + $assistantName is getting oral sex from her daughter, the naked businesswomen surrounded by their discarded office wear. As you watch, $assistantName shrieks her daughter's name, clutching her head in both hands. <<else>> - She's sitting at a little desk of her own, working away. She glances up to check on you and sees you looking at her, and flashes you a confident, pearly white smile before returning to her business. - <</if>> -<<elseif $assistantAppearance is "fairy">> - She's a cute little fairy - <<if $FSAnnounced is 1>> - <<if $assistantFSAppearance is "paternalist">> - wearing a well-sewn blue dress, with a large red bow tied to the back of her waist length golden-blonde hair. She looks like a little Bucuretsi doll. - <<elseif $assistantFSAppearance is "degradationist">> - wearing her birthday suit, with her hair in a mess. - <<elseif $assistantFSAppearance is "roman revivalist">> - wearing a small handkercheif wrapped around her like a toga, with one tiny breast sticking out. A wreath made of twisted clovers sits on her head. - <<elseif $assistantFSAppearance is "egyptian revivalist">> - wearing a simple white linen dress and has eyeshadow poorly applied around her eyes. - <<elseif $assistantFSAppearance is "edo revivalist">> - wearing a fine kimono and holding a little fan. She looks like a little Hina doll. - <<elseif $assistantFSAppearance is "arabian revivalist">> - wearing a strip of silk as a dress. - <<elseif $assistantFSAppearance is "chinese revivalist">> - wearing a silk cheongsam with a little green cap on her head. Her hair is braided on the sides. She looks like a figurine from some kind of game. - <<elseif $assistantFSAppearance is "chattel religionist">> - wearing a little gold-white habit. - <<elseif $assistantFSAppearance is "physical idealist">> - wearing a training bra and spats. She has abs poorly drawn on her belly with a marker. - <<elseif $assistantFSAppearance is "repopulation focus">> - wearing a simple dress. Her belly appears to be swollen and ready to burst, but a quick lift of her skirt shows that she's smuggling a grape under there. - <<elseif $assistantFSAppearance is "gender radicalist">> - wearing a pair of pants. Just the pants. - <<elseif $assistantFSAppearance is "gender fundamentalist">> - wearing a well-sewn blue dress, with a large red bow tied to the back of her waist length golden-blonde hair. She looks like a little Bucuretsi doll. - <<elseif $assistantFSAppearance is "asset expansionist">> - wearing a pair of pants and a t-shirt. She has two blueberries stuffed into the front of her shirt. - <<elseif $assistantFSAppearance is "transformation fetishist">> - naked and covered in jelly. She's pretending to be a slime. - <<elseif $assistantFSAppearance is "pastoralist">> - wearing only a pair of overalls. The overalls are just loose enough to let her nearly flat chest to peek out when she turns or bends over. - <<elseif $assistantFSAppearance is "maturity preferentialist">> - wearing an old wool dress and spinning a cane. - <<elseif $assistantFSAppearance is "youth preferentialist">> - wearing a kindergartner's uniform, complete with rain cap and red backpack. - <<elseif $assistantFSAppearance is "slimness enthusiast">> - wearing a handkerchief with a hole in it like a poncho. She looks as slim as usual, with her naked body completely visible from the sides. - <<elseif $assistantFSAppearance is "body purist">> - wearing her birthday suit, with pale unblemished skin on full display and silky golden hair cascading down her back. - <<else>> - wearing her birthday suit, with her nude form obscured by the light she's giving off. Her silky golden hair cascading down her back. - <</if>> - <<else>> - wearing her birthday suit, with her nude form obscured by the light she's giving off. Her silky golden hair cascading down her back. - <</if>> - <<if ($cockFeeder is 1) and ($seed is 1)>> - A recognizable little representation of one of your slaves underneath her, with her tongue sticking out to catch her dripping love juices. The slave must be down in the kitchen, getting a meal out of the food dispensers. The fairy notices you watching and winks, dripping even more with your eyes on her. - <<elseif ($suppository is 1) and ($seed is 2)>> - A recognizable little representation of one of your slaves is sitting upside-down in front of her, and the fairy is slowly teasing the poor slave's butt with a dildo as big as she is. The slave must be receiving her drugs from one of the dildo dispensers. The fairy notices you watching her and gives you a cheerful little wave, twisting the dildo around and humming a tune. - <<elseif ($masturbationAllowed is 1) and ($seed is 3)>> - A recognizable little representation fucks herself with a toy while she twists the control dial around, to the slave's enjoyment. The slave must be using one of the penthouse's many vibrators. She sees you watching and whispers something in the slave's ear; the slave looks up at you and blushes. - <<elseif ($seed is 4)>> - A recognizable little representation of one of your slaves is sitting up. The fairy is wearing a little doctor's coat and has her head pressed to the slave's chest to hear the slave breathe; the slave must be getting a checkup. The fairy is humming happily as she flies over to a tablet to take notes. - <<elseif ($seed is 5) and ($invasionVictory is 1)>> - She's sitting on the shoulders of a representation of one of your security drone. Every so often, she raises a fist and shouts "For the Imperium of man!". When she sees you looking at her, she grins and says, "This guy is like my robo-buddy. He's the best!" - <<elseif ($seed is 6) and ($studio is 1)>> - A recognizable little representation of one of your slaves is riding a sybian while she uses a handheld camera to film the action. The slave must be using one of the penthouse's many toys, and $assistantName is clearly turning the feed of it into porn. - <<elseif ($seed is 7) && ($marketAssistantAnnounced == 1)>> - She's accompanied by your market assistant's own fairy avatar. - <<if $marketAssistantRelationship is "cute">> - The market assistant is sitting on the end of a book, reading from a tablet for ants. $assistantName is lying down next to her, with her head resting on the other fairy's lap and slowly kicking her feet in the air. The market assistant take a moment to look down at $assistantName and gently pat her head. This elicts a big smile from her. - <<elseif $marketAssistantRelationship is "nonconsensual">> - The market assistant is naked and sitting before a thimble, as $assistantName sits behind her, teasing and molesting her. She is rather annoyed by her inability to focus on her work, having her nipples and clit pinched and flicked. Her sopping pussy is constantly letting out a small stream of liquid into the thimble. $assistantName is working hard on extracting as much sweet nectar from the fairy as she can, with every climax she wrings out bringing another large deluge of pussy juice into the vessel. - <<elseif $marketAssistantRelationship is "incestuous">> - The fairy sisters are lying down, each embracing the other as they languidly make out. $assistantName slips one leg in between her sister's, and the two begin rocking against one another. The two grow more and more passionate as they make love together. - <<else>> - The two fairies are sitting on top of a virtual flower, finishing up their work. With that out of the way, they strip down and each take a stamen and give them a thorough licking. Once coated, they line their stamen up to the other fairy's pussy. They take a moment to hold each other's hand as they slowly slide down the stamen. The two bottom out with a moan, and pull each other into a warm embrace. The market assistant starts buzzing her wings, the vibration causing both of them to yelp. $assistantName grins at this new source of pleasure, locking lips with the market assistant as the two beat their wings to a rhythm only they can hear. - <</if>> - <<else>> - She's sitting at the edge of your desk, kicking her feet and humming a pleasant tune. She glances up to check on you and sees you looking at her, and flashes you a great big beautiful smile. - <</if>> - <<elseif $assistantAppearance is "pregnant fairy">> - She's a cute little fairy with a swollen belly - <<if $FSAnnounced is 1>> - <<if $assistantFSAppearance is "paternalist">> - wearing a well-sewn blue dress, with a large red bow tied to the back of her waist length golden-blonde hair. She looks like a little Bucuretsi doll. - <<elseif $assistantFSAppearance is "degradationist">> - wearing her birthday suit, with her hair in a mess. - <<elseif $assistantFSAppearance is "roman revivalist">> - wearing a small handkercheif wrapped around her like a toga, with one tiny milky breast sticking out. A wreath made of twisted clovers sits on her head. - <<elseif $assistantFSAppearance is "egyptian revivalist">> - wearing a simple white linen dress and has eyeshadow poorly applied around her eyes. - <<elseif $assistantFSAppearance is "edo revivalist">> - wearing a fine kimono and holding a little fan. She looks like a little Hina doll. - <<elseif $assistantFSAppearance is "arabian revivalist">> - wearing a strip of silk as a dress. - <<elseif $assistantFSAppearance is "chinese revivalist">> - wearing a silk cheongsam with a little green cap on her head. Her hair is braided on the sides. She looks like a figurine from some kind of game. - <<elseif $assistantFSAppearance is "chattel religionist">> - wearing a little gold-white habit and glowing with purity. - <<elseif $assistantFSAppearance is "physical idealist">> - wearing a training bra and spats. Her large belly sticks out even more. - <<elseif $assistantFSAppearance is "repopulation focus">> - wearing a lovely maternity dress, which shows off her swollen belly. - <<elseif $assistantFSAppearance is "gender radicalist">> - wearing a pair of pants. Just the pants. - <<elseif $assistantFSAppearance is "gender fundamentalist">> - wearing a well-sewn blue dress, with a large red bow tied to the back of her waist length golden-blonde hair. She looks like a little Bucuretsi doll. - <<elseif $assistantFSAppearance is "asset expansionist">> - wearing a pair of pants and a t-shirt. She has two blueberries stuffed into the front of her shirt. - <<elseif $assistantFSAppearance is "transformation fetishist">> - nude and covered in jelly. She's rubbing it all over her swollen belly. - <<elseif $assistantFSAppearance is "pastoralist">> - wearing only a pair of overalls. The overalls are open enough to let her belly pour out. - <<elseif $assistantFSAppearance is "maturity preferentialist">> - wearing an old wool dress and rocking back and forth on a rocking chair, cradling her belly. - <<elseif $assistantFSAppearance is "youth preferentialist">> - wearing a kindergartner's uniform, complete with rain cap and red backpack. Her swollen belly looks out of place. - <<elseif $assistantFSAppearance is "slimness enthusiast">> - wearing a handkerchief with a hole in it like a poncho. Her pregnant belly forces the poncho to spread wide, leaving little of her body to the imagination. - <<elseif $assistantFSAppearance is "body purist">> - wearing her birthday suit, with pale unblemished pregnant belly on full display and silky golden hair cascading down her back. - <<else>> - wearing her birthday suit, with her nude form obscured by the light coming from her belly. Her silky golden hair cascading down her back. + They're making out in a surprisingly girlish way, hesitantly kissing each other and pressing their chests together. They blush when they see you watching them, but $assistantName is sneaking a hand up the market assistant's avatar's skirt. <</if>> - <<else>> - wearing her birthday suit, with her nude form obscured by the light coming from her belly. Her silky golden hair cascading down her back. - <</if>> - <<if ($cockFeeder is 1) and ($seed is 1)>> - A recognizable little representation of one of your slaves beside her, with her tongue scraping across her breast to catchthe beads of milk that flow. The slave must be down in the kitchen, getting a meal out of the food dispensers. The fairy notices you watching and winks, her unattended breast giving out a small spray of milk. - <<elseif ($suppository is 1) and ($seed is 2)>> - A recognizable little representation of one of your slaves is sitting upside-down in front of her, and the fairy is slowly teasing the poor slave's butt with a dildo as big as she is. The slave must be receiving her drugs from one of the dildo dispensers. The fairy notices you watching her and gives you a cheerful little wave, twisting the dildo around and humming a tune. - <<elseif ($masturbationAllowed is 1) and ($seed is 3)>> - A recognizable little representation fucks herself with a toy while she twists the control dial around, to the slave's enjoyment. The slave must be using one of the penthouse's many vibrators. She sees you watching and whispers something in the slave's ear; the slave looks up at you and blushes. - <<elseif ($seed is 4)>> - A recognizable little representation of one of your slaves is sitting up. The fairy is wearing a little doctor's coat, kept open to accommodate for her belly, and has her head pressed to the slave's chest to hear the slave breathe; the slave must be getting a checkup. The fairy is humming happily as she flies over to a tablet to take notes. - <<elseif ($seed is 5) and ($invasionVictory is 1)>> - She's sitting on the shoulders of a representation of one of your security drone. Every so often, she raises a fist and shouts "For the Imperium of man!". When she sees you looking at her, she grins and says, "This guy is like my robo-buddy. He's the best!" - <<elseif ($seed is 6) and ($studio is 1)>> - A recognizable little representation of one of your slaves is riding a sybian while she uses a handheld camera to film the action. The slave must be using one of the penthouse's many toys, and $assistantName is clearly turning the feed of it into porn. - <<elseif ($seed is 7) && ($marketAssistantAnnounced == 1)>> - She's accompanied by your market assistant's own fairy avatar. - <<if $marketAssistantRelationship is "cute">> - The market assistant is sitting on the end of a book, reading from a tablet for ants. $assistantName is sitting beside her, stroking her belly and humming a relaxing tune. - <<elseif $marketAssistantRelationship is "nonconsensual">> - The market assistant is sporting her own smaller baby bump now while. With her top down, $assistantName slowly squeezes and massages her breasts from behind, teasing out tiny droplets of milk, much to her annoyance. She suddenly drops her tablet with a yelp as $assistantName drags her tongue across her ear from root to tip. - <<elseif $marketAssistantRelationship is "incestuous">> - Taking a break, the market assistant sits on $assistantName's lap, nursing away at her lactating breast like a baby. $assistantName coos, keeping on arm to support her sister's back while the other teases her dripping slit. - <<else>> - The two fairies are slowly making out. The market assistant gently lies $assistantName down, guiding kisses down her body. Taking a moment to suckle from each leaking tit, the market assistant continues down her swollen belly before coming to her delicate flower and tenderly eats the pregnant fairy out. - <</if>> - <<else>> - She's sitting at the edge of your desk, cradling her swollen belly and humming a pleasant tune. She glances up to check on you and sees you looking at her, and flashes you a great big beautiful smile. - <</if>> +<<else>> + She's sitting at a little desk of her own, working away. She glances up to check on you and sees you looking at her, and flashes you a confident, pearly white smile before returning to her business. +<</if>> + <<elseif $assistantAppearance is "goddess">> - She's a cute little <<if $arcologies[0].FSSupremacist != "unset">>$arcologies[0].FSSupremacistRace <</if>>fertility goddess, with swollen hips and breasts and a massive pregnant belly. She's nude aside from a crown of flowers, her modesty protected only by her flowing hair. - <<if $assistantFSAppearance is "paternalist">> + She's a cute little <<if $arcologies[0].FSSupremacist != "unset">>$arcologies[0].FSSupremacistRace <</if>>fertility goddess, + <<if $assistantFSOptions>> + <<switch $assistantFSAppearance>> + <<case "paternalist">> with swollen breasts and a big pregnant belly. She wears only a gossamer white camisole over her tanned skin, with a woven crown of daisies. - <<elseif $assistantFSAppearance is "degradationist">> + <<case "degradationist">> with swollen hips and breasts and a huge pregnant belly. She's naked aside from the steel piercings in her protruding clit, navel, and nipples. - <<elseif $assistantFSAppearance is "roman revivalist">> + <<case "roman revivalist">> with swollen hips and a big pregnant belly. She's clothed in a loose stola, with dozens of flowers woven into her curly auburn hair. - <<elseif $assistantFSAppearance is "egyptian revivalist">> + <<case "egyptian revivalist">> wielding an ankh-headed staff. She's wearing a gilded headdress and linen skirt, but leaves her breasts and pregnant stomach bare to gleam like bronze. - <<elseif $assistantFSAppearance is "edo revivalist">> + <<case "edo revivalist">> her swollen hips and pregnant belly loosely wrapped in a red tomesode. Her waterfall of black hair is held by a comb shaped like big pointed fox ears. - <<elseif $assistantFSAppearance is "arabian revivalist">> + <<case "arabian revivalist">> with swollen hips and breasts and a big pregnant belly. She's wrapped herself in white silks, but only the veil around her face is opaque. - <<elseif $assistantFSAppearance is "chinese revivalist">> + <<case "chinese revivalist">> her swollen hips and pregnant belly barely concealed under colorful silk robes, covered in flowers and embroidery. - <<elseif $assistantFSAppearance is "chattel religionist">> + <<case "chattel religionist">> with swollen breasts and a big pregnant belly. She's surrounded by a nimbus of light and flowing platinum hair, like an angel carrying a few new cherubim. - <<elseif $assistantFSAppearance is "physical idealist">> + <<case "physical idealist">> trim and athletic despite her pregnant belly. She's nude aside from a crown of flowers, her modesty protected only by her flowing hair. - <<elseif $assistantFSAppearance is "repopulation focus">> + <<case "repopulation focus">> with swollen breasts and an enormous pregnant belly. She's nude aside from a crown of flowers, her modesty protected only by her flowing hair. - <<elseif $assistantFSAppearance is "eugenics">> + <<case "eugenics">> with swollen hips and breasts and a big pregnant belly. She is completely naked and appears to be downtrodden. Her belly is coated in anti-pregnancy tattoos. - <<elseif $assistantFSAppearance is "gender radicalist">> + <<case "gender radicalist">> although she'd be nearly androgynous without the rounded pregnant belly. Her short hair and flowing robe conceal any other feminine traits. - <<elseif $assistantFSAppearance is "gender fundamentalist">> + <<case "gender fundamentalist">> with swollen hips and breasts and a huge pregnant belly. She's nude aside from a crown of roses, and makes no attempt to cover her radiant body. - <<elseif $assistantFSAppearance is "asset expansionist">> + <<case "asset expansionist">> her big pregnant belly almost eclipsed by her enormous breasts. She's nude aside from the sunflowers woven into her long hair. - <<elseif $assistantFSAppearance is "transformation fetishist">> + <<case "transformation fetishist">> clad in a rainbow of flowers and latex pasties. Even pregnant, her breasts and ass are too firm to be natural, like a porn star who forgot her birth control. - <<elseif $assistantFSAppearance is "pastoralist">> + <<case "pastoralist">> with oversized breasts pouring streams of milk down her pregnant belly like a fountain. She's nude aside from the wildflowers tucked in her hair. - <<elseif $assistantFSAppearance is "maturity preferentialist">> + <<case "maturity preferentialist">> with only her huge hips and a wreath of flowers to protect her modesty. Her stretch-marks and laugh-lines suggest the child she's carrying is not her first. - <<elseif $assistantFSAppearance is "youth preferentialist">> + <<case "youth preferentialist">> with swollen breasts and a big pregnant belly. She's nude aside from a wreath of daffodils, her body radiant with youthful energy. - <<elseif $assistantFSAppearance is "slimness enthusiast">> + <<case "slimness enthusiast">> her big pregnant belly dominating her otherwise lithe frame. She's nude aside from a crown of flowers, her modesty protected only by her flowing hair. - <<elseif $assistantFSAppearance is "body purist">> + <<case "body purist">> + with swollen hips and breasts and a big pregnant belly. She's nude aside from a crown of flowers, her modesty protected only by her flowing hair. + <<default>> with swollen hips and breasts and a big pregnant belly. She's nude aside from a crown of flowers, her modesty protected only by her flowing hair. + <</switch>> <<else>> with swollen hips and breasts and a big pregnant belly. She's nude aside from a crown of flowers, her modesty protected only by her flowing hair. <</if>> - <<if ($cockFeeder == 1) && ($seed == 1)>> +<<if ($cockFeeder == 1) && ($seed == 1)>> A recognizable little representation of one of your slaves is suckling at her milky tits. The slave must be down in the kitchen, getting a meal out of the food dispensers. The goddess notices you watching, and smiles while she cradles the slave to her nourishing bosom. - <<elseif ($suppository == 1) && ($seed is 2)>> +<<elseif ($suppository == 1) && ($seed is 2)>> A recognizable little representation of one of your slaves is laying face down in her lap, letting the goddess slowly but firmly put more and more of her hand up the slave's butt. The slave must be receiving her drugs from one of the dildo dispensers. The slave writhes under the strain, and the goddess starts stroking its back to calm her down. - <<elseif ($masturbationAllowed == 1) && ($seed is 3)>> +<<elseif ($masturbationAllowed == 1) && ($seed is 3)>> She's having sex with a recognizable little representation of one of your slaves, kissing deeply and pulling her tight to her pillowy chest. The slave must be using one of the penthouse's many vibrators. She sees you watching and lays farther back, balancing the slave atop her stomach and reaching down to fondle more thoroughly. - <<elseif ($seed is 4)>> +<<elseif ($seed is 4)>> A recognizable little representation of one of your slaves is lying with its head in her lap. The goddess is checking the slave's temperature with the back of her hand, a concerned but tender look on her face; the slave must be getting a checkup. She gently explores the slave's neck and chest for any sign of discomfort. - <<elseif ($seed is 5) && ($invasionVictory > 0)>> +<<elseif ($seed is 5) && ($invasionVictory > 0)>> She's frolicking with a representation of one of your security drones, hugging and cradling it to her baby bump. When she sees you looking at her, she pets one of its gun barrels and says, "What? I like him! He was so brave, protecting us during the invasion. Besides, he's adorable!" - <<elseif ($seed is 6) && ($studio == 1)>> +<<elseif ($seed is 6) && ($studio == 1)>> She's fondling and breastfeeding a recognizable little representation of one of your slaves, and is using a handheld camera to film the action, gonzo style. The slave must be using one of the penthouse's many vibrators, and your personal assistant is clearly turning the feed of it into porn. - <<elseif ($seed is 7) && ($marketAssistantAnnounced == 1)>> - She's accompanied by your market assistant's demigoddess avatar. - <<if $marketAssistantRelationship is "cute">> - They're sitting arm in arm, their subtly differing glows casting shadows from their place on your desktop. Their conversation exists on the level of code, not speech, detectable only as slight flickerings of their respective auras. - <<elseif $marketAssistantRelationship is "nonconsensual">> - $assistantName casts a spell on the junior avatar as you watch. The market assistant's avatar goes from reluctance to a sudden consuming hunger for $assistantName's pregnant pussy. $assistantName laughs powerfully at the sudden oral assault. - <<elseif $marketAssistantRelationship is "incestuous">> - They're both especially pregnant today, and are gently tribbing, their legs intertwined and their torsos reclined away from one another. Each massages her belly with satisfaction, feeling her sister's heat against her own. - <<else>> - They're making heavenly love, kissing deeply and fingering each other voluptuously. They somehow make mutual masturbation look like a deeply sacred act, occasionally breaking their kiss to look into each others' eyes. - <</if>> +<<elseif ($seed is 7) && ($marketAssistantAnnounced == 1)>> + She's accompanied by your market assistant's demigoddess avatar. + <<if $marketAssistantRelationship is "cute">> + They're sitting arm in arm, their subtly differing glows casting shadows from their place on your desktop. Their conversation exists on the level of code, not speech, detectable only as slight flickerings of their respective auras. + <<elseif $marketAssistantRelationship is "nonconsensual">> + $assistantName casts a spell on the junior avatar as you watch. The market assistant's avatar goes from reluctance to a sudden consuming hunger for $assistantName's pregnant pussy. $assistantName laughs powerfully at the sudden oral assault. + <<elseif $marketAssistantRelationship is "incestuous">> + They're both especially pregnant today, and are gently tribbing, their legs intertwined and their torsos reclined away from one another. Each massages her belly with satisfaction, feeling her sister's heat against her own. <<else>> + They're making heavenly love, kissing deeply and fingering each other voluptuously. They somehow make mutual masturbation look like a deeply sacred act, occasionally breaking their kiss to look into each others' eyes. + <</if>> +<<else>> She's reclined on one arm, idly stroking her heavy abdomen with the other, a contemplative look on her face. When she sees your glance she smiles placidly and sits upright, her hands resting atop her dripping breasts. +<</if>> + +<<elseif $assistantAppearance is "schoolgirl">> + She's a cute little <<if $arcologies[0].FSSupremacist != "unset">>$arcologies[0].FSSupremacistRace <</if>>schoolgirl + <<if $assistantFSOptions>> + <<switch $assistantFSAppearance>> + <<case "paternalist">> + wearing a long plaid skirt and a clean white shirt. She does her best to look as prim as possible, which, given her duties, often isn't very prim at all. + <<case "degradationist">> + wearing a plaid skirt and a white shirt, though she's hiked the skirt up to show almost everything, and torn the shirt open to bare her perky boobs. + <<case "roman revivalist">> + wearing a girl's stola, with her hair pulled up into a proper upper-class Roman coiffure. She usually carries a wax tablet and a stylus. + <<case "egyptian revivalist">> + wearing a simple white linen skirt, kohl eyeshadow, sandals, and no top at all, baring her perky young breasts. + <<case "edo revivalist">> + wearing a simple robe appropriate for a proper, traditional Japanese lady. + <<case "arabian revivalist">> + wearing a long plaid skirt, a clean white shirt, and a headscarf, making her look like an Arab girl attending a Western school. + <<case "chinese revivalist">> + wearing a plaid skirt and a white shirt. Her hair is pulled back into a bun and secured by a couple of chopsticks. + <<case "chattel religionist">> + wearing a plaid skirt and a white shirt. She has a prominent religious symbol on a necklace that rests at the level of her perky tits. + <<case "physical idealist">> + wearing a plaid skirt, a white shirt, and athletic shoes. She usually renders herself flushed with exercise, as though she just came from gym class. + <<case "repopulation focus">> + wearing a plaid skirt and a white shirt, though her shirt rides up her growing pregnancy. It seems she found another way to support her team. + <<case "eugenics">> + wearing a plaid skirt and a white shirt. An occasional gust of wind rustles her skirt revealing the chastity belt over her crotch. + <<case "gender radicalist">> + wearing a plaid skirt and a white shirt. She's changed her appearance recently to make herself quite androgynous. + <<case "gender fundamentalist">> + wearing a plaid skirt and a white shirt. She's changed her appearance recently to make herself as cute and feminine as possible, and she blushes a lot. + <<case "asset expansionist">> + wearing a plaid skirt and a white shirt. Her breasts are unrealistically huge for her apparent age, and perfect skin is visible between the buttons of her overstrained shirt. + <<case "transformation fetishist">> + wearing a plaid skirt and a white shirt. Her breasts are rendered to make it look like she got a pair of fake tits for her birthday. + <<case "pastoralist">> + wearing a plaid skirt and a white shirt. There's a little wet spot over each of her nipples. + <<case "maturity preferentialist">> + wearing a plaid skirt and a white shirt. Her short skirt reveals a pink bottom, making it look like Teacher just spanked her. + <<case "youth preferentialist">> + wearing a plaid skirt and a white shirt. She looks quite young and innocent, and depicts herself blushing at anything lewd. + <<case "slimness enthusiast">> + wearing a plaid skirt and a white shirt. She looks quite young and innocent, and her boobs are elegantly small. + <<case "body purist">> + She's recently improved her appearance to look more natural, with freckles and a winning smile. + <<default>> + wearing a plaid skirt and a white shirt. Her breasts strain against the material, and her skirt is short enough to show off a bit of bottom. + <</switch>> + <<else>> + wearing a plaid skirt and a white shirt. Her breasts strain against the material, and her skirt is short enough to show off a bit of bottom. + <</if>> +<<if ($cockFeeder == 1) && ($seed == 1)>> + A recognizable little representation of one of your slaves has its head under the front of her skirt, and is eating her out. The slave must be down in the kitchen, getting a meal out of the food dispensers. As you watch, the schoolgirl orgasms, blushing furiously when she notices you watching. +<<elseif ($suppository == 1) && ($seed is 2)>> + A recognizable little representation of one of your slaves is down on its knees in front of her, letting the schoolgirl push two fingers gently in and out of her butt. The slave must be receiving her drugs from one of the dildo dispensers. As you watch, the schoolgirl notices you watching her, blushes, looks away, and starts working faster. +<<elseif ($masturbationAllowed == 1) && ($seed is 3)>> + She's having sex with a recognizable little representation of one of your slaves, kissing her and giggling occasionally. The slave must be using one of the penthouse's many vibrators. She sees you watching and blushes, but then shifts a little so you can see better. +<<elseif ($seed is 4)>> + A recognizable little representation of one of your slaves is lying with its head in her lap. The schoolgirl is wearing a little stethoscope and is listening to the slave breathe; the slave must be getting a checkup. The schoolgirl is patting the girl's head reassuringly. +<<elseif ($seed is 5) && ($invasionVictory > 0)>> + She's planting a wet kiss on a representation of one of your security drones; she pats it lovingly and manages to press quite a bit of boob against the side of one of its gun assemblies. When she sees you looking at her, she giggles and says, "What? I like him! He did really well during the invasion. And he's cute!" +<<elseif ($seed is 6) && ($studio == 1)>> + She's getting oral from a recognizable little representation of one of your slaves, and is using a handheld camera to film the action, gonzo style. The slave must be using one of the penthouse's many vibrators, and $assistantName is clearly turning the feed of it into porn. +<<elseif ($seed is 7) && ($marketAssistantAnnounced == 1)>> + She's accompanied by your market assistant's nerdy schoolgirl avatar. + <<if $marketAssistantRelationship is "cute">> + They're sitting next to each other, and appear to be doing homework side by side. The market assistant's work looks like complicated math problems, while $assistantName is looking through lewd pictures of slaves, albeit with some kind of higher purpose. + <<elseif $marketAssistantRelationship is "nonconsensual">> + $assistantName is wearing a strap-on, and is bullying her schoolgirl conquest's pussy. The market assistant's avatar orgasms loudly as you watch, and then claps both hands over her mouth, crying a little, unwilling to give $assistantName the satisfaction. + <<elseif $marketAssistantRelationship is "incestuous">> + They're making faces at each other and giggling, but as you watch them, this degenerates rapidly into clumsy kissing, groping of each others' breasts, and finally some enthusiastic tribbing. + <<else>> + $assistantName is giving the market assistant's avatar oral, and to go by the bespectacled girl's gasping, is doing a good job. $assistantName finishes and leans back, wiping her mouth and grinning as her lover bends over to return the favor. <</if>> +<<else>> + She's watching you attentively, waiting for a chance to be helpful. When she sees your glance, she smiles hopefully, sticks out her chest a little, and turns from side to side to show off. +<</if>> + +<<elseif $assistantAppearance is "shemale">> + She's a cute little <<if $arcologies[0].FSSupremacist != "unset">>$arcologies[0].FSSupremacistRace <</if>>bimbo shemale with blonde hair, <<if $arcologies[0].FSSupremacist != "unset">><<if $arcologies[0].FSSupremacistRace is "black">><<print either("black", "brown", "light brown")>><<elseif $arcologies[0].FSSupremacistRace is "white">><<print either("tanned", "fair")>><<elseif $arcologies[0].FSSupremacistRace is "latina">><<print either("olive", "brown", "light brown")>><<elseif $arcologies[0].FSSupremacistRace is "indo-aryan" or $arcologies[0].FSSupremacistRace is "malay" or $arcologies[0].FSSupremacistRace is "pacific islander" or $arcologies[0].FSSupremacistRace is "amerindian">><<print either("dark", "tanned")>><<elseif $arcologies[0].FSSupremacistRace is "asian">><<print either("dark", "tanned")>><<elseif $arcologies[0].FSSupremacistRace is "middle eastern" or $arcologies[0].FSSupremacistRace is "semitic" or $arcologies[0].FSSupremacistRace is "southern European">><<print either("dark", "tanned")>><</if>><<else>>tanned<</if>> skin, huge lips, and ridiculous tits. Her cock hangs past her knees when limp. + <<if $assistantFSOptions>> + <<switch $assistantFSAppearance>> + <<case "paternalist">> + She's made herself up to look a bit more classy recently: she has elegant fake nails, and has her hair piled up on her head. + <<case "degradationist">> + She's made herself up to look almost comically evil: she's wearing black lipstick, black eyeliner, and a black barbed cockring. + <<case "roman revivalist">> + She's taken to reclining on a traditional Roman couch and drinking wine out of a shallow dish. + <<case "egyptian revivalist">> + She's wearing an Egyptian melting perfume cake on her head. + <<case "edo revivalist">> + She's wearing a brief Japanese bathhouse robe. + <<case "arabian revivalist">> + She's dressed herself like an oil millionare, with aviator sunglasses and a headscarf. + <<case "chinese revivalist">> + She's added various tattoos of rude Chinese characters to her body recently. + <<case "chattel religionist">> + She's wearing the garb of a priestess of the new faith, which frames her cock prominently. + <<case "physical idealist">> + She's extremely muscular: she shines with body oil, and her abs have abs. + <<case "repopulation focus">> + She is incredably pregnant, her belly preventing her from playing with herself effectively. + <<case "eugenics">> + Her sizable dick is restrained in a complicated chastity device. + <<case "gender radicalist">> + She's rendered her cock in even more loving detail recently, adding a couple of veins and a bead of precum. + <<case "gender fundamentalist">> + She's taken to concealing her dick recently, and cheekily turns away from you to hide it as much as possible. + <<case "asset expansionist">> + She's increased the size of her assets recently: she's increased the girth of her dick until it's as thick as one of her arms, and her boobs are the size of beach balls. + <<case "transformation fetishist">> + Her tits, ass and lips are carefully rendered to make them look fake. + <<case "pastoralist">> + She's lactating, and her orgasms produce comically powerful jets of cum. + <<case "maturity preferentialist">> + She's quite mature, with a lean face that accentuates her cheekbones. + <<case "youth preferentialist">> + She's surprisingly young, and looks as innocent as a computer generated image of a girl with a pornstar dick possibly can. + <<case "slimness enthusiast">> + She's recently altered her appearance to be slimmer and more athletic. + <<case "body purist">> + She's recently improved her appearance to look more natural, with prettier boobs and softer hips. + <</switch>> + <</if>> +<<if ($cockFeeder == 1) and ($seed == 1)>> + A recognizable little representation of one of your slaves is down on its knees in front of her, gagging on her enormous dick. The slave must be down in the kitchen, getting a meal out of the phallic food dispensers. As you watch, the shemale orgasms; she notices you watching her, and blows you a wet kiss. +<<elseif ($suppository == 1) and ($seed == 2)>> + A recognizable little representation of one of your slaves is down on its knees in front of her, moaning as it takes her massive prick. The slave must be receiving her drugs from one of the dildo dispensers. As you watch, the shemale looks up at you, winks, and starts pulling out after each thrust, her cock making a popping noise each time it leaves the slave's butthole. +<<elseif ($masturbationAllowed == 1) and ($seed is 3)>> + She's giving a blowjob to a recognizable little representation of one of your slaves. The slave must be using one of the penthouse's many vibrators. The shemale is looking after herself, too, jerking herself off with one hand and playing with her asshole with the other. +<<elseif ($seed is 4)>> + A recognizable little representation of one of your slaves is lying with its head in her lap. The shemale is wearing a little stethoscope and is listening to the slave breathe; the slave must be getting a checkup. The shemale is restraining herself for once, patting the slave's head and cooing reassuringly. +<<elseif ($seed is 5) and ($invasionVictory > 0)>> + She's masturbating as she takes it up the ass from a representation of one of your security drones, which appears to have a little dildo mounted in place of one of its gun assemblies. When she sees you looking at her, she giggles and says, "What? I like him! He did really well during the invasion." +<<elseif ($seed is 6) and ($studio == 1)>> + The shemale is plowing a recognizable little representation of one of your slaves up the butt, and is using a handheld camera to film the action, gonzo style. The slave must be using one of the penthouse's many vibrators, and $assistantName is clearly turning the feed of it into porn. +<<else>> + She's sitting crosslegged, bending down to suck herself off and looking up at you at the same time. When she sees your attention she lets her dick pop free of her mouth and waits for a moment to see if you have instructions for her, and then goes back to autofellatio. +<</if>> + <<elseif $assistantAppearance is "hypergoddess">> - She's a cute "little" <<if $arcologies[0].FSSupremacist != "unset">>$arcologies[0].FSSupremacistRace <</if>>fertility goddess, with monstrously wide hips, enormous milky breasts and a room filling belly. Her overfull stomach bulges and squirms from her hundreds of occupants, as well as parts her milk swollen breasts to either side. - <<if $FSAnnounced == 1>> - <<if $assistantFSAppearance is "paternalist">> + She's a cute "little" <<if $arcologies[0].FSSupremacist != "unset">>$arcologies[0].FSSupremacistRace <</if>>fertility goddess, with monstrously wide hips, enormous milky breasts and a room filling belly. Her overfull stomach bulges and squirms from her hundreds of occupants, as well as parts her milk swollen breasts to either side. + <<if $assistantFSOptions>> + <<switch $assistantFSAppearance>> + <<case "paternalist">> She's made herself up to look a bit more classy recently: she has elegant fake nails, and has her hair piled up on her head. Occasionally a stream of liquid pours from her crotch along with a healthy baby. - <<elseif $assistantFSAppearance is "repopulation focus">> + <<case "repopulation focus">> She rests atop her newly modified belly. It bulges greatly from all sides and holds her far off the ground. - <<elseif $assistantFSAppearance is "eugenics">> + <<case "eugenics">> She appears beaten and downtrodden, her massive belly covered in anti-pregnancy tattoos and graffiti. Occasionally, a malformed child claws its way out of her ruined cunt. - <<elseif $assistantFSAppearance is "degradationist">> + <<case "degradationist">> She's made herself up to look almost comically evil: she's wearing black lipstick and black eyeliner. Numerous studs cover her bulging belly and a large, heavy ring is driven through her popped navel. Liquid constantly oozes from her gaping vagina where a baby is held mid-birth by several criss-crossing chains. - <<elseif $assistantFSAppearance is "roman revivalist">> + <<case "roman revivalist">> She's taken to reclining on a traditional Roman couch and drinking wine out of a shallow dish. Occasionally a stream of liquid pours from her crotch along with a healthy baby. - <<elseif $assistantFSAppearance is "egyptian revivalist">> + <<case "egyptian revivalist">> She's wearing an Egyptian melting perfume cake on her head. Occasionally a stream of liquid pours from her crotch along with a healthy baby. - <<elseif $assistantFSAppearance is "edo revivalist">> + <<case "edo revivalist">> She's wearing a brief Japanese bathhouse robe. Occasionally a stream of liquid pours from her crotch along with a healthy baby. - <<elseif $assistantFSAppearance is "arabian revivalist">> + <<case "arabian revivalist">> She's dressed herself like an oil millionare's broodmother, with silken linens. Occasionally a stream of liquid pours from her crotch along with a healthy baby. - <<elseif $assistantFSAppearance is "chinese revivalist">> + <<case "chinese revivalist">> She's added various tattoos of rude Chinese characters to her body recently. Occasionally a stream of liquid pours from her crotch along with a healthy baby. - <<elseif $assistantFSAppearance is "chattel religionist">> + <<case "chattel religionist">> She's wearing the garb of a priestess of the new faith, which frames her belly prominently. Occasionally a stream of liquid pours from her crotch along with a healthy baby. - <<elseif $assistantFSAppearance is "physical idealist">> + <<case "physical idealist">> She's extremely muscular: she hefts her massive belly easily off the floor. - <<elseif $assistantFSAppearance is "gender radicalist">> + <<case "gender radicalist">> Her belly is pushed upwards by a huge cock and a pair of enormous lumpy balls. Occasionally a stream of liquid pours from her crotch along with a healthy baby. At the same time, she orgasms copious amounts of cum as a bulge moves along her urethra before blasting out even more cum and a baby. - <<elseif $assistantFSAppearance is "gender fundamentalist">> + <<case "gender fundamentalist">> Her belly has become absolutly massive recently: It fills most of your desk when she's around. She constantly births children from her loins. - <<elseif $assistantFSAppearance is "asset expansionist">> + <<case "asset expansionist">> She's increased the size of her assets recently: her boobs fill more of your desk than her belly. - <<elseif $assistantFSAppearance is "transformation fetishist">> + <<case "transformation fetishist">> Her tits, ass and lips are carefully rendered to make them look fake. - <<elseif $assistantFSAppearance is "pastoralist">> + <<case "pastoralist">> Powerful jets of milk flow from her desk filling boobs. - <<elseif $assistantFSAppearance is "maturity preferentialist">> + <<case "maturity preferentialist">> She's quite mature, her belly is covered in stretch marks. - <<elseif $assistantFSAppearance is "youth preferentialist">> + <<case "youth preferentialist">> She's surprisingly young, she happily bounces atop her mammoth belly forcing milk out of her breasts and babies out her crotch. - <<elseif $assistantFSAppearance is "slimness enthusiast">> + <<case "slimness enthusiast">> Her massive pregnant belly completely dwarfs her otherwise lithe frame. - <<elseif $assistantFSAppearance is "body purist">> + <<case "body purist">> She's recently improved her appearance to look more natural, with prettier boobs and softer hips. - <<else>> + <<default>> She's nude aside from a crown of flowers, her modesty protected only by her massive belly. Occasionally a stream of liquid pours from her crotch along with a healthy baby. + <</switch>>> <</if>> - <</if>> - <<if ($cockFeeder == 1) and ($seed == 1)>> +<<if ($cockFeeder == 1) and ($seed == 1)>> A recognizable little representation of one of your slaves is suckling at her milky tits, her stomach bloated with milk. The slave must be down in the kitchen, getting a meal out of the food dispensers. The goddess notices you watching, and smiles while she cradles the swollen slave to her nourishing bosom. - <<elseif ($suppository == 1) and ($seed == 2)>> +<<elseif ($suppository == 1) and ($seed == 2)>> A recognizable little representation of one of your slaves is laying face down in her lap, letting the goddess slowly but firmly put more and more of her hand up the slave's butt. The slave must be receiving her drugs from one of the dildo dispensers. The slave writhes under the strain, and the goddess starts stroking its back to calm her down. - <<elseif ($masturbationAllowed == 1) and ($seed is 3)>> +<<elseif ($masturbationAllowed == 1) and ($seed is 3)>> She's having sex with a recognizable little representation of one of your slaves, kissing deeply and pulling her tight to her pillowy chest. The slave must be using one of the penthouse's many vibrators. She sees you watching and lays farther back, balancing the slave atop her stomach and reaching down to fondle more thoroughly. - <<elseif ($seed is 4)>> +<<elseif ($seed is 4)>> A recognizable little representation of one of your slaves is lying with its head in her lap. The goddess is checking the slave's temperature with the back of her hand, a concerned but tender look on her face; the slave must be getting a checkup. She gently explores the slave's neck and chest for any sign of discomfort. - <<elseif ($seed is 5) and ($invasionVictory == 1)>> +<<elseif ($seed is 5) and ($invasionVictory == 1)>> She's frolicking with a representation of one of your security drones, hugging and cradling it to her huge baby bump. When she sees you looking at her, she pets one of its gun barrel and says, "What? I like him! He was so brave, protecting us during the invasion. Besides, he's adorable!" - <<elseif ($seed is 6) and ($studio == 1)>> +<<elseif ($seed is 6) and ($studio == 1)>> She's fondling and breastfeeding a recognizable little representation of one of your slaves, and is using a handheld camera to film the action, gonzo style. The slave must be using one of the penthouse's many vibrators, and your personal assistant is clearly turning the feed of it into porn. - <<elseif ($seed is 7) and ($marketAssistantAnnounced == 1)>> - She's accompanied by your market assistant's demigoddess avatar. - <<if $marketAssistantRelationship is "cute">> - They're sitting arm in arm, their subtly differing glows casting shadows from their place on your desktop. Their conversation exists on the level of code, not speech, detectable only as slight flickerings of their respective auras. - <<elseif $marketAssistantRelationship is "nonconsensual">> - $assistantName casts a spell on the junior avatar as you watch. The market assistant's avatar's flat belly gurgles slightly before it begins quickly swelling; not stopping until it has pinned the hapless demigoddess to the floor. $assistantName waddles over the her immobilized partner and plants her pregnant pussy on her face. $assistantName laughs powerfully at the forced oral assault from her bursting plaything. - <<elseif $marketAssistantRelationship is "incestuous">> - $assistantName is especially pregnant today, and is gently tribbing with her flat stomached sister goddess. As they near simultaneous orgasm, $assistantName begins rapidly tranfering babies into her sister's womb, giggling as her hapless sister swells more and more gravid. When she finishes, $assistantName, the smaller of the two sisters, aids her fecund sibling to her feet and into her waiting arms. - <<else>> - They're making heavenly love, kissing deeply and fingering each other voluptously. They somehow make mutual masturbation look like a deeply sacred act, occasionally breaking their kiss to look into each others' eyes. - <</if>> - <<else>> +<<elseif ($seed is 7) and ($marketAssistantAnnounced == 1)>> + She's accompanied by your market assistant's demigoddess avatar. + <<if $marketAssistantRelationship is "cute">> + They're sitting arm in arm, their subtly differing glows casting shadows from their place on your desktop. Their conversation exists on the level of code, not speech, detectable only as slight flickerings of their respective auras. + <<elseif $marketAssistantRelationship is "nonconsensual">> + $assistantName casts a spell on the junior avatar as you watch. The market assistant's avatar's flat belly gurgles slightly before it begins quickly swelling; not stopping until it has pinned the hapless demigoddess to the floor. $assistantName waddles over the her immobilized partner and plants her pregnant pussy on her face. $assistantName laughs powerfully at the forced oral assault from her bursting plaything. + <<elseif $marketAssistantRelationship is "incestuous">> + $assistantName is especially pregnant today, and is gently tribbing with her flat stomached sister goddess. As they near simultaneous orgasm, $assistantName begins rapidly tranfering babies into her sister's womb, giggling as her hapless sister swells more and more gravid. When she finishes, $assistantName, the smaller of the two sisters, aids her fecund sibling to her feet and into her waiting arms. + <<else>> + They're making heavenly love, kissing deeply and fingering each other voluptously. They somehow make mutual masturbation look like a deeply sacred act, occasionally breaking their kiss to look into each others' eyes. + <</if>> +<<else>> She's reclined on one arm, idly stroking her huge abdomen with the other, a contemplative look on her face. When she sees your glance she smiles placidly and sits upright, her hands resting atop her dripping breasts. - <</if>> +<</if>> + <<elseif $assistantAppearance is "loli">> - She's a cute little <<if $arcologies[0].FSSupremacist != "unset">>$arcologies[0].FSSupremacistRace <</if>>girl - <<if $FSAnnounced == 1>> - <<if $assistantFSAppearance is "paternalist">> - wearing a cute pink dress. - <<elseif $assistantFSAppearance is "roman revivalist">> - wearing a girl's stola. - <<elseif $assistantFSAppearance is "egyptian revivalist">> - wearing a simple white linen dress, kohl eyeshadow and sandals. - <<elseif $assistantFSAppearance is "edo revivalist">> - wearing a kimono far to large for herself. - <<elseif $assistantFSAppearance is "arabian revivalist">> - wearing a simple linen dress and a headscarf. - <<elseif $assistantFSAppearance is "chinese revivalist">> - wearing a cute silk qipao. - <<elseif $assistantFSAppearance is "chattel religionist">> - wearing the garb of a priestess of the new faith. - <<elseif $assistantFSAppearance is "repopulation focus">> - wearing a loose dress, its middle bulges considerably from her pregnancy. - <<elseif $assistantFSAppearance is "eugenics">> - wearing nothing but an overly complex chastity belt. - <<elseif $assistantFSAppearance is "degradationist">> - wearing an oversized v-neck t-shirt. The neck hole hangs low enough to show off her perky a-cup tits and the peircings through them. - <<elseif $assistantFSAppearance is "physical idealist">> - wearing spats and a tight shirt. She occassionally renders herself sweaty, as if just finishing exercising. - <<elseif $assistantFSAppearance is "gender radicalist">> - wearing shorts and a t-shirt. She's changed her appearance recently to make herself quite androgynous. - <<elseif $assistantFSAppearance is "gender fundamentalist">> - wearing a skirt and a white shirt. Her slightly swollen belly peeks out from under her shirt causing her to blush when ever you glance at it. - <<elseif $assistantFSAppearance is "asset expansionist">> - wearing a school swimsuit. Her breasts are unrealistically huge for her young age and bulge lewdly around the straps of her suit. - <<elseif $assistantFSAppearance is "transformation fetishist">> - wearing short shorts and a t-shirt. At first glance it looks like she stuck two overinflated balloons up her shirt but with closer inspection they are revealed to be ridiculous implants. - <<elseif $assistantFSAppearance is "pastoralist">> - wearing shorts and a white shirt. There's a little wet spot over each of her nipples. - <<elseif $assistantFSAppearance is "maturity preferentialist">> - wearing a school uniform. She keeps rubbing her bottom, making it look like Teacher just spanked her. - <<elseif $assistantFSAppearance is "youth preferentialist">> - wearing a child's dress. She looks barely more than three. - <<elseif $assistantFSAppearance is "slimness enthusiast">> - wearing shorts and a white shirt. She looks extremely thin. - <<elseif $assistantFSAppearance is "body purist">> - She's recently improved her appearance to look more natural, with freckles and a winning smile. - <<else>> - wearing shorts and a white shirt. + She's a cute little <<if $arcologies[0].FSSupremacist != "unset">>$arcologies[0].FSSupremacistRace <</if>> + <<if $assistantFSOptions>> + <<switch $assistantFSAppearance>> + <<case "paternalist">> + girl wearing a cute pink dress. + <<case "roman revivalist">> + girl wearing a girl's stola. + <<case "egyptian revivalist">> + girl wearing a simple white linen dress, kohl eyeshadow and sandals. + <<case "edo revivalist">> + girl wearing a kimono far to large for herself. + <<case "arabian revivalist">> + girl wearing a simple linen dress and a headscarf. + <<case "chinese revivalist">> + girl wearing a cute silk qipao. + <<case "chattel religionist">> + girl wearing the garb of a priestess of the new faith. + <<case "repopulation focus">> + girl wearing a loose dress, its middle bulges considerably from her pregnancy. + <<case "eugenics">> + girl wearing nothing but an overly complex chastity belt. + <<case "degradationist">> + girl wearing an oversized v-neck t-shirt. The neck hole hangs low enough to show off her perky a-cup tits and the peircings through them. + <<case "physical idealist">> + girl wearing spats and a tight shirt. She occassionally renders herself sweaty, as if just finishing exercising. + <<case "gender radicalist">> + girl wearing shorts and a t-shirt. She's changed her appearance recently to make herself quite androgynous. + <<case "gender fundamentalist">> + girl wearing a skirt and a white shirt. Her slightly swollen belly peeks out from under her shirt causing her to blush when ever you glance at it. + <<case "asset expansionist">> + girl wearing a school swimsuit. Her breasts are unrealistically huge for her young age and bulge lewdly around the straps of her suit. + <<case "transformation fetishist">> + girl wearing short shorts and a t-shirt. At first glance it looks like she stuck two overinflated balloons up her shirt but with closer inspection they are revealed to be ridiculous implants. + <<case "pastoralist">> + girl wearing shorts and a white shirt. There's a little wet spot over each of her nipples. + <<case "maturity preferentialist">> + girl wearing a school uniform. She keeps rubbing her bottom, making it look like Teacher just spanked her. + <<case "youth preferentialist">> + girl wearing a child's dress. She looks barely more than three. + <<case "slimness enthusiast">> + girl wearing shorts and a white shirt. She looks extremely thin. + <<case "body purist">> + girl. She's recently improved her appearance to look more natural, with freckles and a winning smile. + <<default>> + girl wearing shorts and a white shirt. + <</switch>> + <<else>> + girl wearing shorts and a white shirt. <</if>> - <<else>> - wearing shorts and a white shirt. - <</if>> - <<if ($cockFeeder == 1) and ($seed == 1)>> +<<if ($cockFeeder == 1) and ($seed == 1)>> A recognizable little representation of one of your slaves has its head between her legs, and is eating her out. The slave must be down in the kitchen, getting a meal out of the food dispensers. As you watch, the little girl orgasms, blushing furiously when she notices you watching. - <<elseif ($suppository == 1) and ($seed == 2)>> +<<elseif ($suppository == 1) and ($seed == 2)>> A recognizable little representation of one of your slaves is down on its knees in front of her, letting the young girl push two fingers gently in and out of her butt. The slave must be receiving her drugs from one of the dildo dispensers. As you watch, the little girl notices you watching her, blushes, looks away, and starts working faster. - <<elseif ($masturbationAllowed == 1) and ($seed is 3)>> +<<elseif ($masturbationAllowed == 1) and ($seed is 3)>> She's having sex with a recognizable little representation of one of your slaves, kissing her and giggling occasionally. The slave must be using one of the penthouse's many vibrators. She sees you watching and blushes, but then shifts a little so you can see better. - <<elseif ($seed is 4)>> +<<elseif ($seed is 4)>> A recognizable little representation of one of your slaves is lying with its head in her lap. The little girl is wearing a toy stethoscope and is listening to the slave breathe; the slave must be getting a checkup. The little girl is patting the girl's head reassuringly. - <<elseif ($seed is 5) and ($invasionVictory == 1)>> +<<elseif ($seed is 5) and ($invasionVictory == 1)>> She's planting a wet kiss on a representation of one of your security drones; she hugs it lovingly and tightly. When she sees you looking at her, she giggles and says, "What? I like him! He did really well during the invasion. And he's cute!" - <<elseif ($seed is 6) and ($studio == 1)>> +<<elseif ($seed is 6) and ($studio == 1)>> She's getting oral from a recognizable little representation of one of your slaves, and is using a handheld camera to film the action, gonzo style. The slave must be using one of the penthouse's many vibrators, and your personal assistant is clearly turning the feed of it into porn. - <<elseif ($seed is 7) and ($marketAssistantAnnounced == 1)>> - She's accompanied by your market assistant's chubby loli avatar. - <<if $marketAssistantRelationship is "cute">> - They're sitting face to face, playing a rapid game of patticake. Their conversation exists on the level of code, not speech, detectable only as slight flickerings when their hands connect. - <<elseif $marketAssistantRelationship is "nonconsensual">> - $assistantName has her chubby playmate pinned under her butt, and is inspecting her loli conquest's pussy. The market assistant's avatar groans as $assistantName's fingers explore her tight passsage, and then claps both hands over her mouth, crying a little, unwilling to give $assistantName the satisfaction. - <<elseif $marketAssistantRelationship is "incestuous">> - They're playing doctor with each other. $assistantName is currently inspecting her sister's vagina, making sure everything is alright. Once she finishes, she states her diagnosis and the needed cure. She bends over her sister and begins administering her "cure". - <<else>> - They're playing house with each other, well house based off your penthouse. $assistantName is pretending to be you while her friend assumes $assistantName's role. They are currently caught up in deciding the best way to arrange the beds in the slave quarters. - <</if>> - <<else>> +<<elseif ($seed is 7) and ($marketAssistantAnnounced == 1)>> + She's accompanied by your market assistant's chubby loli avatar. + <<if $marketAssistantRelationship is "cute">> + They're sitting face to face, playing a rapid game of patticake. Their conversation exists on the level of code, not speech, detectable only as slight flickerings when their hands connect. + <<elseif $marketAssistantRelationship is "nonconsensual">> + $assistantName has her chubby playmate pinned under her butt, and is inspecting her loli conquest's pussy. The market assistant's avatar groans as $assistantName's fingers explore her tight passsage, and then claps both hands over her mouth, crying a little, unwilling to give $assistantName the satisfaction. + <<elseif $marketAssistantRelationship is "incestuous">> + They're playing doctor with each other. $assistantName is currently inspecting her sister's vagina, making sure everything is alright. Once she finishes, she states her diagnosis and the needed cure. She bends over her sister and begins administering her "cure". + <<else>> + They're playing house with each other, well house based off your penthouse. $assistantName is pretending to be you while her friend assumes $assistantName's role. They are currently caught up in deciding the best way to arrange the beds in the slave quarters. + <</if>> +<<else>> She's watching you attentively, waiting for a chance to be helpful. When she sees your glance, she smiles shyly and looks away before returning to your gaze. - <</if>> +<</if>> + <<elseif $assistantAppearance is "preggololi">> - She's a cute little <<if $arcologies[0].FSSupremacist != "unset">>$arcologies[0].FSSupremacistRace <</if>>girl with a large pregnant belly - <<if $FSAnnounced == 1>> - <<if $assistantFSAppearance is "paternalist">> - wearing a cute pink dress. The middle is stretched tight by her growing belly. - <<elseif $assistantFSAppearance is "roman revivalist">> - wearing a girl's stola. - <<elseif $assistantFSAppearance is "egyptian revivalist">> - wearing a bulging white linen dress, kohl eyeshadow and sandals. - <<elseif $assistantFSAppearance is "edo revivalist">> - wearing a kimono far to large for herself but does nothing to distract from her swollen midriff. - <<elseif $assistantFSAppearance is "arabian revivalist">> - wearing a bulging linen dress and a headscarf. - <<elseif $assistantFSAppearance is "chinese revivalist">> - wearing a tight silk qipao. - <<elseif $assistantFSAppearance is "chattel religionist">> - wearing the garb of a priestess of the new faith. - <<elseif $assistantFSAppearance is "repopulation focus">> - . She recently ajusted her pregnancy size to make it even larger. Her swelling ass and tits spill out from her shorts and tube-top and the occasinal kick can be seen from her octuplets. - <<elseif $assistantFSAppearance is "eugenics">> - covered in anti-pregnancy graffiti; written by herself judging from the childish handwriting. She wears a syringe around her neck containing "Abortifacients" and a sign saying "pop me". - <<elseif $assistantFSAppearance is "degradationist">> - wearing an open vest and a thong. It shows off her peirced milky b-cup tits and swollen pregnant belly. A large bar is driven through her popped navel. - <<elseif $assistantFSAppearance is "physical idealist">> - wearing spats and a tight shirt. Her shirt rides up on her large belly and her growing butt fills out her spats nicely. She cradles her belly with a sullen look knowing it limits her activities. - <<elseif $assistantFSAppearance is "gender radicalist">> - wearing shorts and a t-shirt. Her androgynous look makes her look like a pregnant boy. - <<elseif $assistantFSAppearance is "gender fundamentalist">> - wearing a skirt and a white shirt. She is extremely pregnant, carrying triplets. She blushes and pats her belly whenever she notices your gaze. - <<elseif $assistantFSAppearance is "asset expansionist">> - wearing a school swimsuit. Her breasts are unrealistically huge for her young age and bulge lewdly around the straps of her overfilled suit. Her suit is extremely tight around the middle thanks to her growing belly. - <<elseif $assistantFSAppearance is "transformation fetishist">> - wearing short shorts and a t-shirt. At first glance it looks like she stuck two overinflated balloons up her shirt but with closer inspection they are revealed to be ridiculous implants. They sit atop her bulging belly. - <<elseif $assistantFSAppearance is "pastoralist">> - wearing shorts and a white shirt. There's a little wet spot over each of her nipples. Her breasts have swollen to c-cups thanks to her pregnancy and the milkings. - <<elseif $assistantFSAppearance is "maturity preferentialist">> - wearing a school uniform. Her top is left unbuttoned to allow her belly room. She keeps rubbing her bottom, making it look like Teacher just spanked her. - <<elseif $assistantFSAppearance is "youth preferentialist">> - wearing nothing, as nothing will fit her lewd body. She looks barely more than three and is laying atop her proportionally enormous belly. - <<elseif $assistantFSAppearance is "slimness enthusiast">> - wearing shorts and a white shirt. Her slim body makes her pregnant belly look much bigger than it is. - <<elseif $assistantFSAppearance is "body purist">> - . She's recently improved her appearance to look more natural, with freckles and a winning smile. She cradles her swelling belly and twirls when you look her way. - <<else>> - wearing shorts and a white shirt that rides up her growing belly. + She's a cute little <<if $arcologies[0].FSSupremacist != "unset">>$arcologies[0].FSSupremacistRace <</if>>girl with a large pregnant + <<if $assistantFSOptions>> + <<switch $assistantFSAppearance>> + <<case "paternalist">> + belly wearing a cute pink dress. The middle is stretched tight by her growing belly. + <<case "roman revivalist">> + belly wearing a girl's stola. + <<case "egyptian revivalist">> + belly wearing a bulging white linen dress, kohl eyeshadow and sandals. + <<case "edo revivalist">> + belly wearing a kimono far to large for herself but does nothing to distract from her swollen midriff. + <<case "arabian revivalist">> + belly wearing a bulging linen dress and a headscarf. + <<case "chinese revivalist">> + belly wearing a tight silk qipao. + <<case "chattel religionist">> + belly wearing the garb of a priestess of the new faith. + <<case "repopulation focus">> + belly. She recently ajusted her pregnancy size to make it even larger. Her swelling ass and tits spill out from her shorts and tube-top and the occasinal kick can be seen from her octuplets. + <<case "eugenics">> + belly covered in anti-pregnancy graffiti; written by herself judging from the childish handwriting. She wears a syringe around her neck containing "Abortifacients" and a sign saying "pop me". + <<case "degradationist">> + belly wearing an open vest and a thong. It shows off her peirced milky b-cup tits and swollen pregnant belly. A large bar is driven through her popped navel. + <<case "physical idealist">> + belly wearing spats and a tight shirt. Her shirt rides up on her large belly and her growing butt fills out her spats nicely. She cradles her belly with a sullen look knowing it limits her activities. + <<case "gender radicalist">> + belly wearing shorts and a t-shirt. Her androgynous look makes her look like a pregnant boy. + <<case "gender fundamentalist">> + belly wearing a skirt and a white shirt. She is extremely pregnant, carrying triplets. She blushes and pats her belly whenever she notices your gaze. + <<case "asset expansionist">> + belly wearing a school swimsuit. Her breasts are unrealistically huge for her young age and bulge lewdly around the straps of her overfilled suit. Her suit is extremely tight around the middle thanks to her growing belly. + <<case "transformation fetishist">> + belly wearing short shorts and a t-shirt. At first glance it looks like she stuck two overinflated balloons up her shirt but with closer inspection they are revealed to be ridiculous implants. They sit atop her bulging belly. + <<case "pastoralist">> + belly wearing shorts and a white shirt. There's a little wet spot over each of her nipples. Her breasts have swollen to c-cups thanks to her pregnancy and the milkings. + <<case "maturity preferentialist">> + belly wearing a school uniform. Her top is left unbuttoned to allow her belly room. She keeps rubbing her bottom, making it look like Teacher just spanked her. + <<case "youth preferentialist">> + belly wearing nothing, as nothing will fit her lewd body. She looks barely more than three and is laying atop her proportionally enormous belly. + <<case "slimness enthusiast">> + belly wearing shorts and a white shirt. Her slim body makes her pregnant belly look much bigger than it is. + <<case "body purist">> + belly. She's recently improved her appearance to look more natural, with freckles and a winning smile. She cradles her swelling belly and twirls when you look her way. + <<default>> + belly wearing shorts and a white shirt that rides up her growing belly. + <</switch>> + <<else>> + belly wearing shorts and a white shirt that rides up her growing belly. <</if>> - <<else>> - wearing shorts and a white shirt that rides up her growing belly. - <</if>> - <<if ($cockFeeder == 1) and ($seed == 1)>> +<<if ($cockFeeder == 1) and ($seed == 1)>> A recognizable little representation of one of your slaves has its head under her pregnant belly, and is eating her out. The slave must be down in the kitchen, getting a meal out of the food dispensers. As you watch, the little girl orgasms, blushing furiously when she notices you watching. - <<elseif ($suppository == 1) and ($seed == 2)>> +<<elseif ($suppository == 1) and ($seed == 2)>> A recognizable little representation of one of your slaves is down on its knees in front of her, letting the young girl push two fingers gently in and out of her butt. The slave must be receiving her drugs from one of the dildo dispensers. As you watch, the little girl notices you watching her, blushes, looks away, and starts working faster. - <<elseif ($masturbationAllowed == 1) and ($seed is 3)>> +<<elseif ($masturbationAllowed == 1) and ($seed is 3)>> She's having sex with a recognizable little representation of one of your slaves, kissing her and giggling occasionally. The slave must be using one of the penthouse's many vibrators. She sees you watching and blushes, but then shifts a little so you can see better. - <<elseif ($seed is 4)>> +<<elseif ($seed is 4)>> A recognizable little representation of one of your slaves is lying with its head in her lap. The little girl is wearing a toy stethoscope and is listening to the slave breathe; the slave must be getting a checkup. The little girl is patting the girl's head reassuringly. - <<elseif ($seed is 5) and ($invasionVictory == 1)>> +<<elseif ($seed is 5) and ($invasionVictory == 1)>> She's planting a wet kiss on a representation of one of your security drones; she hugs it as best she can with her belly in the way. When she sees you looking at her, she giggles and says, "What? I like him! He did really well during the invasion. And he's cute!" - <<elseif ($seed is 6) and ($studio == 1)>> +<<elseif ($seed is 6) and ($studio == 1)>> She's getting oral from a recognizable little representation of one of your slaves, and is using a handheld camera to film the action, gonzo style. The slave must be using one of the penthouse's many vibrators, and your personal assistant is clearly turning the feed of it into porn. - <<elseif ($seed is 7) and ($marketAssistantAnnounced == 1)>> - She's accompanied by your market assistant's chubby loli avatar. - <<if $marketAssistantRelationship is "cute">> - $assistantName is laying on her back with her young friend's ear on her pregnant belly. Their conversation exists on the level of code, not speech, detectable only as slight flutterings of $assistantName's baby kicking. - <<elseif $marketAssistantRelationship is "nonconsensual">> - $assistantName has her chubby playmate pinned under her butt, and is inspecting her loli conquest's pussy. The market assistant's avatar groans as $assistantName's fingers explore her tight passsage, and then claps both hands over her mouth, crying a little, unwilling to give $assistantName the satisfaction. - <<elseif $marketAssistantRelationship is "incestuous">> - They're making out with each other, a hand down eachother's panties. Their other hand massaging their mutually swollen bellies, since $assistantName has introduced her sister to her boyfriends. - <<else>> - They're playing house with each other, well house based off your penthouse. $assistantName is pretending to be you while her friend assumes $assistantName's role. They are currently caught up in figuring out how many children $assistantName's harem could produce. - <</if>> - <<else>> +<<elseif ($seed is 7) and ($marketAssistantAnnounced == 1)>> + She's accompanied by your market assistant's chubby loli avatar. + <<if $marketAssistantRelationship is "cute">> + $assistantName is laying on her back with her young friend's ear on her pregnant belly. Their conversation exists on the level of code, not speech, detectable only as slight flutterings of $assistantName's baby kicking. + <<elseif $marketAssistantRelationship is "nonconsensual">> + $assistantName has her chubby playmate pinned under her butt, and is inspecting her loli conquest's pussy. The market assistant's avatar groans as $assistantName's fingers explore her tight passsage, and then claps both hands over her mouth, crying a little, unwilling to give $assistantName the satisfaction. + <<elseif $marketAssistantRelationship is "incestuous">> + They're making out with each other, a hand down eachother's panties. Their other hand massaging their mutually swollen bellies, since $assistantName has introduced her sister to her boyfriends. + <<else>> + They're playing house with each other, well house based off your penthouse. $assistantName is pretending to be you while her friend assumes $assistantName's role. They are currently caught up in figuring out how many children $assistantName's harem could produce. + <</if>> +<<else>> She's watching you attentively, waiting for a chance to be helpful. When she sees your glance, she smiles shyly and looks away before returning to your gaze. - <</if>> +<</if>> + +<<elseif $assistantAppearance is "fairy">> + She's a cute little fairy + <<if $assistantFSOptions>> + <<switch $assistantFSAppearance>> + <<case "paternalist">> + wearing a well-sewn blue dress, with a large red bow tied to the back of her waist length golden-blonde hair. She looks like a little Bucuretsi doll. + <<case "degradationist">> + wearing her birthday suit, with her hair in a mess. + <<case "roman revivalist">> + wearing a small handkercheif wrapped around her like a toga, with one tiny breast sticking out. A wreath made of twisted clovers sits on her head. + <<case "egyptian revivalist">> + wearing a simple white linen dress and has eyeshadow poorly applied around her eyes. + <<case "edo revivalist">> + wearing a fine kimono and holding a little fan. She looks like a little Hina doll. + <<case "arabian revivalist">> + wearing a strip of silk as a dress. + <<case "chinese revivalist">> + wearing a silk cheongsam with a little green cap on her head. Her hair is braided on the sides. She looks like a figurine from some kind of game. + <<case "chattel religionist">> + wearing a little gold-white habit. + <<case "physical idealist">> + wearing a training bra and spats. She has abs poorly drawn on her belly with a marker. + <<case "repopulation focus">> + wearing a simple dress. Her belly appears to be swollen and ready to burst, but a quick lift of her skirt shows that she's smuggling a grape under there. + <<case "gender radicalist">> + wearing a pair of pants. Just the pants. + <<case "gender fundamentalist">> + wearing a well-sewn blue dress, with a large red bow tied to the back of her waist length golden-blonde hair. She looks like a little Bucuretsi doll. + <<case "asset expansionist">> + wearing a pair of pants and a t-shirt. She has two blueberries stuffed into the front of her shirt. + <<case "transformation fetishist">> + naked and covered in jelly. She's pretending to be a slime. + <<case "pastoralist">> + wearing only a pair of overalls. The overalls are just loose enough to let her nearly flat chest to peek out when she turns or bends over. + <<case "maturity preferentialist">> + wearing an old wool dress and spinning a cane. + <<case "youth preferentialist">> + wearing a kindergartner's uniform, complete with rain cap and red backpack. + <<case "slimness enthusiast">> + wearing a handkerchief with a hole in it like a poncho. She looks as slim as usual, with her naked body completely visible from the sides. + <<case "body purist">> + wearing her birthday suit, with pale unblemished skin on full display and silky golden hair cascading down her back. + <<default>> + wearing her birthday suit, with her nude form obscured by the light she's giving off. Her silky golden hair cascading down her back. + <</switch>> + <<else>> + wearing her birthday suit, with her nude form obscured by the light she's giving off. Her silky golden hair cascading down her back. + <</if>> +<<if ($cockFeeder is 1) and ($seed is 1)>> + A recognizable little representation of one of your slaves underneath her, with her tongue sticking out to catch her dripping love juices. The slave must be down in the kitchen, getting a meal out of the food dispensers. The fairy notices you watching and winks, dripping even more with your eyes on her. +<<elseif ($suppository is 1) and ($seed is 2)>> + A recognizable little representation of one of your slaves is sitting upside-down in front of her, and the fairy is slowly teasing the poor slave's butt with a dildo as big as she is. The slave must be receiving her drugs from one of the dildo dispensers. The fairy notices you watching her and gives you a cheerful little wave, twisting the dildo around and humming a tune. +<<elseif ($masturbationAllowed is 1) and ($seed is 3)>> + A recognizable little representation fucks herself with a toy while she twists the control dial around, to the slave's enjoyment. The slave must be using one of the penthouse's many vibrators. She sees you watching and whispers something in the slave's ear; the slave looks up at you and blushes. +<<elseif ($seed is 4)>> + A recognizable little representation of one of your slaves is sitting up. The fairy is wearing a little doctor's coat and has her head pressed to the slave's chest to hear the slave breathe; the slave must be getting a checkup. The fairy is humming happily as she flies over to a tablet to take notes. +<<elseif ($seed is 5) and ($invasionVictory is 1)>> + She's sitting on the shoulders of a representation of one of your security drone. Every so often, she raises a fist and shouts "For the Imperium of man!". When she sees you looking at her, she grins and says, "This guy is like my robo-buddy. He's the best!" +<<elseif ($seed is 6) and ($studio is 1)>> + A recognizable little representation of one of your slaves is riding a sybian while she uses a handheld camera to film the action. The slave must be using one of the penthouse's many toys, and $assistantName is clearly turning the feed of it into porn. +<<elseif ($seed is 7) && ($marketAssistantAnnounced == 1)>> + She's accompanied by your market assistant's own fairy avatar. + <<if $marketAssistantRelationship is "cute">> + The market assistant is sitting on the end of a book, reading from a tablet for ants. $assistantName is lying down next to her, with her head resting on the other fairy's lap and slowly kicking her feet in the air. The market assistant take a moment to look down at $assistantName and gently pat her head. This elicts a big smile from her. + <<elseif $marketAssistantRelationship is "nonconsensual">> + The market assistant is naked and sitting before a thimble, as $assistantName sits behind her, teasing and molesting her. She is rather annoyed by her inability to focus on her work, having her nipples and clit pinched and flicked. Her sopping pussy is constantly letting out a small stream of liquid into the thimble. $assistantName is working hard on extracting as much sweet nectar from the fairy as she can, with every climax she wrings out bringing another large deluge of pussy juice into the vessel. + <<elseif $marketAssistantRelationship is "incestuous">> + The fairy sisters are lying down, each embracing the other as they languidly make out. $assistantName slips one leg in between her sister's, and the two begin rocking against one another. The two grow more and more passionate as they make love together. + <<else>> + The two fairies are sitting on top of a virtual flower, finishing up their work. With that out of the way, they strip down and each take a stamen and give them a thorough licking. Once coated, they line their stamen up to the other fairy's pussy. They take a moment to hold each other's hand as they slowly slide down the stamen. The two bottom out with a moan, and pull each other into a warm embrace. The market assistant starts buzzing her wings, the vibration causing both of them to yelp. $assistantName grins at this new source of pleasure, locking lips with the market assistant as the two beat their wings to a rhythm only they can hear. + <</if>> +<<else>> + She's sitting at the edge of your desk, kicking her feet and humming a pleasant tune. She glances up to check on you and sees you looking at her, and flashes you a great big beautiful smile. +<</if>> + +<<elseif $assistantAppearance is "pregnant fairy">> + She's a cute little fairy with a swollen belly + <<if $assistantFSOptions>> + <<switch $assistantFSAppearance>> + <<case "paternalist">> + wearing a well-sewn blue dress, with a large red bow tied to the back of her waist length golden-blonde hair. She looks like a little Bucuretsi doll. + <<case "degradationist">> + wearing her birthday suit, with her hair in a mess. + <<case "roman revivalist">> + wearing a small handkercheif wrapped around her like a toga, with one tiny milky breast sticking out. A wreath made of twisted clovers sits on her head. + <<case "egyptian revivalist">> + wearing a simple white linen dress and has eyeshadow poorly applied around her eyes. + <<case "edo revivalist">> + wearing a fine kimono and holding a little fan. She looks like a little Hina doll. + <<elseif $assistantFSAppearance is "arabian revivalist">> + wearing a strip of silk as a dress. + <<case "chinese revivalist">> + wearing a silk cheongsam with a little green cap on her head. Her hair is braided on the sides. She looks like a figurine from some kind of game. + <<case "chattel religionist">> + wearing a little gold-white habit and glowing with purity. + <<case "physical idealist">> + wearing a training bra and spats. Her large belly sticks out even more. + <<case "repopulation focus">> + wearing a lovely maternity dress, which shows off her swollen belly. + <<case "gender radicalist">> + wearing a pair of pants. Just the pants. + <<case "gender fundamentalist">> + wearing a well-sewn blue dress, with a large red bow tied to the back of her waist length golden-blonde hair. She looks like a little Bucuretsi doll. + <<case "asset expansionist">> + wearing a pair of pants and a t-shirt. She has two blueberries stuffed into the front of her shirt. + <<case "transformation fetishist">> + nude and covered in jelly. She's rubbing it all over her swollen belly. + <<case "pastoralist">> + wearing only a pair of overalls. The overalls are open enough to let her belly pour out. + <<case "maturity preferentialist">> + wearing an old wool dress and rocking back and forth on a rocking chair, cradling her belly. + <<case "youth preferentialist">> + wearing a kindergartner's uniform, complete with rain cap and red backpack. Her swollen belly looks out of place. + <<case "slimness enthusiast">> + wearing a handkerchief with a hole in it like a poncho. Her pregnant belly forces the poncho to spread wide, leaving little of her body to the imagination. + <<case "body purist">> + wearing her birthday suit, with pale unblemished pregnant belly on full display and silky golden hair cascading down her back. + <<default>> + wearing her birthday suit, with her nude form obscured by the light coming from her belly. Her silky golden hair cascading down her back. + <</switch>> + <<else>> + wearing her birthday suit, with her nude form obscured by the light coming from her belly. Her silky golden hair cascading down her back. + <</if>> +<<if ($cockFeeder is 1) and ($seed is 1)>> + A recognizable little representation of one of your slaves beside her, with her tongue scraping across her breast to catchthe beads of milk that flow. The slave must be down in the kitchen, getting a meal out of the food dispensers. The fairy notices you watching and winks, her unattended breast giving out a small spray of milk. +<<elseif ($suppository is 1) and ($seed is 2)>> + A recognizable little representation of one of your slaves is sitting upside-down in front of her, and the fairy is slowly teasing the poor slave's butt with a dildo as big as she is. The slave must be receiving her drugs from one of the dildo dispensers. The fairy notices you watching her and gives you a cheerful little wave, twisting the dildo around and humming a tune. +<<elseif ($masturbationAllowed is 1) and ($seed is 3)>> + A recognizable little representation fucks herself with a toy while she twists the control dial around, to the slave's enjoyment. The slave must be using one of the penthouse's many vibrators. She sees you watching and whispers something in the slave's ear; the slave looks up at you and blushes. +<<elseif ($seed is 4)>> + A recognizable little representation of one of your slaves is sitting up. The fairy is wearing a little doctor's coat, kept open to accommodate for her belly, and has her head pressed to the slave's chest to hear the slave breathe; the slave must be getting a checkup. The fairy is humming happily as she flies over to a tablet to take notes. +<<elseif ($seed is 5) and ($invasionVictory is 1)>> + She's sitting on the shoulders of a representation of one of your security drone. Every so often, she raises a fist and shouts "For the Imperium of man!". When she sees you looking at her, she grins and says, "This guy is like my robo-buddy. He's the best!" +<<elseif ($seed is 6) and ($studio is 1)>> + A recognizable little representation of one of your slaves is riding a sybian while she uses a handheld camera to film the action. The slave must be using one of the penthouse's many toys, and $assistantName is clearly turning the feed of it into porn. +<<elseif ($seed is 7) && ($marketAssistantAnnounced == 1)>> + She's accompanied by your market assistant's own fairy avatar. + <<if $marketAssistantRelationship is "cute">> + The market assistant is sitting on the end of a book, reading from a tablet for ants. $assistantName is sitting beside her, stroking her belly and humming a relaxing tune. + <<elseif $marketAssistantRelationship is "nonconsensual">> + The market assistant is sporting her own smaller baby bump now while. With her top down, $assistantName slowly squeezes and massages her breasts from behind, teasing out tiny droplets of milk, much to her annoyance. She suddenly drops her tablet with a yelp as $assistantName drags her tongue across her ear from root to tip. + <<elseif $marketAssistantRelationship is "incestuous">> + Taking a break, the market assistant sits on $assistantName's lap, nursing away at her lactating breast like a baby. $assistantName coos, keeping on arm to support her sister's back while the other teases her dripping slit. + <<else>> + The two fairies are slowly making out. The market assistant gently lies $assistantName down, guiding kisses down her body. Taking a moment to suckle from each leaking tit, the market assistant continues down her swollen belly before coming to her delicate flower and tenderly eats the pregnant fairy out. + <</if>> +<<else>> + She's sitting at the edge of your desk, cradling her swollen belly and humming a pleasant tune. She glances up to check on you and sees you looking at her, and flashes you a great big beautiful smile. +<</if>> + <<elseif $assistantAppearance is "slimegirl">> - She's a girlish shaped figure, with a crimson core, made entirely out of <<if $arcologies[0].FSSupremacist != "unset">>$arcologies[0].FSSupremacistRace <</if>>slime - <<if $FSAnnounced == 1>> - <<if $assistantFSAppearance is "paternalist">> - with a modest pink dress floating inside her. - <<elseif $assistantFSAppearance is "roman revivalist">> - with a girl's stola sinking into her head. - <<elseif $assistantFSAppearance is "egyptian revivalist">> - looking quite perturbed about the amount of sand caught in her. - <<elseif $assistantFSAppearance is "edo revivalist">> - with a sliken kimono floating inside her. - <<elseif $assistantFSAppearance is "arabian revivalist">> - with a headscarf and a pair of sunglasses floating inside her. - <<elseif $assistantFSAppearance is "chinese revivalist">> - with a silk qipao floating inside her. - <<elseif $assistantFSAppearance is "chattel religionist">> - with several symbols of the your new faith floating inside her. - <<elseif $assistantFSAppearance is "repopulation focus">> - . Her amorphous body has noticeable hip, butt, and breast curves as well as several more cores gathered in her rounded stomach. - <<elseif $assistantFSAppearance is "eugenics">> - with a chastity belt floating inside her. - <<elseif $assistantFSAppearance is "degradationist">> - with a number of piercings sinking into her body. - <<elseif $assistantFSAppearance is "physical idealist">> - trying to shape her goo into muscles. - <<elseif $assistantFSAppearance is "gender radicalist">> - with a very androgynous appearance. She keeps trying to shape her goo into a cock. - <<elseif $assistantFSAppearance is "gender fundamentalist">> - . Her amorphous body has noticeable hip, butt, and breast curves. - <<elseif $assistantFSAppearance is "asset expansionist">> - . Her amorphous body has rediculously huge hip, butt, and breast curves. - <<elseif $assistantFSAppearance is "transformation fetishist">> - with a pair of big silicone implants floating around her chest. - <<elseif $assistantFSAppearance is "pastoralist">> - with quite a large amount of milk mixed with her body. She keeps trying to shape her goo into big milky tits. - <<elseif $assistantFSAppearance is "maturity preferentialist">> - with a noticeably large core. - <<elseif $assistantFSAppearance is "youth preferentialist">> - with a tiny core and immature body - <<elseif $assistantFSAppearance is "slimness enthusiast">> - . She is compacting her slime to make herself look thinner. - <<elseif $assistantFSAppearance is "body purist">> - with the purest goo her body could be made of. + She's a girlish shaped figure, with a crimson core, made entirely out of <<if $arcologies[0].FSSupremacist != "unset">>$arcologies[0].FSSupremacistRace <</if>> + <<if $assistantFSOptions>> + <<switch $assistantFSAppearance>> + <<case "paternalist">> + slime with a modest pink dress floating inside her. + <<case "roman revivalist">> + slime with a girl's stola sinking into her head. + <<case "egyptian revivalist">> + slime looking quite perturbed about the amount of sand caught in her. + <<case "edo revivalist">> + slime with a sliken kimono floating inside her. + <<case "arabian revivalist">> + slime with a headscarf and a pair of sunglasses floating inside her. + <<case "chinese revivalist">> + slime with a silk qipao floating inside her. + <<case "chattel religionist">> + slime with several symbols of the your new faith floating inside her. + <<case "repopulation focus">> + slime. Her amorphous body has noticeable hip, butt, and breast curves as well as several more cores gathered in her rounded stomach. + <<case "eugenics">> + slime with a chastity belt floating inside her. + <<case "degradationist">> + slime with a number of piercings sinking into her body. + <<case "physical idealist">> + slime trying to shape her goo into muscles. + <<case "gender radicalist">> + slime with a very androgynous appearance. She keeps trying to shape her goo into a cock. + <<case "gender fundamentalist">> + slime. Her amorphous body has noticeable hip, butt, and breast curves. + <<case "asset expansionist">> + slime. Her amorphous body has rediculously huge hip, butt, and breast curves. + <<case "transformation fetishist">> + slime with a pair of big silicone implants floating around her chest. + <<case "pastoralist">> + slime with quite a large amount of milk mixed with her body. She keeps trying to shape her goo into big milky tits. + <<case "maturity preferentialist">> + slime with a noticeably large core. + <<case "youth preferentialist">> + slime with a tiny core and immature body + <<case "slimness enthusiast">> + slime. She is compacting her slime to make herself look thinner. + <<case "body purist">> + slime with the purest goo her body could be made of. <<else>> - with a pair of shorts and a shirt floating inside her. + slime with a pair of shorts and a shirt floating inside her. + <</switch>> + <<else>> + slime with a pair of shorts and a shirt floating inside her. <</if>> - <<else>> - with a pair of shorts and a shirt floating inside her. - <</if>> <<if ($cockFeeder == 1) and ($seed == 1)>> A recognizable little representation of one of your slaves has its head in her moist crotch, and is eating her out. The slave must be down in the kitchen, getting a meal out of the food dispensers. As you watch, the goo girl orgasms, nearly turning into a puddle when she notices you watching. <<elseif ($suppository == 1) and ($seed == 2)>> @@ -797,141 +961,7 @@ <<else>> She's watching you attentively from a bowl filled with her body. When she sees your glance, she reforms herself and awaits your response. <</if>> -<<elseif $assistantAppearance is "shemale">> - She's a cute little <<if $arcologies[0].FSSupremacist != "unset">>$arcologies[0].FSSupremacistRace <</if>>bimbo shemale with blonde hair, <<if $arcologies[0].FSSupremacist != "unset">><<if $arcologies[0].FSSupremacistRace is "black">><<print either("black", "brown", "light brown")>><<elseif $arcologies[0].FSSupremacistRace is "white">><<print either("tanned", "fair")>><<elseif $arcologies[0].FSSupremacistRace is "latina">><<print either("olive", "brown", "light brown")>><<elseif $arcologies[0].FSSupremacistRace is "indo-aryan" or $arcologies[0].FSSupremacistRace is "malay" or $arcologies[0].FSSupremacistRace is "pacific islander" or $arcologies[0].FSSupremacistRace is "amerindian">><<print either("dark", "tanned")>><<elseif $arcologies[0].FSSupremacistRace is "asian">><<print either("dark", "tanned")>><<elseif $arcologies[0].FSSupremacistRace is "middle eastern" or $arcologies[0].FSSupremacistRace is "semitic" or $arcologies[0].FSSupremacistRace is "southern European">><<print either("dark", "tanned")>><</if>><<else>>tanned<</if>> skin, huge lips, and ridiculous tits. Her cock hangs past her knees when limp. - <<if $FSAnnounced == 1>> - <<if $assistantFSAppearance is "paternalist">> - She's made herself up to look a bit more classy recently: she has elegant fake nails, and has her hair piled up on her head. - <<elseif $assistantFSAppearance is "degradationist">> - She's made herself up to look almost comically evil: she's wearing black lipstick, black eyeliner, and a black barbed cockring. - <<elseif $assistantFSAppearance is "roman revivalist">> - She's taken to reclining on a traditional Roman couch and drinking wine out of a shallow dish. - <<elseif $assistantFSAppearance is "egyptian revivalist">> - She's wearing an Egyptian melting perfume cake on her head. - <<elseif $assistantFSAppearance is "edo revivalist">> - She's wearing a brief Japanese bathhouse robe. - <<elseif $assistantFSAppearance is "arabian revivalist">> - She's dressed herself like an oil millionare, with aviator sunglasses and a headscarf. - <<elseif $assistantFSAppearance is "chinese revivalist">> - She's added various tattoos of rude Chinese characters to her body recently. - <<elseif $assistantFSAppearance is "chattel religionist">> - She's wearing the garb of a priestess of the new faith, which frames her cock prominently. - <<elseif $assistantFSAppearance is "physical idealist">> - She's extremely muscular: she shines with body oil, and her abs have abs. - <<elseif $assistantFSAppearance is "repopulation focus">> - She is incredably pregnant, her belly preventing her from playing with herself effectively. - <<elseif $assistantFSAppearance is "eugenics">> - Her sizable dick is restrained in a complicated chastity device. - <<elseif $assistantFSAppearance is "gender radicalist">> - She's rendered her cock in even more loving detail recently, adding a couple of veins and a bead of precum. - <<elseif $assistantFSAppearance is "gender fundamentalist">> - She's taken to concealing her dick recently, and cheekily turns away from you to hide it as much as possible. - <<elseif $assistantFSAppearance is "asset expansionist">> - She's increased the size of her assets recently: she's increased the girth of her dick until it's as thick as one of her arms, and her boobs are the size of beach balls. - <<elseif $assistantFSAppearance is "transformation fetishist">> - Her tits, ass and lips are carefully rendered to make them look fake. - <<elseif $assistantFSAppearance is "pastoralist">> - She's lactating, and her orgasms produce comically powerful jets of cum. - <<elseif $assistantFSAppearance is "maturity preferentialist">> - She's quite mature, with a lean face that accentuates her cheekbones. - <<elseif $assistantFSAppearance is "youth preferentialist">> - She's surprisingly young, and looks as innocent as a computer generated image of a girl with a pornstar dick possibly can. - <<elseif $assistantFSAppearance is "slimness enthusiast">> - She's recently altered her appearance to be slimmer and more athletic. - <<elseif $assistantFSAppearance is "body purist">> - She's recently improved her appearance to look more natural, with prettier boobs and softer hips. - <</if>> - <</if>> - <<if ($cockFeeder == 1) and ($seed == 1)>> - A recognizable little representation of one of your slaves is down on its knees in front of her, gagging on her enormous dick. The slave must be down in the kitchen, getting a meal out of the phallic food dispensers. As you watch, the shemale orgasms; she notices you watching her, and blows you a wet kiss. - <<elseif ($suppository == 1) and ($seed == 2)>> - A recognizable little representation of one of your slaves is down on its knees in front of her, moaning as it takes her massive prick. The slave must be receiving her drugs from one of the dildo dispensers. As you watch, the shemale looks up at you, winks, and starts pulling out after each thrust, her cock making a popping noise each time it leaves the slave's butthole. - <<elseif ($masturbationAllowed == 1) and ($seed is 3)>> - She's giving a blowjob to a recognizable little representation of one of your slaves. The slave must be using one of the penthouse's many vibrators. The shemale is looking after herself, too, jerking herself off with one hand and playing with her asshole with the other. - <<elseif ($seed is 4)>> - A recognizable little representation of one of your slaves is lying with its head in her lap. The shemale is wearing a little stethoscope and is listening to the slave breathe; the slave must be getting a checkup. The shemale is restraining herself for once, patting the slave's head and cooing reassuringly. - <<elseif ($seed is 5) and ($invasionVictory > 0)>> - She's masturbating as she takes it up the ass from a representation of one of your security drones, which appears to have a little dildo mounted in place of one of its gun assemblies. When she sees you looking at her, she giggles and says, "What? I like him! He did really well during the invasion." - <<elseif ($seed is 6) and ($studio == 1)>> - The shemale is plowing a recognizable little representation of one of your slaves up the butt, and is using a handheld camera to film the action, gonzo style. The slave must be using one of the penthouse's many vibrators, and $assistantName is clearly turning the feed of it into porn. - <<else>> - She's sitting crosslegged, bending down to suck herself off and looking up at you at the same time. When she sees your attention she lets her dick pop free of her mouth and waits for a moment to see if you have instructions for her, and then goes back to autofellatio. - <</if>> -<<elseif $assistantAppearance is "schoolgirl">> - She's a cute little <<if $arcologies[0].FSSupremacist != "unset">>$arcologies[0].FSSupremacistRace <</if>>schoolgirl - <<if $FSAnnounced == 1>> - <<if $assistantFSAppearance is "paternalist">> - wearing a long plaid skirt and a clean white shirt. She does her best to look as prim as possible, which, given her duties, often isn't very prim at all. - <<elseif $assistantFSAppearance is "degradationist">> - wearing a plaid skirt and a white shirt, though she's hiked the skirt up to show almost everything, and torn the shirt open to bare her perky boobs. - <<elseif $assistantFSAppearance is "roman revivalist">> - wearing a girl's stola, with her hair pulled up into a proper upper-class Roman coiffure. She usually carries a wax tablet and a stylus. - <<elseif $assistantFSAppearance is "egyptian revivalist">> - wearing a simple white linen skirt, kohl eyeshadow, sandals, and no top at all, baring her perky young breasts. - <<elseif $assistantFSAppearance is "edo revivalist">> - wearing a simple robe appropriate for a proper, traditional Japanese lady. - <<elseif $assistantFSAppearance is "arabian revivalist">> - wearing a long plaid skirt, a clean white shirt, and a headscarf, making her look like an Arab girl attending a Western school. - <<elseif $assistantFSAppearance is "chinese revivalist">> - wearing a plaid skirt and a white shirt. Her hair is pulled back into a bun and secured by a couple of chopsticks. - <<elseif $assistantFSAppearance is "chattel religionist">> - wearing a plaid skirt and a white shirt. She has a prominent religious symbol on a necklace that rests at the level of her perky tits. - <<elseif $assistantFSAppearance is "physical idealist">> - wearing a plaid skirt, a white shirt, and athletic shoes. She usually renders herself flushed with exercise, as though she just came from gym class. - <<elseif $assistantFSAppearance is "repopulation focus">> - wearing a plaid skirt and a white shirt, though her shirt rides up her growing pregnancy. It seems she found another way to support her team. - <<elseif $assistantFSAppearance is "eugenics">> - wearing a plaid skirt and a white shirt. An occasional gust of wind rustles her skirt revealing the chastity belt over her crotch. - <<elseif $assistantFSAppearance is "gender radicalist">> - wearing a plaid skirt and a white shirt. She's changed her appearance recently to make herself quite androgynous. - <<elseif $assistantFSAppearance is "gender fundamentalist">> - wearing a plaid skirt and a white shirt. She's changed her appearance recently to make herself as cute and feminine as possible, and she blushes a lot. - <<elseif $assistantFSAppearance is "asset expansionist">> - wearing a plaid skirt and a white shirt. Her breasts are unrealistically huge for her apparent age, and perfect skin is visible between the buttons of her overstrained shirt. - <<elseif $assistantFSAppearance is "transformation fetishist">> - wearing a plaid skirt and a white shirt. Her breasts are rendered to make it look like she got a pair of fake tits for her birthday. - <<elseif $assistantFSAppearance is "pastoralist">> - wearing a plaid skirt and a white shirt. There's a little wet spot over each of her nipples. - <<elseif $assistantFSAppearance is "maturity preferentialist">> - wearing a plaid skirt and a white shirt. Her short skirt reveals a pink bottom, making it look like Teacher just spanked her. - <<elseif $assistantFSAppearance is "youth preferentialist">> - wearing a plaid skirt and a white shirt. She looks quite young and innocent, and depicts herself blushing at anything lewd. - <<elseif $assistantFSAppearance is "slimness enthusiast">> - wearing a plaid skirt and a white shirt. She looks quite young and innocent, and her boobs are elegantly small. - <<elseif $assistantFSAppearance is "body purist">> - She's recently improved her appearance to look more natural, with freckles and a winning smile. - <<else>> - wearing a plaid skirt and a white shirt. Her breasts strain against the material, and her skirt is short enough to show off a bit of bottom. - <</if>> - <<else>> - wearing a plaid skirt and a white shirt. Her breasts strain against the material, and her skirt is short enough to show off a bit of bottom. - <</if>> - <<if ($cockFeeder == 1) && ($seed == 1)>> - A recognizable little representation of one of your slaves has its head under the front of her skirt, and is eating her out. The slave must be down in the kitchen, getting a meal out of the food dispensers. As you watch, the schoolgirl orgasms, blushing furiously when she notices you watching. - <<elseif ($suppository == 1) && ($seed is 2)>> - A recognizable little representation of one of your slaves is down on its knees in front of her, letting the schoolgirl push two fingers gently in and out of her butt. The slave must be receiving her drugs from one of the dildo dispensers. As you watch, the schoolgirl notices you watching her, blushes, looks away, and starts working faster. - <<elseif ($masturbationAllowed == 1) && ($seed is 3)>> - She's having sex with a recognizable little representation of one of your slaves, kissing her and giggling occasionally. The slave must be using one of the penthouse's many vibrators. She sees you watching and blushes, but then shifts a little so you can see better. - <<elseif ($seed is 4)>> - A recognizable little representation of one of your slaves is lying with its head in her lap. The schoolgirl is wearing a little stethoscope and is listening to the slave breathe; the slave must be getting a checkup. The schoolgirl is patting the girl's head reassuringly. - <<elseif ($seed is 5) && ($invasionVictory > 0)>> - She's planting a wet kiss on a representation of one of your security drones; she pats it lovingly and manages to press quite a bit of boob against the side of one of its gun assemblies. When she sees you looking at her, she giggles and says, "What? I like him! He did really well during the invasion. And he's cute!" - <<elseif ($seed is 6) && ($studio == 1)>> - She's getting oral from a recognizable little representation of one of your slaves, and is using a handheld camera to film the action, gonzo style. The slave must be using one of the penthouse's many vibrators, and $assistantName is clearly turning the feed of it into porn. - <<elseif ($seed is 7) && ($marketAssistantAnnounced == 1)>> - She's accompanied by your market assistant's nerdy schoolgirl avatar. - <<if $marketAssistantRelationship is "cute">> - They're sitting next to each other, and appear to be doing homework side by side. The market assistant's work looks like complicated math problems, while $assistantName is looking through lewd pictures of slaves, albeit with some kind of higher purpose. - <<elseif $marketAssistantRelationship is "nonconsensual">> - $assistantName is wearing a strap-on, and is bullying her schoolgirl conquest's pussy. The market assistant's avatar orgasms loudly as you watch, and then claps both hands over her mouth, crying a little, unwilling to give $assistantName the satisfaction. - <<elseif $marketAssistantRelationship is "incestuous">> - They're making faces at each other and giggling, but as you watch them, this degenerates rapidly into clumsy kissing, groping of each others' breasts, and finally some enthusiastic tribbing. - <<else>> - $assistantName is giving the market assistant's avatar oral, and to go by the bespectacled girl's gasping, is doing a good job. $assistantName finishes and leans back, wiping her mouth and grinning as her lover bends over to return the favor. - <</if>> - <<else>> - She's watching you attentively, waiting for a chance to be helpful. When she sees your glance, she smiles hopefully, sticks out her chest a little, and turns from side to side to show off. - <</if>> + <<else>> It's a little abstract symbol; when <<if $assistant == 0>>it<<else>>she<</if>> speaks, the symbol glows slightly. <</if>> diff --git a/src/uncategorized/personalAssistantOptions.tw b/src/uncategorized/personalAssistantOptions.tw index b5b113e58b2a798c69d7a7c7e1005c1bbf5fb5e4..31c11e03f7f3035420188022eb4f303d0a443d74 100644 --- a/src/uncategorized/personalAssistantOptions.tw +++ b/src/uncategorized/personalAssistantOptions.tw @@ -18,15 +18,12 @@ Seated at your desk, you glance at the visual representation of $assistantName, <<display "Personal Assistant Appearance">> -<<if $assistant > 0>> <<if $assistantPower > 0>> <br><br> - Though <<if $assistant == 0>>it<<else>>she<</if>> remains short of a true AI, the arcology's upgraded computer core allows <<if $assistant == 0>>it<<else>>she<</if>> to use brute force to simulate sentient behavior quite well. <<if $assistant == 0>>It<<else>>She<</if>> is not truly self aware, but <<if $assistant == 0>>it<<else>>she<</if>> is able to predict what a sentient being with a certain character might say or do in common situations. The increased power has other applications; for example, it has improved the accuracy of your estimates of economic activity in the Free City. + Though <<if $assistant == 0>>it<<else>>she<</if>> remains short of a true AI, the arcology's upgraded computer core allows <<if $assistant == 0>>it<<else>>her<</if>> to use brute force to simulate sentient behavior quite well. <<if $assistant == 0>>It<<else>>She<</if>> is not truly self aware, but <<if $assistant == 0>>it<<else>>she<</if>> is able to predict what a sentient being with a certain character might say or do in common situations. The increased power has other applications; for example, it has improved the accuracy of your estimates of economic activity in the Free City. <<else>> <<if $assistant == 0>>It<<else>>She<</if>> is well short of a true AI, but with extensive access to information on past human behavior and the processing power to query that information quickly, <<if $assistant == 0>>it<<else>>she<</if>> can often seem self aware by modeling herself after others' past behavior. <</if>> -<</if>> - <br><br> __Computer Core Upgrades__ @@ -39,10 +36,10 @@ __Computer Core Upgrades__ <<else>> //The arcology's computer core is fully upgraded.// <</if>> - -<br><br> +<br> <<if $assistantOptions>> +<br> __Behavior settings:__ <br> @@ -51,87 +48,470 @@ __Behavior settings:__ <<else>> Your assistant is simulating preferences and a sex drive. [[Revert her to normal settings|Personal assistant options][$assistant to 0, $assistantAppearance to "normal"]] <</if>> +<br> <<if $assistant != 0>> -<br><br> -__Appearance settings:__ <br> -She is currently using the ''$assistantAppearance'' appearance. +__Appearance settings:__ <br> -<<if $assistantAppearance != "normal">> - [[Normal|Personal assistant options][$assistantAppearance to "normal"]] - <br> +She is currently using the ''$assistantAppearance'' avatar. +<<if $PAPublic == 1>> +<<set _seed = []>> +<<switch $assistantAppearance>> + <<case "businesswoman">> + <<if $arcologies[0].FSSubjugationist != "unset">> <<set _seed.push($arcologies[0].FSSubjugationistRace + " subjugation")>> <</if>> + <<if $arcologies[0].FSDegradationist != "unset">> <<set _seed.push("degradationism")>> <</if>> + <<if $arcologies[0].FSTransformationFetishist != "unset">> <<set _seed.push("transformation fetishism")>> <</if>> + <<if $arcologies[0].FSMaturityPreferentialist != "unset">> <<set _seed.push("maturity preferentialism")>> <</if>> + <<if $arcologies[0].FSAssetExpansionist != "unset">> <<set _seed.push("asset expansionism")>> <</if>> + <<if $arcologies[0].FSRomanRevivalist != "unset">> <<set _seed.push("Roman revivalism")>> <</if>> + <<if $arcologies[0].FSArabianRevivalist != "unset">> <<set _seed.push("Arabian revivalism")>> <</if>> + <<if $arcologies[0].FSRestart != "unset">> <<set _seed.push("Eugenics")>> <</if>> + <<case "goddess">> + <<if $arcologies[0].FSGenderFundamentalist != "unset">> <<set _seed.push("gender fundamentalism")>> <</if>> + <<if $arcologies[0].FSPaternalist != "unset">> <<set _seed.push("paternalism")>> <</if>> + <<if $arcologies[0].FSBodyPurist != "unset">> <<set _seed.push("body purism")>> <</if>> + <<if $arcologies[0].FSMaturityPreferentialist != "unset">> <<set _seed.push("maturity preferentialism")>> <</if>> + <<if $arcologies[0].FSPastoralist != "unset">> <<set _seed.push("pastoralism")>> <</if>> + <<if $arcologies[0].FSChattelReligionist != "unset">> <<set _seed.push("chattel religionism")>> <</if>> + <<if $arcologies[0].FSEgyptianRevivalist != "unset">> <<set _seed.push("Egyptian revivalism")>> <</if>> + <<if $arcologies[0].FSRepopulationFocus != "unset">> <<set _seed.push("Repopulationism")>> <</if>> + <<case "amazon">> + <<if $arcologies[0].FSSupremacist != "unset">> <<set _seed.push($arcologies[0].FSSupremacistRace + " supremacy")>> <</if>> + <<if $arcologies[0].FSSubjugationist != "unset">> <<set _seed.push($arcologies[0].FSSubjugationistRace + " subjugation")>> <</if>> + <<if $arcologies[0].FSBodyPurist != "unset">> <<set _seed.push("body purism")>> <</if>> + <<if $arcologies[0].FSPhysicalIdealist != "unset">> <<set _seed.push("physical idealism")>> <</if>> + <<if $arcologies[0].FSRomanRevivalist != "unset">> <<set _seed.push("Roman revivalism")>> <</if>> + <<if $arcologies[0].FSEdoRevivalist != "unset">> <<set _seed.push("Edo revivalism")>> <</if>> + <<case "schoolgirl">> + <<if $arcologies[0].FSGenderFundamentalist != "unset">> <<set _seed.push("gender fundamentalism")>> <</if>> + <<if $arcologies[0].FSPaternalist != "unset">> <<set _seed.push("paternalism")>> <</if>> + <<if $arcologies[0].FSYouthPreferentialist != "unset">> <<set _seed.push("youth preferentialism")>> <</if>> + <<if $arcologies[0].FSSlimnessEnthusiast != "unset">> <<set _seed.push("slimness enthusiasm")>> <</if>> + <<if $arcologies[0].FSArabianRevivalist != "unset">> <<set _seed.push("Arabian revivalism")>> <</if>> + <<if $arcologies[0].FSChineseRevivalist != "unset">> <<set _seed.push("Chinese revivalism")>> <</if>> + <<case "monstergirl">> + <<if $arcologies[0].FSSupremacist != "unset">> <<set _seed.push($arcologies[0].FSSupremacistRace + " supremacy")>> <</if>> + <<if $arcologies[0].FSGenderRadicalist != "unset">> <<set _seed.push("gender radicalism")>> <</if>> + <<if $arcologies[0].FSDegradationist != "unset">> <<set _seed.push("degradationism")>> <</if>> + <<if $arcologies[0].FSChattelReligionist != "unset">> <<set _seed.push("chattel religionism")>> <</if>> + <<if $arcologies[0].FSEgyptianRevivalist != "unset">> <<set _seed.push("Egyptian revivalism")>> <</if>> + <<if $arcologies[0].FSEdoRevivalist != "unset">> <<set _seed.push("Edo revivalism")>> <</if>> + <<if $arcologies[0].FSChineseRevivalist != "unset">> <<set _seed.push("Chinese revivalism")>> <</if>> + <<case "shemale">> + <<if $arcologies[0].FSGenderRadicalist != "unset">> <<set _seed.push("gender radicalism")>> <</if>> + <<if $arcologies[0].FSTransformationFetishist != "unset">> <<set _seed.push("transformation fetishism")>> <</if>> + <<if $arcologies[0].FSYouthPreferentialist != "unset">> <<set _seed.push("youth preferentialism")>> <</if>> + <<if $arcologies[0].FSSlimnessEnthusiast != "unset">> <<set _seed.push("slimness enthusiasm")>> <</if>> + <<if $arcologies[0].FSAssetExpansionist != "unset">> <<set _seed.push("asset expansionism")>> <</if>> + <<if $arcologies[0].FSPastoralist != "unset">> <<set _seed.push("pastoralism")>> <</if>> + <<if $arcologies[0].FSPhysicalIdealist != "unset">> <<set _seed.push("physical idealism")>> <</if>> + <<case "hypergoddess">> + <<if $arcologies[0].FSGenderFundamentalist != "unset">> <<set _seed.push("gender fundamentalism")>> <</if>> + <<if $arcologies[0].FSPaternalist != "unset">> <<set _seed.push("paternalism")>> <</if>> + <<if $arcologies[0].FSAssetExpansionist != "unset">> <<set _seed.push("asset expansionism")>> <</if>> + <<if $arcologies[0].FSPastoralist != "unset">> <<set _seed.push("pastoralism")>> <</if>> + <<if $arcologies[0].FSRepopulationFocus != "unset">> <<set _seed.push("Repopulationism")>> <</if>> + <<case "loli">> + <<if $arcologies[0].FSGenderFundamentalist != "unset">> <<set _seed.push("gender fundamentalism")>> <</if>> + <<if $arcologies[0].FSPaternalist != "unset">> <<set _seed.push("paternalism")>> <</if>> + <<if $arcologies[0].FSBodyPurist != "unset">> <<set _seed.push("body purism")>> <</if>> + <<if $arcologies[0].FSYouthPreferentialist != "unset">> <<set _seed.push("youth preferentialism")>> <</if>> + <<if $arcologies[0].FSSlimnessEnthusiast != "unset">> <<set _seed.push("slimness enthusiasm")>> <</if>> + <<if $arcologies[0].FSEdoRevivalist != "unset">> <<set _seed.push("Edo revivalism")>> <</if>> + <<case "preggololi">> + <<if $arcologies[0].FSGenderFundamentalist != "unset">> <<set _seed.push("gender fundamentalism")>> <</if>> + <<if $arcologies[0].FSPaternalist != "unset">> <<set _seed.push("paternalism")>> <</if>> + <<if $arcologies[0].FSDegradationist != "unset">> <<set _seed.push("degradationism")>> <</if>> + <<if $arcologies[0].FSYouthPreferentialist != "unset">> <<set _seed.push("youth preferentialism")>> <</if>> + <<if $arcologies[0].FSRepopulationFocus != "unset">> <<set _seed.push("Repopulationism")>> <</if>> + <<case "fairy">> + <<if $arcologies[0].FSGenderFundamentalist != "unset">> <<set _seed.push("gender fundamentalism")>> <</if>> + <<if $arcologies[0].FSPaternalist != "unset">> <<set _seed.push("paternalism")>> <</if>> + <<if $arcologies[0].FSBodyPurist != "unset">> <<set _seed.push("body purism")>> <</if>> + <<case "pregnant fairy">> + <<if $arcologies[0].FSGenderFundamentalist != "unset">> <<set _seed.push("gender fundamentalism")>> <</if>> + <<if $arcologies[0].FSPaternalist != "unset">> <<set _seed.push("paternalism")>> <</if>> + <<if $arcologies[0].FSBodyPurist != "unset">> <<set _seed.push("body purism")>> <</if>> + <<if $arcologies[0].FSRepopulationFocus != "unset">> <<set _seed.push("Repopulationism")>> <</if>> +<</switch>> +<<if _seed.length > 0>> + <<set _desc = "">> + <<for _i = 0; _i < _seed.length; _i++>> + <<set _desc = (_desc + _seed[_i])>> + <<if (_i < _seed.length-2)>> + <<set _desc = (_desc + ", ")>> + <<elseif (_seed.length > 2) && (_i == _seed.length-2)>> + <<set _desc = (_desc + ", and ")>> + <<elseif (_seed.length == 2) && (_i == 0)>> + <<set _desc = (_desc + " and ")>> + <</if>> + <</for>> +This appearance bolsters _desc. +<<else>> +It has no impact on public opinion. <</if>> -<<if $assistantAppearance isnot "fairy">> - [[Fairy|Personal assistant options][$assistantAppearance to "fairy"]] - <br> <</if>> -<<if $assistantAppearance isnot "pregnant fairy">> - [[Pregnant Fairy|Personal assistant options][$assistantAppearance to "pregnant fairy"]] - <br> +<br> + +<<if $assistantAppearance != "normal">> [[Normal|Personal assistant options][$assistantAppearance to "normal"]] + <br> +<</if>> +<<if $assistantAppearance != "businesswoman">> [[Businesswoman|Personal assistant options][$assistantAppearance to "businesswoman"]] + <<if $PAPublic == 1>> + <<set _seed = []>> + <<if $arcologies[0].FSSubjugationist != "unset">> <<set _seed.push($arcologies[0].FSSubjugationistRace + " subjugation")>> <</if>> + <<if $arcologies[0].FSDegradationist != "unset">> <<set _seed.push("degradationism")>> <</if>> + <<if $arcologies[0].FSTransformationFetishist != "unset">> <<set _seed.push("transformation fetishism")>> <</if>> + <<if $arcologies[0].FSMaturityPreferentialist != "unset">> <<set _seed.push("maturity preferentialism")>> <</if>> + <<if $arcologies[0].FSAssetExpansionist != "unset">> <<set _seed.push("asset expansionism")>> <</if>> + <<if $arcologies[0].FSRomanRevivalist != "unset">> <<set _seed.push("Roman revivalism")>> <</if>> + <<if $arcologies[0].FSArabianRevivalist != "unset">> <<set _seed.push("Arabian revivalism")>> <</if>> + <<if $arcologies[0].FSRestart != "unset">> <<set _seed.push("Eugenics")>> <</if>> + <<if _seed.length > 0>> + <<set _desc = "">> + <<for _i = 0; _i < _seed.length; _i++>> + <<set _desc = (_desc + _seed[_i])>> + <<if (_i < _seed.length-2)>> <<set _desc = (_desc + ", ")>> + <<elseif (_seed.length > 2) && (_i == _seed.length-2)>> <<set _desc = (_desc + ", and ")>> + <<elseif (_seed.length == 2) && (_i == 0)>> <<set _desc = (_desc + " and ")>> + <</if>> + <</for>> + A good emblem for _desc + <</if>> + <</if>> + <br> <</if>> -<<if $assistantAppearance != "businesswoman">> - [[Businesswoman|Personal assistant options][$assistantAppearance to "businesswoman"]] +<<if $assistantAppearance != "goddess">> [[Goddess|Personal assistant options][$assistantAppearance to "goddess"]] + <<if $PAPublic == 1>> + <<set _seed = []>> + <<if $arcologies[0].FSGenderFundamentalist != "unset">> <<set _seed.push("gender fundamentalism")>> <</if>> + <<if $arcologies[0].FSPaternalist != "unset">> <<set _seed.push("paternalism")>> <</if>> + <<if $arcologies[0].FSBodyPurist != "unset">> <<set _seed.push("body purism")>> <</if>> + <<if $arcologies[0].FSMaturityPreferentialist != "unset">> <<set _seed.push("maturity preferentialism")>> <</if>> + <<if $arcologies[0].FSPastoralist != "unset">> <<set _seed.push("pastoralism")>> <</if>> + <<if $arcologies[0].FSChattelReligionist != "unset">> <<set _seed.push("chattel religionism")>> <</if>> + <<if $arcologies[0].FSEgyptianRevivalist != "unset">> <<set _seed.push("Egyptian revivalism")>> <</if>> + <<if $arcologies[0].FSRepopulationFocus != "unset">> <<set _seed.push("Repopulationism")>> <</if>> + <<if _seed.length > 0>> + <<set _desc = "">> + <<for _i = 0; _i < _seed.length; _i++>> + <<set _desc = (_desc + _seed[_i])>> + <<if (_i < _seed.length-2)>> <<set _desc = (_desc + ", ")>> + <<elseif (_seed.length > 2) && (_i == _seed.length-2)>> <<set _desc = (_desc + ", and ")>> + <<elseif (_seed.length == 2) && (_i == 0)>> <<set _desc = (_desc + " and ")>> + <</if>> + <</for>> + A good emblem for _desc + <</if>> + <</if>> <br> <</if>> -<<if $assistantAppearance != "goddess">> - [[Goddess|Personal assistant options][$assistantAppearance to "goddess"]] +<<if $assistantAppearance != "amazon">> [[Amazon|Personal assistant options][$assistantAppearance to "amazon"]] + <<if $PAPublic == 1>> + <<set _seed = []>> + <<if $arcologies[0].FSSupremacist != "unset">> <<set _seed.push($arcologies[0].FSSupremacistRace + " supremacy")>> <</if>> + <<if $arcologies[0].FSSubjugationist != "unset">> <<set _seed.push($arcologies[0].FSSubjugationistRace + " subjugation")>> <</if>> + <<if $arcologies[0].FSBodyPurist != "unset">> <<set _seed.push("body purism")>> <</if>> + <<if $arcologies[0].FSPhysicalIdealist != "unset">> <<set _seed.push("physical idealism")>> <</if>> + <<if $arcologies[0].FSRomanRevivalist != "unset">> <<set _seed.push("Roman revivalism")>> <</if>> + <<if $arcologies[0].FSEdoRevivalist != "unset">> <<set _seed.push("Edo revivalism")>> <</if>> + <<if _seed.length > 0>> + <<set _desc = "">> + <<for _i = 0; _i < _seed.length; _i++>> + <<set _desc = (_desc + _seed[_i])>> + <<if (_i < _seed.length-2)>> <<set _desc = (_desc + ", ")>> + <<elseif (_seed.length > 2) && (_i == _seed.length-2)>> <<set _desc = (_desc + ", and ")>> + <<elseif (_seed.length == 2) && (_i == 0)>> <<set _desc = (_desc + " and ")>> + <</if>> + <</for>> + A good emblem for _desc + <</if>> + <</if>> <br> <</if>> -<<if $assistantAppearance != "hypergoddess" && $seeHyperPreg == 1>> - [[Hyper Goddess|Personal assistant options][$assistantAppearance to "hypergoddess"]] - <br> +<<if $assistantAppearance != "schoolgirl">> [[Schoolgirl|Personal assistant options][$assistantAppearance to "schoolgirl"]] + <<if $PAPublic == 1>> + <<set _seed = []>> + <<if $arcologies[0].FSGenderFundamentalist != "unset">> <<set _seed.push("gender fundamentalism")>> <</if>> + <<if $arcologies[0].FSPaternalist != "unset">> <<set _seed.push("paternalism")>> <</if>> + <<if $arcologies[0].FSYouthPreferentialist != "unset">> <<set _seed.push("youth preferentialism")>> <</if>> + <<if $arcologies[0].FSSlimnessEnthusiast != "unset">> <<set _seed.push("slimness enthusiasm")>> <</if>> + <<if $arcologies[0].FSArabianRevivalist != "unset">> <<set _seed.push("Arabian revivalism")>> <</if>> + <<if $arcologies[0].FSChineseRevivalist != "unset">> <<set _seed.push("Chinese revivalism")>> <</if>> + <<if _seed.length > 0>> + <<set _desc = "">> + <<for _i = 0; _i < _seed.length; _i++>> + <<set _desc = (_desc + _seed[_i])>> + <<if (_i < _seed.length-2)>> <<set _desc = (_desc + ", ")>> + <<elseif (_seed.length > 2) && (_i == _seed.length-2)>> <<set _desc = (_desc + ", and ")>> + <<elseif (_seed.length == 2) && (_i == 0)>> <<set _desc = (_desc + " and ")>> + <</if>> + <</for>> + A good emblem for _desc + <</if>> + <</if>> + <br> <</if>> -<<if $assistantAppearance != "loli" && $minimumSlaveAge < 13>> - [[Loli|Personal assistant options][$assistantAppearance to "loli"]] - <br> +<<if $seeDicks != 0>> +<<if $assistantAppearance != "monstergirl">> [[Monstergirl|Personal assistant options][$assistantAppearance to "monstergirl"]] + <<if $PAPublic == 1>> + <<set _seed = []>> + <<if $arcologies[0].FSSupremacist != "unset">> <<set _seed.push($arcologies[0].FSSupremacistRace + " supremacy")>> <</if>> + <<if $arcologies[0].FSGenderRadicalist != "unset">> <<set _seed.push("gender radicalism")>> <</if>> + <<if $arcologies[0].FSDegradationist != "unset">> <<set _seed.push("degradationism")>> <</if>> + <<if $arcologies[0].FSChattelReligionist != "unset">> <<set _seed.push("chattel religionism")>> <</if>> + <<if $arcologies[0].FSEgyptianRevivalist != "unset">> <<set _seed.push("Egyptian revivalism")>> <</if>> + <<if $arcologies[0].FSEdoRevivalist != "unset">> <<set _seed.push("Edo revivalism")>> <</if>> + <<if $arcologies[0].FSChineseRevivalist != "unset">> <<set _seed.push("Chinese revivalism")>> <</if>> + <<if _seed.length > 0>> + <<set _desc = "">> + <<for _i = 0; _i < _seed.length; _i++>> + <<set _desc = (_desc + _seed[_i])>> + <<if (_i < _seed.length-2)>> <<set _desc = (_desc + ", ")>> + <<elseif (_seed.length > 2) && (_i == _seed.length-2)>> <<set _desc = (_desc + ", and ")>> + <<elseif (_seed.length == 2) && (_i == 0)>> <<set _desc = (_desc + " and ")>> + <</if>> + <</for>> + A good emblem for _desc + <</if>> + <</if>> + <br> <</if>> -<<if $assistantAppearance != "preggololi" && $fertilityAge < 13 && $minimumSlaveAge < 13>> - [[Preggololi|Personal assistant options][$assistantAppearance to "preggololi"]] - <br> +<<if $assistantAppearance != "shemale">> [[Shemale|Personal assistant options][$assistantAppearance to "shemale"]] + <<if $PAPublic == 1>> + <<set _seed = []>> + <<if $arcologies[0].FSGenderRadicalist != "unset">> <<set _seed.push("gender radicalism")>> <</if>> + <<if $arcologies[0].FSTransformationFetishist != "unset">> <<set _seed.push("transformation fetishism")>> <</if>> + <<if $arcologies[0].FSYouthPreferentialist != "unset">> <<set _seed.push("youth preferentialism")>> <</if>> + <<if $arcologies[0].FSSlimnessEnthusiast != "unset">> <<set _seed.push("slimness enthusiasm")>> <</if>> + <<if $arcologies[0].FSAssetExpansionist != "unset">> <<set _seed.push("asset expansionism")>> <</if>> + <<if $arcologies[0].FSPastoralist != "unset">> <<set _seed.push("pastoralism")>> <</if>> + <<if $arcologies[0].FSPhysicalIdealist != "unset">> <<set _seed.push("physical idealism")>> <</if>> + <<if _seed.length > 0>> + <<set _desc = "">> + <<for _i = 0; _i < _seed.length; _i++>> + <<set _desc = (_desc + _seed[_i])>> + <<if (_i < _seed.length-2)>> <<set _desc = (_desc + ", ")>> + <<elseif (_seed.length > 2) && (_i == _seed.length-2)>> <<set _desc = (_desc + ", and ")>> + <<elseif (_seed.length == 2) && (_i == 0)>> <<set _desc = (_desc + " and ")>> + <</if>> + <</for>> + A good emblem for _desc + <</if>> + <</if>> + <br> <</if>> -<<if $assistantAppearance != "amazon">> - [[Amazon|Personal assistant options][$assistantAppearance to "amazon"]] +<<if $assistantAppearance != "hypergoddess" && $seeHyperPreg == 1>> [[Hyper Goddess|Personal assistant options][$assistantAppearance to "hypergoddess"]] + <<if $PAPublic == 1>> + <<set _seed = []>> + <<if $arcologies[0].FSGenderFundamentalist != "unset">> <<set _seed.push("gender fundamentalism")>> <</if>> + <<if $arcologies[0].FSPaternalist != "unset">> <<set _seed.push("paternalism")>> <</if>> + <<if $arcologies[0].FSAssetExpansionist != "unset">> <<set _seed.push("asset expansionism")>> <</if>> + <<if $arcologies[0].FSPastoralist != "unset">> <<set _seed.push("pastoralism")>> <</if>> + <<if $arcologies[0].FSRepopulationFocus != "unset">> <<set _seed.push("Repopulationism")>> <</if>> + <<if _seed.length > 0>> + <<set _desc = "">> + <<for _i = 0; _i < _seed.length; _i++>> + <<set _desc = (_desc + _seed[_i])>> + <<if (_i < _seed.length-2)>> <<set _desc = (_desc + ", ")>> + <<elseif (_seed.length > 2) && (_i == _seed.length-2)>> <<set _desc = (_desc + ", and ")>> + <<elseif (_seed.length == 2) && (_i == 0)>> <<set _desc = (_desc + " and ")>> + <</if>> + <</for>> + A good emblem for _desc + <</if>> + <</if>> <br> <</if>> -<<if $assistantAppearance != "schoolgirl">> - [[Schoolgirl|Personal assistant options][$assistantAppearance to "schoolgirl"]] +<<if $assistantAppearance != "loli" && $minimumSlaveAge < 13>> [[Loli|Personal assistant options][$assistantAppearance to "loli"]] + <<if $PAPublic == 1>> + <<set _seed = []>> + <<if $arcologies[0].FSGenderFundamentalist != "unset">> <<set _seed.push("gender fundamentalism")>> <</if>> + <<if $arcologies[0].FSPaternalist != "unset">> <<set _seed.push("paternalism")>> <</if>> + <<if $arcologies[0].FSBodyPurist != "unset">> <<set _seed.push("body purism")>> <</if>> + <<if $arcologies[0].FSYouthPreferentialist != "unset">> <<set _seed.push("youth preferentialism")>> <</if>> + <<if $arcologies[0].FSSlimnessEnthusiast != "unset">> <<set _seed.push("slimness enthusiasm")>> <</if>> + <<if $arcologies[0].FSEdoRevivalist != "unset">> <<set _seed.push("Edo revivalism")>> <</if>> + <<if _seed.length > 0>> + <<set _desc = "">> + <<for _i = 0; _i < _seed.length; _i++>> + <<set _desc = (_desc + _seed[_i])>> + <<if (_i < _seed.length-2)>> <<set _desc = (_desc + ", ")>> + <<elseif (_seed.length > 2) && (_i == _seed.length-2)>> <<set _desc = (_desc + ", and ")>> + <<elseif (_seed.length == 2) && (_i == 0)>> <<set _desc = (_desc + " and ")>> + <</if>> + <</for>> + A good emblem for _desc + <</if>> + <</if>> <br> <</if>> -<<if $seeDicks != 0>> -<<if $assistantAppearance != "monstergirl">> - [[Monstergirl|Personal assistant options][$assistantAppearance to "monstergirl"]] +<<if $assistantAppearance != "preggololi" && $fertilityAge < 13 && $minimumSlaveAge < 13>> [[Preggololi|Personal assistant options][$assistantAppearance to "preggololi"]] + <<if $PAPublic == 1>> + <<set _seed = []>> + <<if $arcologies[0].FSGenderFundamentalist != "unset">> <<set _seed.push("gender fundamentalism")>> <</if>> + <<if $arcologies[0].FSPaternalist != "unset">> <<set _seed.push("paternalism")>> <</if>> + <<if $arcologies[0].FSDegradationist != "unset">> <<set _seed.push("degradationism")>> <</if>> + <<if $arcologies[0].FSYouthPreferentialist != "unset">> <<set _seed.push("youth preferentialism")>> <</if>> + <<if $arcologies[0].FSRepopulationFocus != "unset">> <<set _seed.push("Repopulationism")>> <</if>> + <<if _seed.length > 0>> + <<set _desc = "">> + <<for _i = 0; _i < _seed.length; _i++>> + <<set _desc = (_desc + _seed[_i])>> + <<if (_i < _seed.length-2)>> <<set _desc = (_desc + ", ")>> + <<elseif (_seed.length > 2) && (_i == _seed.length-2)>> <<set _desc = (_desc + ", and ")>> + <<elseif (_seed.length == 2) && (_i == 0)>> <<set _desc = (_desc + " and ")>> + <</if>> + <</for>> + A good emblem for _desc + <</if>> + <</if>> <br> <</if>> -<<if $assistantAppearance != "shemale">> - [[Shemale|Personal assistant options][$assistantAppearance to "shemale"]] +<<if $assistantAppearance isnot "fairy">> [[Fairy|Personal assistant options][$assistantAppearance to "fairy"]] + <<if $PAPublic == 1>> + <<set _seed = []>> + <<if $arcologies[0].FSGenderFundamentalist != "unset">> <<set _seed.push("gender fundamentalism")>> <</if>> + <<if $arcologies[0].FSPaternalist != "unset">> <<set _seed.push("paternalism")>> <</if>> + <<if $arcologies[0].FSBodyPurist != "unset">> <<set _seed.push("body purism")>> <</if>> + <<if _seed.length > 0>> + <<set _desc = "">> + <<for _i = 0; _i < _seed.length; _i++>> + <<set _desc = (_desc + _seed[_i])>> + <<if (_i < _seed.length-2)>> <<set _desc = (_desc + ", ")>> + <<elseif (_seed.length > 2) && (_i == _seed.length-2)>> <<set _desc = (_desc + ", and ")>> + <<elseif (_seed.length == 2) && (_i == 0)>> <<set _desc = (_desc + " and ")>> + <</if>> + <</for>> + A good emblem for _desc + <</if>> + <</if>> <br> <</if>> +<<if $assistantAppearance isnot "pregnant fairy">> [[Pregnant Fairy|Personal assistant options][$assistantAppearance to "pregnant fairy"]] + <<if $PAPublic == 1>> + <<set _seed = []>> + <<if $arcologies[0].FSGenderFundamentalist != "unset">> <<set _seed.push("gender fundamentalism")>> <</if>> + <<if $arcologies[0].FSPaternalist != "unset">> <<set _seed.push("paternalism")>> <</if>> + <<if $arcologies[0].FSBodyPurist != "unset">> <<set _seed.push("body purism")>> <</if>> + <<if $arcologies[0].FSRepopulationFocus != "unset">> <<set _seed.push("Repopulationism")>> <</if>> + <<if _seed.length > 0>> + <<set _desc = "">> + <<for _i = 0; _i < _seed.length; _i++>> + <<set _desc = (_desc + _seed[_i])>> + <<if (_i < _seed.length-2)>> <<set _desc = (_desc + ", ")>> + <<elseif (_seed.length > 2) && (_i == _seed.length-2)>> <<set _desc = (_desc + ", and ")>> + <<elseif (_seed.length == 2) && (_i == 0)>> <<set _desc = (_desc + " and ")>> + <</if>> + <</for>> + A good emblem for _desc + <</if>> + <</if>> + <br> <</if>> <<if $assistantExtra1 == 1>> -<<if $assistantAppearance != "slimegirl">> - [[Slime Girl|Personal assistant options][$assistantAppearance to "slimegirl"]] +<<if $assistantAppearance != "slimegirl">> [[Slime Girl|Personal assistant options][$assistantAppearance to "slimegirl"]] + <<if $PAPublic == 1>> + <<set _seed = []>> + <<if _seed.length > 0>> + <<set _desc = "">> + <<for _i = 0; _i < _seed.length; _i++>> + <<set _desc = (_desc + _seed[_i])>> + <<if (_i < _seed.length-2)>> <<set _desc = (_desc + ", ")>> + <<elseif (_seed.length > 2) && (_i == _seed.length-2)>> <<set _desc = (_desc + ", and ")>> + <<elseif (_seed.length == 2) && (_i == 0)>> <<set _desc = (_desc + " and ")>> + <</if>> + <</for>> + A good emblem for _desc + <</if>> + <</if>> <br> <</if>> -<<if $assistantAppearance != "cowgirl">> - [[Cow Girl|Personal assistant options][$assistantAppearance to "cowgirl"]] +<<if $assistantAppearance != "cowgirl">> [[Cow Girl|Personal assistant options][$assistantAppearance to "cowgirl"]] + <<if $PAPublic == 1>> + <<set _seed = []>> + <<if _seed.length > 0>> + <<set _desc = "">> + <<for _i = 0; _i < _seed.length; _i++>> + <<set _desc = (_desc + _seed[_i])>> + <<if (_i < _seed.length-2)>> <<set _desc = (_desc + ", ")>> + <<elseif (_seed.length > 2) && (_i == _seed.length-2)>> <<set _desc = (_desc + ", and ")>> + <<elseif (_seed.length == 2) && (_i == 0)>> <<set _desc = (_desc + " and ")>> + <</if>> + <</for>> + A good emblem for _desc + <</if>> + <</if>> <br> <</if>> -<<if $assistantAppearance != "harpygirl">> - [[Harpy Girl|Personal assistant options][$assistantAppearance to "harpygirl"]] +<<if $assistantAppearance != "harpygirl">> [[Harpy Girl|Personal assistant options][$assistantAppearance to "harpygirl"]] + <<if $PAPublic == 1>> + <<set _seed = []>> + <<if _seed.length > 0>> + <<set _desc = "">> + <<for _i = 0; _i < _seed.length; _i++>> + <<set _desc = (_desc + _seed[_i])>> + <<if (_i < _seed.length-2)>> <<set _desc = (_desc + ", ")>> + <<elseif (_seed.length > 2) && (_i == _seed.length-2)>> <<set _desc = (_desc + ", and ")>> + <<elseif (_seed.length == 2) && (_i == 0)>> <<set _desc = (_desc + " and ")>> + <</if>> + <</for>> + A good emblem for _desc + <</if>> + <</if>> <br> <</if>> -<<if $assistantAppearance != "kitsunegirl">> - [[Kitsune|Personal assistant options][$assistantAppearance to "kitsunegirl"]] +<<if $assistantAppearance != "kitsunegirl">> [[Kitsune|Personal assistant options][$assistantAppearance to "kitsunegirl"]] + <<if $PAPublic == 1>> + <<set _seed = []>> + <<if _seed.length > 0>> + <<set _desc = "">> + <<for _i = 0; _i < _seed.length; _i++>> + <<set _desc = (_desc + _seed[_i])>> + <<if (_i < _seed.length-2)>> <<set _desc = (_desc + ", ")>> + <<elseif (_seed.length > 2) && (_i == _seed.length-2)>> <<set _desc = (_desc + ", and ")>> + <<elseif (_seed.length == 2) && (_i == 0)>> <<set _desc = (_desc + " and ")>> + <</if>> + <</for>> + A good emblem for _desc + <</if>> + <</if>> <br> <</if>> -<<if $assistantAppearance != "lamiagirl">> - [[Lamia|Personal assistant options][$assistantAppearance to "lamiagirl"]] +<<if $assistantAppearance != "lamiagirl">> [[Lamia|Personal assistant options][$assistantAppearance to "lamiagirl"]] + <<if $PAPublic == 1>> + <<set _seed = []>> + <<if _seed.length > 0>> + <<set _desc = "">> + <<for _i = 0; _i < _seed.length; _i++>> + <<set _desc = (_desc + _seed[_i])>> + <<if (_i < _seed.length-2)>> <<set _desc = (_desc + ", ")>> + <<elseif (_seed.length > 2) && (_i == _seed.length-2)>> <<set _desc = (_desc + ", and ")>> + <<elseif (_seed.length == 2) && (_i == 0)>> <<set _desc = (_desc + " and ")>> + <</if>> + <</for>> + A good emblem for _desc + <</if>> + <</if>> <br> <</if>> -<<if $assistantAppearance != "spidergirl">> - [[Spider Girl|Personal assistant options][$assistantAppearance to "spidergirl"]] +<<if $assistantAppearance != "spidergirl">> [[Spider Girl|Personal assistant options][$assistantAppearance to "spidergirl"]] + <<if $PAPublic == 1>> + <<set _seed = []>> + <<if _seed.length > 0>> + <<set _desc = "">> + <<for _i = 0; _i < _seed.length; _i++>> + <<set _desc = (_desc + _seed[_i])>> + <<if (_i < _seed.length-2)>> <<set _desc = (_desc + ", ")>> + <<elseif (_seed.length > 2) && (_i == _seed.length-2)>> <<set _desc = (_desc + ", and ")>> + <<elseif (_seed.length == 2) && (_i == 0)>> <<set _desc = (_desc + " and ")>> + <</if>> + <</for>> + A good emblem for _desc + <</if>> + <</if>> <br> <</if>> <</if>> @@ -151,11 +531,11 @@ __Downloadable Appearances:__ */ /* Choose her FS appearance */ -<<if ($assistantFSOptions != 0 and $assistant != 0)>> -<br><br> +<<if $assistantFSOptions != 0 and $assistantAppearance != "normal">> +<br> __Society-specific appearance settings:__ <br> -She is currently using the ''$assistantFSAppearance'' appearance. +She can further refine her avatar to match the arcology's social profile<<if $assistantFSAppearance != "default">>; her current variation shows ''$assistantFSAppearance'' touches.<<else>>, though no details stand out right now.<</if>> <br> <<if $assistantFSAppearance != "default">> [[Default|Personal assistant options][$assistantFSAppearance to "default"]] @@ -243,8 +623,10 @@ She is currently using the ''$assistantFSAppearance'' appearance. <</if>> <</if>> +<</if>> /* CLOSES PERSONALITY ACTIVE REQUIREMENT */ + <<if ($assistantNameAnnounced != 0)>> - <br><br> +<br> __Name:__ <<textbox "$assistantName" $assistantName "Personal assistant options">> <<if $assistantName != "your personal assistant">> @@ -261,8 +643,8 @@ She is currently using the ''$assistantFSAppearance'' appearance. __Business Assistant settings:__ <br> The arcology's upgraded computers support advanced business analysis. -<<if $assistant>> - These capabilities are represented by an avatar styled after $assistantName's, with which simulates a ''$marketAssistantRelationship'' relationship. +<<if $assistantAppearance != "normal">> + These capabilities are represented by an avatar styled after $assistantName's, with which she simulates a ''$marketAssistantRelationship'' relationship. <br> <<if $marketAssistantRelationship != "cute">> [[Cute|Personal assistant options][$marketAssistantRelationship to "cute"]] @@ -280,6 +662,9 @@ The arcology's upgraded computers support advanced business analysis. [[Incestuous|Personal assistant options][$marketAssistantRelationship to "incestuous"]] <br> <</if>> +<<else>> + Although technically an expanded subroutine within the same app, $assistantName uses a distinct icon to identify these alerts and improve your workflow. + <br> <</if>> <br> <<if $assistant>>She<<else>>It<</if>> is diff --git a/src/uncategorized/ptWorkaround.tw b/src/uncategorized/ptWorkaround.tw index a5338584e448df0b1a8a78071293f336543aea07..e8da2a0c3cd0238ad319b4137bbf46c3db3fc755 100644 --- a/src/uncategorized/ptWorkaround.tw +++ b/src/uncategorized/ptWorkaround.tw @@ -43,7 +43,7 @@ <<BothVCheck 4 2>> <</if>> <</if>> -<<if $PC.career is "slaver">> +<<if ($PC.career == "slaver") || ($PC.career == "arcology owner")>> Your @@color:springgreen;slave training experience@@ allows you to @@color:hotpink;bend her to your will@@ more quickly without provoking resistance. <<set $activeSlave.devotion += 1>> <</if>> @@ -107,7 +107,7 @@ $activeSlave.slaveName remains devoted to an old world faith that serves her as a reservoir of mental resilience. Like all such beliefs, hers has certain sexual elements; you amuse yourself by forcing her to break them, and rewarding her generously when she does. <</if>> <<set $activeSlave.training += 100-($activeSlave.intelligence*10)+(($activeSlave.devotion+$activeSlave.trust)/10)>> - <<if $PC.career is "slaver">> + <<if ($PC.career == "slaver") || ($PC.career == "arcology owner")>> <<set $activeSlave.training += 20>> <</if>> <<if $activeSlave.training < 100>> @@ -115,28 +115,7 @@ <<else>> <<set $activeSlave.training = 0>> By the end of the week, @@color:green;you resolve her flaw into something special.@@ @@color:hotpink;Her obedience has increased.@@ - <<if $activeSlave.behavioralFlaw != "none">> - <<if ($activeSlave.behavioralFlaw is "arrogant")>> - <<set $activeSlave.behavioralQuirk to "confident">> - <<elseif ($activeSlave.behavioralFlaw is "bitchy")>> - <<set $activeSlave.behavioralQuirk to "cutting">> - <<elseif ($activeSlave.behavioralFlaw is "odd")>> - <<set $activeSlave.behavioralQuirk to "funny">> - <<elseif ($activeSlave.behavioralFlaw is "hates men")>> - <<set $activeSlave.behavioralQuirk to "adores women">> - <<elseif ($activeSlave.behavioralFlaw is "hates women")>> - <<set $activeSlave.behavioralQuirk to "adores men">> - <<elseif ($activeSlave.behavioralFlaw is "gluttonous")>> - <<set $activeSlave.behavioralQuirk to "fitness">> - <<elseif ($activeSlave.behavioralFlaw is "anorexic")>> - <<set $activeSlave.behavioralQuirk to "insecure">> - <<elseif ($activeSlave.behavioralFlaw is "devout")>> - <<set $activeSlave.behavioralQuirk to "sinful">> - <<elseif ($activeSlave.behavioralFlaw is "liberated")>> - <<set $activeSlave.behavioralQuirk to "advocate">> - <</if>> - <<set $activeSlave.behavioralFlaw to "none">> - <</if>> + <<SoftenBehavioralFlaw $activeSlave>> <<set $activeSlave.devotion += 4>> <</if>> <<if $activeSlave.fetishKnown != 1>> @@ -214,7 +193,7 @@ <<set $activeSlave.oralCount += 10, $oralTotal += 10>> <</switch>> <<set $activeSlave.training += 100-($activeSlave.intelligence*10)+(($activeSlave.devotion+$activeSlave.trust)/10)>> - <<if $PC.career is "slaver">> + <<if ($PC.career == "slaver") || ($PC.career == "arcology owner")>> <<set $activeSlave.training += 20>> <</if>> <<if $activeSlave.training < 100>> @@ -222,29 +201,7 @@ <<else>> <<set $activeSlave.training = 0>> By the end of the week, @@color:green;you resolve her flaw into something special.@@ @@color:hotpink;Her obedience has increased.@@ - <<if $activeSlave.sexualFlaw != "none">> - <<switch $activeSlave.sexualFlaw>> - <<case "hates oral")>> - <<set $activeSlave.sexualQuirk to "gagfuck queen">> - <<case "hates anal")>> - <<set $activeSlave.sexualQuirk to "painal queen">> - <<case "hates penetration")>> - <<set $activeSlave.sexualQuirk to "strugglefuck queen">> - <<case "shamefast")>> - <<set $activeSlave.sexualQuirk to "tease">> - <<case "idealistic")>> - <<set $activeSlave.sexualQuirk to "romantic">> - <<case "repressed")>> - <<set $activeSlave.sexualQuirk to "perverted">> - <<case "apathetic")>> - <<set $activeSlave.sexualQuirk to "caring">> - <<case "crude")>> - <<set $activeSlave.sexualQuirk to "unflinching">> - <<case "judgemental")>> - <<set $activeSlave.sexualQuirk to "size queen">> - <</switch>> - <<set $activeSlave.sexualFlaw to "none">> - <</if>> + <<SoftenSexualFlaw $activeSlave>> <<set $activeSlave.devotion += 4>> <</if>> <<if $activeSlave.fetishKnown != 1>> @@ -314,13 +271,13 @@ Since she's anally experienced, you work with her on the finer points of penetrative sex. She can already take it up her ass, but her muscular control could be improved. She works her kegel muscles and anal sphincter all week, using fingers, dildos, and your <<if $PC.dick == 0>>strap-on<<else>>cock<</if>> as training tools. She becomes expert enough that she is able to make you cum without any thrusting at all by you or any riding by her; she just flexes her muscles enough to <<if $PC.dick == 0>>squeeze the fake phallus<<else>>stimulate you<</if>>. Her anal skills have improved. <<AnalSkillIncrease $activeSlave>> <<elseif $activeSlave.oralSkill < 100>> - She is already an skilled oral whore, but her skills can be polished further. You train her in the basics of urine play, massage, pet play, needle play, and many other niche skills. You also expand her oral endurance, enabling her to deepthroat for extended periods. Her oral skills have improved. + She is already a skilled oral whore, but her skills can be polished further. You train her in the basics of urine play, massage, pet play, needle play, and many other niche skills. You also expand her oral endurance, enabling her to deepthroat for extended periods. Her oral skills have improved. <<OralSkillIncrease $activeSlave>> <<elseif ($activeSlave.vaginalSkill < 100) && ($activeSlave.vagina > 0) && ($activeSlave.vaginalAccessory != "chastity belt")>> - She is already an skilled pussy slut, but her skills can be polished further. You train her in the basics of urine play, massage, pet play, needle play, and many other niche skills. You also work with her to develop a personal regimen of vaginal muscle exercises. This will enable her to squeeze and massage dicks with her practiced vaginal walls. Her vaginal skills have improved. + She is already a skilled pussy slut, but her skills can be polished further. You train her in the basics of urine play, massage, pet play, needle play, and many other niche skills. You also work with her to develop a personal regimen of vaginal muscle exercises. This will enable her to squeeze and massage dicks with her practiced vaginal walls. Her vaginal skills have improved. <<VaginalSkillIncrease $activeSlave>> <<elseif ($activeSlave.analSkill < 100) && ($activeSlave.anus > 0)>> - She is already an skilled anal bitch, but her skills can be polished further. You train her in the basics of urine play, massage, pet play, needle play, and many other niche skills. You also expand her knowledge of sexual positions. She learns to balance herself on tiptoe for the challenge of standing anal sex without support. Her sexual skills have improved. + She is already a skilled anal bitch, but her skills can be polished further. You train her in the basics of urine play, massage, pet play, needle play, and many other niche skills. You also expand her knowledge of sexual positions. She learns to balance herself on tiptoe for the challenge of standing anal sex without support. Her sexual skills have improved. <<AnalSkillIncrease $activeSlave>> <<elseif $activeSlave.whoreSkill <= 10>> Since she's dangerously naive about selling sex, you teach her the basics of self protection and business. Her prostitution skills have improved. @@ -373,7 +330,7 @@ <<else>> $activeSlave.slaveName violently resists you whenever she can. This cannot be permitted, so after a particularly severe bout of physical resistance, you decide to employ an old method of breaking a mind without damaging a body. You secure her to a board and gently wash her face with a wet cloth. She spits in defiance, only to be surprised when you lower the board so that her feet are higher than her head. You tie the cloth around her face. A thin stream of water onto the cloth produces all the feeling and none of the reality of a slow death by drowning. Waterboarding isn't much use for extracting information, but it works well for @@color:gold;slavebreaking.@@ <</if>> - <<if $PC.career is "slaver">> + <<if ($PC.career == "slaver") || ($PC.career == "arcology owner")>> Your @@color:springgreen;slavebreaking experience@@ allows you to apply @@color:gold;exquisitely calibrated@@ mental pressure. <<set $activeSlave.trust -= 2>> <</if>> @@ -448,7 +405,7 @@ @@color:gold;encourages her fear@@ of you. <<set $activeSlave.trust -= 10>> <</if>> - <<if $PC.career is "slaver">> + <<if ($PC.career == "slaver") || ($PC.career == "arcology owner")>> Your @@color:springgreen;slave-breaking experience@@ allows you to apply @@color:gold;exquisite agony@@ without any increase in damage. <<set $activeSlave.trust -= 5>> <</if>> @@ -492,7 +449,7 @@ $activeSlave.slaveName remains devoted to an old world faith that serves her as a reservoir of mental resilience. You carefully select pressure points to break her of this by forcing her to violate her faith's purity codes, constantly. She is forced to eat, dress, and fuck in ways that convince her that she must either condemn herself as an irredeemable sinner, or abandon her beliefs. <</if>> <<set $activeSlave.training += 120-($activeSlave.intelligence*10)+(($activeSlave.devotion+$activeSlave.trust)/10)>> - <<if $PC.career is "slaver">> + <<if ($PC.career == "slaver") || ($PC.career == "arcology owner")>> <<set $activeSlave.training += 20>> <</if>> <<if $activeSlave.training < 100>> @@ -615,7 +572,7 @@ <</if>> <</switch>> <<set $activeSlave.training += 120-($activeSlave.intelligence*10)+(($activeSlave.devotion+$activeSlave.trust)/10)>> - <<if $PC.career is "slaver">> + <<if ($PC.career == "slaver") || ($PC.career == "arcology owner")>> <<set $activeSlave.training += 20>> <</if>> <<if $activeSlave.training < 100>> @@ -783,7 +740,7 @@ Since you've decided to incite her to arrogance, you praise her effusively, and give orders that others are to do so as well. Other slaves are punished for things she's allowed to get away with. <<InduceFlawLenityEffects>> <<set $activeSlave.training += 80-($activeSlave.intelligence*10)+(($activeSlave.devotion+$activeSlave.trust)/10)>> - <<if $PC.career is "slaver">> + <<if ($PC.career == "slaver") || ($PC.career == "arcology owner")>> <<set $activeSlave.training += 20>> <</if>> <<if $activeSlave.training < 100>> @@ -798,7 +755,7 @@ Since you've decided to induce her to bitchiness, you keep her in your office and induce her to criticize other slaves, rewarding her when she's especially catty. <<InduceFlawLenityEffects>> <<set $activeSlave.training += 80-($activeSlave.intelligence*10)+(($activeSlave.devotion+$activeSlave.trust)/10)>> - <<if $PC.career is "slaver">> + <<if ($PC.career == "slaver") || ($PC.career == "arcology owner")>> <<set $activeSlave.training += 20>> <</if>> <<if $activeSlave.training < 100>> @@ -813,7 +770,7 @@ <<InduceFlawAbuseEffects>> <<if ($activeSlave.vagina > -1) && ($activeSlave.vaginalAccessory != "chastity belt")>><<VaginalVCheck 10>><<else>><<AnalVCheck 10>><</if>> <<set $activeSlave.training += 80-($activeSlave.intelligence*10)+(($activeSlave.devotion+$activeSlave.trust)/10)>> - <<if $PC.career is "slaver">> + <<if ($PC.career == "slaver") || ($PC.career == "arcology owner")>> <<set $activeSlave.training += 20>> <</if>> <<if $activeSlave.training < 100>> @@ -828,7 +785,7 @@ <<InduceFlawAbuseEffects>> <<if ($activeSlave.vagina > -1) && ($activeSlave.vaginalAccessory != "chastity belt")>><<VaginalVCheck 10>><<else>><<AnalVCheck 10>><</if>> <<set $activeSlave.training += 80-($activeSlave.intelligence*10)+(($activeSlave.devotion+$activeSlave.trust)/10)>> - <<if $PC.career is "slaver">> + <<if ($PC.career == "slaver") || ($PC.career == "arcology owner")>> <<set $activeSlave.training += 20>> <</if>> <<if $activeSlave.training < 100>> @@ -843,7 +800,7 @@ <<InduceFlawAbuseEffects>> <<set $activeSlave.training += 80-($activeSlave.intelligence*10)+(($activeSlave.devotion+$activeSlave.trust)/10)>> <<set $activeSlave.oralCount += 10, $oralTotal += 10>> - <<if $PC.career is "slaver">> + <<if ($PC.career == "slaver") || ($PC.career == "arcology owner")>> <<set $activeSlave.training += 20>> <</if>> <<if $activeSlave.training < 100>> @@ -856,7 +813,7 @@ <<case "induce gluttony">> Inducing gluttony is harder than inducing anorexia; you force her to orgasm when she's eating, and praise her effusively when she gains weight. You also provide her with ample rations for stress eating. <<set $activeSlave.training += 80-($activeSlave.intelligence*10)+(($activeSlave.devotion+$activeSlave.trust)/10)>> - <<if $PC.career is "slaver">> + <<if ($PC.career == "slaver") || ($PC.career == "arcology owner")>> <<set $activeSlave.training += 20>> <</if>> <<if $activeSlave.training < 100>> @@ -870,7 +827,7 @@ You criticize her cruelly whenever she eats, and praise thinner slaves to her face at every opportunity. <<InduceFlawAbuseEffects>> <<set $activeSlave.training += 80-($activeSlave.intelligence*10)+(($activeSlave.devotion+$activeSlave.trust)/10)>> - <<if $PC.career is "slaver">> + <<if ($PC.career == "slaver") || ($PC.career == "arcology owner")>> <<set $activeSlave.training += 20>> <</if>> <<if $activeSlave.training < 100>> @@ -884,7 +841,7 @@ You direct a campaign of abuse and threats at her, and surreptitiously ensure that a little religious text from her home country finds its way into a hiding place in her living area. <<InduceFlawAbuseEffects>> <<set $activeSlave.training += 80-($activeSlave.intelligence*10)+(($activeSlave.devotion+$activeSlave.trust)/10)>> - <<if $PC.career is "slaver">> + <<if ($PC.career == "slaver") || ($PC.career == "arcology owner")>> <<set $activeSlave.training += 20>> <</if>> <<if $activeSlave.training < 100>> @@ -898,7 +855,7 @@ You direct a campaign of abuse and threats at her, making sure to threaten her with the absolute worst of slavery in your arcology. You also arrange for her to witness other citizen's slaves in situations that aren't much fun. <<InduceFlawAbuseEffects>> <<set $activeSlave.training += 80-($activeSlave.intelligence*10)+(($activeSlave.devotion+$activeSlave.trust)/10)>> - <<if $PC.career is "slaver">> + <<if ($PC.career == "slaver") || ($PC.career == "arcology owner")>> <<set $activeSlave.training += 20>> <</if>> <<if $activeSlave.training < 100>> @@ -913,7 +870,7 @@ <<InduceFlawAbuseEffects>> <<AnalVCheck 10>> <<set $activeSlave.training += 80-($activeSlave.intelligence*10)+(($activeSlave.devotion+$activeSlave.trust)/10)>> - <<if $PC.career is "slaver">> + <<if ($PC.career == "slaver") || ($PC.career == "arcology owner")>> <<set $activeSlave.training += 20>> <</if>> <<if $activeSlave.training < 100>> @@ -928,7 +885,7 @@ <<InduceFlawAbuseEffects>> <<AnalVCheck 10>> <<set $activeSlave.training += 80-($activeSlave.intelligence*10)+(($activeSlave.devotion+$activeSlave.trust)/10)>> - <<if $PC.career is "slaver">> + <<if ($PC.career == "slaver") || ($PC.career == "arcology owner")>> <<set $activeSlave.training += 20>> <</if>> <<if $activeSlave.training < 100>> @@ -943,7 +900,7 @@ <<InduceFlawAbuseEffects>> <<if ($activeSlave.vagina > -1) && ($activeSlave.vaginalAccessory != "chastity belt")>><<VaginalVCheck 10>><<else>><<AnalVCheck 10>><</if>> <<set $activeSlave.training += 80-($activeSlave.intelligence*10)+(($activeSlave.devotion+$activeSlave.trust)/10)>> - <<if $PC.career is "slaver">> + <<if ($PC.career == "slaver") || ($PC.career == "arcology owner")>> <<set $activeSlave.training += 20>> <</if>> <<if $activeSlave.training < 100>> @@ -957,7 +914,7 @@ Since you've decided to force shame on her, you keep her in your office whenever she's not otherwise occupied, and heap derision on her at every opportunity, even inviting visitors to join you in chats about how unattractive and worthless she is. <<InduceFlawAbuseEffects>> <<set $activeSlave.training += 80-($activeSlave.intelligence*10)+(($activeSlave.devotion+$activeSlave.trust)/10)>> - <<if $PC.career is "slaver">> + <<if ($PC.career == "slaver") || ($PC.career == "arcology owner")>> <<set $activeSlave.training += 20>> <</if>> <<if $activeSlave.training < 100>> @@ -971,7 +928,7 @@ Since you've decided to induce her to sexual idealism, you keep her in your office, and when the two of you are all alone, gossip with her about other slaves and even citizens. You do your best to encourage her to believe absurdities. <<InduceFlawLenityEffects>> <<set $activeSlave.training += 80-($activeSlave.intelligence*10)+(($activeSlave.devotion+$activeSlave.trust)/10)>> - <<if $PC.career is "slaver">> + <<if ($PC.career == "slaver") || ($PC.career == "arcology owner")>> <<set $activeSlave.training += 20>> <</if>> <<if $activeSlave.training < 100>> @@ -985,7 +942,7 @@ Since you've decided to force sexual repression on her, you keep her in your office whenever she's not otherwise occupied. You use the monitoring systems to reveal her sexual arousal whenever it appears, and castigate and punish her for it. <<InduceFlawAbuseEffects>> <<set $activeSlave.training += 80-($activeSlave.intelligence*10)+(($activeSlave.devotion+$activeSlave.trust)/10)>> - <<if $PC.career is "slaver">> + <<if ($PC.career == "slaver") || ($PC.career == "arcology owner")>> <<set $activeSlave.training += 20>> <</if>> <<if $activeSlave.training < 100>> @@ -1000,7 +957,7 @@ <<InduceFlawAbuseEffects>> <<if ($activeSlave.vagina > -1) && ($activeSlave.vaginalAccessory != "chastity belt")>><<VaginalVCheck 10>><<else>><<AnalVCheck 10>><</if>> <<set $activeSlave.training += 80-($activeSlave.intelligence*10)+(($activeSlave.devotion+$activeSlave.trust)/10)>> - <<if $PC.career is "slaver">> + <<if ($PC.career == "slaver") || ($PC.career == "arcology owner")>> <<set $activeSlave.training += 20>> <</if>> <<if $activeSlave.training < 100>> @@ -1015,7 +972,7 @@ <<if ($activeSlave.vagina > -1) && ($activeSlave.vaginalAccessory != "chastity belt")>><<VaginalVCheck 10>><<else>><<AnalVCheck 10>><</if>> <<InduceFlawAbuseEffects>> <<set $activeSlave.training += 80-($activeSlave.intelligence*10)+(($activeSlave.devotion+$activeSlave.trust)/10)>> - <<if $PC.career is "slaver">> + <<if ($PC.career == "slaver") || ($PC.career == "arcology owner")>> <<set $activeSlave.training += 20>> <</if>> <<if $activeSlave.training < 100>> @@ -1029,7 +986,7 @@ Since you've decided to make her sexually judgemental, you keep her in your office and fuck her, <<if $PC.dick == 1>>praising her whenever she takes your big dick well<<else>>using a huge strap-on on her and praising her when she takes it like a good girl<</if>>. You also judge others' endowments in her presence. <<InduceFlawLenityEffects>> <<set $activeSlave.training += 80-($activeSlave.intelligence*10)+(($activeSlave.devotion+$activeSlave.trust)/10)>> - <<if $PC.career is "slaver">> + <<if ($PC.career == "slaver") || ($PC.career == "arcology owner")>> <<set $activeSlave.training += 20>> <</if>> <<if $activeSlave.training < 100>> @@ -1043,7 +1000,7 @@ The cumslut is quite pleased when you order her to stay in your office whenever she can for use as one of your personal oral toys. You carefully limit her orgasms to when <<if $PC.dick == 1>>you're blowing your load down her throat<<else>>she's swallowing your pussyjuice<</if>>, and make her oral adventures predictably regular. <<set $activeSlave.oralCount += 10, $oralTotal += 10>> <<set $activeSlave.training += 80-($activeSlave.intelligence*10)+(($activeSlave.devotion+$activeSlave.trust)/10)>> - <<if $PC.career is "slaver">> + <<if ($PC.career == "slaver") || ($PC.career == "arcology owner")>> <<set $activeSlave.training += 20>> <</if>> <<if $activeSlave.training < 100>> @@ -1057,7 +1014,7 @@ The buttslut is quite pleased when you order her to stay in your office whenever she can for use as one of your personal anal toys. You make her anal orgasms predictably regular, doing your best to inculcate reliance on them. <<AnalVCheck 10>> <<set $activeSlave.training += 80-($activeSlave.intelligence*10)+(($activeSlave.devotion+$activeSlave.trust)/10)>> - <<if $PC.career is "slaver">> + <<if ($PC.career == "slaver") || ($PC.career == "arcology owner")>> <<set $activeSlave.training += 20>> <</if>> <<if $activeSlave.training < 100>> @@ -1071,7 +1028,7 @@ The humiliation slut is quite pleased when you order her to stay in your office whenever she can, and fucking her whenever other slaves are present. You do your best to focus her attention on how the others react to the spectacle. <<if ($activeSlave.vagina > -1) && ($activeSlave.vaginalAccessory != "chastity belt")>><<VaginalVCheck 10>><<else>><<AnalVCheck 10>><</if>> <<set $activeSlave.training += 80-($activeSlave.intelligence*10)+(($activeSlave.devotion+$activeSlave.trust)/10)>> - <<if $PC.career is "slaver">> + <<if ($PC.career == "slaver") || ($PC.career == "arcology owner")>> <<set $activeSlave.training += 20>> <</if>> <<if $activeSlave.training < 100>> @@ -1084,7 +1041,7 @@ <<case "induce breast growth obsession">> You inspect her breasts multiple times a day, and praise her effusively when they grow at all. You treat it as though it were something she could control personally. <<set $activeSlave.training += 80-($activeSlave.intelligence*10)+(($activeSlave.devotion+$activeSlave.trust)/10)>> - <<if $PC.career is "slaver">> + <<if ($PC.career == "slaver") || ($PC.career == "arcology owner")>> <<set $activeSlave.training += 20>> <</if>> <<if $activeSlave.training < 100>> @@ -1098,7 +1055,7 @@ The dom is gratified when you order her to stay in your office whenever she can to fuck any slave you feel like throwing her way. You do your best to limit her menu items to reluctant or even rebellious slaves, and praise her when she forces herself on them. <<set $activeSlave.penetrativeCount += 20, $penetrativeTotal += 20>> <<set $activeSlave.training += 80-($activeSlave.intelligence*10)+(($activeSlave.devotion+$activeSlave.trust)/10)>> - <<if $PC.career is "slaver">> + <<if ($PC.career == "slaver") || ($PC.career == "arcology owner")>> <<set $activeSlave.training += 20>> <</if>> <<if $activeSlave.training < 100>> @@ -1112,7 +1069,7 @@ The sadist is gratified when you order her to stay in your office whenever she can to have her way with any slave you feel like throwing her way. You do your best to limit her menu items to rebellious slaves, and praise her when her sadism makes her an effective punishment tool. <<set $activeSlave.penetrativeCount += 20, $penetrativeTotal += 20>> <<set $activeSlave.training += 80-($activeSlave.intelligence*10)+(($activeSlave.devotion+$activeSlave.trust)/10)>> - <<if $PC.career is "slaver">> + <<if ($PC.career == "slaver") || ($PC.career == "arcology owner")>> <<set $activeSlave.training += 20>> <</if>> <<if $activeSlave.training < 100>> @@ -1126,7 +1083,7 @@ You order the masochist to stay in your office whenever she's not working or resting. You fuck her cruelly, going beyond the pain she enjoys into harsh degradation. And every time you use her, you make sure to tell her how useless she is. <<if ($activeSlave.vagina > -1) && ($activeSlave.vaginalAccessory != "chastity belt")>><<VaginalVCheck 10>><<else>><<AnalVCheck 10>><</if>> <<set $activeSlave.training += 80-($activeSlave.intelligence*10)+(($activeSlave.devotion+$activeSlave.trust)/10)>> - <<if $PC.career is "slaver">> + <<if ($PC.career == "slaver") || ($PC.career == "arcology owner")>> <<set $activeSlave.training += 20>> <</if>> <<if $activeSlave.training < 100>> @@ -1140,7 +1097,7 @@ You order the sub to stay in your office whenever she's not working or resting, and use her body for your pleasure. The instant you climax, you go back to your work or to another slave, treating her like a piece of used tissue. <<if ($activeSlave.vagina > -1) && ($activeSlave.vaginalAccessory != "chastity belt")>><<VaginalVCheck 10>><<else>><<AnalVCheck 10>><</if>> <<set $activeSlave.training += 80-($activeSlave.intelligence*10)+(($activeSlave.devotion+$activeSlave.trust)/10)>> - <<if $PC.career is "slaver">> + <<if ($PC.career == "slaver") || ($PC.career == "arcology owner")>> <<set $activeSlave.training += 20>> <</if>> <<if $activeSlave.training < 100>> @@ -1154,7 +1111,7 @@ You order the pregnant slut to stay in your office whenever she's not working or resting. <<if $activeSlave.preg <= 0>>Since she's not pregnant, you keep her rigged up with an enormous sympathy belly when she's there.<</if>> Rather than fucking her, you praise her pregnancy effusively, and only allow her to get off when you're doing so. <<set $activeSlave.training += 80-($activeSlave.intelligence*10)+(($activeSlave.devotion+$activeSlave.trust)/10)>> - <<if $PC.career is "slaver">> + <<if ($PC.career == "slaver") || ($PC.career == "arcology owner")>> <<set $activeSlave.training += 20>> <</if>> <<if $activeSlave.training < 100>> @@ -1175,4 +1132,4 @@ <<break>> <</if>> <</for>> -<</if>> +<</if>> \ No newline at end of file diff --git a/src/uncategorized/randomIndividualEvent.tw b/src/uncategorized/randomIndividualEvent.tw index ff570d0575b3faee2ff1a7fe6155f4dc9914b49d..9c54764c7973990b81b87e9c6e49ce35ea56b2ac 100644 --- a/src/uncategorized/randomIndividualEvent.tw +++ b/src/uncategorized/randomIndividualEvent.tw @@ -688,7 +688,7 @@ <<if $eventSlave.trust >= -50>> <<if $eventSlave.fetish != "boobs">> <<if $eventSlave.intelligence > -2>> - <<set $RESSTRevent.push("breast expansion blues")>> + <<set $RESSevent.push("breast expansion blues")>> <</if>> <</if>> <</if>> @@ -698,12 +698,52 @@ <</if>> <</if>> +<<if $eventSlave.physicalAge > 35>> +<<if $eventSlave.speechRules != "restrictive">> +<<if ($eventSlave.assignment == "serve the public") || ($eventSlave.assignment == "whore")>> +<<if $eventSlave.devotion > -20>> +<<if $eventSlave.devotion <= 95>> + <<set $RESSTRevent.push("ara ara")>> +<</if>> +<</if>> +<</if>> +<</if>> +<</if>> + +<<if $eventSlave.anus > 3>> +<<if $eventSlave.devotion > 50>> +<<if $eventSlave.trust > 50>> + <<set $RESSTRevent.push("gaped asshole")>> +<</if>> +<</if>> +<</if>> + +<<if $eventSlave.health > 90>> +<<if $eventSlave.muscle > 5>> +<<if $eventSlave.weight <= 30>> +<<if $eventSlave.weight >= -30>> +<<if $eventSlave.trust > 50>> +<<if $eventSlave.devotion > 50>> + <<set $RESSTRevent.push("passing declaration")>> +<</if>> +<</if>> +<</if>> +<</if>> +<</if>> +<</if>> + +<<if $eventSlave.trust < -50>> +<<if $eventSlave.devotion < 50>> + <<set $RESSTRevent.push("im scared")>> +<</if>> +<</if>> + <</if>> /* closes mute exempt */ -<<if $eventSlave.vaginaLube > 0>> +<<if $eventSlave.vaginaLube > 1>> <<if $eventSlave.devotion > 20>> <<if $eventSlave.vagina > -1>> - <<set $RESSTRevent.push("moist pussy")>> + <<set $RESSevent.push("moist pussy")>> <</if>> <</if>> <</if>> @@ -712,7 +752,7 @@ <<if $eventSlave.trust <= -20>> <<if $eventSlave.dick > 0>> <<if $eventSlave.attrXY < 50>> - <<set $RESSTRevent.push("transition anxiety")>> + <<set $RESSevent.push("transition anxiety")>> <</if>> <</if>> <</if>> @@ -1075,6 +1115,7 @@ <<if ($eventSlave.devotion > 50)>> <<if ($PC.dick != 0)>> <<if ($eventSlave.fetish is "pregnancy") || ($eventSlave.energy > 95)>> +<<if $eventSlave.eggType == "human">> <<if ($eventSlave.fetishKnown == 1)>> <<if ($eventSlave.vagina > 0)>> <<if ($eventSlave.anus > 0)>> @@ -1086,6 +1127,7 @@ <</if>> <</if>> <</if>> +<</if>> <<if ($eventSlave.buttplug is "large plug") || ($eventSlave.buttplug is "long, large plug")>> <<if ($eventSlave.assignment != "stay confined")>> diff --git a/src/uncategorized/randomNonindividualEvent.tw b/src/uncategorized/randomNonindividualEvent.tw index d43c92c453f5048e3ade8b5a316e930607c150d4..de247bed12886d7c624f044d59f4dfd2aae58abe 100644 --- a/src/uncategorized/randomNonindividualEvent.tw +++ b/src/uncategorized/randomNonindividualEvent.tw @@ -97,15 +97,7 @@ <<if ($slaves[$i].daughters > 0)>> <<if ($slaves[$i].devotion > 50)>> <<set $mother to $slaves[$i]>> - <<set $relation = $slaves>> - <<set $relation = $relation.shuffle()>> - <<for $j to 0; $j < $relation.length; $j++>> - <<if $relation[$j].mother == $mother.ID>> - <<set $daughter to $relation[$j]>> - <<set $relation = 0>> - <<break>> - <</if>> - <</for>> + <<set $daughter to RandomDaughter($slaves[$i])>> <<if ($daughter.devotion > 50)>> <<if canWalk($daughter)>> <<if canWalk($mother)>> @@ -129,15 +121,7 @@ <<if ($slaves[$i].sisters > 0)>> <<if ($slaves[$i].dick == 1)>> <<set $youngerSister to $slaves[$i]>> - <<set $relation = $slaves>> - <<set $relation = $relation.shuffle()>> - <<for $j to 0; $j < $relation.length; $j++>> - <<if areSisters($youngerSister, $relation[$j]) > 1>> - <<set $olderSister to $relation[$j]>> - <<set $relation = 0>> - <<break>> - <</if>> - <</for>> + <<set $olderSister to randomSister($slaves[$i])>> <<if ($olderSister.anus == 0)>> <<if ($youngerSister.devotion > ($olderSister.devotion+20))>> <<set $events.push("RE sibling revenge")>> @@ -154,15 +138,7 @@ <<if ($used == 0)>> <<if ($slaves[$i].sisters > 0)>> <<set $alphaTwin to $slaves[$i]>> - <<set $relation = $slaves>> - <<set $relation = $relation.shuffle()>> - <<for $j to 0; $j < $relation.length; $j++>> - <<if areSisters($relation[$i], $alphaTwin) == 1>> - <<set $betaTwin to $relation[$j]>> - <<set $relation = 0>> - <<break>> - <</if>> - <</for>> + <<set $betaTwin to randomSister($slaves[$i])>> <<if ($alphaTwin.anus > 0)>> <<if ($betaTwin.anus > 0)>> <<if ($alphaTwin.devotion > 50)>> @@ -771,8 +747,8 @@ <<if ($slaves[$i].devotion > 50)>> <<if canWalk($slaves[$i])>> <<if random(1,100) > 80+(totalRelatives($slaves[$i])*5)>> - <<for $j to 0; $j < $recruiters.length; $j++>> - <<if $slaves[$i].ID is $recruiters[$j].ID>> + <<for $j to 0; $j < $slavesOriginal.length; $j++>> + <<if $slaves[$i].ID is $slavesOriginal[$j].ID>> <<set $events.push("RE relative recruiter")>> <<break>> <</if>> diff --git a/src/uncategorized/reBusyMasterSuite.tw b/src/uncategorized/reBusyMasterSuite.tw index 9d853a7e555c4163acbe4eaeda73f58c508ffe02..3969e9ebf22459f8e5c824e5447a79e71a44b91c 100644 --- a/src/uncategorized/reBusyMasterSuite.tw +++ b/src/uncategorized/reBusyMasterSuite.tw @@ -1,6 +1,4 @@ -:: RE busy master suite - -<<nobr>> +:: RE busy master suite [nobr] <<set $nextButton to "Continue">> <<set $nextLink to "RIE Eligibility Check">> @@ -24,13 +22,10 @@ <<goto "RIE Eligibility Check">> <</if>> -<</nobr>>\ -\ You have an extended meeting with a prominent citizen planned, from the start of business in the morning until you're done. That's likely to be in the late evening, since he's probably going to get into technical business proposals, and $Concubine.slaveName knows it. She is surprised, therefore, when a minor business emergency calls your would-be interlocutor away, canceling the meeting and sending you home hours earlier than you'd planned. She <<if canTalk($Concubine)>>giggles helplessly<<else>>signs humorously<</if>> at the surprise when you walk into your suite. Apparently, she decided to while away the hours until you got back by having some truly grandiose group sex with all the slave girls you have in the suite. -<<nobr>> - <<set $seed to 0>> +<br><br> She had to turn to greet you as you entered, since she was facing away from the entry, and the reason why is rather obvious. Up near the opposite wall, $eligibleSlaves[$seed].slaveName is on the floor with her face down and her ass up. <<for $i to 0; $i < $eligibleSlaves.length-1; $i++>> @@ -120,12 +115,11 @@ who has paused her thrusting to issue a peremptory order to the slaves to stay w $seed[0].slaveName is an anal virgin, so $Concubine.slaveName has her busy lying under slaves who aren't, offering what oral stimulation she can manage. <</if>> -<</nobr>> -\ <span id="result"> -<<click "Slide in behind the concubine">> +<br><br><<click "Slide in behind the concubine">> <<replace "#result">> <<set $seed to $eligibleSlaves.length-1>> + <br><br> $Concubine.slaveName anticipates you, and is already sliding herself partway out of $eligibleSlaves[$seed].slaveName and cocking her hips to spread her <<if ($Concubine.butt > 5)>>huge<<elseif ($Concubine.butt > 2)>>healthy<<else>>trim<</if>> buttocks as wide as she can without disentangling herself from the anal train. Up on the bed she's at just the right height, and she winks her <<if ($Concubine.anus > 2)>>loose anus<<elseif ($Concubine.anus > 1)>>asshole<<else>>tight little asshole<</if>> invitingly<<if canTalk($Concubine)>>, laughing at the sheer decadence of it<</if>>. <<if ($PC.dick == 0)>>You pull on a strap-on and push it<<else>>You push yourself<</if>> home with some force, your concubine's extreme state of arousal leaving her ass very relaxed and welcoming; the thrust shoves her forward to hilt herself in $eligibleSlaves[$seed].slaveName, and so on down the line, producing more giggling, some squealing, and much scrabbling for balance. It takes a while to find the rhythm, and while you wait for the inevitable tangles to be fixed you decide to challenge yourself. You reach around and <<if ($Concubine.boobs > 1000)>>heft $Concubine.slaveName's heavy boobs<<elseif ($Concubine.boobs > 300)>>tease $Concubine.slaveName's healthy breasts<<else>>massage $Concubine.slaveName's flat chest<</if>>, nibbling her $Concubine.skin neck, and generally torturing her with stimulation until she climaxes to her beloved master. When she does, you extract yourself and pull her unceremoniously off $eligibleSlaves[$seed].slaveName, replacing her up $eligibleSlaves[$seed].slaveName's butt. You work your way down the line, orgasm by orgasm, delaying your own climax until the exhausted $eligibleSlaves[0].slaveName manages an anal orgasm by heroic efforts, and you're done. As you roll off her, panting, there is scattered applause and much congratulation from your harem of @@color:mediumaquamarine;trusting buttslaves.@@ <<for $i to 0; $i < $slaves.length; $i++>> <<if $slaves[$i].assignment is "serve in the master suite">> @@ -146,9 +140,10 @@ who has paused her thrusting to issue a peremptory order to the slaves to stay w <</for>> <</replace>> <</click>> -<<click "Slide in up at the head of the bed for some oral">> +<br><<click "Slide in up at the head of the bed for some oral">> <<replace "#result">> <<set $seed to 0>> + <br><br> $eligibleSlaves[0].slaveName's $eligibleSlaves[0].eyeColor eyes widen when you push her upright for a moment and slide in under her, but she wraps her <<if ($eligibleSlaves[0].lips > 70)>> dick sucking<<elseif ($eligibleSlaves[0].lips > 20)>> pretty<</if>> lips around your <<if ($PC.dick == 0)>>clit<<else>>cock<<if $PC.vagina == 1>> and starts stroking your pussy<</if>><</if>> eagerly enough, even as $eligibleSlaves[1].slaveName goes back to sodomizing her. The anal train is fairly gentle, since anything too fast would disintegrate the gymnastic arrangement, but $eligibleSlaves[0].slaveName is still getting enough of a buttfuck that she whimpers quietly into your <<if ($PC.vagina == 1)>>pussy<<else>>dick<</if>>, a nice feeling. The blowjob is <<if ($eligibleSlaves[0].oralSkill >= 100)>>masterful, despite the distraction<<elseif ($eligibleSlaves[0].oralSkill > 10)>>serviceable, despite the distraction<<else>>only mediocre, but serviceable enough<</if>>, so you let her work for a while before gently shoving her off the side of the bed and telling her to get to the back of the line. The slaves all shuffle forward awkwardly, and inadvertently block your view so that you hear rather than see $eligibleSlaves[0].slaveName penetrate your concubine $Concubine.slaveName's <<if ($Concubine.anus > 2)>>loose butt<<elseif ($Concubine.anus > 1)>>butt<<else>>tight little butt<</if>>, down near the foot of the bed. You climax, on occasion, but are enjoying yourself so immensely that you let the slaves continue the rotation until you're entirely spent, and they're entirely exhausted. You reach for a tablet to get some work done, in the center of a pile of sweaty, tired girls, all of whom are resting with at least one body part in contact with their @@color:hotpink;beloved@@ <<if $PC.title == 1>>master<<else>>mistress<</if>>. <<for $i to 0; $i < $slaves.length; $i++>> <<if $slaves[$i].assignment is "serve in the master suite">> diff --git a/src/uncategorized/reBusyServantsQuarters.tw b/src/uncategorized/reBusyServantsQuarters.tw index fdc98077d3921fad41e8af1f6368d2a250785138..0235861004b8e61798de8d8ef8eec313a90c237e 100644 --- a/src/uncategorized/reBusyServantsQuarters.tw +++ b/src/uncategorized/reBusyServantsQuarters.tw @@ -1,19 +1,16 @@ -:: RE busy servants quarters - -<<nobr>> +:: RE busy servants quarters [nobr] <<set $nextButton to "Continue">> <<set $nextLink to "RIE Eligibility Check">> -<</nobr>>\ -\ Your penthouse is very well staffed with servants. The trend in modern buildings is to design around automatic cleaning systems. Dusting, mopping, and polishing are no longer really necessary when machines that do them more cheaply and thoroughly than any human are readily available. Keeping slaves to clean is an ostentation, and visitors to your quarters are often @@color:green;surprised and gratified@@ to see a sex slave working away in the old way.<<set $rep += 100>> -The busy servants' quarters are a reservoir of slaves that can be used for almost any whim that occurs to you. -\ +<br><br>The busy servants' quarters are a reservoir of slaves that can be used for almost any whim that occurs to you. + <span id="result"> -<<click "Share the servants' quarters with your more favored slaves">> +<br><br><<click "Share the servants' quarters with your more favored slaves">> <<replace "#result">> + <br><br> The poor slaves in the servants' quarters are lower than almost any others, and they know it. Unfortunately for them, they're about to spend a long weekend knowing it unusually well. Sleeping time is usually nearly inviolate; you are the only person in the penthouse who is permitted to wake a sleeping slave for any but emergency reasons. Not now. You haunt the servants' quarters, using and abusing at will, and encourage your better slaves to follow your example. They quickly take the opportunity to be better than someone for once, and compete with each other in sexual harassment of the servants. They @@color:hotpink;appreciate@@ having @@color:mediumorchid;targets@@ for their frustrations. <<for $i to 0; $i < $slaves.length; $i++>> <<if $slaves[$i].assignment != "work in servants' quarters">> diff --git a/src/uncategorized/reFSAcquisition.tw b/src/uncategorized/reFSAcquisition.tw index f6fac6c312f80bae9cd193c66fcf71537396feb8..89217ff9d464dba39497efbd20fdbd87b7f3a216 100644 --- a/src/uncategorized/reFSAcquisition.tw +++ b/src/uncategorized/reFSAcquisition.tw @@ -1,5 +1,5 @@ :: RE FS acquisition - + <<nobr>> <<set $nextButton to "Continue">> @@ -82,7 +82,7 @@ <<set $activeSlaveOneTimeMinAge to 10>> <<set $activeSlaveOneTimeMaxAge to 18>> <<display "Generate XX Slave">> -<<set $activeSlave.origin to "She thought she was important, she was not.">> +<<set $activeSlave.origin to "She thought she was important; she was not.">> <<set $activeSlave.career to "a student from a private school">> <<set $activeSlave.intelligence to random(1,2)>> <<set $activeSlave.intelligenceImplant to 1>> @@ -567,7 +567,7 @@ The call comes in from an office, and you suppress the urge to check whether $as <span id="result"> <<if $cash >= $contractCost>>\ <<click "Enslave her">> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <<set $cash -= $contractCost>> <<replace "#result">> <<switch $FSAcquisition>>\ diff --git a/src/uncategorized/reFSEgyptianRevivalistAcquisition.tw b/src/uncategorized/reFSEgyptianRevivalistAcquisition.tw index 50bdca5a237ed95d8e37537cf5509a72a634691b..e1cd0c6c9c09d2235bf5fa1998ecf161e5a2ffc0 100644 --- a/src/uncategorized/reFSEgyptianRevivalistAcquisition.tw +++ b/src/uncategorized/reFSEgyptianRevivalistAcquisition.tw @@ -1,5 +1,4 @@ :: RE FSEgyptianRevivalist acquisition - /* Written and coded by Boney M */ <<nobr>> @@ -46,7 +45,7 @@ This call is coming from a public kiosk, which is usually an indication that the <span id="result"> <<if $cash >= $contractCost>>\ -[[Enslave the pair|RE FSEgyptianRevivalist acquisition workaround][$sibling to $activeSlave, $slaves.push($sibling), $cash -= ($contractCost)]] +[[Enslave the pair|RE FSEgyptianRevivalist acquisition workaround][$sibling to $activeSlave, $cash -= ($contractCost)]] <<else>>\ //You lack the necessary funds to enslave them.// <</if>>\ diff --git a/src/uncategorized/reFSEgyptianRevivalistAcquisitionWorkaround.tw b/src/uncategorized/reFSEgyptianRevivalistAcquisitionWorkaround.tw index b647599810ca0efa9be84541e9cc8f893d5f9948..89ee6ae0d2717f7ccb7b90f76413a0b67c629267 100644 --- a/src/uncategorized/reFSEgyptianRevivalistAcquisitionWorkaround.tw +++ b/src/uncategorized/reFSEgyptianRevivalistAcquisitionWorkaround.tw @@ -1,15 +1,13 @@ :: RE FSEgyptianRevivalist acquisition workaround - + /* Written and coded by Boney M */ They arrive hand-in-hand and don't let go of each other until the end of the enslavement process, and even after they break their grip and undress at your instruction, their eyes never stray far from each other. With a closer look at them, their blood relation is as obvious as their infatuation with one another. No wonder they couldn't keep it a secret. -<<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> -<</if>> +<<AddSlave $sibling>> <<set _secondSlave to $activeSlave>> -<<display "Nationality to Name">> +<<NationalityToName>> <<set _secondSlave.slaveName to $activeSlave.birthName>> <<set _secondSlave.ID to $activeSlave.ID + 1000>> @@ -27,7 +25,6 @@ They arrive hand-in-hand and don't let go of each other until the end of the ens <<set _secondSlave.relationshipTarget to $activeSlave.ID - 1000>> - <<set _secondSlave.hStyle to either("ass-length", "long", "shoulder-length", "short", "very short", "shaved bald")>> <<if (_secondSlave.actualAge <= 22)>> <<set _secondSlave.career to $youngCareers.random()>> @@ -97,4 +94,4 @@ They arrive hand-in-hand and don't let go of each other until the end of the ens <</if>> - <<set $slaves.push(_secondSlave)>> +<<AddSlave _secondSlave>> \ No newline at end of file diff --git a/src/uncategorized/reLegendaryWhore.tw b/src/uncategorized/reLegendaryWhore.tw index 7489280753ba5a0dc9218b46b4fea0bb61f8e341..0f6908855ac82ca787a99d3dae5e6a706a9e3c3c 100644 --- a/src/uncategorized/reLegendaryWhore.tw +++ b/src/uncategorized/reLegendaryWhore.tw @@ -1,4 +1,4 @@ -:: RE legendary Whore +:: RE legendary whore <<nobr>> diff --git a/src/uncategorized/reMalefactor.tw b/src/uncategorized/reMalefactor.tw index b5520a22dfa366f3b1bcdfd28459bf2a56bad80a..fa41d83edd07e6f31163576f70f533128eed99ac 100644 --- a/src/uncategorized/reMalefactor.tw +++ b/src/uncategorized/reMalefactor.tw @@ -231,7 +231,7 @@ <span id="result"> <<if $cash >= $contractCost>> <<click "Enslave her">> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <<set $cash -= $contractCost>> <<replace "#result">> <<if $malefactor is "addict">> @@ -265,7 +265,7 @@ <</if>> <</if>> <<if $activeSlave.publicCount>><<set $activeSlave.publicCount += 47>><<else>><<set $activeSlave.publicCount to 47>><</if>> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <<set $cash -= $contractCost>> <<replace "#result">> <<if $malefactor is "addict">> @@ -295,7 +295,7 @@ <<set $activeSlave.assignment to "be confined in the arcade">><<set $activeSlave.assignmentVisible to 0>> <<set $activeSlave.choosesOwnAssignment to 0>> <<set $activeSlave.sentence to 4>> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <<set $cash -= $contractCost>> <<replace "#result">> <<if $malefactor is "addict">> @@ -325,10 +325,7 @@ <<set $activeSlave.assignment to "work in the dairy">> <<set $activeSlave.assignmentVisible to 0>> <<set $activeSlave.choosesOwnAssignment to 0>> - <<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> - <</if>> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <<set $cash -= $contractCost>> <<replace "#result">> <<if $malefactor is "addict">> @@ -358,7 +355,7 @@ <<set $activeSlave.amp to 1>> <<set $activeSlave.heels to 0>> <<set $activeSlave.behavioralFlaw to "odd">> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <<set $cash -= $contractCost>> <<replace "#result">> <<if $malefactor is "addict">> @@ -387,10 +384,7 @@ <<set $activeSlave.balls to 0>> <<set $activeSlave.devotion -= 25>> <<set $activeSlave.trust -= 25>> - <<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> - <</if>> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <<set $cash -= $contractCost>> <<replace "#result">> Video feeds from your remote surgery are made public as the protesting criminal is strapped down and gelded. She is so utterly broken by this turn of events that you complete the legalities and biometric scanning without fuss. The condemned sobs weakly throughout the process until you grow tired of the whining and apply punishment. Then it's off to the penthouse for basic slave induction. The public @@color:green;approves of this harshness,@@ which increases your arcology's prosperity by @@color:green;giving it a reputation for swift and terrible justice.@@ @@ -404,10 +398,7 @@ <br><<click "'adopt' her">> <<set $activeSlave.devotion = 25>> <<set $activeSlave.trust = 25>> - <<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> - <</if>> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <<set $cash -= $contractCost>> <<replace "#result">> You sit down and talk to the exhausted girl, handing her a contract cleverly altered to resemble adoption papers. Once she comprehends what she is looking at, she eagerly signs it. Only once she has reached the penthouse and been introduced to the slave life does she realize she willingly signed away her freedom. Though she can't complain. A warm cot and plenty of food await, which to her is a huge improvement over a slow death on the streets. The public @@color:red;feels you let this criminal off too easy.@@ diff --git a/src/uncategorized/reRecruit.tw b/src/uncategorized/reRecruit.tw index 02c1bb85f83e29a7c98060416898512d07cb4def..b75a49aa56417b12d311ae309c362769ad7bef25 100644 --- a/src/uncategorized/reRecruit.tw +++ b/src/uncategorized/reRecruit.tw @@ -1,5 +1,5 @@ :: RE recruit - + <<nobr>> <<set $nextButton to "Continue">> @@ -1390,7 +1390,7 @@ Your desk flags a video message as having potential. It's a desperate refugee fr <span id="result"> <<if $cash >= $contractCost>>\ <<click "Enslave her">> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <<set $cash -= $contractCost>> <<replace "#result">> <<nobr>> diff --git a/src/uncategorized/reRelativeRecruiter.tw b/src/uncategorized/reRelativeRecruiter.tw index d7851bfbdfe32e08a517283508966dbda6e47ead..0747d730a21ec9bdc33358537902e4cdbdde6419 100644 --- a/src/uncategorized/reRelativeRecruiter.tw +++ b/src/uncategorized/reRelativeRecruiter.tw @@ -15,10 +15,10 @@ <<if $slaves[$i].canRecruit == 1>> <<if ($slaves[$i].devotion > 50)>> <<if canWalk($slaves[$i])>> - <<for $j to 0; $j < $recruiters.length; $j++>> - <<if $slaves[$i].ID is $recruiters[$j].ID>> + <<for $j to 0; $j < $slavesOriginal.length; $j++>> + <<if $slaves[$i].ID is $slavesOriginal[$j].ID>> <<set $eventSlave to $slaves[$i]>> - <<set $activeSlave to $recruiters[$j]>> + <<set $activeSlave to $slavesOriginal[$j]>> <<break>> <</if>> <</for>> @@ -470,7 +470,7 @@ She waits anxiously for your decision. <<slaveCost $activeSlave>> -<<display "Nationality to Name">> +<<NationalityToName>> <<if $useFSNames == 0>> <<set $activeSlave.slaveName to $activeSlave.birthName>> <<elseif $arcologies[0].FSRomanRevivalist > 20>> @@ -515,7 +515,7 @@ You look up the $activeSlave.relation. She costs ¤$slaveCost, a bargain, but yo <br><br> <span id="result"> <<click "Buy her">> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <<set $cash -= $slaveCost>> <<switch $relationType>> <<case "daughter">> @@ -732,11 +732,10 @@ You look up the $activeSlave.relation. She costs ¤$slaveCost, a bargain, but yo <<if ($slaves[$i].devotion > 50)>> <<if ($slaves[$i].relation == 0)>> <<if canWalk($slaves[$i])>> - <<for $j to 0; $j < $recruiters.length; $j++>> - <<if $slaves[$i].ID is $recruiters[$j].ID>> + <<for $j to 0; $j < $slavesOriginal.length; $j++>> + <<if $slaves[$i].ID is $slavesOriginal[$j].ID>> <<set $eventSlave to $slaves[$i]>> - <<set $activeSlave to $recruiters[$j]>> - <<set $dump to $recruiters.pluck([$j], [$j])>> + <<set $activeSlave to $slavesOriginal[$j]>> <<break>> <</if>> <</for>> @@ -893,17 +892,21 @@ She waits anxiously for your decision. <<set $activeSlave.lactation to 0>> <<set $activeSlave.actualAge += random(15,20)>> <<case "older sister">> + <<set $activeSlave.origin to "She was recruited into your service by her older sister.">> <<if $activeSlave.ovaries == 1>> <<set $activeSlave.boobs += 200>> <<set $activeSlave.butt += 1>> <</if>> <<set $activeSlave.actualAge to $activeSlave.actualAge+2>> <<case "young sister">> + <<set $activeSlave.origin to "She was recruited into your service by her younger sister.">> <<if $activeSlave.ovaries == 1>> <<set $activeSlave.boobs = Math.trunc($activeSlave.boobs-200,0,25000)>> <<set $activeSlave.butt = Math.trunc($activeSlave.butt-1,0,10)>> <</if>> <<set $activeSlave.actualAge to $activeSlave.actualAge-2>> +<<default>> + <<set $activeSlave.origin to "She was recruited into your service by her twin sister.">> <</switch>> <<if $eventSlave.recruiter != "twin">> @@ -968,7 +971,7 @@ She waits anxiously for your decision. <<slaveCost $activeSlave>> -<<display "Nationality to Name">> +<<NationalityToName>> <<if $useFSNames == 0>> <<set $activeSlave.slaveName to $activeSlave.birthName>> <<elseif $arcologies[0].FSRomanRevivalist > 20>> @@ -1004,7 +1007,7 @@ You look up the $activeSlave.relation. She costs ¤$slaveCost, a bargain, but yo <br><br> <span id="result"> <<click "Buy her">> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <<set $cash -= $slaveCost>> <<for $i to 0; $i < $slaves.length; $i++>> <<if $activeSlave.relationTarget is $slaves[$i].ID>> diff --git a/src/uncategorized/reShelterInspection.tw b/src/uncategorized/reShelterInspection.tw index dd5939fe3063ccfd600ed5bca686d5889f4eb502..82f662184d2083afe6a3bfbfa178361dd16ae430 100644 --- a/src/uncategorized/reShelterInspection.tw +++ b/src/uncategorized/reShelterInspection.tw @@ -1,5 +1,5 @@ :: RE shelter inspection - + <<nobr>> <<set $nextButton to "Continue">> @@ -52,10 +52,7 @@ Your assistant announces a visitor in the entryway of your penthouse, and adds<< \ <span id="result"> <<click "Amusing. Enslave her">> - <<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> - <</if>> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <<set $cash -= $contractCost>> <<replace "#result">> <<if $assistantName is "your personal assistant">>Your personal assistant<<else>>$assistantName<</if>> ushers her into your penthouse and keeps her busy for the few minutes you need to circumvent the Shelter's various legal and contractual defenses to prevent slaveowners from doing exactly what you're doing. Fortunately, you're cleverer and richer than most, and you succeed. You have her brought into your office, and you are pleased to see her. She's not young and she's not pretty, but her suit cannot disguise her big bottom, and she's using the tablet she has clasped protectively against her chest to conceal a huge pair of mature breasts. She knows exactly what's happened, and fixes you with a gimlet stare. "In a couple of months," she says with venom, "when you've filled me full of hormones and drugs and training, and I'm begging you to <<if $PC.dick == 1>>stick your tiny little dick up<<else>>fist<</if>> my asshole, remember this. It'll be conditioning and self-preservation and Stockholm Syndrome talking, not me. I think you're a <<if $PC.title == 1>>sad bastard<<else>>vile cunt<</if>>, and I always will." @@ -70,10 +67,7 @@ Your assistant announces a visitor in the entryway of your penthouse, and adds<< <<set $activeSlave.assignmentVisible to 0>> <<set $activeSlave.clothes to "no clothing">> <<set $activeSlave.lactation to 2>> - <<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> - <</if>> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <<set $cash -= $contractCost/2>> <<replace "#result">> $subSlave.slaveName is attached to a milking machine, so it would be extremely unwise to let the inspector report on $subSlave.slaveName's industrial fate in all its gorgeous productivity. So, you greet her politely, and bring her down to $dairyName to show her $subSlave.slaveName. The inspector has a single moment to stiffen in shock at the sight before she stiffens involuntarily due to the security drone tazing her unconscious. It takes a few credits here and there to circumvent the Shelter's various legal and contractual defenses to prevent slaveowners from doing exactly what you're doing, but you finish the day richer by one more big-boobed milk producer. You leave the inspector's drug dosage low to start, so she can appreciate her situation for a while. When the inspector awakes, her visor is set to show an overhead view of her bay in $dairyName. She sees her breasts, already larger than she remembers, gently swaying with the pumping of the milkers.<<if $dairyFeedersSetting > 1>> She sees the huge phallus occupying her mouth, and feels nutrition sliding down her throat.<</if>><<if $dairyPregSetting > 1>> She sees her vagina drooling as it's fucked in preparation for pregnancy.<</if>><<if $dairyPregSetting > 1>> She sees a massive piston moving slowly back and forth beneath her buttocks, and understands what the ache of impossible fullness in her bottom is.<</if>> Her hands ball into fists. diff --git a/src/uncategorized/reShippingContainer.tw b/src/uncategorized/reShippingContainer.tw index 9661ef19dfab94103d33eeb3f9cf2682472c2ab2..7caeefc174a0661b2c7e87d1810c25672c8d69ce 100644 --- a/src/uncategorized/reShippingContainer.tw +++ b/src/uncategorized/reShippingContainer.tw @@ -1,21 +1,19 @@ :: RE shipping container [nobr] - + <<set $nextButton to "Continue">> <<set $nextLink to "RIE Eligibility Check">> <<set $seed = Math.trunc(($slaveCostFactor*1000)/100)*100>> <<set $seed to Math.clamp($seed, 500, 1500)>> +<<set _newSlaves = []>> <<for $i to 0; $i < 5; $i++>> <<display "Generate XX Slave">> <<set $activeSlave.origin to "She arrived at your arcology in an undocumented shipping container.">> <<set $activeSlave.devotion = random(-90,-75)>> <<set $activeSlave.trust = -20>> <<set $activeSlave.health = -10>> - <<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> - <</if>> - <<set $slaves.push($activeSlave)>> + <<set _newSlaves.push($activeSlave)>> <</for>> <<set $helots += 25>> @@ -41,14 +39,9 @@ For now, the crowd around you is looking at the helpless human cargo with <span id="result"> <<click "Conduct an impromptu auction">> <<replace "#result">> - <<for $i to 0; $i < $slaves.length; $i++>> - <<if ($slaves[$i].weekAcquired == $week)>> - <<if ($slaves[$i].origin is "She arrived at your arcology in an undocumented shipping container.")>> - <<slaveCost $slaves[$i]>> - <<set $cash += $slaveCost>> - <<set $dump to $slaves.pluck([$i], [$i])>><<set $i-->> - <</if>> - <</if>> + <<for $i to 0; $i < _newSlaves.length; $i++>> + <<slaveCost _newSlaves[$i]>> + <<set $cash += $slaveCost>> <</for>> Allowing humor into your voice, you announce an auction, to be held immediately. The crowd appreciates the wit, and @@color:green;appreciates it even more@@ when you conduct the auction yourself. It's always good to take an opportunity to show off your understanding of the slave market in public. You @@color:yellowgreen;sell them all,@@ sex slaves and menials alike. Welcome to the Free Cities. <<set $helots -= 25>> @@ -58,6 +51,9 @@ For now, the crowd around you is looking at the helpless human cargo with <</click>> <br><<click "Keep them">> <<replace "#result">> + <<for $i to 0; $i < _newSlaves.length; $i++>> + <<AddSlave _newSlaves[$i]>> + <</for>> You announce that the shipment is in violation of shipping and slave market regulations, and is being confiscated. There's a certain @@color:red;disappointment@@ in the crowd that nothing more interesting came of it, but it's minor when compared to the chattel you just seized. <<set $rep -= 50>> <</replace>> @@ -65,12 +61,11 @@ For now, the crowd around you is looking at the helpless human cargo with <<if $arcologies[0].FSDegradationist isnot "unset">> <br><<click "Indulge the crowd's Degradationism">> <<replace "#result">> - <<for $i to 0; $i < $slaves.length; $i++>> - <<if ($slaves[$i].origin is "She arrived at your arcology in an undocumented shipping container.")>> - <<set $slaves[$i].anus to 3>> - <<if $activeSlave.vagina > -1>><<set $slaves[$i].vagina to 3>><</if>> - <<set $slaves[$i].health -= 20>> - <</if>> + <<for $i to 0; $i < _newSlaves.length; $i++>> + <<if _newSlaves[$i].vagina > -1>><<set _newSlaves[$i].vagina to 3>><</if>> + <<set _newSlaves[$i].anus to 3>> + <<set _newSlaves[$i].health -= 20>> + <<AddSlave _newSlaves[$i]>> <</for>> You use the container handling systems to segregate the obvious menials from the those with any potential as sex slaves. The menials go into a different container, which is whisked off, leaving a little shivering knot of frightened bodies, vulnerable and naked. The crowd watched all this with good humor, and there's silence enough that everyone hears your quiet announcement. You announce that the shipment is in violation of shipping and slave market regulations, and is being confiscated; however, you don't expect to see these particular slaves delivered to your penthouse for a couple of hours. Then you turn your back and walk away. The crowd gives a kind of @@color:green;appreciative howl@@ which, understandably, produces a wail of terror from the slaves. As you head off, the sobbing turns into screaming. It sounds like your new slaves might be a bit stretched out, here and there. <<set $rep += 200>> @@ -79,14 +74,9 @@ For now, the crowd around you is looking at the helpless human cargo with <<elseif $arcologies[0].FSPaternalist isnot "unset">> <br><<click "Indulge the crowd's Paternalism">> <<replace "#result">> - <<for $i to 0; $i < $slaves.length; $i++>> - <<if ($slaves[$i].weekAcquired == $week)>> - <<if ($slaves[$i].origin is "She arrived at your arcology in an undocumented shipping container.")>> - <<slaveCost $slaves[$i]>> - <<set $cash += $slaveCost>> - <<set $dump to $slaves.pluck([$i], [$i])>><<set $i-->> - <</if>> - <</if>> + <<for $i to 0; $i < _newSlaves.length; $i++>> + <<slaveCost _newSlaves[$i]>> + <<set $cash += $slaveCost>> <</for>> You hurry forward, beckoning the crowd to accompany you. The wretched slaves cringe with fear, but soon they're being comforted, offered water, and examined for injury. Once the most pressing needs are attended to, you call for everyone's attention. You pride yourself on knowing your citizens well, and you can pick good Paternalists out of the crowd at will. Calling them by name, you ask whether they'd be willing to take on one of these poor slaves. One by one, you pair slave and Master or Mistress, rewarding your best people with public approbation, not to mention a free slave. The initial gasps of surprise quickly grow into @@color:green;thunderous applause.@@ Your people love you. Several of the slaves begin to cry, mostly from confusion or sheer exhaustion; they don't yet know how lucky they are. <<set $helots -= 25>> @@ -94,4 +84,4 @@ For now, the crowd around you is looking at the helpless human cargo with <</replace>> <</click>> <</if>> -</span> +</span> \ No newline at end of file diff --git a/src/uncategorized/reSlaveMarriage.tw b/src/uncategorized/reSlaveMarriage.tw index f4f70d9c665b02ef7d8f197c8fd10d6db5337ba9..27c0ed64824041153e1d8e3b73587c2f84987efc 100644 --- a/src/uncategorized/reSlaveMarriage.tw +++ b/src/uncategorized/reSlaveMarriage.tw @@ -1,5 +1,5 @@ :: RE slave marriage - + <<nobr>> <<set $nextButton to "Continue">> @@ -19,7 +19,7 @@ <</nobr>>\ \ -<<print "[[$groomSlave.slaveName|Long Slave Description][$nextLink to passage(), $eventDescription to 1,$activeSlave to $groomSlave]]">> and <<print "[[$brideSlave.slaveName|Long Slave Description][$nextLink to passage(), $eventDescription to 1,$activeSlave to $brideSlave]]">> come into your office <<if ($groomSlave.amp != 1) && ($brideSlave.amp != 1)>>holding hands<<else>>doing their best to stay close to one another despite their physical limitations<</if>>. $brideSlave.slaveName looks at $groomSlave.slaveName expectantly, but she's terribly nervous and makes several false starts before beginning. Finally $groomSlave.slaveName musters her courage and <<if canTalk($groomSlave) == false>>asks you with simple gestures to grant the two of them a slave marriage.<<elseif ($groomSlave.lips > 70) || ($groomSlave.lipsPiercing+$groomSlave.tonguePiercing > 2)>>asks with her voice cracking, "<<if def $PC.customTitleLisp>>$PC.customTitleLisp<<elseif $PC.title != 0>>Mathter<<else>>Mithtreth<</if>>, may you pleathe grant uth a thlave marriage?"<<else>>asks with her voice cracking, "<<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Master<<else>>Mistress<</if>>, may you please grant us a slave marriage?"<</if>> +<<print "[[$groomSlave.slaveName|Long Slave Description][$nextLink to passage(), $eventDescription to 1,$activeSlave to $groomSlave]]">> and <<print "[[$brideSlave.slaveName|Long Slave Description][$nextLink to passage(), $eventDescription to 1,$activeSlave to $brideSlave]]">> come into your office <<if ($groomSlave.amp != 1) && ($brideSlave.amp != 1)>>holding hands<<else>>doing their best to stay close to one another despite their physical limitations<</if>>. $brideSlave.slaveName looks at $groomSlave.slaveName expectantly, but she's terribly nervous and makes several false starts before beginning. Finally $groomSlave.slaveName musters her courage and <<if canTalk($groomSlave) == false>>asks you with simple gestures to grant the two of them a slave marriage.<<elseif ($groomSlave.lips > 70) || ($groomSlave.lipsPiercing+$groomSlave.tonguePiercing > 2)>>asks with her voice cracking, "<<if def $PC.customTitleLisp>>$PC.customTitleLisp<<elseif $PC.title != 0>>Mathter<<else>>Mithtreth<</if>>, would you pleathe grant uth a thlave marriage?"<<else>>asks with her voice cracking, "<<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Master<<else>>Mistress<</if>>, would you please grant us a slave marriage?"<</if>> <<nobr>> <span id="result"> diff --git a/src/uncategorized/recETS.tw b/src/uncategorized/recETS.tw index d0352d241ff927a9ad9d37610473f3dbb442ea86..66a71cb41c6de1e50fe820024d5727ac7062c606 100644 --- a/src/uncategorized/recETS.tw +++ b/src/uncategorized/recETS.tw @@ -467,10 +467,6 @@ The other blurts out. "But we kinda got too into each other, in more ways than o <<display "Long Slave Description">> -<<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> -<</if>> - <br><br> <span id="result"> @@ -483,9 +479,9 @@ The other blurts out. "But we kinda got too into each other, in more ways than o <<set $activeSlave.daughters = 0>> <<set $activeSlave.relation to 0>> <<set $activeSlave.relationTarget to 0>> - <<set $activeSlave.oralCount += 1>> - <<set $oralTotal += 1>> - <<set $slaves.push($activeSlave)>> + <<set $activeSlave.oralCount += 1>> + <<set $oralTotal += 1>> + <<AddSlave $activeSlave>> <<set $cash -= $contractCost>> <<replace "#result">> Despite herself, she sobs with relief when you agree. She offers to <<if $PC.dick == 1>>suck you off<<if $PC.vagina == 1>> and <</if>><</if>><<if $PC.vagina == 1>>eat you out<</if>> while you complete the necessary legalities, so you work away with a <<if $PC.dick == 1>>pair of motherly lips wrapped around your dick<<else>>motherly tongue pleasuring your clit<</if>> as she pumps away eagerly under the desk. She's definitely on aphrodisiacs. She masturbates while she sucks. @@ -498,7 +494,7 @@ The other blurts out. "But we kinda got too into each other, in more ways than o <<set $activeSlave.daughters = 0>> <<set $activeSlave.relation to 0>> <<set $activeSlave.relationTarget to 0>> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <<set $cash -= $contractCost>> <<replace "#result">> You press your thumb down on your desk interface and then tell her to read the display, strip, and show you her body. She knits her brow in confusion and begins to curse at you but reads anyway. Comprehension dawns on her and she stares you in the eye for a long moment - and then drops her gaze. She knows the Free Cities well enough to understand. She stands and sadly strips off her blouse and slacks. Following orders, she rotates slowly for you. Then, she bends over facing away from you and spreads her buttocks to display her holes. Unsurprisingly, she's got a well-used pussy but has clearly never taken it up the ass. That will change. @@ -512,7 +508,7 @@ The other blurts out. "But we kinda got too into each other, in more ways than o <<set $activeSlave.father to 0>> <<set $activeSlave.relation to 0>> <<set $activeSlave.relationTarget to 0>> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <<set $cash -= $contractCost>> <<replace "#result">> The poor sissy isn't happy to become a slave, but she's clearly relieved to be away from her sister. The bitch isn't likely to have an easy time; the sale didn't clear her from debt. $activeSlave.slaveName describes her basic sexual experience, which includes a lot of sucking and anal whoring. Without more ado she moves from practical sexual slavery at the hands of her sister to actual sexual slavery. @@ -535,35 +531,40 @@ The other blurts out. "But we kinda got too into each other, in more ways than o <<case "addict mother daughter">> <<click "Manipulate her to enslave both mother and daughter">> - <<set $mother to $activeSlave, $mother.devotion -= 50, $slaves.push($mother), $cash -= ($contractCost*2)>> + <<set $mother to $activeSlave, $mother.devotion -= 50, $cash -= ($contractCost*2)>> + <<AddSlave $mother>> <<goto "RecETS workaround">> <</click>> <<case "posh mother daughter">> <<click "Manipulate her to enslave both mother and daughter">> - <<set $mother to $activeSlave, $mother.devotion -= 25, $slaves.push($mother), $cash -= ($contractCost*2)>> + <<set $mother to $activeSlave, $mother.devotion -= 25, $cash -= ($contractCost*2)>> + <<AddSlave $mother>> <<goto "RecETS workaround">> <</click>> <<case "mismatched pair">> <<click "Enslave both">> - <<set $sissy to $activeSlave, $slaves.push($sissy), $cash -= ($contractCost*2)>> + <<set $sissy to $activeSlave, $cash -= ($contractCost*2)>> + <<AddSlave $sissy>> <<goto "RecETS workaround">> <</click>> <<case "incest mother son" "incest father daughter">> <<click "Buy both">> - <<set $sissy to $activeSlave, $slaves.push($sissy), $cash -= $contractCost>> + <<set $sissy to $activeSlave, $cash -= ($contractCost*2)>> + <<AddSlave $sissy>> <<goto "RecETS workaround">> <</click>> <<case "matched pair" "identical pair" "identical herm pair">> <<click "Buy both">> - <<set $sissy to $activeSlave, $slaves.push($sissy), $cash -= ($contractCost*2)>> + <<set $sissy to $activeSlave, $cash -= ($contractCost*2)>> + <<AddSlave $sissy>> <<goto "RecETS workaround">> <</click>> @@ -576,4 +577,4 @@ The other blurts out. "But we kinda got too into each other, in more ways than o </span> -<</if>> /* CLOSES EVENT SELECTION */ \ No newline at end of file +<</if>> /* CLOSES EVENT SELECTION */ diff --git a/src/uncategorized/recETSWorkaround.tw b/src/uncategorized/recETSWorkaround.tw index 0d2d1292473b77a635f563fca6368f560e071bc0..ca504e0ccf5a5dc7f90de754da1c18fd23cbde78 100644 --- a/src/uncategorized/recETSWorkaround.tw +++ b/src/uncategorized/recETSWorkaround.tw @@ -247,7 +247,7 @@ They giggle and kiss each other rather passionately, their miniskirts becoming p ERROR: bad event <</switch>> -<<display "Nationality to Name">> +<<NationalityToName>> <<if $useFSNames == 0>> <<set $activeSlave.slaveName to $activeSlave.birthName>> <<elseif $arcologies[0].FSRomanRevivalist > 20>> @@ -261,4 +261,4 @@ They giggle and kiss each other rather passionately, their miniskirts becoming p <<else>> <<set $activeSlave.slaveName to $activeSlave.birthName>> <</if>> -<<set $slaves.push($activeSlave)>> \ No newline at end of file +<<AddSlave $activeSlave>> diff --git a/src/uncategorized/remFluctuations.tw b/src/uncategorized/remFluctuations.tw index 0d8ad092e8c300b5018b8616415ab89c8c5c0fae..e39886117d185a46dd829a48f087ab88736af048 100644 --- a/src/uncategorized/remFluctuations.tw +++ b/src/uncategorized/remFluctuations.tw @@ -1,6 +1,4 @@ -:: REM fluctuations - -<<nobr>> +:: REM fluctuations [nobr] <<set $nextButton to "Continue">> <<set $nextLink to "RIE Eligibility Check">> @@ -12,21 +10,57 @@ <</if>> <<if $assistant > 0>> - <<if $assistantName is "your personal assistant">> - Your personal assistant - <<else>> - $assistantName +<<if $marketAssistantAnnounced>> + The market assistant's avatar appears on a wall screen as you're going about your business. + <<switch $assistantAppearance>> + <<case "monstergirl">>The regular monstergirl stands behind and prods the human girl forward. + <<case "shemale">>You recognize her function by her glasses and because her bimbo cock softens, halfway, while she addresses you on economic matters. + <<case "amazon">>She illustrates a small group of gossiping tribeswomen that fades away as she leaves them and approaches you. + <<case "businesswoman">>The junior businesswoman adopts a shy posture when addressing you directly, as if unsuccessfully concealing a workplace crush. + <<case "goddess">>The demigoddess portrait arrives in a glittery cloud of dust, wearing winged shoes. + <<case "schoolgirl">>Both schoolgirls are sitting knee to knee; the nerdy one hands the other a folded note. "Pass it on," she stage whispers. <<if $assistantName is "your personal assistant">>Your regular assistant<<else>>$assistantName<</if>> rolls her eyes. + <<case "hypergoddess">>The demigoddess portrait arrives in a glittery cloud of dust, wearing winged shoes and a noticable roundness in her middle. + <<case "loli">>The chubby, glasses-wearing loli arrives holding a neatly folded note addressed to you. + <<case "preggololi">>The chubby, glasses-wearing loli arrives holding a hastily written note addressed to you. She seems kind of winded, with a suspicious stain in her panties under her pussy. + <<case "fairy" "pregnant fairy">>The older fairy flutters into view before, curtseys, and holds out a rolled piece of parchment addressed to you. + <<case "normal">>Her symbol lights up in regular green pulses while she waits for your attention. + <</switch>> + "<<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Sir<<else>>Ma'am<</if>>, I have a news item that may be of business interest," she + <<switch $assistantAppearance>> + <<case "monstergirl" "normal">>informs you. + <<case "shemale">>says seriously. + <<case "amazon">>says warmly. + <<case "businesswoman">>says diffidently. + <<case "goddess">>announces. + <<case "schoolgirl">>reads aloud. + <<case "hypergoddess">>announces between her children's kicking. + <<case "loli">>says cutely. + <<case "preggololi">>says cutely. + <<case "fairy">>says excitedly. + <<case "pregnant fairy">>says excitedly. + <</switch>> +<<else>> + <<if $assistantName is "your personal assistant">>Your personal assistant<<else>>$assistantName<</if>> appears on a wall screen as you're going about your business. + <<if $assistantAppearance is "monstergirl">>She's looking unusually businesslike, with her tentacle hair restrained in a bun. + <<elseif $assistantAppearance is "hypergoddess">>She's looking unusually businesslike, pivoting one foot with her hands clasped behind her back. + <<elseif $assistantAppearance is "loli">>She's looking unusually businesslike, withdrawn deep in thought. + <<elseif $assistantAppearance is "preggololi">>She's looking unusually businesslike, withdrawn deep in thought. + <<elseif $assistantAppearance is "shemale">>She's looking unusually businesslike, with her perpetually erect dick going untended, for once. + <<elseif $assistantAppearance is "amazon">>She's looking unusually businesslike, and is doing sums on a primitive little abacus. + <<elseif $assistantAppearance is "businesswoman">>She has a clipboard pressed against her generous bosom, and peers at you over the tops of her spectacles. + <<elseif $assistantAppearance is "fairy">>She's looking unusually businesslike, wearing a tiny business suit with an opening in the back for her wings to come out. + <<elseif $assistantAppearance is "pregnant fairy">>She's looking unusually businesslike, wearing a tiny business suit open in the front to let her swollen belly out and another opening in the back for her wings to come out. + <<elseif $assistantAppearance is "goddess">>She's looking unusually businesslike, with her hands clasped behind her back and pivoting one foot. + <<elseif $assistantAppearance is "schoolgirl">>She's looking unusually businesslike, and has a scribbled note in her hand. + <<else>>Her symbol spins for attention. <</if>> - appears on a wall screen as you're going about your business. - <<if $assistantAppearance is "monstergirl">>She's looking unusually businesslike, with her tentacle hair restrained in a bun.<<elseif $assistantAppearance is "hypergoddess">>She's looking unusually businesslike, pivoting one foot with her hands clasped behind her back.<<elseif $assistantAppearance is "loli">>She's looking unusually businesslike, withdrawn deep in thought.<<elseif $assistantAppearance is "preggololi">>She's looking unusually businesslike, withdrawn deep in thought.<<elseif $assistantAppearance is "shemale">>She's looking unusually businesslike, with her perpetually erect dick going untended, for once.<<elseif $assistantAppearance is "amazon">>She's looking unusually businesslike, and is doing sums on a primitive little abacus.<<elseif $assistantAppearance is "businesswoman">>She has a clipboard pressed against her generous bosom, and peers at you over the tops of her spectacles.<<elseif $assistantAppearance is "fairy">>She's looking unusually businesslike, wearing a tiny business suit with an opening in the back for her wings to come out.<<elseif $assistantAppearance is "pregnant fairy">>She's looking unusually businesslike, wearing a tiny business suit open in the front to let her swollen belly out and another opening in the back for her wings to come out.<<elseif $assistantAppearance is "goddess">>She's looking unusually businesslike, with her hands clasped behind her back and pivoting one foot.<<elseif $assistantAppearance is "schoolgirl">>She's looking unusually businesslike, and has a scribbled note in her hand.<<else>>Her symbol spins for attention.<</if>> + "<<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Sir<<else>>Ma'am<</if>>, I have a news item that may be of business interest," she + <<if $assistantAppearance is "monstergirl">>purrs.<<elseif $assistantAppearance is "shemale">>says flirtatiously.<<elseif $assistantAppearance is "amazon">>says gruffly.<<elseif $assistantAppearance is "businesswoman">>says severely.<<elseif ($assistantAppearance is "fairy") or ($assistantAppearance is "pregnant fairy")>>giggles.<<elseif $assistantAppearance is "goddess">>whispers coyly.<<elseif $assistantAppearance is "hypergoddess">>whispers coyly.<<elseif $assistantAppearance is "loli">>says naively.<<elseif $assistantAppearance is "preggololi">>says naively.<<elseif $assistantAppearance is "schoolgirl">>giggles.<<else>>says.<</if>> +<</if>> <<else>> - Your personal assistant's symbol appears on a wall screen as you're going about your business. It spins for your attention. +Your <<if $marketAssistantAnnounced>>market<<else>>personal<</if>> assistant's symbol appears on a wall screen as you're going about your business. It spins for your attention. "<<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Sir<<else>>Ma'am<</if>>, I have a news item that may be of business interest," it says. <</if>> -"<<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Sir<<else>>Ma'am<</if>>, I have a news item that may be of business interest," <<if $assistant > 0>>she <<if $assistantAppearance is "monstergirl">>purrs.<<elseif $assistantAppearance is "shemale">>says flirtatiously.<<elseif $assistantAppearance is "amazon">>says gruffly.<<elseif $assistantAppearance is "businesswoman">>says severely.<<elseif ($assistantAppearance is "fairy") or ($assistantAppearance is "pregnant fairy")>>giggles.<<elseif $assistantAppearance is "goddess">>whispers coyly.<<elseif $assistantAppearance is "hypergoddess">>whispers coyly.<<elseif $assistantAppearance is "loli">>says naively.<<elseif $assistantAppearance is "preggololi">>says naively.<<elseif $assistantAppearance is "schoolgirl">>giggles.<<else>>says.<</if>><<else>>it says.<</if>> - -<</nobr>> - -<<nobr>> +<br><br> <<if $REM is "revel">> Something is happening in one of the Free Cities' richest arcologies. It's not clear what, exactly, it is, since its owner is making skillful use of the arcology's advanced surveillance and media systems to keep its internal affairs quite secret. The truth will get out eventually, and it's probably not going to do much for old world opinions of the Free Cities. After all, cheap slaves go into that arcology at a prodigious rate, and they don't seem to ever come out again. The unexpected demand for slaves, any slaves, has produced a temporary tightening of the entire slave market. Projections suggest price increases of up to twenty percent. There will be no immediate impact on you or your slaves, but the coming weeks will be a great time to sell stock, and a bad time to buy. @@color:yellow;The market price of slaves has increased.@@ @@ -65,5 +99,3 @@ A leading old world nation has just suffered a major economic downturn. Old world nations suffer economic downturns all the time, of course, but to those with interests in the slave market, news like this can be very important. Slave market shocks from catastrophes get all the headlines, but a change that affects millions will often be more impactful. As unemployment in the old world rises, the number of people faced with the choice between starvation and voluntary enslavement rises. Social safety nets just aren't what they used to be. Projections show a short-term slave price drop of up to thirty percent due to the sharp increase in desperate people immigrating to the Free Cities for enslavement. There will be no immediate impact on you or your slaves, but the coming weeks will be a fine time to buy new stock, and a terrible time to sell. @@color:yellow;The market price of slaves has dropped.@@ <<set $slaveCostFactor -= 0.3>> <</if>> - -<</nobr>>\ diff --git a/src/uncategorized/remMerger.tw b/src/uncategorized/remMerger.tw index ab49d1630910d31fc0d613fe5bb0d427db623765..5335c18330a41d734d9120979d0603d9071c0a60 100644 --- a/src/uncategorized/remMerger.tw +++ b/src/uncategorized/remMerger.tw @@ -1,6 +1,4 @@ -:: REM merger - -<<nobr>> +:: REM merger [nobr] <<set $nextButton to "Continue">> <<set $nextLink to "RIE Eligibility Check">> @@ -8,11 +6,9 @@ <<set $slaveCompany to either("slaves", "capture", "entrapment")>> <<set $trainingCompany to either("training", "drug", "surgical")>> -<</nobr>>\ -\ -<<if $assistantName is "your personal assistant">>Your personal assistant<<else>>$assistantName<</if>> constantly combs business records, tax receipts and the media for leads on opportunities for your corporation to take advantage of. Small businesses go under all the time, and with a large amount of cash on hand, your corporation can afford to step in and acquire them. This week, there are not one but two troubled organizations you could easily fold into your corporation. +<<if $marketAssistantAnnounced>>Your market assistant<<elseif $assistantName is "your personal assistant">>Your personal assistant<<else>>$assistantName<</if>> constantly combs business records, tax receipts and the media for leads on opportunities for your corporation to take advantage of. Small businesses go under all the time, and with a large amount of cash on hand, your corporation can afford to step in and acquire them. This week, there are not one but two troubled organizations you could easily fold into your corporation. +<br><br> -<<nobr>> <<if $slaveCompany is "slaves">> The first is a minor slave holding company. A major deal with a troubled government just fell through, and they had depended on it going through to an unwise degree. They need to merge with a larger slaving concern immediately, but there's nothing at all wrong with their significant inventory of slaves. <<elseif $slaveCompany is "entrapment">> @@ -20,9 +16,8 @@ <<else>> The first is a troubled mercenary company. After a spate of failed operations, the rank and file deposed their management and are now looking to merge with a better-run organization. The old leadership did not engage in enslavement activities, but the mercenaries have decided to turn their talents towards slaving for profit in conflict zones. <</if>> -<</nobr>> +<br><br> -<<nobr>> <<if $trainingCompany is "training">> The second is a small slave training firm. Slave training is a notoriously difficult business, since the maturation times on the merchandise can be extremely long, and the improvement in price can be marginal if the training does not prove highly successful. There's nothing inherently wrong with the business, they've simply hit a cash flow bottleneck and need to merge with a cash-rich organization like yours. <<elseif $trainingCompany is "drug">> @@ -30,9 +25,8 @@ <<else>> Medical malpractice continues to be a major source of trouble for surgeons in the old world. A plastic surgeon has just suffered defeat in a major legal case over implant ruptures. He's looking to make the transition to a more enlightened area, along with his inventory and staff. <</if>> -<</nobr>> +<br><br> -<<nobr>> <span id="result"> <<click "Absorb the first, slave-focused business">> <<replace "#result">> @@ -83,4 +77,3 @@ <</replace>> <</click>> </span> -<</nobr>> diff --git a/src/uncategorized/remoteSurgery.tw b/src/uncategorized/remoteSurgery.tw index b5c3d4afcf9d528c99f59e1c206ea6e21f36c2bc..b9a4f3471749a800b5beb6894c88dde56115268d 100644 --- a/src/uncategorized/remoteSurgery.tw +++ b/src/uncategorized/remoteSurgery.tw @@ -412,6 +412,11 @@ $pronounCap's got a <</if>> <</if>> +<<if ($activeSlave.cSec == 1)>> + <br>$pronounCap has an unsightly c-section scar. + [[Remove Caesarean scar|Surgery Degradation][$activeSlave.cSec to 0,$cash -= $surgeryCost, $activeSlave.health -= 10,$surgeryType to "bellyscar"]] + <br> +<</if>> <<if $activeSlave.vagina > -1>> <br> @@ -455,7 +460,6 @@ $pronounCap has | [[Increase clit|Surgery Degradation][$activeSlave.clit += 1,$cash -= $surgeryCost, $activeSlave.health -= 10,$surgeryType to "clitoral enlargement"]] <</if>> <</if>> -<</if>> <<if ($activeSlave.preg > -2) && ($activeSlave.preg < 1) && ($activeSlave.vagina > -1) && ($activeSlave.ovaries != 0) && ($activeSlave.pubertyXX == 0)>> <br>$pronounCap has not had $possessive first period. @@ -511,18 +515,13 @@ $pronounCap has <</if>> <</if>> -<<if ($activeSlave.cSec == 1)>> - <br>$pronounCap has an unsightly c-section scar. - [[Remove Caesarean scar|Surgery Degradation][$activeSlave.cSec to 0,$cash -= $surgeryCost, $activeSlave.health -= 10,$surgeryType to "bellyscar"]] - <br> -<</if>> - <<if ($activeSlave.vagina > -1) && ($activeSlave.dick > 0)>> <<if $activeSlave.indentureRestrictions < 1 && $activeSlave.breedingMark != 1>> <br>Since $pronoun has both a penis and a vagina, it's possible to remove $possessive pussy and leave $possessive sexually functional. [[Remove pussy|Surgery Degradation][$activeSlave.vagina to -1,$activeSlave.ovaries to 0,$activeSlave.preg to -2,$activeSlave.pregSource to 0,$activeSlave.vaginalSkill = 0,$cash -= $surgeryCost,$activeSlave.health -= 20,$surgeryType to "vaginaRemoval"]] <<if $activeSlave.ovaries == 1>>//This will remove $possessive ovaries as well//<</if>> <</if>> <</if>> +<</if>> <br> $pronounCap has diff --git a/src/uncategorized/resFailure.tw b/src/uncategorized/resFailure.tw index 08aa7206e61ce574d9529f09b88227d64370ba38..7ab8e965b511f07314b73a00b8ea11f4ed8d98fe 100644 --- a/src/uncategorized/resFailure.tw +++ b/src/uncategorized/resFailure.tw @@ -1,5 +1,5 @@ :: RES Failure - + <<nobr>> <<set $nextButton to "Continue">> @@ -78,10 +78,7 @@ <<set $activeSlave.behavioralFlaw to either("none")>> <<set $activeSlave.hStyle to "tails">> <<set $activeSlave.customTat to "She has the simple logo of the corporation that operates The Slavegirl School tattooed on her left cheek.">> - <<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> - <</if>> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <</for>> <<elseif $RESFailure is "GRI">> <<set $GRI.schoolPresent to 0>> @@ -131,10 +128,7 @@ <<set $activeSlave.hStyle to "shaved">> <<set $activeSlave.hLength to 0>> <<set $activeSlave.customTat to "She has a barcode that identified her when she was a test subject at the Growth Research Institute tattooed on her left cheek.">> - <<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> - <</if>> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <</for>> <<elseif $RESFailure is "SCP">> <<set $SCP.schoolPresent to 0>> @@ -202,10 +196,7 @@ <<if $activeSlave.race != "white">><<set $activeSlave.race to "surgically altered to look white">><</if>> <<set $activeSlave.skin to "tanned">> <<set $activeSlave.customTat to "She has the coat of arms of St. Claver Preparatory tattooed on her left cheek.">> - <<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> - <</if>> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <</for>> <<elseif $RESFailure is "LDE">> <<set $LDE.schoolPresent to 0>> @@ -265,10 +256,7 @@ <<set $activeSlave.hStyle to "tails">> <<set $activeSlave.hLength = 100>> <<set $activeSlave.customTat to "She has the buttock-shaped symbol of the École des Enculées that created her tattooed on her left cheek.">> - <<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> - <</if>> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <</for>> <<elseif $RESFailure is "TGA">> <<set $TGA.schoolPresent to 0>> @@ -321,10 +309,7 @@ <<set $activeSlave.hStyle to "short">> <<set $activeSlave.hLength to 2>> <<set $activeSlave.customTat to "She has the baroque crest of the Gymnasium-Academy that trained her branded into her left cheek.">> - <<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> - <</if>> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <</for>> <<else>> <<set $TFS.schoolPresent to 0>> @@ -485,10 +470,7 @@ <<set $activeSlave.hLength to 150>> <<set $activeSlave.customTat to "She has a simple pink heart tattooed on her right temple.">> <<set $REFutaSisterCheckinIDs.push($activeSlave.ID)>> - <<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> - <</if>> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <</for>> <<display "Generate XY Slave">> <<set $activeSlave.origin to "She was the leader of your arcology's Futanari Sisters until you engineered her community's failure and enslavement.">> @@ -557,10 +539,7 @@ <<set $activeSlave.hStyle to "neat">> <<set $activeSlave.hLength to 150>> <<set $activeSlave.customTat to "She has a simple pink heart tattooed on her right temple.">> - <<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> - <</if>> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <</if>> <<if $RESFailure is "TSS">> diff --git a/src/uncategorized/saBeYourHeadGirl.tw b/src/uncategorized/saBeYourHeadGirl.tw index edfbd41536efdfc9d952251c4ac45ce233f0ad65..2118d2848558f13244128fa144d1f4941307a7af 100644 --- a/src/uncategorized/saBeYourHeadGirl.tw +++ b/src/uncategorized/saBeYourHeadGirl.tw @@ -14,7 +14,7 @@ <<if $slaves[$i].relationship > 4>> <<if $familyTesting == 1>> <<if $slaves[$i].relationshipTarget is $Concubine.ID>> - <<if $slaves[$i].mother > 0 || $slaves[$i].father > 0 || $slaves[$i].daughters > 0 || $slaves[$i].sisters > 0>> + <<if totalRelatives($slaves[$i]) > 0>> <<if $Concubine.mother == $slaves[$i].ID || $Concubine.father == $slaves[$i].ID>> Your Concubine is your Consort's daughter-wife. Truly, $arcologies[0].name looks up to you @@color:green;as children to a father.@@ <<set $rep += 250>> @@ -34,7 +34,7 @@ Your Concubine is your Consort's half-sister-wife. Truly, $arcologies[0].name looks up to you @@color:green;as children to a father.@@ <<set $rep += 250>> <<else>> - Your Consort and your Concubine are wives to each other and to Pharaoh. This is @@color:green;as it should be.@@ + //Shit went wrong! Post this in a bug report!// This is @@color:red;NOT as it should be.@@ <<set $rep += 100>> <</if>> <<else>> @@ -42,7 +42,7 @@ <<set $rep += 100>> <</if>> <<else>> - <<if $slaves[$i].mother > 0 || $slaves[$i].father > 0 || $slaves[$i].daughters > 0 || $slaves[$i].sisters > 0>> + <<if totalRelatives($slaves[$i]) > 0>> <<for $j to 0; $j < $slaves.length; $j++>> <<if $slaves[$i].relationshipTarget is $slaves[$j].ID>> <<if $slaves[$j].mother == $slaves[$i].ID || $slaves[$j].father == $slaves[$i].ID>> @@ -63,16 +63,12 @@ <<elseif areSisters($slaves[$i], $slaves[$j]) == 3>> Your Consort has a half-sister-wife. This is @@color:green;as it should be.@@ <<set $rep += 100>> - <<else>> - Your Consort has a $slaves[$i].relation-wife. This is @@color:green;as it should be.@@ - <<set $rep += 100>> <</if>> <<break>> <</if>> <</for>> <</if>> <</if>> - <</if>> <<else>> <<if $slaves[$i].relationshipTarget is $Concubine.ID>> <<if $slaves[$i].relationTarget is $Concubine.ID>> @@ -87,6 +83,7 @@ <<set $rep += 100>> <</if>> <</if>> + <</if>> <</if>> <<if ($slaves[$i].livingRules is "luxurious") && ($HGSuite == 1)>> diff --git a/src/uncategorized/saDiet.tw b/src/uncategorized/saDiet.tw index 7a68f42af89827d3306febd3ba59cb9cc94a7595..7e70e9e355b112f5a77f3e91edfb57d80fa2eb1b 100644 --- a/src/uncategorized/saDiet.tw +++ b/src/uncategorized/saDiet.tw @@ -206,7 +206,7 @@ <</if>> <<else>> <<if $slaves[$i].dietCum == 2>> - She hates herself for it, but the cum addict is @@color:lightpink;grateful@@ to have so much ejaculate in her diet, especially becuase she's given extra food this week. + She hates herself for it, but the cum addict is @@color:lightpink;grateful@@ to have so much ejaculate in her diet, especially because she's given extra food this week. <<set $slaves[$i].devotion += 1>> <<else if $slaves[$i].dietCum == 1>> The cum addict @@color:gold;anxiously@@ slurps up every drop of her cum-supplemented food this week. She eats all the extra food she's given and is @@color:mediumorchid;disturbed@@ by her insatiable hunger for more. @@ -676,7 +676,7 @@ She has become so sex-driven that she appreciates the perversity of her cum diet, making her @@color:lime;feel sexier@@ for eating it. <<set $slaves[$i].energy += 2>> <<else>> - Her high sex drive helps her pretend her cum-supplemeneted diet is the <<if $slaves[$i].fetish is "masochist">>ejaculate of an abusive lover<<elseif $slaves[$i].fetish is "boobs">>fresh milk from a pretty dairy cow<<elseif $slaves[$i].fetish is "submissive">>ejaculate of a dominant partner<<elseif $slaves[$i].fetish is "pregnancy">>ejaculate of her future baby's father<<elseif $slaves[$i].fetish is "sadist">>ejaculate of a pain-slut she recently milked<<elseif $slaves[$i].fetish is "buttslut">>ejaculate of a cock that just came from her butt<<elseif $slaves[$i].fetish is "dom">>ejaculate of a weak-minded submissive<<elseif $slaves[$i].fetish is "humiliation">>ejaculate of a publicly used slut<<else>>ejaculate of a gentle lover<</if>>--helping her swallow her food without complaint. + Her high sex drive helps her pretend her cum-supplemented diet is the <<if $slaves[$i].fetish is "masochist">>ejaculate of an abusive lover<<elseif $slaves[$i].fetish is "boobs">>fresh milk from a pretty dairy cow<<elseif $slaves[$i].fetish is "submissive">>ejaculate of a dominant partner<<elseif $slaves[$i].fetish is "pregnancy">>ejaculate of her future baby's father<<elseif $slaves[$i].fetish is "sadist">>ejaculate of a pain-slut she recently milked<<elseif $slaves[$i].fetish is "buttslut">>ejaculate of a cock that just came from her butt<<elseif $slaves[$i].fetish is "dom">>ejaculate of a weak-minded submissive<<elseif $slaves[$i].fetish is "humiliation">>ejaculate of a publicly used slut<<else>>ejaculate of a gentle lover<</if>>--helping her swallow her food without complaint. <</if>> <</if>> <</if>> @@ -699,7 +699,7 @@ <<set $slaves[$i].devotion -= 4>> <</if>> <</if>> - <<elseif ($slaves[$i].fetishKnown == 0) && ($slaves[$i].fetish is "cumslut")>> + <<elseif ($slaves[$i].fetish is "cumslut")>> <<if ($slaves[$i].fetishKnown == 0)>> Being forced to get her sustenance only by working the phallic food dispensers in the kitchen has revealed something: @@color:lightcoral;she's got an oral fetish!@@ <<set $slaves[$i].fetishKnown to 1>> diff --git a/src/uncategorized/saLongTermEffects.tw b/src/uncategorized/saLongTermEffects.tw index 7837ed78ed8b4da34162f10e9b3df762197313b9..953d41f9e704a3c5827da4f3d4adff93cf73c8c5 100644 --- a/src/uncategorized/saLongTermEffects.tw +++ b/src/uncategorized/saLongTermEffects.tw @@ -63,7 +63,7 @@ <<set $slaves[$i].fetishStrength = 50>> <</if>> <<if $slaves[$i].sexualFlaw != "none">> - It's trained to perform throuigh mechanical obedience, @@color:green;utterly destroying its sexual deficiencies.@@ + It's trained to perform thorough mechanical obedience, @@color:green;utterly destroying its sexual deficiencies.@@ <<set $slaves[$i].sexualFlaw = "none">> <</if>> <<elseif $slaves[$i].fuckdoll <= 75>> @@ -362,7 +362,7 @@ and ($slaves[$i].clothes != "a slutty qipao") and ($slaves[$i].clothes != "restr <<set $slaves[$i].devotion += 1>> <<set $slaves[$i].fetishKnown = 1>> <<elseif $slaves[$i].devotion <= -20>> - Her collar's display reveals all sorts of personal information about her fertility, filling her @@color:mediumorchid;with disgust@@ that you that you consider her womb little more than property, aw well as @@color:gold;fear@@ that it will soon be swelling with an unwelcome child. + Her collar's display reveals all sorts of personal information about her fertility, filling her @@color:mediumorchid;with disgust@@ that you that you consider her womb little more than property, as well as @@color:gold;fear@@ that it will soon be swelling with an unwelcome child. <<set $slaves[$i].devotion -= 2>> <<set $slaves[$i].trust -= 2>> <<elseif ($slaves[$i].devotion <= 20)>> @@ -3607,7 +3607,7 @@ and ($slaves[$i].clothes != "a slutty qipao") and ($slaves[$i].clothes != "restr <</if>> <</for>> <<elseif (($slaves[$i].vagina <= 0) || (($slaves[$i].ass <= 0) && ($slaves[$i].mpreg > 0)))>> -<<elseif ($universalRulesImpregnation is "HG") && ($slaves[$i].HGExclude == 0) && ($HGCum > 0) && ($slaves[$i].ID != $HeadGirl.ID) && (($slaves[$i].vagina > 0) || (($slaves[$i].ass > 0) && ($slaves[$i].mpreg > 0))) && canBreed($slaves[$i], $HeadGirl)>> +<<elseif ($universalRulesImpregnation is "HG") && ($slaves[$i].HGExclude == 0) && ($HGCum > 0) && ($slaves[$i].ID != $HeadGirl.ID) && canBreed($slaves[$i], $HeadGirl)>> It's $HeadGirl.slaveName's responsibility to get $object pregnant, a task your <<if ($HeadGirl.fetish is "pregnancy") && ($HeadGirl.fetishKnown == 1) && ($HeadGirl.fetishStrength > 60)>> pregnancy fetishist Head Girl is @@color:hotpink;extremely pleased@@ to take on. @@ -3799,6 +3799,11 @@ and ($slaves[$i].clothes != "a slutty qipao") and ($slaves[$i].clothes != "restr <</if>> <</if>> <</if>> +<<if $slaves[$i].preg < 1>> + <<if $slaves[$i].pregType != 0>> + <<set $slaves[$i].pregType == 0>> + <</if>> +<</if>> <</if>> /* CLOSES CAN GET PREGNANT */ <<else>> diff --git a/src/uncategorized/saPleaseYou.tw b/src/uncategorized/saPleaseYou.tw index 08ab50165ae6e694c43f95d6b79d98a797070f5c..2a83f5d8468fc7a476bd3134ab160501b4391285 100644 --- a/src/uncategorized/saPleaseYou.tw +++ b/src/uncategorized/saPleaseYou.tw @@ -10,6 +10,11 @@ serves you this week. <<set $slaves[$i].toyHole to "all her holes">> <</if>> <</if>> +<<if $slaves[$i].toyHole is "dick">> +<<if $slaves[$i].dick == 0>> + <<set $slaves[$i].toyHole to "all her holes">> +<</if>> +<</if>> <<if ($slaves[$i].toyHole != "all her holes")>> <<if ($slaves[$i].toyHole is "pussy")>> @@ -333,58 +338,61 @@ serves you this week. <<set $seed to random(5,10)>> <<set $activeSlave.penetrativeCount += $seed>> <<set $penetrativeTotal += $seed>> + $pronounCap spends the week <<if ($slaves[$i].trust < -20)>> - $pronounCap spends the week in terrified compliance with your use of $object dick. + in terrified compliance with your use of $possesive dick. <<elseif ($slaves[$i].devotion < -20)>> - $pronounCap spends the week alternately struggling and lying corpselike as you ride $object dick. + alternately struggling and lying corpselike as you ride $possesive dick. <<elseif ($slaves[$i].devotion <= 20)>> - $pronounCap spends the week reluctantly accepting your use of $object dick. + reluctantly accepting your use of $possessive dick. <<elseif ($slaves[$i].fetishKnown == 1) && ($slaves[$i].fetish is "submissive")>> - $pronounCap spends the week as your adoring submissive, seeing to your pleasure with $object shaft. + as your adoring submissive, seeing to your pleasure with $possesive shaft. <<elseif ($slaves[$i].devotion <= 50 && $PC.vagina == 1)>> - $pronounCap spends the week obediently serving you in the classical way, driving into your womanhood. + obediently serving you in the classical way, driving into your womanhood. <<elseif ($slaves[$i].devotion <= 50)>> - $pronounCap spends the week obediently serving you by driving into your backdoor. + week obediently serving you by driving into your backdoor. + <<elseif $PC.vagina == 1>> + serving you in the classical way, warming your bed and lovingly driving $possesive shaft into your womanhood. <<else>> - $pronounCap spends the week serving you in the classical way, warming your bed and lovingly driving $object shaft into your womanhood. + serving you in the classical way, warming your bed and lovingly driving $possesive shaft into your backdoor. <</if>> <<if ($slaves[$i].trust > -20) && ($slaves[$i].devotion <= 20)>> <<if ($fuckSlaves <= $PC.sexualEnergy/2)>> - You have the sexual energy to fuck $possessive several times a day; the constant rape fills $object with @@color:mediumorchid;revulsion@@ and @@color:gold;fear.@@ + You have the sexual energy to fuck $object several times a day; the constant rape fills $object with @@color:mediumorchid;revulsion@@ and @@color:gold;fear.@@ <<set $slaves[$i].devotion -= 5>> <<set $slaves[$i].trust -= 15>> <<elseif ($fuckSlaves <= $PC.sexualEnergy)>> - You have the sexual energy to fuck $possessive at least once a day; the regular rape fills $object with @@color:mediumorchid;revulsion@@ and @@color:gold;fear.@@ + You have the sexual energy to fuck $object at least once a day; the regular rape fills $object with @@color:mediumorchid;revulsion@@ and @@color:gold;fear.@@ <<set $slaves[$i].devotion -= 3>> <<set $slaves[$i].trust -= 9>> <<else>> - You have the sexual energy to fuck $possessive on occasion; the threat of rape fills $object with @@color:mediumorchid;revulsion@@ and @@color:gold;fear.@@ + You have the sexual energy to fuck $object on occasion; the threat of rape fills $object with @@color:mediumorchid;revulsion@@ and @@color:gold;fear.@@ <<set $slaves[$i].devotion -= 3>> <<set $slaves[$i].trust -= 3>> <</if>> <<elseif ($slaves[$i].devotion <= 20)>> <<if ($fuckSlaves <= $PC.sexualEnergy/2)>> - You have the sexual energy to fuck $possessive several times a day; submitting to your constant use @@color:hotpink;habituates $object@@ to being your sex slave. + You have the sexual energy to fuck $object several times a day; submitting to your constant use @@color:hotpink;habituates $object@@ to being your sex slave. <<set $slaves[$i].devotion += 3>> <<elseif ($fuckSlaves <= $PC.sexualEnergy)>> - You have the sexual energy to fuck $possessive at least once a day; submitting to your regular use @@color:hotpink;habituates $object@@ to being your sex slave. + You have the sexual energy to fuck $object at least once a day; submitting to your regular use @@color:hotpink;habituates $object@@ to being your sex slave. <<set $slaves[$i].devotion += 2>> <<else>> - You have the sexual energy to fuck $possessive on occasion; submitting to your use @@color:hotpink;habituates $object@@ to being your sex slave. + You have the sexual energy to fuck $object on occasion; submitting to your use @@color:hotpink;habituates $object@@ to being your sex slave. <<set $slaves[$i].devotion += 1>> <</if>> <<else>> <<if ($fuckSlaves <= $PC.sexualEnergy/2)>> - You have the sexual energy to fuck $possessive several times a day; constant, enjoyable sex with you draws $object @@color:hotpink;closer to you@@ and encourages $object to @@color:mediumaquamarine;trust you.@@ + You have the sexual energy to fuck $object several times a day; constant, enjoyable sex with you draws $object @@color:hotpink;closer to you@@ and encourages $object to @@color:mediumaquamarine;trust you.@@ <<set $slaves[$i].devotion += 3>> <<set $slaves[$i].trust += 3>> <<elseif ($fuckSlaves <= $PC.sexualEnergy)>> - You have the sexual energy to fuck $possessive several times a day; regular, enjoyable sex with you draws $object @@color:hotpink;closer to you@@ and encourages $object to @@color:mediumaquamarine;trust you.@@ + You have the sexual energy to fuck $object several times a day; regular, enjoyable sex with you draws $object @@color:hotpink;closer to you@@ and encourages $object to @@color:mediumaquamarine;trust you.@@ <<set $slaves[$i].devotion += 2>> <<set $slaves[$i].trust += 2>> <<else>> - You have the sexual energy to fuck $possessive on occasion; enjoyable sex with you draws $object @@color:hotpink;closer to you@@ and encourages $object to @@color:mediumaquamarine;trust you.@@ + You have the sexual energy to fuck $object on occasion; enjoyable sex with you draws $object @@color:hotpink;closer to you@@ and encourages $object to @@color:mediumaquamarine;trust you.@@ <<set $slaves[$i].devotion += 1>> <<set $slaves[$i].trust += 1>> <</if>> @@ -392,7 +400,7 @@ serves you this week. <</if>> /*check*/ - <<if ($PC.preg == 0) && ($PC.Vagina == 1) && ($slaves[$i].ballType == "human")>> + <<if ($PC.preg == 0) && ($PC.vagina == 1) && ($slaves[$i].ballType == "human")>> <<if random(1,100) > 50-($seed*10)>> <<set $PC.preg = 1>> $PC.pregSource = $slaves[$i].ID; @@ -403,14 +411,20 @@ serves you this week. <<else>> <<if $slaves[$i].fuckdoll > 0>> - You keep with you all week, using it as your personal sex toy. When you're not using it, it <<if $activeSlave.amp > 0>>rests<<else>>stands<</if>> nearby, waiting silently. + You keep $object with you all week, using it as your personal sex toy. When you're not using it, it <<if $activeSlave.amp > 0>>rests<<else>>stands<</if>> nearby, waiting silently. <<set $slaves[$i].trust += 4>> <<set $seed to random(3,5)>> <<set $slaves[$i].oralCount += $seed>> <<set $oralTotal += $seed>> - <<set $slaves[$i].analCount += $seed>> - <<set $analTotal += $seed>> - + <<if canDoVaginal($slaves[$i])>> + <<set $slaves[$i].vaginalCount += $seed>> + <<set $vaginalTotal += $seed>> + <</if>> + <<if canDoAnal($slaves[$i])>> + <<set $slaves[$i].analCount += $seed>> + <<set $analTotal += $seed>> + <</if>> + <<elseif ($slaves[$i].anus == 0) && ($slaves[$i].vagina == 0)>> Since you haven't yet decided to sell or take $possessive virginity or $possessive tight little anus, you let $object please you with $possessive mouth. $pronounCap is @@color:mediumaquamarine;duly grateful@@ you let $object keep $possessive innocence for another week, though $possessive throat gets a little sore doing the work of three holes. <<set $slaves[$i].trust += 1>> @@ -418,48 +432,74 @@ serves you this week. <<set $slaves[$i].oralCount += $seed>> <<set $oralTotal += $seed>> - <<elseif ($slaves[$i].vagina == 0)>> + <<elseif ($slaves[$i].vagina == 0) && canDoVaginal($slaves[$i])>> Since you haven't yet decided to sell or take $possessive virginity, but $pronoun's taken it up the ass, you let $object be your anal whore. $pronounCap is @@color:mediumaquamarine;duly grateful@@ you let $possessive keep $possessive innocence for another week, though $possessive butt gets a little sore. <<set $slaves[$i].trust += 1>> <<set $seed to random(5,10)>> <<set $slaves[$i].analCount += $seed>> <<set $analTotal += $seed>> - <<elseif ($slaves[$i].anus == 0)>> - Since you haven't yet decided to sell or take $possessive tight little anus, you let $object confine $possessive efforts to $possessive <<if ($slaves[$i].vagina != -1) && ($slaves[$i].vaginalAccessory != "chastity belt")>>pussy and <</if>>mouth. $pronounCap is @@color:mediumaquamarine;duly grateful@@ you let $object put off taking it up the butt another week. + <<elseif ($slaves[$i].anus == 0) && canDoAnal($slaves[$i])>> + Since you haven't yet decided to sell or take $possessive tight little anus, you let $object confine $possessive efforts to $possessive <<if canDoVaginal($slaves[$i])>>pussy and <</if>>mouth. $pronounCap is @@color:mediumaquamarine;duly grateful@@ you let $object put off taking it up the butt another week. <<set $slaves[$i].trust += 1>> <<set $seed to random(5,10)>> <<set $slaves[$i].oralCount += $seed>> <<set $oralTotal += $seed>> - <<if ($slaves[$i].vagina != -1) && ($slaves[$i].vaginalAccessory != "chastity belt")>> + <<if canDoVaginal($slaves[$i])>> <<set $slaves[$i].vaginalCount += $seed>> <<set $vaginalTotal += $seed>> <</if>> <<elseif !canWalk($slaves[$i])>> - You carry $object around with you all week, using $object as your personal sex toy and bedwarmer. <<if ($slaves[$i].amp == 1)>>Without arms and legs<<elseif canWalk($slaves[$i]) is -2>>Immobilized by $possessive own tits<</if>>, $pronoun is your @@color:hotpink;helpless sexual appliance@@ and is @@color:mediumaquamarine;forced to trust you.@@ + You carry $object around with you all week, using $object as your personal sex toy and bedwarmer. + <<if ($slaves[$i].amp == 1)>> + Without arms and legs, + <<elseif tooBigBreasts($slaves[$i])>> + Immobilized by $possessive own tits, + <<elseif tooBigBelly($slaves[$i])>> + Immobilized by $possessive own swollen orb of a midsection, + <<elseif tooBigBalls($slaves[$i])>> + Immobilized by $possessive own oversized testicles, + <<elseif tooBigDick($slaves[$i])>> + Immobilized by $possessive own oversized cock, + <<elseif tooBigButt($slaves[$i])>> + Immobilized by $possessive own massive ass, + <<else>> + With $possessive clipped heels, + <</if>> + $pronoun is your @@color:hotpink;helpless sexual appliance@@ and is @@color:mediumaquamarine;forced to trust you.@@ <<set $slaves[$i].trust += 4>> <<set $seed to random(3,5)>> <<set $slaves[$i].oralCount += $seed>> <<set $oralTotal += $seed>> - <<set $slaves[$i].analCount += $seed>> - <<set $analTotal += $seed>> + <<if canDoAnal($slaves[$i])>> + <<set $slaves[$i].analCount += $seed>> + <<set $analTotal += $seed>> + <</if>> + <<if canDoVaginal($slaves[$i])>> + <<set $slaves[$i].vaginalCount += $seed>> + <<set $vaginalTotal += $seed>> + <</if>> <<elseif ($slaves[$i].devotion > 50)>> $pronounCap devotedly accompanies you all week, keeping $possessive - <<if ($slaves[$i].vagina is -1)>> + <<if canDoAnal($slaves[$i]) && canDoVaginal($slaves[$i])>> + mouth, vagina and asshole + <<elseif ($slaves[$i].vagina is -1)>> mouth and asshole - <<elseif ($slaves[$i].vaginalAccessory is "chastity belt")>> + <<elseif ($slaves[$i].vaginalAccessory is "chastity belt") || ($slaves[$i].vaginalAccessory is "combined chastity") && canDoAnal($slaves[$i])>> mouth and, since $possessive pussy is covered by $possessive chastity belt, asshole <<else>> - mouth, pussy, and asshole + mouth <</if>> available for you at all times. <<if ($slaves[$i].dick != 0) && canAchieveErection($slaves[$i])>> - Every time $possessive beloved <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Master<<else>>Mistress<</if>> fucks $object $pronoun gets a hardon. - <<elseif ($slaves[$i].dick != 0)>> + Every time $possessive beloved <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Master<<else>>Mistress<</if>> fucks $object, $pronoun gets a hardon. + <<elseif ($slaves[$i].dick != 0) && canDoAnal($slaves[$i])>> $pronounCap doesn't get a hardon as you use $object, but $pronoun comes from the prostate stimulation when $possessive beloved <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Master<<else>>Mistress<</if>> uses $possessive butt. - <<else>> + <<elseif ($slaves[$i].dick != 0) && canDoVaginal($slaves[$i])>> + $pronounCap doesn't get a hardon as you use $object, but $pronoun comes from the prostate stimulation when $possessive beloved <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Master<<else>>Mistress<</if>> uses $possessive pussy. + <<else>> $pronounCap comes indecently hard whenever $possessive beloved <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Master<<else>>Mistress<</if>> uses $possessive body. <</if>> <<if ($fuckSlaves <= $PC.sexualEnergy/2)>> @@ -478,23 +518,17 @@ serves you this week. <<set $seed to random(3,5)>> <<set $slaves[$i].oralCount += $seed>> <<set $oralTotal += $seed>> - <<set $slaves[$i].analCount += $seed>> - <<set $analTotal += $seed>> - <<if ($slaves[$i].vagina != -1) && ($slaves[$i].vaginalAccessory != "chastity belt")>> + <<if canDoAnal($slaves[$i])>> + <<set $slaves[$i].analCount += $seed>> + <<set $analTotal += $seed>> + <</if>> + <<if canDoVaginal($slaves[$i])>> <<set $slaves[$i].vaginalCount += $seed>> <<set $vaginalTotal += $seed>> <</if>> <<elseif ($slaves[$i].devotion > 20)>> - Whenever you feel the need, you use whichever of $possessive - <<if ($slaves[$i].vagina is -1)>> - mouth and asshole - <<elseif ($slaves[$i].vaginalAccessory is "chastity belt")>> - mouth and, since $possessive pussy is covered by $possessive chastity belt, asshole - <<else>> - mouth, pussy, and asshole - <</if>> - seem most appealing at the moment, since $pronoun's up for anything. + Whenever you feel the need, you use whichever of $possessive available holes that appears most appealing at the moment, since $pronoun's up for anything. <<if ($slaves[$i].dick != 0) && canAchieveErection($slaves[$i])>> By the end of the week $pronoun gets a hardon when you use $object. <</if>> @@ -514,21 +548,25 @@ serves you this week. <<set $seed to random(3,5)>> <<set $slaves[$i].oralCount += $seed>> <<set $oralTotal += $seed>> - <<set $slaves[$i].analCount += $seed>> - <<set $analTotal += $seed>> - <<if ($slaves[$i].vagina != -1) && ($slaves[$i].vaginalAccessory != "chastity belt")>> + <<if canDoAnal($slaves[$i])>> + <<set $slaves[$i].analCount += $seed>> + <<set $analTotal += $seed>> + <</if>> + <<if canDoVaginal($slaves[$i])>> <<set $slaves[$i].vaginalCount += $seed>> <<set $vaginalTotal += $seed>> <</if>> <<elseif ($slaves[$i].trust < -20)>> $pronounCap is afraid of you and does $possessive best to offer you $possessive - <<if ($slaves[$i].vagina is -1)>> + <<if canDoAnal($slaves[$i]) && canDoVaginal($slaves[$i])>> + mouth, vagina and asshole + <<elseif ($slaves[$i].vagina is -1)>> mouth and asshole - <<elseif ($slaves[$i].vaginalAccessory is "chastity belt")>> + <<elseif ($slaves[$i].vaginalAccessory is "chastity belt") || ($slaves[$i].vaginalAccessory is "combined chastity") && canDoAnal($slaves[$i])>> mouth and, since $possessive pussy is covered by $possessive chastity belt, asshole <<else>> - mouth, pussy, and asshole + mouth <</if>> to save herself from worse treatment than mere rape. <<if ($slaves[$i].dick != 0) && canAchieveErection($slaves[$i])>> @@ -547,23 +585,17 @@ serves you this week. <<set $seed to random(3,5)>> <<set $slaves[$i].oralCount += $seed>> <<set $oralTotal += $seed>> - <<set $slaves[$i].analCount += $seed>> - <<set $analTotal += $seed>> - <<if ($slaves[$i].vagina != -1) && ($slaves[$i].vaginalAccessory != "chastity belt")>> + <<if canDoAnal($slaves[$i])>> + <<set $slaves[$i].analCount += $seed>> + <<set $analTotal += $seed>> + <</if>> + <<if canDoVaginal($slaves[$i])>> <<set $slaves[$i].vaginalCount += $seed>> <<set $vaginalTotal += $seed>> <</if>> <<else>> - Whenever you feel the need, you grab $object and use whichever of $possessive - <<if ($slaves[$i].vagina is -1)>> - mouth and asshole - <<elseif ($slaves[$i].vaginalAccessory is "chastity belt")>> - mouth and, since $possessive pussy is covered by $possessive chastity belt, asshole - <<else>> - mouth, pussy, and asshole - <</if>> - seem most appealing at the moment. + Whenever you feel the need, you grab $object and use whichever of $possessive available holes that appears most appealing at the moment. <<if ($slaves[$i].dick != 0)>> $possessiveCap dick stays limp as you rape $object. <</if>> @@ -585,7 +617,11 @@ serves you this week. <<set $oralTotal += $seed>> <<set $slaves[$i].analCount += $seed>> <<set $analTotal += $seed>> - <<if ($slaves[$i].vagina != -1) && ($slaves[$i].vaginalAccessory != "chastity belt")>> + <<if canDoAnal($slaves[$i])>> + <<set $slaves[$i].analCount += $seed>> + <<set $analTotal += $seed>> + <</if>> + <<if canDoVaginal($slaves[$i])>> <<set $slaves[$i].vaginalCount += $seed>> <<set $vaginalTotal += $seed>> <</if>> @@ -599,10 +635,10 @@ serves you this week. <<if ($slaves[$i].oralSkill < 100)>> After a lot of time spent with <<if $PC.dick == 1>>your dick in $possessive mouth<<else>>$possessive mouth on your cunt<</if>>, $possessive oral skill improves. <<OralSkillIncrease $slaves[$i]>> - <<elseif ($slaves[$i].vaginalSkill < 100) && ($slaves[$i].vagina > 0) && ($slaves[$i].vaginalAccessory != "chastity belt")>> + <<elseif ($slaves[$i].vaginalSkill < 100) && ($slaves[$i].vagina > 0) && canDoVaginal($slaves[$i])>> After a lot of time spent getting fucked, $possessive vaginal skill improves. <<VaginalSkillIncrease $slaves[$i]>> - <<elseif ($slaves[$i].analSkill < 100) && ($slaves[$i].anus != 0)>> + <<elseif ($slaves[$i].analSkill < 100) && ($slaves[$i].anus != 0) && canDoAnal($slaves[$i])>> After a lot of time spent taking it up the ass, $possessive anal skill improves. <<AnalSkillIncrease $slaves[$i]>> <</if>> @@ -700,6 +736,12 @@ serves you this week. <<elseif $slaves[$i].relationship is -3>> <<set $seed += 0.06>> <</if>> +<<if $arcologies[0].FSRestart > 50 && $slaves[$i].breedingMark == 1>> + <<set $seed += 0.04>> +<</if>> +<<if $arcologies[0].FSRepopulationFocus > 50 && bigBellyPreg($slaves[$i])>> + <<set $seed += 0.02>> +<</if>> <<if $slaves[$i].prestige > 0>> <<set $seed += 0.03*$slaves[$i].prestige>> <</if>> @@ -735,6 +777,12 @@ Keeping $object as nothing but your personal <<elseif $slaves[$i].relationship is -3>> $possessiveCap satisfaction with $possessive wifely duties is obvious, @@color:green;bringing attention@@ to the slave future you're building. <</if>> +<<if $arcologies[0].FSRestart > 50 && $slaves[$i].breedingMark == 1>> + $possessiveCap's breeding mark and $possessive place near you as a breeding toy is obvious, @@color:green;bringing attention@@ to how beautiful a pairing you make. +<</if>> +<<if $arcologies[0].FSRepopulationFocus > 50 && bigBellyPreg($slaves[$i])>> + $possessiveCap's advanced pregnancy and role as your gravid fucktoy is obvious, @@color:green;bringing attention@@ to how a woman's ideal role in $arcologies[0].name. +<</if>> <<if ($slaves[$i].behavioralQuirk is "confident")>> $slaves[$i].slaveName @@color:mediumaquamarine;confidently enjoys@@ the prestige within the slave hierarchy that comes with being your fucktoy. <<set $slaves[$i].trust += 1>> diff --git a/src/uncategorized/saRecruitGirls.tw b/src/uncategorized/saRecruitGirls.tw index b0d0e019cdc5a861617a04fe61e3fe82fd3a5c03..21dc078c3f51333cba43891cd787c103860605ab 100644 --- a/src/uncategorized/saRecruitGirls.tw +++ b/src/uncategorized/saRecruitGirls.tw @@ -307,7 +307,9 @@ She uses her extra time and @@color:yellowgreen;recruitment allowance@@ this wee <</if>> <</if>> <<if $arcologies[0].FSRestart != "unset">> - <<if $slaves[$i].preg < 6>> + <<if $slaves[$i].preg > 5 && $slaves[$i].breedingMark == 1>> + <<set _seed += 4, _FSmatch++, $arcologies[0].FSRestart += 0.01*$FSSingleSlaveRep>> + <<elseif $slaves[$i].preg < 6>> <<if ($slaves[$i].ovaries == 0 && $slaves[$i].balls == 0)>> <<set _seed += 4, _FSmatch++, $arcologies[0].FSRestart += 0.01*$FSSingleSlaveRep>> <<elseif ($slaves[$i].ovaries == 0 || $slaves[$i].balls == 0)>> @@ -356,30 +358,9 @@ She uses her extra time and @@color:yellowgreen;recruitment allowance@@ this wee <</if>> <</if>> <<if $familyTesting == 1>> <<if $arcologies[0].FSEgyptianRevivalist != "unset">> - <<if $slaves[$i].mother > 0 || $slaves[$i].father > 0 ||$slaves[$i].daughters > 0 || $slaves[$i].sisters > 0>> - <<set $relation = $slaves>> - <<set $relation = $relation.shuffle()>> - <<set _recruiterRelation = 0>> - <<for _j = 0; _j < $relation.length; _j++>> - <<if areSisters($slaves[$i], $relation[_j]) > 0 && isAvailable($relation[_j])>> - <<set _recruiterRelation = $relation[_j]>> - <<break>> - <<elseif $relation[_j].mother == $slaves[$i].ID && isAvailable($relation[_j])>> - <<set _recruiterRelation = $relation[_j]>> - <<break>> - <<elseif $relation[_j].father == $slaves[$i].ID && isAvailable($relation[_j])>> - <<set _recruiterRelation = $relation[_j]>> - <<break>> - <<elseif $relation[_j].ID == $slaves[$i].mother && isAvailable($relation[_j])>> - <<set _recruiterRelation = $relation[_j]>> - <<break>> - <<elseif $relation[_j].ID == $slaves[$i].father && isAvailable($relation[_j])>> - <<set _recruiterRelation = $relation[_j]>> - <<break>> - <</if>> - <</for>> - <<set $relation = 0>> - <<if _recruiterRelation != 0>> + <<if totalRelatives($slaves[$i]) > 0>> + <<set _recruiterRelation = randomRelatedAvailableSlave($slaves[$i])>> + <<if def _recruiterRelation>> <<if ($slaves[$i].energy > 60 || $slaves[$i].sexualQuirk == "tease" || $slaves[$i].sexualQuirk == "perverted") && (_recruiterRelation.energy > 60 || _recruiterRelation.sexualQuirk == "tease" || _recruiterRelation.sexualQuirk == "perverted")>> <<set _seed += 6, _FSmatch++, $arcologies[0].FSEgyptianRevivalist += 0.02*$FSSingleSlaveRep>> <</if>> @@ -512,7 +493,9 @@ She is able to smartly <<if $arcologies[0].FSPaternalist != "unset">>answer<<els <</if>> <</if>> <<if $arcologies[0].FSRestart != "unset">> - <<if $slaves[$i].preg < 6>> + <<if $slaves[$i].preg > 5 && $slaves[$i].breedingMark == 1>> + She prominently displays her pregnancy and the mark branded upon it signifying the superior child growing within her. Her audience is enamoured by her distinct status. + <<elseif $slaves[$i].preg < 6>> <<if ($slaves[$i].dick > 0 && $slaves[$i].balls == 0)>> She makes sure to wear tight fitting clothes to show off the bulge of her dick and, most notably, the lack of testicles under it in all her photoshoots. <<elseif ($slaves[$i].vaginalAccessory == "chastity belt" || $slaves[$i].dickAccessory == "chastity" || $slaves[$i].vaginalAccessory == "combined chastity" || $slaves[$i].dickAccessory == "combined chastity")>> @@ -674,13 +657,13 @@ She is able to smartly <<if $arcologies[0].FSPaternalist != "unset">>answer<<els <</if>> <</if>> <<if $familyTesting == 1>> <<if $arcologies[0].FSEgyptianRevivalist != "unset">> - <<if $slaves[$i].mother > 0 || $slaves[$i].father > 0 ||$slaves[$i].daughters > 0 || $slaves[$i].sisters > 0>> - <<if _recruiterRelation != 0>> - <<if $relation.mother == $slaves[$i].ID || $relation.father == $slaves[$i].ID>> + <<if totalRelatives($slaves[$i]) > 0>> + <<if def _recruiterRelation>> + <<if _recruiterRelation.mother == $slaves[$i].ID || _recruiterRelation.father == $slaves[$i].ID>> <<set $relationType = "daughter">> - <<elseif $slaves[$i].mother == $relation.ID>> + <<elseif $slaves[$i].mother == _recruiterRelation.ID>> <<set $relationType = "mother">> - <<elseif $slaves[$i].father == $relation.ID>> + <<elseif $slaves[$i].father == _recruiterRelation.ID>> <<set $relationType = "father">> <<elseif areSisters($slaves[$i], _recruiterRelation) == 1>> <<set $relationType = "twin">> @@ -703,20 +686,7 @@ She is able to smartly <<if $arcologies[0].FSPaternalist != "unset">>answer<<els The Ancient Egyptian sensibility of your arcology features slave incest, but she's too shy even to play-act with her $relationType for publicity. <</if>> <<else>> - <<if $relation.mother == $slaves[$i].ID || $relation.father == $slaves[$i].ID>> - <<set $relationType = "daughter">> - <<elseif $slaves[$i].mother == $relation.ID>> - <<set $relationType = "mother">> - <<elseif $slaves[$i].father == $relation.ID>> - <<set $relationType = "father">> - <<elseif areSisters($slaves[$i], _recruiterRelation) == 1>> - <<set $relationType = "twin">> - <<elseif areSisters($slaves[$i], _recruiterRelation) == 2>> - <<set $relationType = "sister">> - <<elseif areSisters($slaves[$i], _recruiterRelation) == 3>> - <<set $relationType = "half-sister">> - <</if>> - One idea that comes up while brainstorming is to act out Ancient Egyptian incest with her $relationType, but _recruiterRelation.slaveName is confined and unavailable. + One idea that comes up while brainstorming is to act out Ancient Egyptian incest with a family member, but all of them are confined and unavailable. <</if>> <<else>> One of the most prominent features of your Egyptian Revival is an open, even expectant, attitude toward slave incest, but she doesn't have any close family living in your household. diff --git a/src/uncategorized/saRelationships.tw b/src/uncategorized/saRelationships.tw index e1ceface77ef815c77b376c3a1c30ef03493c62a..9f0d65b168ae0af68a8d1fe544730237478ba6de 100644 --- a/src/uncategorized/saRelationships.tw +++ b/src/uncategorized/saRelationships.tw @@ -60,7 +60,7 @@ <</if>> <</if>> <</for>> -<<elseif $rivalryDuration > 20 and ($rivalryFS != "Racial Supremacism" or $rivalryFS != "Paternalism") and $slaves[$i].origin is "You were acquainted with her before you were an arcology owner; your rival tried to use her to manipulate you, but you rescued her.">> +<<elseif $rivalryDuration > 20 and ($rivalryFS != "Racial Supremacism" && $rivalryFS != "Paternalism") and $slaves[$i].origin is "You were acquainted with her before you were an arcology owner; your rival tried to use her to manipulate you, but you rescued her.">> <<for $j to 0; $j < $slaves.length; $j++>> <<if $slaves[$j].prestigeDesc is "You bankrupted and enslaved her in revenge for her part in the attack on your arcology by the Daughters of Liberty.">> $slaves[$i].slaveName greets $slaves[$j].slaveName with joy, happy to see her former owner again. Without any regard to you, they continue their prior relationship. @@ -996,7 +996,7 @@ Since she is mindbroken, she @@color:lightsalmon;can't really maintain@@ any mea <<if $familyTesting == 1>> - <<if $slaves[$i].mother > 0 || $slaves[$i].father > 0 || $slaves[$i].sisters > 0 || $slaves[$i].daughters > 0>> + <<if totalRelatives($slaves[$i]) > 0>> <<set $relation = 0>> <<set $relationType = 0>> <<for $j to 0; $j < $slaves.length; $j++>> @@ -1337,7 +1337,7 @@ Since she is mindbroken, she @@color:lightsalmon;can't really maintain@@ any mea <<if $familyTesting == 1>> -<<if $slaves[$i].daughters > 0 || $slaves[$i].mother > 0 || $slaves[$i].father > 0 || $slaves[$i].sisters > 0>> +<<if totalRelatives($slaves[$i]) > 0>> <<if $slaves[$i].trust <= 95>> <<for $j to 0; $j < $slaves.length; $j++>> <<if $slaves[$i].trust < -20>> diff --git a/src/uncategorized/saRules.tw b/src/uncategorized/saRules.tw index 9a57c5d2038b0a2a22143268a02e56d990c568ad..ef5588cc861c07ecd7624c4da56d40055e912dd3 100644 --- a/src/uncategorized/saRules.tw +++ b/src/uncategorized/saRules.tw @@ -29,7 +29,7 @@ She <<elseif ($slaves[$i].devotion <= 20)>> occasionally comes to you to beg for sexual release, @@color:hotpink;hating herself@@ for it. <<set $slaves[$i].devotion += 1>> - <<elseif ($slaves[$i].devotion < 10)>> + <<elseif ($slaves[$i].devotion <= 50)>> doesn't mind having to come to you to beg for sexual release, @@color:hotpink;drawing her closer@@ to her <<if $PC.title == 0>>Mistress<<else>>Master<</if>>. <<set $slaves[$i].devotion += 1>> <<else>> @@ -177,7 +177,7 @@ She is forced to demand sex from other slaves by the urges induced by the food, and @@color:hotpink;hates herself@@ for it. <<set $slaves[$i].devotion += 1>> <</if>> - <<elseif ($slaves[$i].devotion < 10)>> + <<elseif ($slaves[$i].devotion <= 50)>> accepts the need to demand sex from your other slaves, @@color:hotpink;building her acceptance@@ of her life. <<set $slaves[$i].devotion += 1>> <<else>> @@ -348,7 +348,7 @@ She is forced to swap sex with other slaves by the urges induced by the food, and @@color:hotpink;hates herself@@ for it. <<set $slaves[$i].devotion += 1>> <</if>> - <<elseif ($slaves[$i].devotion < 10)>> + <<elseif ($slaves[$i].devotion <= 50)>> doesn't mind having to ask other slaves for sex, @@color:mediumaquamarine;building her acceptance@@ of her life. <<set $slaves[$i].trust += 1>> <<else>> diff --git a/src/uncategorized/seBirth.tw b/src/uncategorized/seBirth.tw index 811fafaee4e3c3db240a476102905ada2445b3d1..04cf466f4a31060293030dffe33025e56675f85a 100644 --- a/src/uncategorized/seBirth.tw +++ b/src/uncategorized/seBirth.tw @@ -203,6 +203,7 @@ <<else>> <<if $slaves[$i].amp == 1>> + With childbirth approaching, $slaves[$i].slaveName is carried to her prepared birthing area. <<AmpBirth>> <<else>> <<BroodmotherBirth>> @@ -288,6 +289,12 @@ Childbirth has @@color:lime;stretched out her vagina.@@ <<if $slaveDead == 0>> +<<if $slaves[$i].reservedChildren > 0>> /*incubator adding*/ + +<<seBirthToIncubator>> + +<<else>> + <<if $csec == 1>> <<for $j to 0; $j < $slaves.length; $j++>> @@ -734,6 +741,8 @@ Childbirth has @@color:lime;stretched out her vagina.@@ <</if>> /* closes c-section */ +<</if>> /* closes incubator addition */ + <<else>> <<if $slaves[$i].breedingMark == 1 && $slaves[$i].pregSource == -1>> diff --git a/src/uncategorized/seCoursing.tw b/src/uncategorized/seCoursing.tw index 584d5bd5412ff7a3fb9213f4c2e6d22c4fa38a8f..1de79dc9cbb98b46798253efc2f90c476aae1bee 100644 --- a/src/uncategorized/seCoursing.tw +++ b/src/uncategorized/seCoursing.tw @@ -598,10 +598,7 @@ You place your hand on the leash's quick release and whisper your direction into <</if>> <<set $Lurcher.penetrativeCount += 1>> <<set $penetrativeTotal += 1>> - <<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> - <</if>> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <<else>> <<if $Lurcher.devotion > 50>> She makes her way back to you dejectedly, hanging her head. @@ -932,10 +929,7 @@ You place your hand on the leash's quick release and whisper your direction into <</if>> <<set $Lurcher.penetrativeCount += 1>> <<set $penetrativeTotal += 1>> - <<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> - <</if>> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <<else>> <<if $Lurcher.devotion > 50>> She makes her way back to you dejectedly, hanging her head. @@ -1266,10 +1260,7 @@ You place your hand on the leash's quick release and whisper your direction into <</if>> <<set $Lurcher.penetrativeCount += 1>> <<set $penetrativeTotal += 1>> - <<if ($universalRulesNewSlavesRA == 1) && ($autoRulesAssistant != 0)>> - <<AutoRulesActivate 1>> - <</if>> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <<else>> <<if $Lurcher.devotion > 50>> She makes her way back to you dejectedly, hanging her head. diff --git a/src/uncategorized/seCustomSlaveDelivery.tw b/src/uncategorized/seCustomSlaveDelivery.tw index 7c5c493bb9c5d44fd776ef7cf3f2140b717330b6..5e1f7168b1ff9ab37d7ad0ac51acd938d0966a07 100644 --- a/src/uncategorized/seCustomSlaveDelivery.tw +++ b/src/uncategorized/seCustomSlaveDelivery.tw @@ -1,5 +1,5 @@ :: SE custom slave delivery - + <<nobr>> <<set $nextButton to "Continue">> @@ -19,7 +19,7 @@ <<RandomizeAttraction>> <<set $activeSlave.fetishStrength = random(0,90)>> -<<set $activeSlave.fetish to either("none", "none", "none", "none", "none", "none", "submissive", "cumslut", "humiliation", "buttslut", "boobs","pregnancy")>> +<<set $activeSlave.fetish to either("none", "none", "none", "none", "none", "none", "submissive", "cumslut", "humiliation", "buttslut", "boobs", "pregnancy")>> <<set $activeSlave.sexualFlaw to either("none")>> <<set $activeSlave.behavioralFlaw to either("none")>> @@ -27,7 +27,9 @@ <<set $activeSlave.devotion = random(-10,10)>> <<set $activeSlave.trust = random(-10,10)>> -<<display "New Slave Race Nationality and Name">> +<<NationalityToRace>> +<<NationalityToName>> +<<NationalityToAccent>> <<if $activeSlave.race is "black">> <<set $activeSlave.skin to either("black", "brown", "light brown")>> @@ -39,7 +41,7 @@ <<set $activeSlave.hColor to either("black", "blonde", "red", "brown")>> <<set $activeSlave.hStyle to either("ass-length", "long", "shoulder-length", "short", "very short", "shaved bald")>> <<elseif $activeSlave.race is "latina">> - <<set $activeSlave.skin to either("olive", "brown", "light brown", "tanned", "fair")>> + <<set $activeSlave.skin to either("olive", "brown", "light brown", "tanned", "fair")>> <<set $activeSlave.hColor to either("black", "black", "brown", "brown")>> <<set $activeSlave.hStyle to either("ass-length", "long", "shoulder-length", "short", "very short", "shaved bald")>> <<elseif $activeSlave.race is "asian">> @@ -89,7 +91,7 @@ Her price is ¤<<print $slaveCost>>. <span id="result"> <<if $cash >= $slaveCost>>\ <<click "Accept the offered slave">> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <<set $cash -= $slaveCost>> <<replace "#result">> She has been reasonably broken by the dealer that offered her to you. She has also picked up on the fact that she was specially selected, and is a little hopeful that this means she may be treated well. She is now awaiting your instructions. diff --git a/src/uncategorized/seExpiration.tw b/src/uncategorized/seExpiration.tw index 6ea3917ce4413e78c5af00a65479b5632029ee17..b85ecf0d307a8b9b6c32c215e69c71181111e3d4 100644 --- a/src/uncategorized/seExpiration.tw +++ b/src/uncategorized/seExpiration.tw @@ -101,9 +101,9 @@ at the moment of her scheduled emancipation, she seems to be struggling to expre <<if canTalk($activeSlave) == false>> She does her best to communicate a willingness to remain your slave, indicating that she wouldn't press too hard about the price if you offered her another indenture. <<elseif SlaveStatsChecker.checkForLisp($activeSlave)>> - "<<if $PC.title == 1>>Mathter<<else>>Mithtreth<</if>>, um," she lisps hesitantly. "I don't mind being your thlave. Could I - may you pleathe give me another indenture? I'm, um, not too worried about the prithe." + "<<if $PC.title == 1>>Mathter<<else>>Mithtreth<</if>>, um," she lisps hesitantly. "I don't mind being your thlave. Could I - would you pleathe give me another indenture? I'm, um, not too worried about the prithe." <<else>> - "<<if $PC.title == 1>>Master<<else>>Mistress<</if>>, um," she says hesitantly. "I don't mind being your slave. Could I - may you please give me another indenture? I'm, um, not too worried about the price." + "<<if $PC.title == 1>>Master<<else>>Mistress<</if>>, um," she says hesitantly. "I don't mind being your slave. Could I - would you please give me another indenture? I'm, um, not too worried about the price." <</if>> <br><br> diff --git a/src/uncategorized/seIndependenceDay.tw b/src/uncategorized/seIndependenceDay.tw index 9faa7bb80aaf3d239d360479311d161b37ff4426..39cda0d013eb49580c4165b310bd28cdb3e269f8 100644 --- a/src/uncategorized/seIndependenceDay.tw +++ b/src/uncategorized/seIndependenceDay.tw @@ -1,5 +1,5 @@ :: SE independence day - + <<nobr>> <<set $nextLink to "Scheduled Event">> @@ -179,8 +179,10 @@ In the Free Cities, Independence Day falls on the day when the Free City achieve You share a rather sordid anecdote from your background as an escort; the moral of the story is that you can go very far when you know the right people, or things about said people. <<elseif $PC.career is "servant">> You share a rather some of the highlights of your late master's life; the moral of the story is that you've seen how to lead from someone who was a leader... It didn't help your standing much. - <<else>> + <<elseif $PC.career is "celebrity">> You share a hilarious anecdote from your background as a celebrity, one which the old world tabloids never did learn about, until now. + <<else>> + You cast yourself as one of the leading citizens of the Free Cities, from the beginning. <</if>> Transitioning to the future, you supply fresh fuel for rumors about how you managed to acquire the arcology by expressing confidence that <<if $PC.rumor is "wealth">> diff --git a/src/uncategorized/seRecruiterSuccess.tw b/src/uncategorized/seRecruiterSuccess.tw index ba4df96e22d38398988c8e6d34062ff1c762e0b2..627e6d1edd336d4743ed2b97758618eb6e28c919 100644 --- a/src/uncategorized/seRecruiterSuccess.tw +++ b/src/uncategorized/seRecruiterSuccess.tw @@ -1,5 +1,5 @@ :: SE recruiter success - + <<nobr>> <<set $nextButton to "Continue">> @@ -140,7 +140,7 @@ Your recruiter $Recruiter.slaveName has succeeded; she's convinced a desperate o <span id="result"> <<if $cash >= $contractCost>>\ <<click "Enslave her">> - <<set $slaves.push($activeSlave)>> + <<AddSlave $activeSlave>> <<set $cash -= $contractCost>> <<replace "#result">> <<set $nextLink to "AS Dump">>\ diff --git a/src/uncategorized/siblingsWorkaround.tw b/src/uncategorized/siblingsWorkaround.tw index 50a150ea06be85b230e5ad3bfb1a4d8c44e84b50..46cd7cbb90deac9ad2183100294f1dd01cd9b2a3 100644 --- a/src/uncategorized/siblingsWorkaround.tw +++ b/src/uncategorized/siblingsWorkaround.tw @@ -1,10 +1,11 @@ :: Siblings Workaround - + Your new pair of slaves look frightened and uncertain, but seem encouraged by each other's presence. -<<display "Nationality to Name">> -<<display "Nationality to Accent">> +<<AddSlave $activeSlave>> +<<NationalityToName>> +<<NationalityToAccent>> <<set _secondSlave to $activeSlave>> <<if $useFSNames == 0>> @@ -67,4 +68,4 @@ Your new pair of slaves look frightened and uncertain, but seem encouraged by ea <<set _secondSlave.butt += random (-1, 1)>> <</if>> - <<set $slaves.push(_secondSlave)>> +<<AddSlave _secondSlave>> \ No newline at end of file diff --git a/src/uncategorized/slaveInteract.tw b/src/uncategorized/slaveInteract.tw index bd882bb269e19b47c72ff8e15d7e5416348136ad..e048863855760d28a3b8893ca593916ef6a9c3dc 100644 --- a/src/uncategorized/slaveInteract.tw +++ b/src/uncategorized/slaveInteract.tw @@ -107,7 +107,7 @@ <</if>> <span id = "impreg"> <<if ((canGetPregnant($activeSlave)) && ($activeSlave.clothes != "a Fuckdoll suit"))>> - <<if ($PC.dick != 0)>> + <<if ($PC.dick != 0 && $activeSlave.eggType == "human")>> | <<click "Impregnate her yourself">><<replace "#miniscene">><<display "FPCImpreg">><br> <</replace>><<SlaveInteractImpreg>><<SlaveInteractFertility>><</click>> <</if>> | [[Use another slave to impregnate her|FSlaveImpreg]] @@ -152,10 +152,10 @@ <</if>> </span> | <<click "Abuse her">><<replace "#miniscene">><<display "FAbuse">><</replace>><</click>> - <<if $familyTest == 1>> + <<if $familyTesting == 1>> <<for $i to 0; $i < $slaves.length; $i++>> <<if $activeSlave.mother == $slaves[$i].ID>> - <<if isAvailabe($slaves[$i])>> + <<if isSlaveAvailable($slaves[$i])>> | <<click "Fuck her with her mother">><<replace "#miniscene">><<set $partner to "mother">><<display "FRelation">><br> <</replace>><</click>> <<else>> //Her mother, $slaves[$i].slaveName, is unavailable// @@ -163,7 +163,7 @@ <</if>> /* <<if $activeSlave.father == $slaves[$i].ID>> - <<if isAvailabe($slaves[$i])>> + <<if isSlaveAvailable($slaves[$i])>> | <<click "Fuck her with her father">><<replace "#miniscene">><<set $partner to "father">><<display "FRelation">><br> <</replace>><</click>> <<else>> //Her father, $slaves[$i].slaveName, is unavailable// @@ -172,24 +172,25 @@ */ <</for>> <<if $activeSlave.daughters > 0>> - <<set $relation = $slaves>> - <<set $relation = $relation.shuffle()>> - <<for $i to 0; $i < $relation.length; $i++>> - <<if ($activeSlave.ID == $relation[$i].father || $activeSlave.ID == $relation[$i].mother) && isAvailabe($relation[$i])>> - <<if $activeSlave.daughters == 1>> - | <<click "Fuck her with her daughter">><<replace "#miniscene">><<set $partner to "daughter">><<display "FRelation">><br> <</replace>><</click>> - <<else>> - | <<click "Fuck her with one of her daughters">><<replace "#miniscene">><<set $partner to "daughter">><<display "FRelation">><br> <</replace>><</click>> - <</if>> - <<break>> - <<elseif $i == $relation.length - 1>> - <<if $activeSlave.daughters == 1>> - //Her daughter is unavailable// - <<else>> - //Her daughters are unavailable// - <</if>> + <<set $relation = 0>> + <<for $i to 0; $i < $slaves.length; $i++>> + <<if ($activeSlave.ID == $slaves[$i].father || $activeSlave.ID == $slaves[$i].mother) && !isSlaveAvailable($slaves[$i])>> + <<set $relation++>> <</if>> <</for>> + <<if $relation == $activeSlave.daughters>> + <<if $activeSlave.daughters == 1>> + //Her daughter is unavailable// + <<else>> + //Her daughters are unavailable// + <</if>> + <<else>> + <<if $activeSlave.daughters == 1>> + | <<click "Fuck her with her daughter">><<replace "#miniscene">><<set $partner to "daughter">><<display "FRelation">><br> <</replace>><</click>> + <<else>> + | <<click "Fuck her with one of her daughters">><<replace "#miniscene">><<set $partner to "daughter">><<display "FRelation">><br> <</replace>><</click>> + <</if>> + <</if>> <</if>> /* <<if $activeSlave.daughters > 1>> @@ -197,24 +198,25 @@ <</if>> */ <<if $activeSlave.sisters > 0>> - <<set $relation = $slaves>> - <<set $relation = $relation.shuffle()>> - <<for $i to 0; $i < $relation.length; $i++>> - <<if areSisters($activeSlave, $relation[$i]) > 0 && isAvailabe($relation[$i])>> - <<if $activeSlave.sisters == 1>> - | <<click "Fuck her with her sister">><<replace "#miniscene">><<set $partner to "sister">><<display "FRelation">><br> <</replace>><</click>> - <<else>> - | <<click "Fuck her with one of her sisters">><<replace "#miniscene">><<set $partner to "sister">><<display "FRelation">><br> <</replace>><</click>> - <</if>> - <<break>> - <<elseif $i == $relation.length - 1>> - <<if $activeSlave.sisters == 1>> - //Her sister is unavailable// - <<else>> - //Her sisters are unavailable// - <</if>> + <<set $relation = 0>> + <<for $i to 0; $i < $slaves.length; $i++>> + <<if areSisters($activeSlave, $slaves[$i]) > 0 && isSlaveAvailable($slaves[$i]) == false>> + <<set $relation++>> <</if>> <</for>> + <<if $relation == $activeSlave.sisters>> + <<if $activeSlave.sisters == 1>> + //Her sister is unavailable// + <<else>> + //Her sisters are unavailable// + <</if>> + <<else>> + <<if $activeSlave.sisters == 1>> + | <<click "Fuck her with her sister">><<replace "#miniscene">><<set $partner to "sister">><<display "FRelation">><br> <</replace>><</click>> + <<else>> + | <<click "Fuck her with one of her sisters">><<replace "#miniscene">><<set $partner to "sister">><<display "FRelation">><br> <</replace>><</click>> + <</if>> + <</if>> <</if>> /* <<if $activeSlave.sisters > 1>> @@ -292,8 +294,8 @@ <</if>> <</if>> -<br><br> <<if $universalRulesImpregnation == "HG">> +<br><br> <<if $activeSlave.HGExclude == 0>> Will be bred by the head girl when fertile. [[Exempt her|Slave Interact][$activeSlave.useRulesAssistant to 1]] <<else>> @@ -304,8 +306,12 @@ Will not be bred by the head girl when fertile. [[Include her|Slave Interact][$a <br><br> __Rules Assistant__ //<<click "Apply Rules Assistant to this slave">> -<<AutoRulesActivate 1>> -<<goto "Slave Interact">><</click>>// + <<silently>> + <<display "Check Auto Rules Activate">> + <<display "Default Rules">> + <</silently>> + <<goto "Slave Interact">> +<</click>>// <br> <<if $activeSlave.useRulesAssistant != 0>> ''Subject'' to the rules assistant. [[Exempt her|Slave Interact][$activeSlave.useRulesAssistant to 0]] @@ -377,7 +383,7 @@ __Assignment__: <strong><span id="assign"><<print $activeSlave.assignment>></spa | <<click "Glory hole">><<set $activeSlave.assignment to "work a glory hole", $activeSlave.assignmentVisible to 1, $activeSlave.sentence to 0, $activeSlave.choosesOwnAssignment to 0>><<replace "#assign">><<print $activeSlave.assignment>><</replace>><</click>> <</if>> <<if $activeSlave.fuckdoll == 0>> -<<if ($activeSlave.lactation > 0) || ($activeSlave.balls > 0)>> +<<if ($activeSlave.lactation > 0) || ($activeSlave.balls > 0 && $activeSlave.ballType == "human")>> | <<click "Get milked">><<set $activeSlave.assignment to "get milked", $activeSlave.assignmentVisible to 1, $activeSlave.sentence to 0, $activeSlave.choosesOwnAssignment to 0>><<replace "#assign">><<print $activeSlave.assignment>><</replace>><</click>> <<else>> /*| //Not lactating// */ @@ -544,21 +550,21 @@ __Aphrodisiacs__: <span id="aphrodisiacs"><strong><<if $activeSlave.aphrodisiacs <br> <span id="fertilityblock"> -<<if $activeSlave.fuckdoll == 0>> +<<if $activeSlave.fuckdoll == 0 && ($activeSlave.ovaries == 1 || $activeSlave.mpreg == 1)>> <<if ($activeSlave.preg < -1)>> //She is sterile// -<<elseif ($activeSlave.pubertyXX == 0) && (($activeSlave.ovaries > 0) || ($activeSlave.mpreg == 0))>> +<<elseif ($activeSlave.pubertyXX == 0)>> //She is not yet fertile// <<elseif $activeSlave.physicalAge >= 47>> //She is too old to become pregnant// -<<elseif (($activeSlave.preg >= -1) && (($activeSlave.ovaries != 0)) || ($activeSlave.mpreg == 1))>> +<<elseif $activeSlave.preg >= -1>> __Contraception__: <span id="fertility"><strong><<if $activeSlave.preg is -1>><<print "using contraceptives">><<elseif $activeSlave.preg == 0>><<print "fertile">><<elseif $activeSlave.preg < 4>><<print "may be pregnant">><<else>><<print $activeSlave.preg>><<print " weeks pregnant">><</if>></strong></span>. <<if ($activeSlave.preg == 0)>> <<click "Use contraceptives">><<set $activeSlave.preg to -1>> <<SlaveInteractFertility>> <<SlaveInteractImpreg>> <</click>> -<<elseif ($activeSlave.preg is -1)>> +<<elseif $activeSlave.preg is -1>> <<click "Let her get pregnant">><<set $activeSlave.preg to 0>> <<SlaveInteractFertility>> <<SlaveInteractImpreg>> @@ -575,14 +581,14 @@ __Contraception__: <span id="fertility"><strong><<if $activeSlave.preg is -1>><< [[Abort her pregnancy|Abort]] <</if>> <</if>> -<<else>> +<<elseif ($activeSlave.ovaries == 1 || $activeSlave.mpreg == 1)>> <<if ($activeSlave.preg < -1)>> //It is sterile// -<<elseif ($activeSlave.pubertyXX == 0) && (($activeSlave.ovaries > 0) || ($activeSlave.mpreg == 0))>> +<<elseif ($activeSlave.pubertyXX == 0)>> //It is not yet fertile// <<elseif $activeSlave.physicalAge >= 47>> //It is too old to become pregnant// -<<elseif (($activeSlave.preg >= -1) && (($activeSlave.ovaries != 0)) || ($activeSlave.mpreg == 1))>> +<<elseif ($activeSlave.preg >= -1)>> __Contraception__: <span id="fertility"><strong><<if $activeSlave.preg is -1>><<print "using contraceptives">><<elseif $activeSlave.preg == 0>><<print "fertile">><<elseif $activeSlave.preg < 4>><<print "may be pregnant">><<else>><<print $activeSlave.preg>><<print " weeks pregnant">><</if>></strong></span>. <<if ($activeSlave.preg == 0)>> <<click "Use contraceptives">><<set $activeSlave.preg to -1>> @@ -599,14 +605,36 @@ __Contraception__: <span id="fertility"><strong><<if $activeSlave.preg is -1>><< <</if>> <</if>> <</if>> +<<if $incubator > 0>> +<<if $activeSlave.pregType < 50 && $activeSlave.preg > 3 && $activeSlave.eggType == "human">> +<<if $activeSlave.assignment == "work in the dairy" && $dairyPregSetting > 0>> +<<else>> + <br> + <<if $activeSlave.reservedChildren > 0>> + $activeSlave.reservedChildren of her children will be placed in $incubatorName. + <<if ($activeSlave.reservedChildren < $activeSlave.pregType) && ($reservedChildren < $incubator)>> + <br> + [[Keep another child|Slave Interact][$activeSlave.reservedChildren += 1, $reservedChildren++]] + <<else>> + | [[Keep one less child|Slave Interact][$activeSlave.reservedChildren -= 1, $reservedChildren--]] + <</if>> + <<elseif $reservedChildren < $incubator>> + She is pregnant and you have an available aging tank. + [[Keep a child|Slave Interact][$activeSlave.reservedChildren += 1, $reservedChildren++]] + <</if>> +<</if>> +<</if>> +<</if>> </span> <<if $propOutcome == 1>> <<if $activeSlave.fuckdoll == 0>> <<if $activeSlave.breedingMark == 0>> <<if isFertile($activeSlave)>> - <br> - [[Breeder Eligibility Exam|BreedingTest]] + <<if $activeSlave.eggType == "human">> + <br> + [[Breeder Eligibility Exam|BreedingTest]] + <</if>> <</if>> <</if>> <</if>> diff --git a/src/uncategorized/slaveMarkets.tw b/src/uncategorized/slaveMarkets.tw index 61c2ad50d6ed546f5dff74dd42c743bf8e893267..9735255a55cd3c826b35152a5ac429c399a69d4b 100644 --- a/src/uncategorized/slaveMarkets.tw +++ b/src/uncategorized/slaveMarkets.tw @@ -706,14 +706,7 @@ You're in the area of the slave market that specializes in slaves from within th <<if $arcologies[$i].FSSubjugationist > 20>> They're universally $arcologies[$i].FSSubjugationistRace. - <<set $activeSlave.race to $arcologies[$i].FSSubjugationistRace>> - <<display "New Slave Race Nationality and Name">> -<<elseif $arcologies[$i].FSSupremacist > 20>> - They're almost never $arcologies[$i].FSSupremacistRace. - <<if $activeSlave.race is $arcologies[$i].FSSupremacistRace>> - <<set $activeSlave.race to $arcologies[$i].FSSupremacistRace>> - <<display "New Slave Race Nationality and Name">> - <</if>> + <<set $fixedRace = $arcologies[$i].FSSubjugationistRace>><<NationalityToRace>><<NationalityToName>><<NationalityToAccent>><<set $fixedRace = 0>> <</if>> <<if $arcologies[$i].FSGenderRadicalist > 50>> They all show signs of intensive hormone therapy. diff --git a/src/uncategorized/slaveSummary.tw b/src/uncategorized/slaveSummary.tw index c492ca0ecec9ae508610ba7f09f1083108bd469d..0b149e8f16a8f9e9d09947fbd410b2af4bb9a4a7 100644 --- a/src/uncategorized/slaveSummary.tw +++ b/src/uncategorized/slaveSummary.tw @@ -1557,6 +1557,13 @@ Release rules: _Slave.releaseRules. Musc+ <<elseif _Slave.muscles > 5>> Toned +<<elseif _Slave.muscles > -6>> +<<elseif _Slave.muscles > -31>> + @@color:red;weak@@ +<<elseif _Slave.muscles > -96>> + @@color:red;weak+@@ +<<else>> + @@color:red;weak++@@ <</if>> <<if _Slave.amp != 0>> <<if _Slave.amp == -1>> @@ -1660,6 +1667,13 @@ Release rules: _Slave.releaseRules. <</if>> @@ @@color:pink; +<<if (_Slave.waist > 1)>> + Wst++ +<<elseif (_Slave.waist == 1)>> + Wst+ +<</if>> +@@ +@@color:pink; <<if (_Slave.boobsImplant == 0) && (_Slave.buttImplant == 0) && (_Slave.waist < 2) && (_Slave.lipsImplant == 0) && (_Slave.faceImplant < 2) && (_Slave.bellyImplant == 0)>> Natr <<else>> @@ -1762,6 +1776,13 @@ _Slave.faceShape face. Muscular. <<elseif _Slave.muscles > 5>> Toned. +<<elseif _Slave.muscles > -6>> +<<elseif _Slave.muscles > -31>> + @@color:red;Weak.@@ +<<elseif _Slave.muscles > -96>> + @@color:red;Very weak.@@ +<<else>> + @@color:red;Frail.@@ <</if>> <<if _Slave.amp != 0>> <<if _Slave.amp == -1>> @@ -1865,6 +1886,13 @@ _Slave.faceShape face. <</if>> @@ @@color:pink; +<<if (_Slave.waist > 1)>> + Unnaturally narrow waist. +<<elseif (_Slave.waist == 1)>> + Narrow waist. +<</if>> +@@ +@@color:pink; <<if (_Slave.boobsImplant != 0) || (_Slave.buttImplant != 0) || (_Slave.lipsImplant != 0) || (_Slave.bellyImplant != 0)>> Implants. <<elseif (_Slave.faceImplant >= 2) || (_Slave.waist >= 2)>> @@ -2981,10 +3009,11 @@ _Slave.faceShape face. <</if>> <</if>> +<<if _Slave.fuckdoll == 0>> <<if $abbreviateClothes is 2>> <<if _Slave.choosesOwnClothes == 1>> Dressing herself. -<<else>> +<</if>> <<switch _Slave.clothes>> <<case "attractive lingerie">> Lingerie. @@ -3073,7 +3102,6 @@ _Slave.faceShape face. <<default>> Naked. <</switch>> -<</if>> <<switch _Slave.collar>> <<case "uncomfortable leather">> Leather collar. @@ -3181,6 +3209,7 @@ _Slave.faceShape face. Enormous buttplug. <</switch>> <</if>> +<</if>> <<if $abbreviateRulesets is 2>> <<if (def _Slave.currentRules) && (_Slave.currentRules.length > 0)>> diff --git a/src/uncategorized/spaReport.tw b/src/uncategorized/spaReport.tw index 72e0bbc5de1c6cd186398452f4163d8b460b292e..d68721cf2166e955d6a81112444161d89b726cb8 100644 --- a/src/uncategorized/spaReport.tw +++ b/src/uncategorized/spaReport.tw @@ -15,7 +15,17 @@ <<set $spaSlaves += 1>> <<silently>> <<display [[SA rest]]>> + <<if $slaves[$i].choosesOwnClothes == 1>> + <<display "SA chooses own clothes">> + <<if ($slaves[$i].devotion <= 20)>> + <<set $slaves[$i].devotion -= 5>> + <<else>> + <<set $slaves[$i].devotion += 1>> + <</if>> + <</if>> + <<display "SA diet">> <<display "SA long term effects">> + <<display "SA drugs">> <<display "SA relationships">> <<display "SA rivalries">> <</silently>> @@ -36,8 +46,8 @@ <<if (random(1,100) > 90-$Attendant.devotion)>> @@color:green;Something almost miraculous has happened.@@ $Attendant.slaveName has always refused to believe that $slaves[$i].slaveName could not be reached, and has spent weeks lavishing patient tenderness on her in $spaName. $slaves[$i].slaveName has begun to respond, and is stirring from her mental torpor. <<set $slaves[$i].devotion to -3>> - <<set $slaves[$i].sexualFlaw to "hates men">> - <<set $slaves[$i].behavioralFlaw to "odd">> + <<set $slaves[$i].sexualFlaw to "apathetic">> + <<set $slaves[$i].behavioralFlaw to either("hates men", "odd")>> <<set $slaves[$i].fetish to "none">> <<set $slaves[$i].fetishKnown to 1>> <<if ($arcologies[0].FSPaternalist > 0)>> @@ -134,7 +144,17 @@ <<elseif ($Attendant != 0) && ($slaves[$i].ID is $Attendant.ID)>> <<silently>> + <<if $slaves[$i].choosesOwnClothes == 1>> + <<display "SA chooses own clothes">> + <<if ($slaves[$i].devotion <= 20)>> + <<set $slaves[$i].devotion -= 5>> + <<else>> + <<set $slaves[$i].devotion += 1>> + <</if>> + <</if>> + <<display "SA diet">> <<display "SA long term effects">> + <<display "SA drugs">> <<display "SA relationships">> <<display "SA rivalries">> <</silently>> @@ -352,6 +372,48 @@ $Attendant.slaveName works carefully with $flawSoftened, and successfully @@color:green;softens her behavioral flaw@@ into an appealing quirk. <</if>> + <<for $i to 0; $i < $slaves.length; $i++>> + <<if ($slaves[$i].ID is $Attendant.ID)>> + <br><br> + <<if $showEWD == 0>> + ''__@@color:pink;$slaves[$i].slaveName@@__'' is serving as the Attendant in the spa.<br> + <<else>> + ''__@@color:pink;$slaves[$i].slaveName@@__'' is serving as the Attendant in the spa. + <<if $slaves[$i].choosesOwnClothes == 1>> + <<display "SA chooses own clothes">> + <</if>> + <<display "SA diet">> + <<display "SA long term effects">> + <<display "SA drugs">> + <<display "SA relationships">> + <<display "SA rivalries">> + <br> + <<display "SA devotion">> + <br> + <</if>> + <<elseif ($slaves[$i].assignment is "rest in the spa")>> + <br> + <<if $showEWD == 0>> + ''__@@color:pink;$slaves[$i].slaveName@@__'' is resting in the spa. + <<else>> + ''__@@color:pink;$slaves[$i].slaveName@@__'' + <<display [[SA rest]]>> + <br> + <<if $slaves[$i].choosesOwnClothes == 1>> + <<display "SA chooses own clothes">> + <</if>> + <<display "SA diet">> + <<display "SA long term effects">> + <<display "SA drugs">> + <<display "SA relationships">> + <<display "SA rivalries">> + <br> + <<display "SA devotion">> + <br> + <</if>> + <</if>> + <</for>> + <<elseif ($Attendant != 0)>> ''$spaNameCaps is empty'' except for $Attendant.slaveName, the attendant. <<set $seed to random(1,10)+(($spa-$spaSlaves)*(random(150,170)+($idleBonus*10)))>> diff --git a/src/uncategorized/specialSlave.tw b/src/uncategorized/specialSlave.tw index 1a8812c5d4c382e209d9902a947b4ed79e920d72..b70c9efea7761dcd501475cd13479f048e57f28a 100644 --- a/src/uncategorized/specialSlave.tw +++ b/src/uncategorized/specialSlave.tw @@ -14,7 +14,7 @@ You review a piece of merchandise via video call, making a few lewd demands to g <<set $activeSlave.underArmHColor to $activeSlave.hColor>>\ <<set $activeSlave.underArmHStyle to "waxed">>\ <<slaveCost $activeSlave>>\ -<<display "Nationality to Accent">> +<<NationalityToAccent>> \ The offered price is ¤<<print $slaveCost>>. \ diff --git a/src/uncategorized/storyCaption.tw b/src/uncategorized/storyCaption.tw index 3abe060a5e7791c1885df59ae0f334cc23dea08f..aaa530c892cb7fc034195147ee9f91665709b458 100644 --- a/src/uncategorized/storyCaption.tw +++ b/src/uncategorized/storyCaption.tw @@ -1,5 +1,5 @@ :: StoryCaption - +\ <<set _Pass to passage()>>\ <<if _Pass is "Encyclopedia">>\ <span id="nextButton"><strong><<click [[($nextButton)|($nextLink)]]>><</click>></strong></span> diff --git a/src/uncategorized/twinsWorkaround.tw b/src/uncategorized/twinsWorkaround.tw index 1869953e5bec0d4b232db938ab359494a11160fe..620640049ef4b154c4fa018c484346dae85908e6 100644 --- a/src/uncategorized/twinsWorkaround.tw +++ b/src/uncategorized/twinsWorkaround.tw @@ -1,10 +1,11 @@ :: Twins Workaround - + Your new pair of slaves look frightened and uncertain, but seem encouraged by each other's presence. -<<display "Nationality to Name">> -<<display "Nationality to Accent">> +<<AddSlave $activeSlave>> +<<NationalityToName>> +<<NationalityToAccent>> <<set _secondSlave to $activeSlave>> <<if $useFSNames == 0>> @@ -30,4 +31,4 @@ Your new pair of slaves look frightened and uncertain, but seem encouraged by ea <<set _secondSlave.relationTarget to _secondSlave.ID - 1000>> <</if>> -<<set $slaves.push(_secondSlave)>> +<<AddSlave _secondSlave>> \ No newline at end of file diff --git a/src/uncategorized/walkPast.tw b/src/uncategorized/walkPast.tw index fe32ea1f33836ed6645685fc8cdf0a09ffb45963..db89b1275c1455b834c9c33f4fe9ba55bda5876b 100644 --- a/src/uncategorized/walkPast.tw +++ b/src/uncategorized/walkPast.tw @@ -2,7 +2,7 @@ // <<set $target to "">> -<<if $familyTesting == 1 && ($activeSlave.mother > 0 || $activeSlave.father > 0 || $activeSlave.daughters > 0 || $activeSlave.sisters > 0) && random(1,100) > 80>> +<<if $familyTesting == 1 && totalRelatives($activeSlave) > 0 && random(1,100) > 80>> <<set $relations to 0>> <<set $relations to []>> <<if $activeSlave.sisters > 0>> @@ -48,7 +48,7 @@ <<set $relationType = "half-sister">> <</if>> <<set _seed to 110, $partner to "relation">> -<<elseif ($activeSlave.relation isnot 0) and (random(1,100) gt 80)>> +<<elseif $familyTesting == 0 && ($activeSlave.relation isnot 0) and (random(1,100) gt 80)>> <<set _seed to 110, $partner to "relation">> <<elseif ($activeSlave.relationship gt 0) and (random(1,100) gt 70)>> <<set _seed to 120, $partner to "relationship">> @@ -62,15 +62,15 @@ <span id="walk"> -<<if ($partner isnot "relationship") or ($activeSlave.relationship is 1) or ($activeSlave.relationship is 2) or ($activeSlave.releaseRules is "restrictive")>> +<<if ($partner != "relationship") or ($activeSlave.relationship is 1) or ($activeSlave.relationship is 2) or ($activeSlave.releaseRules == "restrictive")>> $activeSlave.slaveName <<switch $activeSlave.assignment>> <<case "work in the dairy">> - <<if ($dairyRestraintsSetting gt 1)>> + <<if ($dairyRestraintsSetting > 1)>> is strapped to a milking machine in $dairyName. - <<elseif ($activeSlave.lactation is 0) and ($activeSlave.balls gt 0)>> + <<elseif ($activeSlave.lactation is 0) and ($activeSlave.balls > 0)>> is working in $dairyName, and is having her cock milked. As you watch, her balls tighten as the phallus up her butt brings her closer to a copious ejaculation. - <<elseif _seed gt 50>> + <<elseif _seed > 50>> is working in $dairyName, and is having her tits milked, but you have a good view of her <<if $seeRace is 1>>$activeSlave.race body <</if>>on the feeds. <<else>> is working in $dairyName, and is massaging her sore tits, but you have a good view of her <<if $seeRace is 1>>$activeSlave.race body <</if>>on the feeds. @@ -78,25 +78,25 @@ <<case "work in the brothel">> <<Beauty $activeSlave>> is working in $brothelName, and is - <<if ($beauty gt 100) and (random(1,2) is 1)>> - <<if (_seed gt 80)>> + <<if ($beauty > 100) and (random(1,2) is 1)>> + <<if (_seed > 80)>> riding one customer's dick while she gives another a blowjob. - <<elseif (_seed gt 60)>> + <<elseif (_seed > 60)>> sucking one customer's cock while giving another a handjob. - <<elseif (_seed gt 40)>> + <<elseif (_seed > 40)>> eating out one customer's cunt while another uses a strap-on on her. - <<elseif (_seed gt 20)>> + <<elseif (_seed > 20)>> getting pounded by two women wearing strap-ons. <<else>> being double penetrated by a pair of customers. <</if>> - <<elseif (_seed gt 80)>> + <<elseif (_seed > 80)>> riding a customer's dick. - <<elseif (_seed gt 60)>> + <<elseif (_seed > 60)>> sucking a customer's cock. - <<elseif (_seed gt 40)>> + <<elseif (_seed > 40)>> pleasuring a customer's cunt. - <<elseif (_seed gt 20)>> + <<elseif (_seed > 20)>> getting pounded by a woman wearing a strap-on. <<else>> being held down and buttfucked by a customer. @@ -105,25 +105,25 @@ <<case "serve the public">> <<Beauty $activeSlave>> is serving the public, and is - <<if ($beauty gt 100) and (random(1,2) is 1)>> - <<if (_seed gt 80)>> + <<if ($beauty > 100) and (random(1,2) is 1)>> + <<if (_seed > 80)>> riding one citizen's dick while she gives another a blowjob. - <<elseif (_seed gt 60)>> + <<elseif (_seed > 60)>> sucking one citizen's cock while giving another a handjob. - <<elseif (_seed gt 40)>> + <<elseif (_seed > 40)>> eating out one citizen's cunt while another uses a strap-on on her. - <<elseif (_seed gt 20)>> + <<elseif (_seed > 20)>> getting pounded by two women wearing strap-ons. <<else>> being double penetrated by a pair of citizens. <</if>> - <<elseif (_seed gt 80)>> + <<elseif (_seed > 80)>> riding a citizen's dick. - <<elseif (_seed gt 60)>> + <<elseif (_seed > 60)>> sucking a citizen's cock. - <<elseif (_seed gt 40)>> + <<elseif (_seed > 40)>> pleasuring a citizen's cunt. - <<elseif (_seed gt 20)>> + <<elseif (_seed > 20)>> getting pounded by a citizen wearing a strap-on. <<else>> being held down and buttfucked by a citizen. @@ -131,13 +131,13 @@ You have a voyeuristic view of her <<if $seeRace is 1>>$activeSlave.race body <</if>>on the feeds. <<case "serve in the club">> is working in $clubName, - <<if _seed gt 50>> + <<if _seed > 50>> displaying her <<if $seeRace is 1>>$activeSlave.race <</if>>body, keeping citizens company, and flirting with anyone who shows interest. <<else>> or rather just off it, having taken a prominent citizen back to a discreet room <<if $seeRace is 1>> so he can use her $activeSlave.race body<</if>>. <</if>> <<case "work as a servant">> - <<if _seed gt 50>> + <<if _seed > 50>> was scrubbing the penthouse floor, until another slave requested oral service. <<else>> is scrubbing the penthouse floor. @@ -146,33 +146,33 @@ <<if $activeSlave.fuckdoll > 0>> waiting for use in $masterSuiteName, next to a display case full of other sex toys. <<elseif $masterSuiteUpgradeLuxury is 1>> - <<if _seed gt 50>> + <<if _seed > 50>> is kneeling on the big bed in $masterSuiteName, awaiting your return. <<else>> is beautifying herself in $masterSuiteName so she'll be pretty when you return. <</if>> <<elseif $masterSuiteUpgradeLuxury is 2>> is in $masterSuiteName's fuckpit, - <<if (_seed gt 80)>> + <<if (_seed > 80)>> with a pair of her fellow fucktoys industriously sucking on her nipples. - <<elseif (_seed gt 60)>> - <<if $activeSlave.anus gt 0>> + <<elseif (_seed > 60)>> + <<if $activeSlave.anus > 0>> taking double penetration from <<else>> being spitroasted by <</if>> a pair of her fellow fucktoys. - <<elseif (_seed gt 40)>> + <<elseif (_seed > 40)>> <<if canAchieveErection($activeSlave)>> with her dick inside - <<elseif $activeSlave.dick gt 0>> + <<elseif $activeSlave.dick > 0>> getting her soft dick sucked by <<else>> getting eaten out by <</if>> a fellow fucktoy. - <<elseif (_seed gt 20)>> - <<if $activeSlave.anus gt 0>> + <<elseif (_seed > 20)>> + <<if $activeSlave.anus > 0>> getting her ass pounded <<else>> getting eaten out @@ -182,7 +182,7 @@ performing oral sex on a fellow fucktoy. <</if>> <<else>> - <<if ($activeSlave.energy gt 95)>> + <<if ($activeSlave.energy > 95)>> is having enthusiastic sex with your other pets while waiting for your cock. <<else>> is having idle sex with several of your other toys while they await your pleasure. @@ -201,6 +201,12 @@ Another slave is spanking her and giving her a handjob at the same time. <<elseif ($activeSlave.fetish is "boobs")>> She has a slave sucking on each of her nipples while she gives each a handjob. + <<elseif ($activeSlave.fetish is "pregnancy")>> + <<if bigBelly($activeSlave)>> + She's sighing contentedly as her rounded belly is sensually rubbed. + <<else>> + She's happily roleplaying conceiving a child as she gets fucked. + <</if>> <</if>> <</if>> <</if>> @@ -213,13 +219,13 @@ is working from her apartment, but you have a fine view of her <<if $seeRace is 1>>$activeSlave.race body <</if>>on the feeds. <<case "be confined in the arcade" "work a glory hole">> is confined in <<if $activeSlave.assignment == "be confined in the arcade">>$arcadeName<<else>>a glory hole<</if>>; - <<if (_seed gt 80)>> + <<if (_seed > 80)>> $possessive ass is held out at cock height, and a customer is using $possessive fuckhole. - <<elseif (_seed gt 60)>> + <<elseif (_seed > 60)>> $possessive mouth is held open at cock height, and a customer is fucking $possessive throat. - <<elseif (_seed gt 40)>> + <<elseif (_seed > 40)>> a woman is abusing $possessive with a couple of dildos. - <<elseif (_seed gt 20)>> + <<elseif (_seed > 20)>> a customer is cruelly spanking $possessive helpless butt. <<else>> a customer is harshly using $possessive defenseless anus. @@ -234,7 +240,7 @@ <</if>> <<case "be the Wardeness">> is looking after the cells: she is - <<if _seed gt 50>> + <<if _seed > 50>> forcing a resistant slave to orally service her. <<else>> beating a rebellious slave across the buttocks. @@ -257,7 +263,7 @@ %/ <<default>> /* WALKPASTS START HERE */ - <<if ($activeSlave.heels is 1) and ($activeSlave.shoes isnot "flats") and ($activeSlave.shoes isnot "none")>> + <<if ($activeSlave.heels is 1) and ($activeSlave.shoes != "flats") and ($activeSlave.shoes != "none")>> walks past your desk with the tiny swaying steps she must take in order to walk on her surgically altered legs. She is on her way to <<elseif ($activeSlave.shoes is "heels")>> walks past your desk with the swaying steps she must take in her high heels. She is on her way to @@ -289,28 +295,28 @@ <<else>> <<switch $activeSlave.assignment>> <<case "rest">> - <<if _seed gt 50>> + <<if _seed > 50>> bed; <<else>> eat; <</if>> <<case "get milked">> drain her - <<if ($activeSlave.lactation is 0) and ($activeSlave.balls gt 0)>> + <<if ($activeSlave.lactation is 0) and ($activeSlave.balls > 0)>> cum-filled, <<if $seeRace is 1>>$activeSlave.race <</if>>balls; - <<elseif ($activeSlave.lactation gt 0) and ($activeSlave.balls gt 0)>> + <<elseif ($activeSlave.lactation > 0) and ($activeSlave.balls > 0)>> cum-filled, <<if $seeRace is 1>>$activeSlave.race <</if>>balls and milky udders; <<else>> milky <<if $seeRace is 1>>$activeSlave.race <</if>>udders; <</if>> <<case "whore">> - <<if _seed gt 50>> + <<if _seed > 50>> sell her <<if $seeRace is 1>>$activeSlave.race <</if>>body; <<else>> ply her trade as a whore; <</if>> <<case "serve the public">> - <<if _seed gt 50>> + <<if _seed > 50>> serve the public; <<else>> be a public slut; @@ -337,7 +343,7 @@ /% <<case "please you">> sit next to you and wait for - <<if _seed gt 50>> + <<if _seed > 50>> you to fuck her; <<else>> her Master to use her<<if $seeRace is 1>> $activeSlave.race body<</if>>; @@ -371,7 +377,7 @@ <<if ($partner is "rivalry")>> <<set _partnerSlave to null>> - <<for _i to 0; _i lt $slaves.length; _i++>> + <<for _i to 0; _i < $slaves.length; _i++>> <<if $slaves[_i].ID == $activeSlave.rivalryTarget>> <<set _partnerSlave to $slaves[_i]>> <<break>> @@ -382,9 +388,9 @@ <</if>> Meanwhile, - <<if $activeSlave.rivalry gte 3>> + <<if $activeSlave.rivalry >= 3>> _partnerSlave.slaveName, who she hates, - <<elseif $activeSlave.rivalry gte 2>> + <<elseif $activeSlave.rivalry >= 2>> her rival _partnerSlave.slaveName <<else>> _partnerSlave.slaveName, who she dislikes, @@ -397,13 +403,13 @@ is working from her apartment, but you have a fine view of her <<if $seeRace is 1>>_partnerSlave.race body <</if>>on the feeds. <<case "work in the brothel">> is working in the brothel, and is - <<if _seed gt 80>> + <<if _seed > 80>> riding a customer's dick. - <<elseif _seed gt 60>> + <<elseif _seed > 60>> sucking a customer's cock. - <<elseif _seed gt 40>> + <<elseif _seed > 40>> pleasuring a customer's cunt. - <<elseif _seed gt 20>> + <<elseif _seed > 20>> getting pounded by a woman wearing a strap-on. <<else>> being held down and buttfucked by a customer. @@ -411,24 +417,24 @@ You have a voyeuristic view of her <<if $seeRace is 1>>_partnerSlave.race body <</if>>on the feeds. <<case "serve the public">> is serving the public, and is - <<if _seed gt 80>> + <<if _seed > 80>> riding a citizen's dick. - <<elseif _seed gt 60>> + <<elseif _seed > 60>> sucking a citizen's cock. - <<elseif _seed gt 40>> + <<elseif _seed > 40>> pleasuring a citizen's cunt. - <<elseif _seed gt 20>> + <<elseif _seed > 20>> getting pounded by a citizen wearing a strap-on. <<else>> being held down and buttfucked by a citizen. <</if>> You have a voyeuristic view of her <<if $seeRace is 1>>_partnerSlave.race body <</if>>on the feeds. <<case "work in the dairy">> - <<if ($dairyRestraintsSetting gt 1)>> + <<if ($dairyRestraintsSetting > 1)>> is strapped to a milking machine in $dairyName. - <<elseif (_partnerSlave.race.lactation is 0) and (_partnerSlave.race.balls gt 0)>> + <<elseif (_partnerSlave.lactation is 0) and (_partnerSlave.balls > 0)>> is working in $dairyName, and is having her cock milked. As you watch, her balls tighten as the phallus up her butt brings her closer to a copious ejaculation. - <<elseif _seed gt 50>> + <<elseif _seed > 50>> is working in $dairyName, having her tits milked. <<else>> is working in $dairyName, massaging her sore tits. @@ -436,13 +442,13 @@ You have a good view of her <<if $seeRace is 1>>_partnerSlave.race body <</if>>on the feeds. <<case "serve in the club">> is working on the club, - <<if _seed gt 50>> + <<if _seed > 50>> displaying her <<if $seeRace is 1>>_partnerSlave.race <</if>>body, keeping citizens company, and flirting with anyone who shows interest. <<else>> or rather just off it, having taken a prominent citizen back to a discreet room <<if $seeRace is 1>> so he can use her _partnerSlave.race body<</if>>. <</if>> <<case "work as a servant">> - <<if _seed gt 50>> + <<if _seed > 50>> was scrubbing the penthouse floor, until another slave requested oral service. <<else>> is scrubbing the penthouse floor. @@ -463,7 +469,7 @@ is working in the dairy, looking after your stock. <<default>> - <<if (_partnerSlave.heels is 1) and (_partnerSlave.shoes isnot "flats") and (_partnerSlave.shoes isnot "none")>> + <<if (_partnerSlave.heels is 1) and (_partnerSlave.shoes != "flats") and (_partnerSlave.shoes != "none")>> walks past your desk with the tiny swaying steps she must take in order to walk on her surgically altered legs. She is on her way to <<elseif (_partnerSlave.shoes is "heels")>> walks past your desk with the swaying steps she must take in her high heels. She is on her way to @@ -483,25 +489,25 @@ <<switch _partnerSlave.assignment>> <<case "whore">> - <<if _seed gt 50>> + <<if _seed > 50>> whore; <<else>> sell her <<if $seeRace is 1>>_partnerSlave.race <</if>>body; <</if>> <<case "serve the public">> - <<if _seed gt 50>> + <<if _seed > 50>> serve the public; <<else>> be a public slut; <</if>> <<case "rest">> - <<if _seed gt 50>> + <<if _seed > 50>> eat; <<else>> bed; <</if>> <<case "get milked">> - <<if _seed gt 50>> + <<if _seed > 50>> milk her overfull <<if $seeRace is 1>>_partnerSlave.race <</if>>tits; <<else>> drain her milky <<if $seeRace is 1>>_partnerSlave.race <</if>>udders; @@ -536,14 +542,14 @@ <</switch>> <<set $target to "FRival", _partnerSlave to null>> -<<elseif ($partner is "relationship") and ($activeSlave.relationship gte 3) and ($activeSlave.releaseRules isnot "restrictive")>> +<<elseif ($partner is "relationship") and ($activeSlave.relationship >= 3) and ($activeSlave.releaseRules != "restrictive")>> <<set _partnerSlave to null>> - <<for _i to 0; _i lt $slaves.length; _i++>> + <<for _i to 0; _i < $slaves.length; _i++>> <<if $slaves[_i].ID == $activeSlave.relationshipTarget>> <<set _partnerSlave to $slaves[_i]>> - <<if $activeSlave.relationship lte 3>> + <<if $activeSlave.relationship <= 3>> <<set _activeSlaveRel to "friend with benefits">> - <<elseif $activeSlave.relationship lte 4>> + <<elseif $activeSlave.relationship <= 4>> <<set _activeSlaveRel to "lover">> <<else>> <<set _activeSlaveRel to "slave wife">> @@ -560,21 +566,21 @@ <<set _seed to random(1,3)>> <<if _seed is 1>> /* SEXY TIMES */ - <<if (($activeSlave.fetish is "dom") or ($activeSlave.fetish is "sadist")) and ($activeSlave.dick gt 0) and ($activeSlave.balls gt 0) and ($activeSlave.dickAccessory isnot "chastity") and ($activeSlave.hormones lte 0) and ((_partnerSlave.fetish is "dom") or (_partnerSlave.fetish is "sadist")) and (_partnerSlave.dick gt 0) and (_partnerSlave.balls gt 0) and (_partnerSlave.dickAccessory isnot "chastity") and (_partnerSlave.hormones lte 0)>> + <<if (($activeSlave.fetish is "dom") or ($activeSlave.fetish is "sadist")) and ($activeSlave.dick > 0) and canPenetrate($activeSlave) and ((_partnerSlave.fetish is "dom") or (_partnerSlave.fetish is "sadist")) and (_partnerSlave.dick > 0) and canPenetrate(_partnerSlave)>> performing double anal on another slave. They're face to face over their sub's shoulders, looking into each other's eyes with every appearance of enjoyment and love, since for them rubbing dicks inside another slave's butt is what constitutes healthy sexual activity. _partnerSlave.slaveName is on the bottom, and holds their victim atop her with _partnerSlave.slaveName's cock already hilted in her ass so $activeSlave.slaveName can force herself inside as well. They enjoy the overstimulated girl's struggles. <<set $activeSlave.penetrativeCount++, _partnerSlave.penetrativeCount++, $penetrativeTotal += 2>> - <<elseif ($activeSlave.energy gt 95)>> - having loud sex <<if $activeSlave.livingRules is "spare">>in the nice little room they share.<<elseif ($activeSlave.ID is $HeadGirl.ID) and ($HGSuite is 1)>>in $activeSlave.ID's suite.<<else>>out in the open in the slave dormitory.<</if>> $activeSlave.slaveName is such a sexual addict that she wants it all the time, and _partnerSlave.slaveName does her best to help her _activeSlaveRel get off. - <<if ($activeSlave.vagina gt 0) or ($activeSlave.anus gt 0)>> + <<elseif ($activeSlave.energy > 95)>> + having loud sex <<if $activeSlave.livingRules is "luxurious">>in the nice little room they share.<<elseif ($activeSlave.ID is $HeadGirl.ID) and ($HGSuite is 1)>>in $activeSlave.ID's suite.<<else>>out in the open in the slave dormitory.<</if>> $activeSlave.slaveName is such a sexual addict that she wants it all the time, and _partnerSlave.slaveName does her best to help her _activeSlaveRel get off. + <<if ($activeSlave.vagina > 0) or ($activeSlave.anus > 0)>> $activeSlave.slaveName is down on her knees in front of _partnerSlave.slaveName, taking - <<if (_partnerSlave.dick gt 1) and (_partnerSlave.balls gt 0) and (_partnerSlave.dickAccessory isnot "chastity") and (_partnerSlave.dickAccessory isnot "combined chastity") and (_partnerSlave.hormones lt 1)>> + <<if (_partnerSlave.dick > 1) and canPenetrate(_partnerSlave)>> her cock doggy style, - <<elseif (_partnerSlave.dick gt 1)>> + <<elseif (_partnerSlave.dick > 1)>> a finger fuck, since her _activeSlaveRel is impotent, <<else>> a strap-on, doggy style, <</if>> - <<if ($activeSlave.vagina gt 0) and canDoVaginal($activeSlave) and (random(1,100) gt 50)>> + <<if ($activeSlave.vagina > 0) and canDoVaginal($activeSlave) and (random(1,100) > 50)>> in her pussy. <<VaginalVCheck>> <<elseif canDoAnal($activeSlave) >> @@ -586,10 +592,10 @@ They're scissoring enthusiastically and playing with each other's breasts. <<set $activeSlave.mammaryCount++, _partnerSlave.mammaryCount++, $mammaryTotal += 2>> <</if>> - <<elseif ($activeSlave.fetishStrength > 60) and ($activeSlave.fetishKnown is 1) and ($activeSlave.fetish isnot "pregnancy")>> + <<elseif ($activeSlave.fetishStrength > 60) and ($activeSlave.fetishKnown is 1)>> <<switch $activeSlave.fetish>> <<case "boobs">> - snuggling rather sexually <<if $activeSlave.livingRules is "spare">>in the nice little room they share.<<elseif ($activeSlave.ID is $HeadGirl.ID) and ($HGSuite is 1)>>in $activeSlave.ID's suite.<<else>>out in the open in the slave dormitory.<</if>> $activeSlave.slaveName loves having her breasts touched and massaged, so _partnerSlave.slaveName looks after her _activeSlaveRel's tits. + snuggling rather sexually <<if $activeSlave.livingRules is "luxurious">>in the nice little room they share.<<elseif ($activeSlave.ID is $HeadGirl.ID) and ($HGSuite is 1)>>in $activeSlave.ID's suite.<<else>>out in the open in the slave dormitory.<</if>> $activeSlave.slaveName loves having her breasts touched and massaged, so _partnerSlave.slaveName looks after her _activeSlaveRel's tits. <<if (_partnerSlave.amp is 1)>> Since _partnerSlave.slaveName is an amputee $activeSlave.slaveName has her propped on her belly so she can easily suckle and nuzzle. <<else>> @@ -597,38 +603,38 @@ <</if>> <<set $activeSlave.mammaryCount++, _partnerSlave.mammaryCount++, $mammaryTotal += 2>> <<case "buttslut">> - having loud buttsex <<if $activeSlave.livingRules is "spare">>in the nice little room they share.<<elseif ($activeSlave.ID is $HeadGirl.ID) and ($HGSuite is 1)>>in $activeSlave.ID's suite.<<else>>out in the open in the slave dormitory.<</if>> $activeSlave.slaveName is such an anal addict that she wants it all the time, and _partnerSlave.slaveName does her best to keep her _activeSlaveRel satisfied. - <<if ($activeSlave.anus gt 0)>> + having loud buttsex <<if $activeSlave.livingRules is "luxurious">>in the nice little room they share.<<elseif ($activeSlave.ID is $HeadGirl.ID) and ($HGSuite is 1)>>in $activeSlave.ID's suite.<<else>>out in the open in the slave dormitory.<</if>> $activeSlave.slaveName is such an anal addict that she wants it all the time, and _partnerSlave.slaveName does her best to keep her _activeSlaveRel satisfied. + <<if ($activeSlave.anus > 0)>> $activeSlave.slaveName is down on her knees in front of _partnerSlave.slaveName, taking - <<if (_partnerSlave.dick gt 1) and (_partnerSlave.balls gt 0) and (_partnerSlave.hormones lt 1) and (_partnerSlave.dickAccessory isnot "chastity")>> + <<if (_partnerSlave.dick > 1) and canPenetrate(_partnerSlave)>> her cock up the butt. - <<if ($activeSlave.anus gt 2) and (_partnerSlave.dick gt 2)>> + <<if ($activeSlave.anus > 2) and (_partnerSlave.dick > 2)>> $activeSlave.slaveName is clearly enjoying getting buttfucked by a cock big enough to make her feel tight again. - <<elseif ($activeSlave.anus gt 2) and (_partnerSlave.dick gt 1)>> + <<elseif ($activeSlave.anus > 2) and (_partnerSlave.dick > 1)>> $activeSlave.slaveName's gaping ass takes _partnerSlave.slaveName's cock easily. - <<elseif ($activeSlave.anus gt 2)>> + <<elseif ($activeSlave.anus > 2)>> $activeSlave.slaveName can barely tell _partnerSlave.slaveName's little dick is even there, but it's the thought that counts. - <<elseif ($activeSlave.anus lt 2) and (_partnerSlave.dick gt 2)>> + <<elseif ($activeSlave.anus < 2) and (_partnerSlave.dick > 2)>> $activeSlave.slaveName is panting and writhing with the pain of taking her _activeSlaveRel's massive dick. _partnerSlave.slaveName is doing her best to be gentle. - <<elseif ($activeSlave.anus lt 2) and (_partnerSlave.dick gt 1)>> + <<elseif ($activeSlave.anus < 2) and (_partnerSlave.dick > 1)>> $activeSlave.slaveName is writhing with the mixed pain and pleasure of having her tight ass stretched by her _activeSlaveRel's nice cock. - <<elseif ($activeSlave.anus lt 2)>> + <<elseif ($activeSlave.anus < 2)>> $activeSlave.slaveName's tight anus and _partnerSlave.slaveName's little dick work well together; $activeSlave.slaveName can take it easily, and _partnerSlave.slaveName gets to fuck a hole that's tight, even for her. <</if>> - <<elseif (_partnerSlave.dick gt 1)>> + <<elseif (_partnerSlave.dick > 1)>> a finger fuck, since her _activeSlaveRel is impotent. - <<if ($activeSlave.anus gt 2)>> + <<if ($activeSlave.anus > 2)>> Or rather, a fist fuck, since that's what it takes to satisfy her _activeSlaveRel's gaping hole. - <<elseif ($activeSlave.anus gt 1)>> + <<elseif ($activeSlave.anus > 1)>> _partnerSlave.slaveName is using three fingers to stretch her _activeSlaveRel's asshole. <<else>> _partnerSlave.slaveName is using two fingers to gently fuck her _activeSlaveRel's tight anus. <</if>> <<else>> a strap-on up the butt, doggy style. _partnerSlave.slaveName is using a - <<if ($activeSlave.anus gt 2)>> + <<if ($activeSlave.anus > 2)>> massive fake phallus to satisfy her _activeSlaveRel's gaping hole. - <<elseif ($activeSlave.anus gt 1)>> + <<elseif ($activeSlave.anus > 1)>> decent-sized fake phallus to stretch her _activeSlaveRel's asshole. <<else>> small fake phallus to gently fuck her _activeSlaveRel's tight anus. @@ -641,14 +647,14 @@ <<set $activeSlave.oralCount++, _partnerSlave.oralCount++, $oralTotal += 2>> <</if>> <<case "cumslut">> - sharing oral pleasure <<if $activeSlave.livingRules is "spare">>in the nice little room they share.<<elseif ($activeSlave.ID is $HeadGirl.ID) and ($HGSuite is 1)>>in $activeSlave.ID's suite.<<else>>out in the open in the slave dormitory.<</if>> $activeSlave.slaveName is such an oral addict that she wants it all the time, and _partnerSlave.slaveName certainly doesn't mind all the loving oral attention. They're lying down to 69 comfortably, - <<if (_partnerSlave.dick gt 1) and (_partnerSlave.balls gt 0) and (_partnerSlave.dickAccessory isnot "chastity") and (_partnerSlave.hormones lt 1)>> + sharing oral pleasure <<if $activeSlave.livingRules is "luxurious">>in the nice little room they share.<<elseif ($activeSlave.ID is $HeadGirl.ID) and ($HGSuite is 1)>>in $activeSlave.ID's suite.<<else>>out in the open in the slave dormitory.<</if>> $activeSlave.slaveName is such an oral addict that she wants it all the time, and _partnerSlave.slaveName certainly doesn't mind all the loving oral attention. They're lying down to 69 comfortably, + <<if (_partnerSlave.dick > 1) and canPenetrate(_partnerSlave)>> with $activeSlave.slaveName hungrily sucking her _activeSlaveRel's turgid cock. <<set _partnerSlave.penetrativeCount++, $penetrativeTotal++>> - <<elseif (_partnerSlave.dick gt 1) and (_partnerSlave.anus gt 0)>> + <<elseif (_partnerSlave.dick > 1) and (_partnerSlave.anus > 0)>> with $activeSlave.slaveName hungrily sucking her _activeSlaveRel's limp cock. She has a finger up poor impotent _partnerSlave.slaveName's butt to stimulate her prostate so she can cum for her. <<set _partnerSlave.penetrativeCount++, $penetrativeTotal++>> - <<elseif (_partnerSlave.dick gt 1)>> + <<elseif (_partnerSlave.dick > 1)>> with $activeSlave.slaveName hungrily sucking her _activeSlaveRel's limp cock. She has a finger massaging poor impotent _partnerSlave.slaveName's perineum in the hope of stimulating her so she can cum for her. <<set _partnerSlave.penetrativeCount++, $penetrativeTotal++>> <<else>> @@ -657,11 +663,11 @@ <</if>> <<set $activeSlave.oralCount++, $oralTotal++>> <<case "submissive">> - wrestling <<if $activeSlave.livingRules is "spare">>in the nice little room they share.<<elseif ($activeSlave.ID is $HeadGirl.ID) and ($HGSuite is 1)>>in $activeSlave.ID's suite.<<else>>out in the open in the slave dormitory.<</if>> $activeSlave.slaveName is such a submissive that she wants it rough all the time, and _partnerSlave.slaveName does her best give her _activeSlaveRel the constant abuse she loves. $activeSlave.slaveName is down on her knees in front of _partnerSlave.slaveName, worshipping - <<if (_partnerSlave.dick gt 1) and (_partnerSlave.balls gt 0) and (_partnerSlave.dickAccessory isnot "chastity") and (_partnerSlave.hormones lt 1)>> + wrestling <<if $activeSlave.livingRules is "luxurious">>in the nice little room they share.<<elseif ($activeSlave.ID is $HeadGirl.ID) and ($HGSuite is 1)>>in $activeSlave.ID's suite.<<else>>out in the open in the slave dormitory.<</if>> $activeSlave.slaveName is such a submissive that she wants it rough all the time, and _partnerSlave.slaveName does her best give her _activeSlaveRel the constant abuse she loves. $activeSlave.slaveName is down on her knees in front of _partnerSlave.slaveName, worshipping + <<if (_partnerSlave.dick > 1) and canPenetrate(_partnerSlave)>> her cock <<set _partnerSlave.penetrativeCount++, $penetrativeTotal++>> - <<elseif (_partnerSlave.dick gt 1)>> + <<elseif (_partnerSlave.dick > 1)>> her asshole <<set _partnerSlave.oralCount++, $oralTotal++>> <<else>> @@ -671,8 +677,8 @@ while _partnerSlave.slaveName rains light slaps and loving insults down on her bitch of a _activeSlaveRel. <<set $activeSlave.oralCount++, $oralTotal++>> <<case "dom">> - wrestling <<if $activeSlave.livingRules is "spare">>in the nice little room they share.<<elseif ($activeSlave.ID is $HeadGirl.ID) and ($HGSuite is 1)>>in $activeSlave.ID's suite.<<else>>out in the open in the slave dormitory.<</if>> $activeSlave.slaveName is so dominant with other slaves that she prefers to take what she wants, and _partnerSlave.slaveName does her best give her _activeSlaveRel the struggle fucking she loves. $activeSlave.slaveName is on top of _partnerSlave.slaveName getting oral, though it's more of a rough facefuck as $activeSlave.slaveName forces - <<if ($activeSlave.dick gt 1) and ($activeSlave.balls gt 0) and (_partnerSlave.dickAccessory isnot "chastity") and ($activeSlave.hormones lt 1)>> + wrestling <<if $activeSlave.livingRules is "luxurious">>in the nice little room they share.<<elseif ($activeSlave.ID is $HeadGirl.ID) and ($HGSuite is 1)>>in $activeSlave.ID's suite.<<else>>out in the open in the slave dormitory.<</if>> $activeSlave.slaveName is so dominant with other slaves that she prefers to take what she wants, and _partnerSlave.slaveName does her best give her _activeSlaveRel the struggle fucking she loves. $activeSlave.slaveName is on top of _partnerSlave.slaveName getting oral, though it's more of a rough facefuck as $activeSlave.slaveName forces + <<if ($activeSlave.dick > 1) and canPenetrate($activeSlave)>> her cock <<else>> a strap-on @@ -680,19 +686,19 @@ down _partnerSlave.slaveName's throat. <<set _partnerSlave.oralCount++, $activeSlave.penetrativeCount++, $oralTotal++, $penetrativeTotal++>> <<case "sadist">> - playing pain games <<if $activeSlave.livingRules is "spare">>in the nice little room they share.<<elseif ($activeSlave.ID is $HeadGirl.ID) and ($HGSuite is 1)>>in $activeSlave.ID's suite.<<else>>out in the open in the slave dormitory.<</if>> $activeSlave.slaveName loves hurting other slaves, even her friends, and _partnerSlave.slaveName submits to her agonizing ministrations as often as $activeSlave.slaveName can cajole or force her into it. $activeSlave.slaveName has _partnerSlave.slaveName over her knee and is methodically tanning _partnerSlave.slaveName's $activeSlave.skin ass. + playing pain games <<if $activeSlave.livingRules is "luxurious">>in the nice little room they share.<<elseif ($activeSlave.ID is $HeadGirl.ID) and ($HGSuite is 1)>>in $activeSlave.ID's suite.<<else>>out in the open in the slave dormitory.<</if>> $activeSlave.slaveName loves hurting other slaves, even her friends, and _partnerSlave.slaveName submits to her agonizing ministrations as often as $activeSlave.slaveName can cajole or force her into it. $activeSlave.slaveName has _partnerSlave.slaveName over her knee and is methodically tanning _partnerSlave.slaveName's $activeSlave.skin ass. <<case "masochist">> - playing pain games <<if $activeSlave.livingRules is "spare">>in the nice little room they share.<<elseif ($activeSlave.ID is $HeadGirl.ID) and ($HGSuite is 1)>>in $activeSlave.ID's suite.<<else>>out in the open in the slave dormitory.<</if>> $activeSlave.slaveName loves being hurt, so _partnerSlave.slaveName frequently indulges her with spanking, slapping, pinching, and more exotic forms of abuse. _partnerSlave.slaveName has $activeSlave.slaveName over her knee and is methodically tanning $activeSlave.slaveName's $activeSlave.skin ass. + playing pain games <<if $activeSlave.livingRules is "luxurious">>in the nice little room they share.<<elseif ($activeSlave.ID is $HeadGirl.ID) and ($HGSuite is 1)>>in $activeSlave.ID's suite.<<else>>out in the open in the slave dormitory.<</if>> $activeSlave.slaveName loves being hurt, so _partnerSlave.slaveName frequently indulges her with spanking, slapping, pinching, and more exotic forms of abuse. _partnerSlave.slaveName has $activeSlave.slaveName over her knee and is methodically tanning $activeSlave.slaveName's $activeSlave.skin ass. <<case "humiliation">> - having open and visible sex <<if $activeSlave.livingRules is "spare">>in the doorway of the nice little room they share.<<else>>out in the hallway near the slave dormitory.<</if>> $activeSlave.slaveName pretends to hate fucking where other slaves can see her, but _partnerSlave.slaveName knows her _activeSlaveRel gets off on the mild humiliation. _partnerSlave.slaveName - <<if ($activeSlave.vagina gt 0) or ($activeSlave.anus gt 0)>> + having open and visible sex <<if $activeSlave.livingRules is "luxurious">>in the doorway of the nice little room they share.<<else>>out in the hallway near the slave dormitory.<</if>> $activeSlave.slaveName pretends to hate fucking where other slaves can see her, but _partnerSlave.slaveName knows her _activeSlaveRel gets off on the mild humiliation. _partnerSlave.slaveName + <<if ($activeSlave.vagina > 0) or ($activeSlave.anus > 0)>> has her back propped up against a doorframe and $activeSlave.slaveName in her lap, so she can blush at any passing slave as she shyly rides _partnerSlave.slaveName's - <<if (_partnerSlave.dick gt 1) and (_partnerSlave.balls gt 0) and (_partnerSlave.dickAccessory isnot "chastity") and (_partnerSlave.hormones lt 1)>> + <<if (_partnerSlave.dick > 1) and canPenetrate(_partnerSlave)>> cock <<else>> strap-on <</if>> - <<if ($activeSlave.vagina gt 0) and ($activeSlave.vaginalAccessory isnot "chastity belt") and (random(1,100) gt 50)>> + <<if ($activeSlave.vagina > 0) and canDoVaginal($activeSlave) and (random(1,100) > 50)>> in her pussy. <<VaginalVCheck>> <<else>> @@ -704,73 +710,106 @@ is giving $activeSlave.slaveName oral out in the open so she can blush and shiver as passing slaves see her climax. <<set $activeSlave.oralCount++, _partnerSlave.oralCount++, $oralTotal += 2>> <</if>> + <<case "pregnancy">> + having intimate sex <<if $activeSlave.livingRules == "luxurious">>in the nice little room they share.<<elseif ($activeSlave.ID is $HeadGirl.ID) and ($HGSuite is 1)>>in $activeSlave.ID's suite.<<else>>out in the open in the slave dormitory.<</if>> $activeSlave.slaveName's <<if $activeSlave.preg > 10 || $activeSlave.bellyImplant > 2000 || $activeSlave.inflation > 1>>middle is heavily rounded<<else>>desire to be bred is raging<</if>>, and _partnerSlave.slaveName does her best to keep her _activeSlaveRel satisfied. + _partnerSlave.slaveName + <<if ($activeSlave.vagina > 0) or ($activeSlave.anus > 0)>> + <<if _partnerSlave.preg > 20 || _partnerSlave.bellyImplant > 4000>> is heavily pregnant herself, so she has $activeSlave.slaveName on her back so that she can penetrate her as best she can with her<<elseif _partnerSlave.preg > 10>> is pregnant herself, so she has $activeSlave.slaveName on her back so that she can penetrate her easier with her<<else>>has $activeSlave.slaveName on her back so that tease her belly as she fucks her with her<</if>> + <<if (_partnerSlave.dick > 1) && canPenetrate(_partnerSlave)>> + cock + <<else>> + strap-on + <</if>> + <<if ($activeSlave.vagina > 0) and canDoVaginal($activeSlave) and (random(1,100) > 50)>> + in her <<if $activeSlave.preg > 10>>pregnant <</if>>pussy. + <<VaginalVCheck>> + <<else>> + in her ass. + <<AnalVCheck>> + <</if>> + <<set _partnerSlave.penetrativeCount++, $penetrativeTotal++>> + <<else>> + is giving $activeSlave.slaveName oral to try and sate her lust. + <<set $activeSlave.oralCount++, _partnerSlave.oralCount++, $oralTotal += 2>> + <</if>> <</switch>> <<elseif ($release is 1)>> just spooning in bed. Since $activeSlave.slaveName gets fucked at work, _partnerSlave.slaveName understands that what she really wants from her is emotional intimacy. They're cuddling quietly, offering each other silent comfort and companionship. - <<elseif ($activeSlave.dick gt 1) and ($activeSlave.balls gt 0) and $activeSlave.dickAccessory isnot ("chastity") and ($activeSlave.hormones lt 1) and (_partnerSlave.vagina gt 0) and canDoVaginal(_partnerSlave) and (_partnerSlave.amp isnot 1) and ($activeSlave.amp isnot 1)>> - <<if $activeSlave.livingRules is "spare">>in bed in the nice little room they share,<<else>>out in the open on $activeSlave.slaveName's bedroll in the slave dormitory,<</if>> making love in the missionary position. _partnerSlave.slaveName has her legs wrapped around $activeSlave.slaveName's waist and her arms hugging her around the chest, and is looking deep into her eyes as she enjoys the wonderful feeling of her _activeSlaveRel's cock in her womanhood. + <<elseif ($activeSlave.dick > 1) and canPenetrate($activeSlave) and (_partnerSlave.vagina > 0) and canDoVaginal(_partnerSlave) and (_partnerSlave.amp != 1) and ($activeSlave.amp != 1)>> + <<if $activeSlave.livingRules is "luxurious">>in bed in the nice little room they share,<<else>>out in the open on $activeSlave.slaveName's bedroll in the slave dormitory,<</if>> making love in the missionary position. _partnerSlave.slaveName has her legs wrapped around $activeSlave.slaveName's waist and her arms hugging her around the chest, and is looking deep into her eyes as she enjoys the wonderful feeling of her _activeSlaveRel's cock in her womanhood. <<set $activeSlave.penetrativeCount++, _partnerSlave.vaginalCount++, $vaginalTotal++, $penetrativeTotal++>> - <<elseif ($activeSlave.clit gt 2) and ($activeSlave.vaginalAccessory isnot "chastity belt") and (_partnerSlave.vagina gt 0) and canDoVaginal(_partnerSlave) and (_partnerSlave.amp isnot 1) and ($activeSlave.amp isnot 1)>> - <<if $activeSlave.livingRules is "spare">>in bed in the nice little room they share,<<else>>out in the open on $activeSlave.slaveName's bedroll in the slave dormitory,<</if>> making love in the missionary position. _partnerSlave.slaveName has her legs wrapped around $activeSlave.slaveName's waist and her arms hugging her around the chest, and is looking deep into her eyes as she enjoys the wonderful feeling of her _activeSlaveRel's huge clit in her womanhood. + <<elseif ($activeSlave.clit > 2) and ($activeSlave.vaginalAccessory != "chastity belt") and (_partnerSlave.vagina > 0) and canDoVaginal(_partnerSlave) and (_partnerSlave.amp != 1) and ($activeSlave.amp != 1)>> + <<if $activeSlave.livingRules is "luxurious">>in bed in the nice little room they share,<<else>>out in the open on $activeSlave.slaveName's bedroll in the slave dormitory,<</if>> making love in the missionary position. _partnerSlave.slaveName has her legs wrapped around $activeSlave.slaveName's waist and her arms hugging her around the chest, and is looking deep into her eyes as she enjoys the wonderful feeling of her _activeSlaveRel's huge clit in her womanhood. <<set _partnerSlave.vaginalCount++, $activeSlave.penetrativeCount++, $vaginalTotal++, $penetrativeTotal++>> - <<elseif ($activeSlave.dick gt 1) and ($activeSlave.balls gt 0) and $activeSlave.dickAccessory isnot ("chastity") and ($activeSlave.hormones lt 1) and canDoAnal(_partnerSlave) and (_partnerSlave.anus gt 0) and (_partnerSlave.amp isnot 1) and ($activeSlave.amp isnot 1)>> - <<if $activeSlave.livingRules is "spare">>in bed in the nice little room they share,<<else>>out in the open on $activeSlave.slaveName's bedroll in the slave dormitory,<</if>> having gentle anal sex while spooning. $activeSlave.slaveName is enjoying _partnerSlave.slaveName's ass, and is doing her best to ensure her _activeSlaveRel enjoys being buttfucked. She's nibbling her _activeSlaveRel's ears and neck, cupping a breast with one hand, and lightly stimulating her with the other. + <<elseif ($activeSlave.dick > 1) and canPenetrate($activeSlave) and canDoAnal(_partnerSlave) and (_partnerSlave.anus > 0) and (_partnerSlave.amp != 1) and ($activeSlave.amp != 1)>> + <<if $activeSlave.livingRules is "luxurious">>in bed in the nice little room they share,<<else>>out in the open on $activeSlave.slaveName's bedroll in the slave dormitory,<</if>> having gentle anal sex while spooning. $activeSlave.slaveName is enjoying _partnerSlave.slaveName's ass, and is doing her best to ensure her _activeSlaveRel enjoys being buttfucked. She's nibbling her _activeSlaveRel's ears and neck, cupping a breast with one hand, and lightly stimulating her with the other. <<set _partnerSlave.analCount++, $activeSlave.penetrativeCount++, $analTotal++, $penetrativeTotal++>> - <<elseif ($activeSlave.clit gt 2) and canDoAnal(_partnerSlave) and (_partnerSlave.anus gt 0) and (_partnerSlave.amp isnot 1) and ($activeSlave.amp isnot 1)>> - <<if $activeSlave.livingRules is "spare">>in bed in the nice little room they share,<<else>>out in the open on $activeSlave.slaveName's bedroll in the slave dormitory,<</if>> managing to have clitoral-anal sex. _partnerSlave.slaveName is facedown with her ass up, spreading her buttocks as wide as possible, giving her _activeSlaveRel the opportunity to squat over her and penetrate it with her huge, erect clit. $activeSlave.slaveName can't thrust much, but the shocking lewdness of the act is enough for both of them. + <<elseif ($activeSlave.clit > 2) and canDoAnal(_partnerSlave) and (_partnerSlave.anus > 0) and (_partnerSlave.amp != 1) and ($activeSlave.amp != 1)>> + <<if $activeSlave.livingRules is "luxurious">>in bed in the nice little room they share,<<else>>out in the open on $activeSlave.slaveName's bedroll in the slave dormitory,<</if>> managing to have clitoral-anal sex. _partnerSlave.slaveName is facedown with her ass up, spreading her buttocks as wide as possible, giving her _activeSlaveRel the opportunity to squat over her and penetrate it with her huge, erect clit. $activeSlave.slaveName can't thrust much, but the shocking lewdness of the act is enough for both of them. <<set _partnerSlave.analCount++, $activeSlave.penetrativeCount++, $analTotal++, $penetrativeTotal++>> - <<elseif ($activeSlave.dick gt 1) and ($activeSlave.balls gt 0) and $activeSlave.dickAccessory isnot ("chastity") and ($activeSlave.hormones lt 1) and (_partnerSlave.amp isnot 1) and ($activeSlave.amp isnot 1)>> - <<if $activeSlave.livingRules is "spare">>in bed in the nice little room they share,<<else>>out in the open on $activeSlave.slaveName's bedroll in the slave dormitory,<</if>> spooning while $activeSlave.slaveName gently rubs her cock between _partnerSlave.slaveName's thighs, pressed tightly together. Since _partnerSlave.slaveName is a virgin, this is the closest they can come to penetrative intercourse, but $activeSlave.slaveName is enjoying _partnerSlave.slaveName's body anyway, and is doing her best to ensure her _activeSlaveRel enjoys herself. She's nibbling her _activeSlaveRel's ears and neck, cupping a breast with one hand, and lightly stimulating her with the other. + <<elseif ($activeSlave.dick > 1) and canPenetrate($activeSlave) and (_partnerSlave.amp != 1) and ($activeSlave.amp != 1)>> + <<if $activeSlave.livingRules is "luxurious">>in bed in the nice little room they share,<<else>>out in the open on $activeSlave.slaveName's bedroll in the slave dormitory,<</if>> spooning while $activeSlave.slaveName gently rubs her cock between _partnerSlave.slaveName's thighs, pressed tightly together. Since _partnerSlave.slaveName is a virgin, this is the closest they can come to penetrative intercourse, but $activeSlave.slaveName is enjoying _partnerSlave.slaveName's body anyway, and is doing her best to ensure her _activeSlaveRel enjoys herself. She's nibbling her _activeSlaveRel's ears and neck, cupping a breast with one hand, and lightly stimulating her with the other. <<set $activeSlave.penetrativeCount++, $penetrativeTotal++>> - <<elseif ($activeSlave.clit gt 2) and ($activeSlave.vaginalAccessory isnot "chastity belt") and (_partnerSlave.amp isnot 1) and ($activeSlave.amp isnot 1)>> - <<if $activeSlave.livingRules is "spare">>in the nice little room they share,<<else>>out in the open in the slave dormitory,<</if>> with _partnerSlave.slaveName down on her knees in front of $activeSlave.slaveName. From behind _partnerSlave.slaveName it looks like she's giving her _activeSlaveRel a conventional, if enthusiastic, blowjob. Only on closer inspection does it become clear how unusual the oral is: $activeSlave.slaveName has such a huge clit that her _activeSlaveRel can suck her off just like it were a penis. + <<elseif ($activeSlave.clit > 2) and ($activeSlave.vaginalAccessory != "chastity belt") and (_partnerSlave.amp != 1) and ($activeSlave.amp != 1)>> + <<if $activeSlave.livingRules is "luxurious">>in the nice little room they share,<<else>>out in the open in the slave dormitory,<</if>> with _partnerSlave.slaveName down on her knees in front of $activeSlave.slaveName. From behind _partnerSlave.slaveName it looks like she's giving her _activeSlaveRel a conventional, if enthusiastic, blowjob. Only on closer inspection does it become clear how unusual the oral is: $activeSlave.slaveName has such a huge clit that her _activeSlaveRel can suck her off just like it were a penis. <<set _partnerSlave.oralCount++, $activeSlave.penetrativeCount++, $oralTotal++, $penetrativeTotal++>> - <<elseif (_partnerSlave.vagina gt 0) and canDoVaginal(_partnerSlave) and (_partnerSlave.amp isnot 1) and ($activeSlave.amp isnot 1)>> - <<if $activeSlave.livingRules is "spare">>in bed in the nice little room they share,<<else>>out in the open on $activeSlave.slaveName's bedroll in the slave dormitory,<</if>> making love in the missionary position. _partnerSlave.slaveName has her legs wrapped around $activeSlave.slaveName's waist and her arms hugging her around the chest, and is looking deep into her eyes as she enjoys the feeling of her _activeSlaveRel fucking her with a strap-on. + <<elseif (_partnerSlave.vagina > 0) and canDoVaginal(_partnerSlave) and (_partnerSlave.amp != 1) and ($activeSlave.amp != 1)>> + <<if $activeSlave.livingRules is "luxurious">>in bed in the nice little room they share,<<else>>out in the open on $activeSlave.slaveName's bedroll in the slave dormitory,<</if>> making love in the missionary position. _partnerSlave.slaveName has her legs wrapped around $activeSlave.slaveName's waist and her arms hugging her around the chest, and is looking deep into her eyes as she enjoys the feeling of her _activeSlaveRel fucking her with a strap-on. <<set _partnerSlave.vaginalCount++, $activeSlave.penetrativeCount++, $vaginalTotal++, $penetrativeTotal++>> - <<elseif (_partnerSlave.anus gt 0) and (_partnerSlave.amp isnot 1) and ($activeSlave.amp isnot 1) and canDoAnal(_partnerSlave)>> - <<if $activeSlave.livingRules is "spare">>in bed in the nice little room they share,<<else>>out in the open on $activeSlave.slaveName's bedroll in the slave dormitory,<</if>> having gentle anal sex while spooning. $activeSlave.slaveName is enjoying penetrating _partnerSlave.slaveName's ass with a strap-on, and is doing her best to ensure her _activeSlaveRel enjoys being buttfucked. She's nibbling her _activeSlaveRel's ears and neck, cupping a breast with one hand, and lightly stimulating her with the other. + <<elseif (_partnerSlave.anus > 0) and (_partnerSlave.amp != 1) and ($activeSlave.amp != 1) and canDoAnal(_partnerSlave)>> + <<if $activeSlave.livingRules is "luxurious">>in bed in the nice little room they share,<<else>>out in the open on $activeSlave.slaveName's bedroll in the slave dormitory,<</if>> having gentle anal sex while spooning. $activeSlave.slaveName is enjoying penetrating _partnerSlave.slaveName's ass with a strap-on, and is doing her best to ensure her _activeSlaveRel enjoys being buttfucked. She's nibbling her _activeSlaveRel's ears and neck, cupping a breast with one hand, and lightly stimulating her with the other. <<set _partnerSlave.analCount++, $activeSlave.penetrativeCount++, $analTotal++, $penetrativeTotal++>> - <<elseif (_partnerSlave.amp isnot 1) and ($activeSlave.amp isnot 1)>> - <<if $activeSlave.livingRules is "spare">>in bed in the nice little room they share,<<else>>out in the open on $activeSlave.slaveName's bedroll in the slave dormitory,<</if>> enjoying some mutual masturbation. + <<elseif (_partnerSlave.amp != 1) and ($activeSlave.amp != 1)>> + <<if $activeSlave.livingRules is "luxurious">>in bed in the nice little room they share,<<else>>out in the open on $activeSlave.slaveName's bedroll in the slave dormitory,<</if>> enjoying some mutual masturbation. <<elseif (_partnerSlave.amp is 1)>> - just cuddling <<if $activeSlave.livingRules is "spare">>in bed in the nice little room they share.<<else>>on $activeSlave.slaveName's bedroll in the slave dormitory.<</if>> $activeSlave.slaveName is using _partnerSlave.slaveName's limbless torso as a pillow, which _partnerSlave.slaveName seems to be enjoying, by her contented expression. + just cuddling <<if $activeSlave.livingRules is "luxurious">>in bed in the nice little room they share.<<else>>on $activeSlave.slaveName's bedroll in the slave dormitory.<</if>> $activeSlave.slaveName is using _partnerSlave.slaveName's limbless torso as a pillow, which _partnerSlave.slaveName seems to be enjoying, by her contented expression. <<else>> - just cuddling <<if $activeSlave.livingRules is "spare">>in bed in the nice little room they share.<<else>>on $activeSlave.slaveName's bedroll in the slave dormitory.<</if>> They're lying quietly, offering each other silent comfort and companionship. + just cuddling <<if $activeSlave.livingRules is "luxurious">>in bed in the nice little room they share.<<else>>on $activeSlave.slaveName's bedroll in the slave dormitory.<</if>> They're lying quietly, offering each other silent comfort and companionship. <</if>> <<elseif _seed is 2>> /* CUDDLE TIME */ - <<if ($activeSlave.energy gt 95) and (random(0,2) is 0)>> + <<if ($activeSlave.energy > 95) and (random(0,2) is 0)>> lying in bed together. _partnerSlave.slaveName has somehow managed to exhaust her _activeSlaveRel, and the sexually sated nympho is curled up with her head on _partnerSlave.slaveName's chest, snoring lightly. _partnerSlave.slaveName is smiling fondly at her. - <<elseif (_partnerSlave.dick gt 6) and ($activeSlave.amp isnot 1)>> + <<elseif (_partnerSlave.dick > 6) and ($activeSlave.amp != 1)>> sleeping in bed together. $activeSlave.slaveName is cuddled up close to _partnerSlave.slaveName, and is cradling her _activeSlaveRel's enormous, soft cock with one hand. - <<elseif ($activeSlave.fetishKnown is 1) and ($activeSlave.fetish isnot "pregnancy")>> + <<elseif ($activeSlave.fetishKnown is 1)>> <<switch $activeSlave.fetish>> <<case "boobs">> - sleeping in bed together. $activeSlave.slaveName is using _partnerSlave.slaveName's <<if _partnerSlave.boobs gt 2000>>enormous breasts<<elseif _partnerSlave.boobs gt 1000>>huge boobs<<elseif _partnerSlave.boobs gt 300>>healthy tits<<else>>flat chest<</if>>, which she loves, as a pillow. + sleeping in bed together. $activeSlave.slaveName is using _partnerSlave.slaveName's <<if _partnerSlave.boobs > 2000>>enormous breasts<<elseif _partnerSlave.boobs > 1000>>huge boobs<<elseif _partnerSlave.boobs > 300>>healthy tits<<else>>flat chest<</if>>, which she loves, as a pillow. <<case "buttslut">> - sleeping in bed together. _partnerSlave.slaveName is sleeping face down so $activeSlave.slaveName can use her <<if _partnerSlave.butt gt 5>>enormous posterior<<elseif _partnerSlave.butt gt 2>>big butt<<elseif _partnerSlave.butt gt 1>>trim behind<<else>>skinny ass<</if>>, which $activeSlave.slaveName loves, as a pillow. + sleeping in bed together. _partnerSlave.slaveName is sleeping face down so $activeSlave.slaveName can use her <<if _partnerSlave.butt > 5>>enormous posterior<<elseif _partnerSlave.butt > 2>>big butt<<elseif _partnerSlave.butt > 1>>trim behind<<else>>skinny ass<</if>>, which $activeSlave.slaveName loves, as a pillow. <<case "cumslut">> - sleeping in bed together. $activeSlave.slaveName is spooning her _activeSlaveRel, her head nestled alongside _partnerSlave.slaveName's, her <<if $activeSlave.lips gt 70>>enormous<<elseif $activeSlave.lips gt 40>>pillowlike<<elseif $activeSlave.lips gt 10>>plush<<else>>pretty<</if>> lips wet from kissing her to sleep. + sleeping in bed together. $activeSlave.slaveName is spooning her _activeSlaveRel, her head nestled alongside _partnerSlave.slaveName's, her <<if $activeSlave.lips > 70>>enormous<<elseif $activeSlave.lips > 40>>pillowlike<<elseif $activeSlave.lips > 10>>plush<<else>>pretty<</if>> lips wet from kissing her to sleep. <<case "submissive" "masochist" "humiliation">> sleeping in bed together. $activeSlave.slaveName is being spooned by her _activeSlaveRel, smiling peacefully at being held. <<case "dom" "sadist">> - sleeping in bed together. $activeSlave.slaveName is spooning her _activeSlaveRel possessively<<if $activeSlave.amp isnot 1>>, and even in her sleep, has a proprietary hand on _partnerSlave.slaveName's <<if _partnerSlave.balls gt 0>>balls<<elseif _partnerSlave.balls gt 0>>soft cock<<else>>pussy<</if>><</if>>. + sleeping in bed together. $activeSlave.slaveName is spooning her _activeSlaveRel possessively<<if $activeSlave.amp != 1>>, and even in her sleep, has a proprietary hand on _partnerSlave.slaveName's <<if _partnerSlave.balls > 0>>balls<<elseif _partnerSlave.balls > 0>>soft cock<<else>>pussy<</if>><</if>>. + <<case "pregnancy">> + sleeping in bed together. + <<if bigBelly($activeSlave) && bigBelly(_activeSlaveRel)>> + They are pressed as close as they can be with their rounded middles in the way. + <<elseif bigBelly($activeSlave)>> + $activeSlave.slaveName is spooning her _activeSlaveRel possessively, her rounded belly pushing into her back. + <<elseif bigBelly(_activeSlaveRel)>> + $activeSlave.slaveName is spooning her _activeSlaveRel possessively<<if $activeSlave.amp != 1>>, and even in her sleep, has a proprietary hand on _partnerSlave.slaveName's belly<</if>>. + <<else>> + $activeSlave.slaveName is being spooned by her _activeSlaveRel, smiling peacefully at being held. + <</if>> <</switch>> - <<elseif $activeSlave.height gt _partnerSlave.height>> + <<elseif $activeSlave.height > _partnerSlave.height>> sleeping in bed together, with the taller $activeSlave.slaveName curled around her little _activeSlaveRel. <<elseif $activeSlave.amp is 1>> sleeping in bed together; _partnerSlave.slaveName is using her limbless _activeSlaveRel as a pillow. - <<elseif _partnerSlave.amp isnot 1>> + <<elseif _partnerSlave.amp != 1>> resting in bed together, holding hands in their sleep. <<else>> sleeping quietly in bed together. <</if>> <<else>> /* TOGETHER TIME */ - <<if ($activeSlave.actualAge gte _partnerSlave.actualAge+10) and canTalk(_partnerSlave)>> + <<if ($activeSlave.actualAge >= _partnerSlave.actualAge+10) and canTalk(_partnerSlave)>> tidying up their room together. _partnerSlave.slaveName is chattering about her day, while $activeSlave.slaveName listens quietly, smiling fondly at her _activeSlaveRel's prattle. - <<elseif ($activeSlave.amp isnot 1) and (canTalk($activeSlave) == false)>> + <<elseif ($activeSlave.amp != 1) and (canTalk($activeSlave) == false)>> getting ready for bed. $activeSlave.slaveName is using gestures to tell her $activeSlave.slaveName about her day; _partnerSlave.slaveName is very patient and does her best to follow. <<elseif ($activeSlave.behavioralQuirk is "confident") and canTalk($activeSlave)>> finishing up a meal together. $activeSlave.slaveName is concluding a story, her clear confident voice ringing as she relates a slight. @@ -786,9 +825,9 @@ have just woken up. $activeSlave.slaveName appears to be praying, but to go by her _activeSlaveRel's quiet mirth, she seems to be substituting in some lewd words. <<elseif ($activeSlave.behavioralQuirk is "advocate") and canTalk($activeSlave)>> starting a meal together. A third, less well trained slave has asked $activeSlave.slaveName an innocent question, and is getting enthusiastic slave dogma in return. Her _activeSlaveRel smiles tolerantly. - <<elseif ($activeSlave.amp is 1) and (_partnerSlave.amp isnot 1)>> + <<elseif ($activeSlave.amp is 1) and (_partnerSlave.amp != 1)>> using some of their free time to watch the weather; _partnerSlave.slaveName carried her _activeSlaveRel to a window so she could look out with her. - <<elseif ($activeSlave.amp isnot 1) and (_partnerSlave.amp is 1)>> + <<elseif ($activeSlave.amp != 1) and (_partnerSlave.amp is 1)>> using some of their free time to watch the weather; $activeSlave.slaveName carried her _activeSlaveRel to a window so she could look out with her. <<elseif $cockFeeder is 1>> taking in a meal together; they've chosen dispensers next to each other and are slurping away. @@ -804,14 +843,14 @@ <<if $slaves[_i].ID is _partnerSlave.ID>> <<set $slaves[_i] to _partnerSlave>> <<else>> - <<for _i to 0; _i lt $slaves.length; _i++>> + <<for _i to 0; _i < $slaves.length; _i++>> <<if $slaves[_i].ID is _partnerSlave.ID>> <<set $slaves[_i] to _partnerSlave>> <<break>> <</if>> <</for>> <</if>> - <<for _i to 0; _i lt $slaves.length; _i++>> + <<for _i to 0; _i < $slaves.length; _i++>> <<if $slaves[_i].ID is $activeSlave.ID>> <<set $slaves[_i] to $activeSlave>> <<break>> @@ -825,7 +864,7 @@ <<if $familyTesting == 1>> <<set _partnerSlave = $relation>> <<else>> - <<for _i to 0; _i lt $slaves.length; _i++>> + <<for _i to 0; _i < $slaves.length; _i++>> <<if $slaves[_i].ID == $activeSlave.relationTarget>> <<set _partnerSlave to $slaves[_i]>> <<break>> @@ -833,18 +872,18 @@ <</for>> <</if>> <<else>> - <<for _i to 0; _i lt $slaves.length; _i++>> + <<for _i to 0; _i < $slaves.length; _i++>> <<if $slaves[_i].ID == $activeSlave.relationshipTarget>> <<set _partnerSlave to $slaves[_i]>> - <<if $activeSlave.relationship lte 1>> + <<if $activeSlave.relationship <= 1>> <<set _activeSlaveRel to "friend", _partnerRel to "friend">> - <<elseif $activeSlave.relationship lte 2>> + <<elseif $activeSlave.relationship <= 2>> <<set _activeSlaveRel to "best friend", _partnerRel to "best friend">> - <<elseif $activeSlave.relationship lte 3>> + <<elseif $activeSlave.relationship <= 3>> <<set _activeSlaveRel to "friend with benefits", _partnerRel to "friend with benefits">> - <<elseif $activeSlave.relationship lte 4>> + <<elseif $activeSlave.relationship <= 4>> <<set _activeSlaveRel to "lover", _partnerRel to "lover">> - <<elseif $activeSlave.relationship gt 4>> + <<elseif $activeSlave.relationship > 4>> <<set _activeSlaveRel to "slave wife", _partnerRel to "slave wife">> <</if>> <<break>> @@ -863,13 +902,13 @@ is working from her apartment, but you have a fine view of her <<if $seeRace is 1>>_partnerSlave.race body <</if>>on the feeds. <<case "work in the brothel">> is working in the brothel, and is - <<if (_seed gt 80)>> + <<if (_seed > 80)>> riding a customer's dick. - <<elseif (_seed gt 60)>> + <<elseif (_seed > 60)>> sucking a customer's cock. - <<elseif (_seed gt 40)>> + <<elseif (_seed > 40)>> pleasuring a customer's cunt. - <<elseif (_seed gt 20)>> + <<elseif (_seed > 20)>> getting pounded by a woman wearing a strap-on. <<else>> being held down and buttfucked by a customer. You have a voyeuristic view of her <<if $seeRace is 1>>_partnerSlave.race body <</if>>on the feeds. @@ -877,24 +916,24 @@ You have a voyeuristic view of her <<if $seeRace is 1>>_partnerSlave.race body <</if>>on the feeds. <<case "serve the public">> is serving the public, and is - <<if (_seed gt 80)>> + <<if (_seed > 80)>> riding a citizen's dick. - <<elseif (_seed gt 60)>> + <<elseif (_seed > 60)>> sucking a citizen's cock. - <<elseif (_seed gt 40)>> + <<elseif (_seed > 40)>> pleasuring a citizen's cunt. - <<elseif (_seed gt 20)>> + <<elseif (_seed > 20)>> getting pounded by a citizen wearing a strap-on. <<else>> being held down and buttfucked by a citizen. <</if>> You have a voyeuristic view of her <<if $seeRace is 1>>_partnerSlave.race body <</if>>on the feeds. <<case "work in the dairy">> - <<if ($dairyRestraintsSetting gt 1)>> + <<if ($dairyRestraintsSetting > 1)>> is strapped to a milking machine in $dairyName. - <<elseif (_partnerSlave.lactation is 0) and (_partnerSlave.balls gt 0)>> + <<elseif (_partnerSlave.lactation is 0) and (_partnerSlave.balls > 0)>> is working in $dairyName, and is having her cock milked. As you watch, her balls tighten as the phallus up her butt brings her closer to a copious ejaculation. - <<elseif _seed gt 50>> + <<elseif _seed > 50>> is working in $dairyName, having her tits milked. <<else>> is working in $dairyName, massaging her sore tits. @@ -902,13 +941,13 @@ You have a good view of her <<if $seeRace is 1>>_partnerSlave.race body <</if>>on the feeds. <<case "serve in the club">> is working on the club, - <<if _seed gt 50>> + <<if _seed > 50>> displaying her <<if $seeRace is 1>>_partnerSlave.race <</if>>body, keeping citizens company, and flirting with anyone who shows interest. <<else>> or rather just off it, having taken a prominent citizen back to a discreet room <<if $seeRace is 1>> so he can use her _partnerSlave.race body<</if>>. <</if>> <<case "work as a servant">> - <<if _seed gt 50>> + <<if _seed > 50>> was scrubbing the penthouse floor, until another slave requested oral service. <<else>> is scrubbing the penthouse floor. @@ -929,7 +968,7 @@ is working in the dairy, looking after your stock. <<default>> - <<if (_partnerSlave.heels is 1) and (_partnerSlave.shoes isnot "flats") and (_partnerSlave.shoes isnot "none")>> + <<if (_partnerSlave.heels is 1) and (_partnerSlave.shoes != "flats") and (_partnerSlave.shoes != "none")>> walks past your desk with the tiny swaying steps she must take in order to walk on her surgically altered legs. She is on her way to <<elseif (_partnerSlave.shoes is "heels")>> walks past your desk with the swaying steps she must take in her high heels. She is on her way to @@ -947,32 +986,32 @@ <<switch _partnerSlave.assignment>> <<case "whore">> - <<if _seed gt 50>> + <<if _seed > 50>> whore; <<else>> sell her <<if $seeRace is 1>>_partnerSlave.race <</if>>body; <</if>> <<case "serve the public">> - <<if _seed gt 50>> + <<if _seed > 50>> serve the public; <<else>> be a public slut; <</if>> <<case "rest">> - <<if _seed gt 50>> + <<if _seed > 50>> eat; <<else>> bed; <</if>> <<case "get milked">> - <<if _seed gt 50>> + <<if _seed > 50>> milk her overfull <<if $seeRace is 1>>_partnerSlave.race <</if>>tits; <<else>> drain her milky <<if $seeRace is 1>>_partnerSlave.race <</if>>udders; <</if>> <<case "please you">> sit next to you and wait for - <<if _seed gt 50>> + <<if _seed > 50>> you to fuck her; <<else>> her Master to use her<<if $seeRace is 1>> _partnerSlave.race body<</if>>; @@ -1005,7 +1044,7 @@ <</switch>> <<set $target to "FRelation", _partnerSlave to null>> -<<elseif (_seed gt 80) && ($activeSlave.fuckdoll == 0)>> +<<elseif (_seed > 80) && ($activeSlave.fuckdoll == 0)>> <<BoobsDescription>> <<switch $activeSlave.clothes>> <<case "uncomfortable straps">> @@ -1035,7 +1074,7 @@ <<case "cutoffs and a t-shirt">> Her tits are bare under her t-shirt, so movement gives delicious hints of their motion. <<case "a slutty outfit">> - <<if (random(1,100) gt 50)>> + <<if (random(1,100) > 50)>> For today's slutty outfit she's chosen a handkerchief top that occasionally comes untied and spills her breasts out naked. <<else>> For today's slutty outfit she's chosen a halter top cut so low that her breasts occasionally pop out. @@ -1090,20 +1129,20 @@ <</if>> <</switch>> <<set $target to "FBoobs">> -<<elseif (_seed gt 60)>> +<<elseif (_seed > 60)>> <<ButtDescription>> <<switch $activeSlave.clothes>> <<case "a Fuckdoll suit">> Its suit is expressly designed to encourage use of its rear hole. <<case "uncomfortable straps">> A strap passes between her - <<if ($activeSlave.amp isnot 1 )>> + <<if ($activeSlave.amp != 1 )>> legs, giving her gait an awkward sway. <<else>> leg stumps, pressing against her genitals. <</if>> <<case "shibari ropes">> - <<if ($activeSlave.amp isnot 1 )>> + <<if ($activeSlave.amp != 1 )>> Ropes bind her legs, giving her gait an awkward sway. <<else>> A rope passes between her leg stumps, pressing against her genitals. @@ -1138,9 +1177,9 @@ As she moves, her cutoffs hug her butt. <<case "a slutty outfit">> For today's slutty outfit she's chosen - <<if (random(1,100) gt 50) and ($activeSlave.amp isnot 1)>> + <<if (random(1,100) > 50) and ($activeSlave.amp != 1)>> yoga pants so sheer that everything she's got is clearly visible. - <<elseif ($activeSlave.dick gt 0)>> + <<elseif ($activeSlave.dick > 0)>> a miniskirt so brief that her ass is hanging out the back, and her dick is occasionally visible from the front. <<else>> a miniskirt so brief that her ass is hanging out the back, and her naked cunt is occasionally visible from the front. @@ -1166,13 +1205,13 @@ This schoolgirl clearly takes it up the ass. <</if>> <<case "a kimono">> - <<if ($activeSlave.butt gt 5)>> + <<if ($activeSlave.butt > 5)>> Her kimono demurely covers her behind, though it cannot conceal its massive shape. <<else>> Her kimono demurely covers her behind. <</if>> <<case "a hijab and abaya">> - <<if ($activeSlave.butt gt 5>> + <<if ($activeSlave.butt > 5>> Her abaya totally covers her behind, though it cannot conceal its massive shape. <<else>> Her abaya totally conceals her behind. @@ -1334,7 +1373,7 @@ <<case "harem gauze">> Her silken garb and huge pregnant belly makes her look like a belly dancer. <<case "a comfortable bodysuit">> - Her huge belly lewdly fills her bodysuit. <<if ($activeSlave.bellyAccessory isnot "a huge empathy belly") && ($activeSlave.bellyAccessory isnot "a large empathy belly")>>You swear you can see her babies kicking underneath the form fitting material.<</if>> + Her huge belly lewdly fills her bodysuit. <<if ($activeSlave.bellyAccessory != "a huge empathy belly") && ($activeSlave.bellyAccessory != "a large empathy belly")>>You swear you can see her babies kicking underneath the form fitting material.<</if>> <<case "a schoolgirl outfit">> Her huge belly is only partly covered by her blouse. <<case "a kimono">> @@ -1342,7 +1381,7 @@ <<case "a hijab and abaya">> Her huge belly tents her abaya. <<case "a leotard">> - Her huge belly lewdly stretches her leotard. <<if ($activeSlave.bellyAccessory isnot "a huge empathy belly") && ($activeSlave.bellyAccessory isnot "a large empathy belly")>>You swear you can see her babies kicking underneath the form fitting material.<</if>> + Her huge belly lewdly stretches her leotard. <<if ($activeSlave.bellyAccessory != "a huge empathy belly") && ($activeSlave.bellyAccessory != "a large empathy belly")>>You swear you can see her babies kicking underneath the form fitting material.<</if>> <<case "a chattel habit">> Her huge belly shoves the strip of cloth on her front to her side. <<case "a bunny outfit">> @@ -1396,7 +1435,7 @@ <<case "harem gauze">> Her silken garb and big pregnant belly makes her look like a belly dancer. <<case "a comfortable bodysuit">> - Her big belly fills her bodysuit. <<if ($activeSlave.bellyAccessory isnot "a medium empathy belly")>>You swear you can see her babies kicking underneath the form fitting material.<</if>> + Her big belly fills her bodysuit. <<if ($activeSlave.bellyAccessory != "a medium empathy belly")>>You swear you can see her babies kicking underneath the form fitting material.<</if>> <<case "a schoolgirl outfit">> Her big belly is only partly covered by her blouse. <<case "a kimono">> @@ -1404,7 +1443,7 @@ <<case "a hijab and abaya">> Her big belly tents her abaya. <<case "a leotard">> - Her big belly stretches her leotard. <<if ($activeSlave.bellyAccessory isnot "a medium empathy belly")>>You swear you can see her babies kicking underneath the form fitting material.<</if>> + Her big belly stretches her leotard. <<if ($activeSlave.bellyAccessory != "a medium empathy belly")>>You swear you can see her babies kicking underneath the form fitting material.<</if>> <<case "a chattel habit">> Her big belly shoves the strip of cloth on her front to her side. <<case "a bunny outfit">> @@ -2368,7 +2407,7 @@ every motion. <</if>> <</if>> <<set $target to "FVagina">> -<<elseif (_seed gt 20)>> +<<elseif (_seed > 20)>> <<AnusDescription>> <<switch $activeSlave.clothes>> <<case "a Fuckdoll suit">> @@ -2386,9 +2425,9 @@ every motion. <<case "a penitent nuns habit">> Her habit chafes her rear end so cruelly that it would probably be a relief to her to have it pulled up for a rough buttfuck. <<case "attractive lingerie">> - <<if ($activeSlave.anus gt 1) and ($activeSlave.amp is 1)>> + <<if ($activeSlave.anus > 1) and ($activeSlave.amp is 1)>> Her pretty g-string frequently fails to cover her big butthole. - <<elseif ($activeSlave.anus gt 1)>> + <<elseif ($activeSlave.anus > 1)>> As she moves, her pretty g-string frequently fails to cover her big butthole. <<else>> As she moves, her pretty g-string draws your attention to her ass. @@ -2410,7 +2449,7 @@ every motion. This schoolgirl clearly takes it up the ass. <</if>> <<case "a kimono">> - <<if ($activeSlave.butt gt 5)>> + <<if ($activeSlave.butt > 5)>> Her kimono demurely covers her behind, though it cannot conceal its massive shape. <<else>> Her kimono demurely covers her behind. @@ -2424,7 +2463,7 @@ every motion. Her dress demurely covers her behind. <</if>> <<case "a hijab and abaya">> - <<if ($activeSlave.butt gt 5)>> + <<if ($activeSlave.butt > 5)>> Her abaya totally covers her behind, though it cannot conceal its massive shape. <<else>> Her abaya totally conceals her behind. @@ -2432,7 +2471,7 @@ every motion. <<case "battledress">> Her fatigue trousers are not particularly flattering to her butt. <<case "a string bikini">> - <<if ($activeSlave.anus gt 1)>> + <<if ($activeSlave.anus > 1)>> As she moves, her big butthole is clearly visible behind her tiny g-string. <<else>> As she moves, her tiny g-string draws your attention to her ass. @@ -2444,7 +2483,7 @@ every motion. <<case "cutoffs and a t-shirt">> As she moves, her tight cutoffs flatter her butt. <<case "a slutty outfit">> - <<if ($activeSlave.butt gt 5)>> + <<if ($activeSlave.butt > 5)>> For today's slutty outfit she's chosen a leather skirt with zippers that permit ready access to her butt. <<else>> For today's slutty outfit she's chosen fishnets with a hole cut over her asshole so she can be sodomized without removing or damaging her clothing. @@ -2485,7 +2524,7 @@ every motion. <</if>> <</switch>> <<set $target to "FAnus">> -<<elseif (_seed gt 0)>> +<<elseif (_seed > 0)>> <<LipsDescription>> <<switch $activeSlave.collar>> <<case "a Fuckdoll suit">> @@ -2531,16 +2570,16 @@ every motion. <</if>> <<if $activeSlave.fuckdoll == 0>> -<<if (_seed lte 80) and (_seed gt 40) and ($activeSlave.vaginalAccessory is "chastity belt")>> +<<if (_seed <= 80) and (_seed > 40) and ($activeSlave.vaginalAccessory is "chastity belt")>> //If you wish to have vanilla intercourse with her you must order her to remove her chastity belt.// -<<elseif _seed gt 100>> +<<elseif _seed > 100>> <<if $familyTesting == 1 && _seed == 110>> <<else>> <span id="walkpast"><<click "Summon them both">><<replace "#walk">><<display $target>><</replace>><</click>></span> <</if>> <<elseif $activeSlave.assignment is "stay confined">> <span id="walkpast"><<click "Have her brought out of her cell">><<replace "#walk">><<display $target>><</replace>><</click>></span> -<<elseif ($activeSlave.assignment is "work in the dairy") and ($dairyRestraintsSetting gt 1)>> +<<elseif ($activeSlave.assignment is "work in the dairy") and ($dairyRestraintsSetting > 1)>> //She is strapped into a milking machine and cannot leave $dairyName.// <<elseif ($activeSlave.assignmentVisible is 0)>> <span id="walkpast"><<click "Have her take a break and come up">><<replace "#walk">><<display $target>><</replace>><</click>></span> diff --git a/src/utility/artWidgets.tw b/src/utility/artWidgets.tw new file mode 100644 index 0000000000000000000000000000000000000000..c6410d46f5e8436848c27e056f18bb65381dcd9d --- /dev/null +++ b/src/utility/artWidgets.tw @@ -0,0 +1,479 @@ +:: art widgets [nobr widget] + +/% +Call as <<AssistantArt>> +Displays assistant images. Currently passage-based. +$args[0]: Image size/center. + 3: Large, right. Example: description. + 2: Medium, right. Example: random events. +%/ +<<widget "AssistantArt">> + +<<if $imageChoice == 0>> /* RENDERED IMAGES BY SHOKUSHU */ + +<<switch $assistantAppearance>> +<<case "monstergirl">> + <<set _fileName = "'resources/renders/assistant monstergirl.png' ">> +<<case "shemale">> + <<set _fileName = "'resources/renders/assistant shemale.png' ">> +<<case "amazon">> + <<set _fileName = "'resources/renders/assistant amazon.png' ">> +<<case "businesswoman">> + <<set _fileName = "'resources/renders/assistant businesswoman.png' ">> +<<case "goddess">> + <<set _fileName = "'resources/renders/assistant goddess.png' ">> +<<case "schoolgirl">> + <<set _fileName = "'resources/renders/assistant schoolgirl.png' ">> +<<default>> + <<set _fileName = "'resources/renders/assistant default.png' ">> +<</switch>> +<<if $args[1] == 3>> + <<print "<img src=" + _fileName + "style='float:right; border:3px hidden'/>">> +<<else>> + <<print "<img src=" + _fileName + "style='float:right; border:3px hidden' width='300' height='300'/>">> +<</if>> + +<</if>> /* CLOSES IMAGE CHOICE */ + +<</widget>> + +/% +Call as <<SlaveArt>> +Displays slave images. Currently passage-based. +$args[0]: Slave. +$args[1]: Image size/center. + 3: Large, right. Example: long slave description. + 2: Medium, right. Example: random events. + 1: Small, left. Example: lists. + 0: Tiny, left. Example: facilities +$args[2]: icon UI Display for vector art, 1 for on. +%/ +<<widget "SlaveArt">> + +<<if ndef $args[0].customImage>><<set $args[0].customImage = 0>><</if>> +<<if $args[0].customImage != 0>> + +<<set _fileName = "'resources/" + $args[0].customImage + ".png' ">> + +<<if $args[1] == 3>> + <<print "<img src=" + _fileName + "style='float:right; border:3px hidden'/>">> +<<elseif $args[1] == 2>> + <<print "<img src=" + _fileName + "style='float:right; border:3px hidden' width='300' height='300'/>">> +<<elseif $args[1] == 1>> + <<if $seeSummaryImages != 0>><<print "<img src=" + _fileName + "style='float:left; border:3px hidden' width='150' height='150'/>">><</if>> +<<else>> + <<print "<img src=" + _fileName + "style='float:left; border:3px hidden' width='120' height='120'/>">> +<</if>> + +<<elseif $imageChoice == 1>> /* VECTOR ART BY NOX */ + +<<if $args[1] != 0>> /* IMAGE DOES NOT HAVE TO BE TINY */ +<<if ($args[1] != 1) || ($seeSummaryImages != 0)>> /* IMAGE IS NOT PART OF A LIST, OR IMAGES ARE TO BE DISPLAYED IN LISTS */ + +<div class="imageRef"> + +<<set _folderLoc = "'resources/vector">> + +<<if $args[2] == 1>> + <<print "<object type='image/svg+xml' data=" + _folderLoc + "/test ui.svg'" + "/></object>">> +<</if>> + +/% Set skin colour %/ +<<set _imgSkinLoc = _folderLoc + "/body/">> +<<switch $args[0].skin>> +<<case "light" "white" "fair" "lightened" "extremely pale" "pale">> + <<set _imgSkinLoc = _imgSkinLoc + "white">> +<<case "light brown" "dark">> + <<set _imgSkinLoc = _imgSkinLoc + "brown">> +<<case "brown" "black">> + <<set _imgSkinLoc = _imgSkinLoc + "dark brown">> +<<default>> + <<set _imgSkinLoc = _imgSkinLoc + "tanned">> +<</switch>> + +/% Shoulder width and arm or no arm %/ +<<if $args[0].amp != 1>> +<<if $args[0].fuckdoll == 0>> + <<if $args[0].devotion > 50>> + <<set _leftArmType = "high">> + <<set _rightArmType = "high">> + <<elseif $args[0].trust >= -20>> + <<if $args[0].devotion < -20>> + <<set _leftArmType = "rebel">> + <<set _rightArmType = "low">> + <<elseif $args[0].devotion <= 20>> + <<set _leftArmType = "low">> + <<set _rightArmType = "low">> + <<else>> + <<set _leftArmType = "mid">> + <<set _rightArmType = "high">> + <</if>> + <<else>> + <<set _leftArmType = "mid">> + <<set _rightArmType = "mid">> + <</if>> + <<print "<object type='image/svg+xml' data=" + _imgSkinLoc + "/arm left " + _leftArmType + ".svg'" + "/></object>">> + <<print "<object type='image/svg+xml' data=" + _imgSkinLoc + "/arm right " + _rightArmType + ".svg'" + "/></object>">> +<<else>> + <<set _leftArmType = "mid latex">> + <<set _rightArmType = "mid latex">> + <<print "<object type='image/svg+xml' data=" + _folderLoc + "/outfit/arm left " + _leftArmType + ".svg'" + "/></object>">> + <<print "<object type='image/svg+xml' data=" + _folderLoc + "/outfit/arm right " + _rightArmType + ".svg'" + "/></object>">> +<</if>> +<</if>> + +/% Hair Aft %/ +<<if $args[0].hStyle != "shaved">> +<<if $args[0].fuckdoll == 0>> + <<switch $args[0].hColor>> + <<case "blonde" "golden" "platinum blonde" "strawberry-blonde">> + <<set _hairColor = "blonde">> + <<case "brown" "hazel" "chestnut" "chocolate brown" "auburn" "dark brown">> + <<set _hairColor = "brown">> + <<case "red" "copper" "ginger" "burgundy">> + <<set _hairColor = "red">> + <<case "green">> + <<set _hairColor = "green">> + <<case "blue">> + <<set _hairColor = "blue">> + <<case "pink">> + <<set _hairColor = "pink">> + <<case "black" "grey" "silver" "white">> + <<set _hairColor = "black">> + <<default>> + <<set _hairColor = "black">> + <</switch>> + <<print "<object type='image/svg+xml' data=" + _folderLoc + "/body/addon/hair aft neat " + _hairColor + ".svg'" + "/></object>">> +<</if>> +<</if>> + +/% Butt %/ +<<if $args[0].amp != 1>> +<<if $args[0].butt > 5>> + <<set _buttSize = 3>> +<<elseif $args[0].butt > 4>> + <<set _buttSize = 2>> +<<elseif $args[0].butt > 3>> + <<set _buttSize = 1>> +<<elseif $args[0].butt > 2>> + <<set _buttSize = 0>> +<</if>> +<<if $args[0].fuckdoll != 0>> + <<set _buttSize = _buttSize + " latex">> +<</if>> +<<print "<object type='image/svg+xml' data=" + _imgSkinLoc + "/butt " + _buttSize + ".svg'" + "/></object>">> +<</if>> + +/% Leg + 1 size up when chubby or fat%/ +<<if $args[0].hips < 0>> + <<if $args[0].weight <= 95>>/%Chubby%/ + <<set _legSize = "normal">> + <<else>> + <<set _legSize = "narrow">> + <</if>> +<<elseif $args[0].hips == 0>> + <<if $args[0].weight <= 95>>/%Chubby%/ + <<set _legSize = "wide">> + <<else>> + <<set _legSize = "normal">> + <</if>> +<<elseif $args[0].hips > 0>> + <<set _legSize = "wide">> +<</if>> +<<if $args[0].amp != 0>> + <<set _legSize = "stump " + _legSize>> +<</if>> +<<if $args[0].fuckdoll != 0 and $args[0].amp != 1>> + <<set _legSize = _legSize + " latex">> + <<print "<object type='image/svg+xml' data=" + _folderLoc + "/outfit/leg " + _legSize + ".svg'" + "/></object>">> +<<else>> + <<print "<object type='image/svg+xml' data=" + _imgSkinLoc + "/leg " + _legSize + ".svg'" + "/></object>">> +<</if>> + +/% Feet %/ +<<if $args[0].amp != 1>> +<<if $args[0].shoes is "heels">> + <<set _shoesType = "heel">> +<<elseif $args[0].shoes is "extreme heels">> + <<if $args[0].weight <= 95>>/%Chubby%/ + <<set _shoesType = "extreme heel wide">> + <<else>> + <<set _shoesType = "extreme heel">> + <</if>> +<<elseif $args[0].shoes is "boots">> + <<if $args[0].weight <= 95>>/%Chubby%/ + <<set _shoesType = "boot wide">> + <<else>> + <<set _shoesType = "boot">> + <</if>> +<<elseif $args[0].shoes is "flats">> + <<set _shoesType = "flat">> +<<else>> + <<print "<object type='image/svg+xml' data=" + _imgSkinLoc + "/feet.svg'" + "/></object>">> +<</if>> +<<if $args[0].shoes is "extreme heels" or $args[0].shoes is "boots">> + <<if $args[0].fuckdoll != 0>> + <<set _shoesType = _shoesType + " latex">> + <</if>> + <<print "<object type='image/svg+xml' data=" + _folderLoc + "/outfit/" + _shoesType + ".svg'" + "/></object>">> +<</if>> +<<if $args[0].shoes is "heels" or $args[0].shoes is "flats">> + <<if $args[0].fuckdoll != 0>> + <<set _shoesType = _shoesType + " latex">> + <<print "<object type='image/svg+xml' data=" + _folderLoc + "/outfit/" + _shoesType + ".svg'" + "/></object>">> + <<else>> + <<print "<object type='image/svg+xml' data=" + _imgSkinLoc + "/" + _shoesType + ".svg'" + "/></object>">> + <</if>> +<</if>> +<</if>> + +/% Torso %/ +<<if $args[0].waist is 1>>/%Hour glass%/ + <<if $args[0].weight <= 95>>/%Chubby%/ + <<set _torsoSize = "normal">> + <<else>> + <<set _torsoSize = "hourglass">> + <</if>> +<<elseif $args[0].waist is 2>>/*Unnatural*/ + <<if $args[0].weight <= 95>>/%Chubby%/ + <<set _torsoSize = "hourglass">> + <<else>> + <<set _torsoSize = "unnatural">> + <</if>> +<<elseif $args[0].waist is 0>>/*Normal*/ + <<set _torsoSize = "normal">> +<</if>> +<<print "<object type='image/svg+xml' data=" + _imgSkinLoc + "/torso " + _torsoSize + ".svg'" + "/></object>">> +<<if $args[0].fuckdoll != 0>> + <<set _torsoSize = _torsoSize + " latex">> + <<print "<object type='image/svg+xml' data=" + _folderLoc + "/outfit/torso " + _torsoSize + ".svg'" + "/></object>">> +<</if>> + +/*Navel Piercing*/ +<<if $args[0].navelPiercing >= 1>> + <<print "<object type='image/svg+xml' data=" + _folderLoc + "/body/addon/navel piercing.svg'" + "/></object>">> +<</if>> +<<if $args[0].navelPiercing == 2>> + <<print "<object type='image/svg+xml' data=" + _folderLoc + "/body/addon/navel piercing heavy.svg'" + "/></object>">> +<</if>> + +/% Vagina %/ +<<if $args[0].vagina >= 0>> + <<print "<object type='image/svg+xml' data=" + _imgSkinLoc + "/vagina.svg'" + "/></object>">> + <<if $args[0].clitPiercing == 1>> + <<print "<object type='image/svg+xml' data=" + _folderLoc + "/body/addon/clit piercing.svg'" + "/></object>">> + <<elseif $args[0].clitPiercing == 2>> + <<print "<object type='image/svg+xml' data=" + _folderLoc + "/body/addon/clit piercing heavy.svg'" + "/></object>">> + <<elseif $args[0].clitPiercing == 3>> + <<print "<object type='image/svg+xml' data=" + _folderLoc + "/body/addon/clit piercing smart.svg'" + "/></object>">> + <</if>> + <<if $args[0].vaginaPiercing == 1>> + <<print "<object type='image/svg+xml' data=" + _folderLoc + "/body/addon/pussy piercing.svg'" + "/></object>">> + <<elseif $args[0].vaginaPiercing == 2>> + <<print "<object type='image/svg+xml' data=" + _folderLoc + "/body/addon/pussy piercing heavy.svg'" + "/></object>">> + <</if>> +<</if>> + +/%if pregnant%/ +<<if $args[0].preg > 0>> + <<print "<object type='image/svg+xml' data=" + _imgSkinLoc + "/preg belly.svg'" + "/></object>">> + <<if $args[0].navelPiercing >= 1>>/*Navel Piercing*/ + <<print "<object type='image/svg+xml' data=" + _folderLoc + "/body/addon/preg navel piercing.svg'" + "/></object>">> + <</if>> + <<if $args[0].navelPiercing == 2>> + <<print "<object type='image/svg+xml' data=" + _folderLoc + "/body/addon/preg navel piercing heavy.svg'" + "/></object>">> + <</if>> +<</if>> + +/% Head base image %/ +<<if $args[0].fuckdoll != 0>> + <<print "<object type='image/svg+xml' data=" + _folderLoc + "/outfit/head latex.svg'" + "/></object>">> +<<else>> + <<print "<object type='image/svg+xml' data=" +_imgSkinLoc + "/head.svg'" + "/></object>">> +<</if>> + +/% Collar %/ +<<if $args[0].collar is "dildo gag">> + <<print "<object type='image/svg+xml' data=" + _folderLoc + "/outfit/gag.svg'" + "/></object>">> +<</if>> + +/% Glasses %/ +<<if $args[0].eyewear is "corrective glasses" or $args[0].eyewear is "glasses" or $args[0].eyewear is "blurring glasses">> + <<print "<object type='image/svg+xml' data=" + _folderLoc + "/outfit/glasses.svg'" + "/></object>">> +<</if>> + +/% Boob %/ +<<if $args[0].boobs < 100>> + <<set _boobSize = 0>> +<<elseif $args[0].boobs < 400>> + <<set _boobSize = 1>> +<<elseif $args[0].boobs < 800>> + <<set _boobSize = 2>> +<<elseif $args[0].boobs < 1600>> + <<set _boobSize = 3>> +<<elseif $args[0].boobs < 3200>> + <<set _boobSize = 4>> +<<elseif $args[0].boobs < 6400>> + <<set _boobSize = 5>> +<<elseif $args[0].boobs < 12000>> + <<set _boobSize = 6>> +<<else>> + <<set _boobSize = 7>> +<</if>> +<<if $args[0].fuckdoll != 0>> + <<print "<object type='image/svg+xml' data=" + _folderLoc + "/outfit/boob " +_boobSize +" latex.svg'" + "/></object>">> + <<if $args[0].lactation > 0>><<print "<object type='image/svg+xml' data=" + _imgSkinLoc + "/boob " +_boobSize + " areola.svg'" + "/></object>">><</if>> +<<else>> + <<print "<object type='image/svg+xml' data=" + _imgSkinLoc + "/boob " +_boobSize +".svg'" + "/></object>">> + <<print "<object type='image/svg+xml' data=" + _imgSkinLoc + "/boob " +_boobSize + " areola.svg'" + "/></object>">> +<</if>> +<<if$args[0].nipplesPiercing ==1>> + <<print "<object type='image/svg+xml' data=" + _folderLoc + "/body/addon/boob " +_boobSize +" piercing.svg'" + "/></object>">> +<<elseif$args[0].nipplesPiercing ==2>> + <<print "<object type='image/svg+xml' data=" + _folderLoc + "/body/addon/boob " +_boobSize +" piercing heavy.svg'" + "/></object>">> +<</if>> +<<if$args[0].areolaePiercing ==1>> + <<print "<object type='image/svg+xml' data=" + _folderLoc + "/body/addon/boob " +_boobSize +" areola piercing.svg'" + "/></object>">> +<</if>> + +/% Scrotum %/ +<<if $args[0].scrotum > 0>> + <<if $args[0].scrotum >= 6>> + <<set _ballSize = 4>> + <<elseif $args[0].scrotum >= 4>> + <<set _ballSize = 3>> + <<elseif $args[0].scrotum >= 3>> + <<set _ballSize = 2>> + <<elseif $args[0].scrotum >= 2>> + <<set _ballSize = 1>> + <<else>> + <<set _ballSize = 0>> + <</if>> +<</if>> + +/% Penis %/ +<<if $args[0].dick > 0>> + <<if $args[0].dick >= 8>> + <<set _penisSize = 6>> + <<elseif $args[0].dick >= 7>> + <<set _penisSize = 5>> + <<elseif $args[0].dick >= 6>> + <<set _penisSize = 4>> + <<elseif $args[0].dick >= 5>> + <<set _penisSize = 3>> + <<elseif $args[0].dick >= 4>> + <<set _penisSize = 2>> + <<elseif $args[0].dick >= 2>> + <<set _penisSize = 1>> + <<else>> + <<set _penisSize = 0>> + <</if>> +<</if>> + +<<if _boobSize <= 5>> +<<if $args[0].vagina > 0>> + <<if $args[0].dick > 0>> + <div class="highPenis"> + <<if $args[0].scrotum > 0>> + <<print "<object type='image/svg+xml' data=" + _imgSkinLoc + "/ball " + _ballSize + ".svg'" + "/></object>">> + <</if>> + <<print "<object type='image/svg+xml' data=" + _imgSkinLoc + "/penis " + _penisSize + ".svg'" + "/></object>">> + </div> + <</if>> +<<else>> + <<if $args[0].dick > 0>> + <div class="lowPenis"> + <<if $args[0].scrotum > 0>> + <<print "<object type='image/svg+xml' data=" + _imgSkinLoc + "/ball " + _ballSize + ".svg'" + "/></object>">> + <</if>> + <<print "<object type='image/svg+xml' data=" + _imgSkinLoc + "/penis " + _penisSize + ".svg'" + "/></object>">> + </div> + <</if>> +<</if>> +<</if>> + +/% clavicle %/ +<<print "<object type='image/svg+xml' data=" + _folderLoc + "/body/addon/clavicle.svg'" + "/></object>">> + +/% Hair Foreground%/ +<<if $args[0].hStyle != "shaved">> +<<if $args[0].fuckdoll == 0>> +<<print "<object type='image/svg+xml' data=" + _folderLoc + "/body/addon/hair fore neat " + _hairColor + ".svg'" + "/></object>">> +<</if>> +<</if>> + +</div> + +<</if>> +<</if>> /* CLOSES EXEMPTIONS FOR IMAGE SIZES NOT CURRENTLY SUPPORTED BY VECTOR ART */ + +<<else>> /* RENDERED IMAGES BY SHOKUSHU */ + +<<if $args[0].vagina gt -1>> + <<if $args[0].dick gt 0>> + <<if $args[0].balls gt 0>> + <<set _fileName = "futanari">> + <<else>> + <<set _fileName = "herm">> + <</if>> + <<else>> + <<set _fileName = "female">> + <</if>> +<<else>> + <<if $args[0].balls gt 0>> + <<set _fileName = "shemale">> + <<else>> + <<set _fileName = "gelding">> + <</if>> +<</if>> +<<if $args[0].preg gt 10>> + <<set _fileName = "preg " + _fileName>> +<</if>> +<<if $args[0].boobs < 400>> + <<set _fileName = _fileName + " small">> +<<elseif $args[0].boobs < 800>> + <<set _fileName = _fileName + " big">> +<<elseif $args[0].boobs < 6000>> + <<set _fileName = _fileName + " huge">> +<<else>> + <<set _fileName = _fileName + " hyper">> +<</if>> +<<if $args[0].muscles > 30>> + <<set _fileName = _fileName + " muscle">> +<<else>> + <<set _fileName = _fileName + " soft">> +<</if>> +<<if $args[0].fuckdoll > 0>> + <<set _fileName = _fileName + " rebellious">> +<<elseif $args[0].devotion <= 20>> + <<if $args[0].trust < -20>> + <<set _fileName = _fileName + " reluctant">> + <<else>> + <<set _fileName = _fileName + " rebellious">> + <</if>> +<<elseif $args[0].fetish == "mindbroken">> + <<set _fileName = _fileName + " reluctant">> +<<elseif $args[0].devotion <= 50 || $args[0].fetishKnown != 1 || ($seeMainFetishes == 0 && $args[1] < 2)>> + <<set _fileName = _fileName + " obedient">> +<<else>> + <<if $args[0].fetish == "none">> + <<set _fileName = _fileName + " obedient">> + <<else>> + <<set _fileName = _fileName + " " + $args[0].fetish>> + <</if>> +<</if>> + +<<set _fileName = "'resources/renders/" + _fileName + ".png' ">> +<<if $args[1] == 3>> + <<print "<img src=" + _fileName + "style='float:right; border:3px hidden'/>">> +<<elseif $args[1] == 2>> + <<print "<img src=" + _fileName + "style='float:right; border:3px hidden' width='300' height='300'/>">> +<<elseif $args[1] == 1>> + <<if $seeSummaryImages != 0>><<print "<img src=" + _fileName + "style='float:left; border:3px hidden' width='150' height='150'/>">><</if>> +<<else>> + <<print "<img src=" + _fileName + "style='float:left; border:3px hidden' width='120' height='120'/>">> +<</if>> + +<</if>> /* CLOSES IMAGE CHOICE */ + +<</widget>> diff --git a/src/utility/assayWidgets.tw b/src/utility/assayWidgets.tw index 445a2f108163b22ef9de417f573e6f48e3b887aa..64835101cb6e96fce480cb90450af90210e3a571 100644 --- a/src/utility/assayWidgets.tw +++ b/src/utility/assayWidgets.tw @@ -691,10 +691,16 @@ <<set $FResult to (3-$args[0].anus)+($args[0].muscles/30)>> +<<if $args[0].muscles < -95>> + <<set $FResult -= 5>> +<<elseif $args[0].muscles < -30>> + <<set $FResult -= 2>> +<</if>> + <<set $seed to $oralUseWeight + $vaginalUseWeight + $analUseWeight>> <<if $seed > 0>> -<<set $FResult += 6*($oralUseWeight/$seed)*($args[0].oralSkill/30)>> +<<set $FResult += (6+$args[0].tonguePiercing)*($oralUseWeight/$seed)*($args[0].oralSkill/30)>> <<if $args[0].sexualFlaw == "cum addict">> <<set $FResult += ($oralUseWeight/$seed)*($args[0].oralSkill/30)>> <</if>> @@ -714,7 +720,7 @@ <<if $args[0].fuckdoll == 0>> /* NOT A FUCKDOLL */ <<if $familyTesting == 1>> - <<if $args[0].mother > 0 || $args[0].father > 0 || $args[0].daughters > 0 || $args[0].sisters > 0>> + <<if totalRelatives($args[0]) > 0>> <<for $j to 0; $j < $slaves.length; $j++>> <<if $args[0].mother == $slaves[$j].ID>> <<if $slaves[$j].assignment is $args[0].assignment>> diff --git a/src/utility/birthWidgets.tw b/src/utility/birthWidgets.tw index e72701f50a4fb99d9b50a0ba833d8bfa13fc0a73..afc60636992de24722abfcffcf3d56e5e4ea3cdf 100644 --- a/src/utility/birthWidgets.tw +++ b/src/utility/birthWidgets.tw @@ -10,14 +10,14 @@ <<if $clinic != 0>> She is taken to $clinicName, since she is scheduled for a cesarean section. She is helped from her clothes and into a comfortable hospital bed to relax until the surgery suite is prepped. After several minutes, she is transferred to the surgery wing. Following her c-section, she is returned to the recovery wing to rest. Her child<<if $slaves[$i].pregType > 1>>ren are<<else>> is<</if>> promptly taken and she is left under observation to make sure she recovers. <<else>> -She is taken to the auto-surgeon, since she is scheduled for a cesarean section. She is stripped from her clothes and set up on the operating table. She is quickly sedated, and subjected to a c-section in order to avoid potential problems and preserve her vagina. The surgery is quick, and she is moved to a bed to recover. When she awakes, her child<<if $slaves[$i].pregType > 1>>ren have<<else>> has<</if>> already been taking away. +She is taken to the auto-surgeon, since she is scheduled for a cesarean section. She is stripped from her clothes and set up on the operating table. She is quickly sedated, and subjected to a c-section in order to avoid potential problems and preserve her vagina. The surgery is quick, and she is moved to a bed to recover. When she awakes, her child<<if $slaves[$i].pregType > 1>>ren have<<else>> has<</if>> already been taken away. <</if>> <<else>> <<if $clinic != 0>> She is lead to $clinicName, since she is likely to face complications with childbirth. She is helped from her clothes and into a comfortable hospital bed to relax until she is ready. She makes herself comfortable and begins working on birthing her bab<<if $slaves[$i].pregType > 1>>ies<<else>>y<</if>>, fully aware of her watching helpers. <<if $birthDamage > 10>><<set $csec to 1>><<set $slaves[$i].cSec to 1>>After several hours of intense labor, she is transferred to the surgery wing. Following an emergency c-section, she is returned to the recovery wing to rest.<<else>>After several hours, and a touch of morphine, she has successfully given birth<</if>>. Her child<<if $slaves[$i].pregType > 1>>ren are<<else>> is<</if>> promptly taken and she is left under observation to make sure she recovers. <<else>> <<set $csec to 1>><<set $slaves[$i].cSec to 1>> -She is lead to the auto-surgeon, since she is likely to face complications with childbirth. She is stripped from her clothes and set up on the operating table. She is quickly sedated, and subjected to a c-section in order to avoid potential problems. The surgery is quick, and she is moved to a bed to recover. When she awakes, her child<<if $slaves[$i].pregType > 1>>ren have<<else>> has<</if>> already been taking away. +She is lead to the auto-surgeon, since she is likely to face complications with childbirth. She is stripped from her clothes and set up on the operating table. She is quickly sedated, and subjected to a c-section in order to avoid potential problems. The surgery is quick, and she is moved to a bed to recover. When she awakes, her child<<if $slaves[$i].pregType > 1>>ren have<<else>> has<</if>> already been taken away. <</if>> <</if>> @@ -155,13 +155,13 @@ She is lead to the auto-surgeon, since she is likely to face complications with <<if $masterSuiteUpgradePregnancy == 1>> She is helping into the birthing chamber, striped, and aided into the specialized chair. Instinctively, she begins to push out her bab<<if $slaves[$i].pregType > 1>>ies<<else>>y<</if>>. Her child<<if $slaves[$i].pregType > 1>>ren are<<else>> is<</if>> promptly taken and, following a shower and fresh change of clothes, she is returned to <<if $masterSuiteUpgradeLuxury == 1>>your big bed<<elseif $masterSuiteUpgradeLuxury is 2>>the fuckpit<<else>>the main room of the master suite<</if>>. <<else>> - After struggling to strip and tipping into one of the various seats around the room, she prepares to give birth. Instinctively, she begins to push out her bab<<if $slaves[$i].pregType > 1>>ies<<else>>y<</if>>, indifferent to her may be watching her. Her child<<if $slaves[$i].pregType > 1>>ren are<<else>> is<</if>> promptly taken and, following a shower and fresh change of clothes, she is helped back to <<if $masterSuiteUpgradeLuxury == 1>>your big bed<<elseif $masterSuiteUpgradeLuxury is 2>>the fuckpit<else>> her usual spot<</if>>. + After struggling to strip and tipping into one of the various seats around the room, she prepares to give birth. Instinctively, she begins to push out her bab<<if $slaves[$i].pregType > 1>>ies<<else>>y<</if>>, indifferent to her may be watching her. Her child<<if $slaves[$i].pregType > 1>>ren are<<else>> is<</if>> promptly taken and, following a shower and fresh change of clothes, she is helped back to <<if $masterSuiteUpgradeLuxury == 1>>your big bed<<elseif $masterSuiteUpgradeLuxury is 2>>the fuckpit<<else>> her usual spot<</if>>. <</if>> <<else>> <<if $masterSuiteUpgradePregnancy == 1>> She is helping into the birthing chamber, striped, and aided into the specialized chair. Finding it quite comfortable, she begins to push out her bab<<if $slaves[$i].pregType > 1>>ies<<else>>y<</if>>. Her child<<if $slaves[$i].pregType > 1>>ren are<<else>> is<</if>> promptly taken and, following a shower and fresh change of clothes, she is returned to <<if $masterSuiteUpgradeLuxury == 1>>your big bed<<elseif $masterSuiteUpgradeLuxury is 2>>the fuckpit<<else>>the main room of the master suite<</if>>. <<else>> - After struggling to strip and tipping into one of the various seats around the room, she prepares to give birth. She gets comfortable and begins to push out her bab<<if $slaves[$i].pregType > 1>>ies<<else>>y<</if>>. Her child<<if $slaves[$i].pregType > 1>>ren are<<else>> is<</if>> promptly taken and, following a shower and fresh change of clothes, she is returned to <<if $masterSuiteUpgradeLuxury == 1>>your big bed<<elseif $masterSuiteUpgradeLuxury is 2>>the fuckpit<else>> her preferred spot spot<</if>>. + After struggling to strip and tipping into one of the various seats around the room, she prepares to give birth. She gets comfortable and begins to push out her bab<<if $slaves[$i].pregType > 1>>ies<<else>>y<</if>>. Her child<<if $slaves[$i].pregType > 1>>ren are<<else>> is<</if>> promptly taken and, following a shower and fresh change of clothes, she is returned to <<if $masterSuiteUpgradeLuxury == 1>>your big bed<<elseif $masterSuiteUpgradeLuxury is 2>>the fuckpit<<else>> her preferred spot spot<</if>>. <</if>> <</if>> <<else>> @@ -169,13 +169,13 @@ She is lead to the auto-surgeon, since she is likely to face complications with <<if $masterSuiteUpgradePregnancy == 1>> She enters the birthing chamber, strips, and seats herself in the specialized chair. Instinctively, she begins to push out her bab<<if $slaves[$i].pregType > 1>>ies<<else>>y<</if>>. Her child<<if $slaves[$i].pregType > 1>>ren are<<else>> is<</if>> promptly taken and, following a shower and fresh change of clothes, she returns to <<if $masterSuiteUpgradeLuxury == 1>>your big bed<<elseif $masterSuiteUpgradeLuxury is 2>>the fuckpit<<else>>the main room of the master suite<</if>>. <<else>> - She strips and settles into one of the various seats around the room. Instinctively, she begins to push out her bab<<if $slaves[$i].pregType > 1>>ies<<else>>y<</if>>, indifferent to her may be watching her. Her child<<if $slaves[$i].pregType > 1>>ren are<<else>> is<</if>> promptly taken and, following a shower and fresh change of clothes, she returns to <<if $masterSuiteUpgradeLuxury == 1>>your big bed<<elseif $masterSuiteUpgradeLuxury is 2>>the fuckpit<else>> her usual spot<</if>>. + She strips and settles into one of the various seats around the room. Instinctively, she begins to push out her bab<<if $slaves[$i].pregType > 1>>ies<<else>>y<</if>>, indifferent to her may be watching her. Her child<<if $slaves[$i].pregType > 1>>ren are<<else>> is<</if>> promptly taken and, following a shower and fresh change of clothes, she returns to <<if $masterSuiteUpgradeLuxury == 1>>your big bed<<elseif $masterSuiteUpgradeLuxury is 2>>the fuckpit<<else>> her usual spot<</if>>. <</if>> <<else>> <<if $masterSuiteUpgradePregnancy == 1>> She enters the birthing chamber, strips, and seats herself in the specialized chair. Finding it quite comfortable, she begins to push out her bab<<if $slaves[$i].pregType > 1>>ies<<else>>y<</if>>. Her child<<if $slaves[$i].pregType > 1>>ren are<<else>> is<</if>> promptly taken and, following a shower and fresh change of clothes, she returns to <<if $masterSuiteUpgradeLuxury == 1>>your big bed<<elseif $masterSuiteUpgradeLuxury is 2>>the fuckpit<<else>>the main room of the master suite<</if>>. <<else>> - She strips and settles into one of the various seats around the room. She gets comfortable and begins to push out her bab<<if $slaves[$i].pregType > 1>>ies<<else>>y<</if>>. Her child<<if $slaves[$i].pregType > 1>>ren are<<else>> is<</if>> promptly taken and, following a shower and fresh change of clothes, she returns to <<if $masterSuiteUpgradeLuxury == 1>>your big bed<<elseif $masterSuiteUpgradeLuxury is 2>>the fuckpit<else>> her preferred spot spot<</if>>. + She strips and settles into one of the various seats around the room. She gets comfortable and begins to push out her bab<<if $slaves[$i].pregType > 1>>ies<<else>>y<</if>>. Her child<<if $slaves[$i].pregType > 1>>ren are<<else>> is<</if>> promptly taken and, following a shower and fresh change of clothes, she returns to <<if $masterSuiteUpgradeLuxury == 1>>your big bed<<elseif $masterSuiteUpgradeLuxury is 2>>the fuckpit<<else>> her preferred spot spot<</if>>. <</if>> <</if>> <</if>> diff --git a/src/utility/descriptionWidgets.tw b/src/utility/descriptionWidgets.tw index 9ce668e620b25032c79ab58324b348321c1cdde7..77acc8fa2d6ac23cf7b4cb6cbcd0ab9d3b49cfd0 100644 --- a/src/utility/descriptionWidgets.tw +++ b/src/utility/descriptionWidgets.tw @@ -1696,41 +1696,41 @@ $pronounCap's got a <<if $activeSlave.hips < -1>> <<if $activeSlave.butt > 2>> - $possessiveCap butt is disproportionately large for $possessive narrow hips<<if $arcologies[0].FSTransformationFetishist is "unset">>.<<else>>, but your transformation fetishist arcology considers this attractive.<</if>> + $possessiveCap butt is @@color:red;disproportionately large@@ for $possessive narrow hips<<if $arcologies[0].FSTransformationFetishist is "unset">>.<<else>>, but your transformation fetishist arcology considers this attractive.<</if>> <<else>> $possessiveCap hips are very narrow. <</if>> <<elseif $activeSlave.hips < 0>> <<if $activeSlave.butt > 4>> - $possessiveCap butt is disproportionately large for $possessive trim hips<<if $arcologies[0].FSTransformationFetishist is "unset">>.<<else>>, but your transformation fetishist arcology considers this attractive.<</if>> + $possessiveCap butt is @@color:red;disproportionately large@@ for $possessive trim hips<<if $arcologies[0].FSTransformationFetishist is "unset">>.<<else>>, but your transformation fetishist arcology considers this attractive.<</if>> <<else>> $possessiveCap butt is complemented by $possessive trim hips. <</if>> <<elseif $activeSlave.hips > 2>> <<if $activeSlave.butt <= 8>> - $possessiveCap butt is disproportionately small for $possessive monstrous hips. + $possessiveCap butt is @@color:red;disproportionately small@@ for $possessive monstrous hips. <<else>> $possessiveCap butt is fitting for $possessive monstrous hips. <</if>> <<elseif $activeSlave.hips > 1>> <<if $activeSlave.butt <= 3>> - $possessiveCap butt is disproportionately small for $possessive very wide hips. + $possessiveCap butt is @@color:red;disproportionately small@@ for $possessive very wide hips. <<else>> $possessiveCap butt is flattered by $possessive very wide hips. <</if>> <<elseif $activeSlave.hips > 0>> <<if $activeSlave.butt > 8>> - $possessiveCap butt is disproportionately large for $possessive broad hips<<if $arcologies[0].FSTransformationFetishist is "unset">>.<<else>>, but your transformation fetishist arcology considers this attractive.<</if>> + $possessiveCap butt is @@color:red;disproportionately large@@ for $possessive broad hips<<if $arcologies[0].FSTransformationFetishist is "unset">>.<<else>>, but your transformation fetishist arcology considers this attractive.<</if>> <<elseif $activeSlave.butt <= 2>> - $possessiveCap butt is disproportionately small for $possessive broad hips. + $possessiveCap butt is @@color:red;disproportionately small@@ for $possessive broad hips. <<else>> $possessiveCap butt is complemented by $possessive broad hips. <</if>> <<else>> <<if $activeSlave.butt > 6>> - $possessiveCap butt is disproportionately large for $possessive womanly hips<<if $arcologies[0].FSTransformationFetishist is "unset">>.<<else>>, but your transformation fetishist arcology considers this attractive.<</if>> + $possessiveCap butt is @@color:red;disproportionately large@@ for $possessive womanly hips<<if $arcologies[0].FSTransformationFetishist is "unset">>.<<else>>, but your transformation fetishist arcology considers this attractive.<</if>> <<elseif $activeSlave.butt <= 1>> - $possessiveCap butt is disproportionately small for $possessive ample hips. + $possessiveCap butt is @@color:red;disproportionately small@@ for $possessive ample hips. <<else>> $possessiveCap butt is complemented by $possessive ample hips. <</if>> @@ -2327,23 +2327,14 @@ $pronounCap's got a <<if $showBodyMods == 1>> <<if ($activeSlave.vagina > -1)>> - <<if ($activeSlave.dick == 0)>> <<if ($activeSlave.anusPiercing == 1)>> - $pronounCap has a simple piercing between $possessive pussy and $possessive asshole<<if $activeSlave.fuckdoll > 0>> which helps keep the strip of material between its holes in place<</if>>. + $pronounCap has a simple piercing between $possessive pussy and $possessive asshole<<if $activeSlave.fuckdoll > 0>> which helps keep the strip of material <<if $activeSlave.vagina > -1>>between its holes<<else>>below its rear hole<</if>> in place<</if>>. <<elseif ($activeSlave.anusPiercing is 2)>> - $pronounCap has a big ring between $possessive pussy and $possessive asshole<<if $activeSlave.fuckdoll > 0>>, which helps keep the strip of material between its holes in place,<</if>> and studs in all around $possessive anus. - <</if>> - <<else>> - <<if ($activeSlave.anusPiercing == 1)>> - $pronounCap has a simple piercing between $possessive pussy and the base of $possessive dick. - /* It rubs $possessive genitals and keeps $possessive sexually primed. */ - <<elseif ($activeSlave.anusPiercing is 2)>> - $pronounCap has two rings between the base of $possessive dick and $possessive pussy, three more between $possessive pussy and $possessive ass, and studs in a ring around $possessive anus. - <</if>> + $pronounCap has a big ring between $possessive pussy and $possessive asshole<<if $activeSlave.fuckdoll > 0>>, which helps keep the strip of material <<if $activeSlave.vagina > -1>>between its holes<<else>>below its rear hole<</if>> in place,<</if>> and studs in all around $possessive anus. <</if>> <<else>> <<if ($activeSlave.anusPiercing == 1)>> - $pronounCap has a simple perianal piercing between the base of $possessive dick and $possessive girly butthole<<if $activeSlave.fuckdoll > 0>> which helps keep the strip of material between its holes in place<</if>>. + $pronounCap has a simple perianal piercing between the base of $possessive dick and $possessive girly butthole<<if $activeSlave.fuckdoll > 0>> which helps keep the strip of material <<if $activeSlave.vagina > -1>>between its holes<<else>>below its rear hole<</if>> in place<</if>>. <<elseif ($activeSlave.anusPiercing is 2)>> $pronounCap has a big ring between the base of $possessive dick and $possessive girly butthole, which has studs all around it. <</if>> @@ -2440,7 +2431,7 @@ $pronounCap's got a $possessiveCap ballsack have its own uncomfortably tight pouch in the suit. <</if>> <<else>> - soft cock<<if $activeSlave.scrotum > 0>> and balls are<<else>>is<</if>> trapped up against her abdomen, under the Fuckdoll suit's protective material. + soft cock<<if $activeSlave.scrotum > 0>> and balls are<<else>>is<</if>> trapped up against its abdomen, under the Fuckdoll suit's protective material. <</if>> <</if>> <<if $activeSlave.vagina > -1>> @@ -2617,10 +2608,10 @@ $pronounCap's got a $activeSlave.slaveName's <<if ($activeSlave.dick > 5) and canAchieveErection($activeSlave) && ($activeSlave.devotion > 20)>> erection is so big that closing $possessive jean cutoffs is hopeless. $pronounCap's got $possessive fly unbuttoned and $possessive dick sticking out proudly. - <<elseif ($activeSlave.dick > 0) && ($activeSlave.vagina > -1)>> - jean cutoffs are pretty brief, but decently cover $possessive cock and pussy. <<elseif $activeSlave.dick > 5>> jean cutoffs are pretty brief, and $possessive huge cock sticks out, trapped against one leg. + <<elseif ($activeSlave.dick > 0) && ($activeSlave.vagina > -1)>> + jean cutoffs are pretty brief, but decently cover $possessive cock and pussy. <<elseif $activeSlave.dick > 0>> jean cutoffs are pretty brief, but decently cover $possessive cock. <<else>> @@ -2628,12 +2619,12 @@ $pronounCap's got a <</if>> <<case "a slave gown">> $activeSlave.slaveName's - <<if ($activeSlave.dick > 0) && ($activeSlave.vagina > -1)>> - hermaphroditic genitalia are hidden by $possessive lovely gown. - <<elseif $activeSlave.dick > 6>> + <<if $activeSlave.dick > 6>> lovely gown cannot hide the fact that something massive is lurking between $possessive legs. <<elseif $activeSlave.dick > 3>> cock tents the front of $possessive lovely gown. + <<elseif ($activeSlave.dick > 0) && ($activeSlave.vagina > -1)>> + hermaphroditic genitalia are hidden by $possessive lovely gown. <<elseif $activeSlave.dick > 0>> cock is hidden by $possessive lovely gown. <<else>> @@ -2641,10 +2632,10 @@ $pronounCap's got a <</if>> <<case "a halter top dress">> $activeSlave.slaveName's - <<if ($activeSlave.dick > 0) && ($activeSlave.vagina > -1)>> - hermaphroditic genitalia are hidden by $possessive beautiful halter top dress. - <<elseif $activeSlave.dick > 3>> + <<if $activeSlave.dick > 3>> cock tents the front of $possessive beautiful halter top dress. + <<elseif ($activeSlave.dick > 0) && ($activeSlave.vagina > -1)>> + hermaphroditic genitalia are hidden by $possessive beautiful halter top dress. <<elseif $activeSlave.dick > 0>> cock is hidden by $possessive beautiful halter top dress. <<else>> @@ -2652,10 +2643,10 @@ $pronounCap's got a <</if>> <<case "a ball gown">> $activeSlave.slaveName's - <<if ($activeSlave.dick > 0) && ($activeSlave.vagina > -1)>> - hermaphroditic genitalia are hidden by $possessive fabulous silken ball gown. - <<elseif $activeSlave.dick > 3>> + <<if $activeSlave.dick > 3>> cock tents the front of $possessive fabulous silken ball gown. + <<elseif ($activeSlave.dick > 0) && ($activeSlave.vagina > -1)>> + hermaphroditic genitalia are hidden by $possessive fabulous silken ball gown. <<elseif $activeSlave.dick > 0>> cock is hidden by $possessive fabulous silken ball gown. <<else>> @@ -2663,10 +2654,10 @@ $pronounCap's got a <</if>> <<case "slutty business attire">> $activeSlave.slaveName's - <<if ($activeSlave.dick > 0) && ($activeSlave.vagina > -1)>> - hermaphroditic genitalia are barely hidden by $possessive skirt. - <<elseif $activeSlave.dick > 3>> + <<if $activeSlave.dick > 3>> dickhead dangles down beneath the hem of $possessive short skirt. + <<elseif ($activeSlave.dick > 0) && ($activeSlave.vagina > -1)>> + hermaphroditic genitalia are barely hidden by $possessive skirt. <<elseif $activeSlave.dick > 0>> cock is barely hidden by $possessive skirt. <<else>> @@ -2674,10 +2665,10 @@ $pronounCap's got a <</if>> <<case "nice business attire">> $activeSlave.slaveName's - <<if ($activeSlave.dick > 0) && ($activeSlave.vagina > -1)>> - hermaphroditic genitalia are decently hidden by $possessive skirt. - <<elseif $activeSlave.dick > 3>> + <<if $activeSlave.dick > 3>> conservative skirt bulges forward in front. + <<elseif ($activeSlave.dick > 0) && ($activeSlave.vagina > -1)>> + hermaphroditic genitalia are decently hidden by $possessive skirt. <<elseif $activeSlave.dick > 0>> conservative skirt gives no hint of the cock behind it. <<else>> @@ -2702,12 +2693,12 @@ $pronounCap's got a latex encased pussy is just waiting to be exposed through $possessive crotch zipper. <</if>> <<case "a military uniform">> - <<if ($activeSlave.dick > 0) and ($activeSlave.vagina > -1)>> + <<if $activeSlave.dick > 3>> + $activeSlave.slaveName's uniform skirt bulges forward in front. + <<elseif ($activeSlave.dick > 0) and ($activeSlave.vagina > -1)>> $activeSlave.slaveName's hermaphroditic genitalia are decently hidden by $possessive skirt. <<elseif $activeSlave.vagina > -1>> $activeSlave.slaveName's uniform skirt gives no hint of the pussy behind it. - <<elseif $activeSlave.dick > 3>> - $activeSlave.slaveName's uniform skirt bulges forward in front. <<elseif $activeSlave.dick > 0>> $activeSlave.slaveName's uniform skirt gives no hint of the cock behind it. <</if>> @@ -2759,10 +2750,10 @@ $pronounCap's got a <</if>> <<case "a slutty maid outfit">> $activeSlave.slaveName's - <<if ($activeSlave.dick > 0) && ($activeSlave.vagina > -1)>> - hermaphroditic genitalia are poorly concealed by $possessive short apron. - <<elseif $activeSlave.dick > 3>> + <<if $activeSlave.dick > 3>> cockhead dangles down beneath the hem of $possessive short apron. + <<elseif ($activeSlave.dick > 0) && ($activeSlave.vagina > -1)>> + hermaphroditic genitalia are poorly concealed by $possessive short apron. <<elseif $activeSlave.dick > 0>> cock is barely concealed by $possessive short apron. <<else>> @@ -2778,20 +2769,20 @@ $pronounCap's got a pussy is protected by $possessive functional apron. <</if>> <<case "a nice nurse outfit">> - <<if ($activeSlave.dick > 0) and ($activeSlave.vagina > -1)>> - $activeSlave.slaveName's hermaphroditic genitalia are decently hidden by $possessive trousers. - <<elseif $activeSlave.dick > 3>> + <<if $activeSlave.dick > 3>> $activeSlave.slaveName's trousers bulge forward in front. + <<elseif ($activeSlave.dick > 0) and ($activeSlave.vagina > -1)>> + $activeSlave.slaveName's hermaphroditic genitalia are decently hidden by $possessive trousers. <<elseif $activeSlave.dick > 0>> $activeSlave.slaveName's trousers give no hint of the cock behind it. <<elseif $activeSlave.vagina > -1>> $activeSlave.slaveName's trousers give no hint of the pussy behind it. <</if>> <<case "a slutty nurse outfit">> - <<if ($activeSlave.dick > 0) && ($activeSlave.vagina > -1)>> - $activeSlave.slaveName's skirt is tight enough to reveal the outline of the hermaphroditic genitalia behind it. - <<elseif $activeSlave.dick > 3>> + <<if $activeSlave.dick > 3>> $activeSlave.slaveName's skirt is tight enough to reveal the massive outline of $possessive dick behind it. + <<elseif ($activeSlave.dick > 0) && ($activeSlave.vagina > -1)>> + $activeSlave.slaveName's skirt is tight enough to reveal the outline of the hermaphroditic genitalia behind it. <<elseif $activeSlave.dick > 0>> $activeSlave.slaveName's skirt is tight enough to reveal the outline of $possessive dick behind it. <<elseif $activeSlave.vagina > -1>> @@ -3596,13 +3587,15 @@ $pronounCap's got a <</if>> <<if $activeSlave.fuckdoll > 0>> - $possessiveCap front hole - <<if $activeSlave.fuckdoll <= 45>> - is mostly useful when it's restrained for rape. - <<else>> - will massage <<if $PC.dick == 1>>cocks<<else>>anything<</if>> placed inside it on command. - <<if $activeSlave.fuckdoll <= 85>> - $pronounCap is even capable of riding <<if $PC.dick == 1>>dick<<else>>a strap-on<</if>>. + <<if $activeSlave.vagina > 0>> + $possessiveCap front hole + <<if $activeSlave.fuckdoll <= 45>> + is mostly useful when it's restrained for rape. + <<else>> + will massage <<if $PC.dick == 1>>cocks<<else>>anything<</if>> placed inside it on command. + <<if $activeSlave.fuckdoll <= 85>> + $pronounCap is even capable of riding <<if $PC.dick == 1>>dick<<else>>a strap-on<</if>>. + <</if>> <</if>> <</if>> <<else>> @@ -3659,7 +3652,7 @@ $pronounCap's got a <<elseif ($activeSlave.clitPiercing is 2) && ($activeSlave.vagina != -1)>> $pronounCap has a big ring in $possessive clit. <<if ($activeSlave.clothes is "slutty jewelry")>> - Since $pronoun's wearing slutty bangles $pronoun has a a short length of light chain dangling from $possessive clit ring; it constantly stimulates $possessive pussylips. + Since $pronoun's wearing slutty bangles $pronoun has a short length of light chain dangling from $possessive clit ring; it constantly stimulates $possessive pussylips. <</if>> <<elseif ($activeSlave.clitPiercing > 2) && ($activeSlave.vagina != -1)>> $pronounCap has a smart piercing in $possessive clit. @@ -3668,7 +3661,7 @@ $pronounCap's got a <<elseif ($activeSlave.clitPiercing is 2)>> $pronounCap has a big ring in $possessive dickhead. <<if ($activeSlave.clothes is "slutty jewelry")>> - Since $pronoun's wearing slutty bangles $pronoun has a a short length of light chain dangling from $possessive dickhead piercing; as $pronoun moves it tugs lightly at $possessive cock. + Since $pronoun's wearing slutty bangles $pronoun has a short length of light chain dangling from $possessive dickhead piercing; as $pronoun moves it tugs lightly at $possessive cock. <</if>> <<elseif ($activeSlave.clitPiercing > 2)>> $pronounCap has a smart frenulum piercing. @@ -8386,6 +8379,8 @@ $pronounCap has <<if $args[0].fuckdoll > 0>> <<set $pronoun = "it", $pronounCap = "It", $possessive = "its", $possessiveCap = "Its", $object = "it">> +<<elseif $activeSlave.dick < 0 && $activeSlave.vagina == -1>> /*impossible condition to keep it from running but saving it for future use*/ + <<set $pronoun = "he", $pronounCap = "He", $possessive = "his", $possessiveCap = "His", $object = "his">> <<else>> <<set $pronoun = "she", $pronounCap = "She", $possessive = "her", $possessiveCap = "Her", $object = "her">> <</if>> diff --git a/src/utility/miscWidgets.tw b/src/utility/miscWidgets.tw index 87317605111146d4be5b6d59aa8c10e16d1d52d0..c2add92725e23b7bf80435257601cdce459775e0 100644 --- a/src/utility/miscWidgets.tw +++ b/src/utility/miscWidgets.tw @@ -274,7 +274,7 @@ <<widget "SlaveInteractImpreg">> <<replace #impreg>> <<if ((canGetPregnant($activeSlave)) && ($activeSlave.clothes != "a Fuckdoll suit"))>> - <<if ($PC.dick != 0)>> + <<if ($PC.dick != 0 && $activeSlave.eggType == "human")>> | <<click "Impregnate her yourself">><<replace "#miniscene">><<display "FPCImpreg">><br> <</replace>><<SlaveInteractImpreg>><<SlaveInteractFertility>><</click>> <</if>> | [[Use another slave to impregnate her|FSlaveImpreg]] @@ -325,14 +325,14 @@ %/ <<widget "SlaveInteractFertility">> <<replace #fertilityblock>> -<<if $activeSlave.fuckdoll == 0>> +<<if $activeSlave.fuckdoll == 0 && ($activeSlave.ovaries == 1 || $activeSlave.mpreg == 1)>> <<if ($activeSlave.preg < -1)>> //She is sterile// - <<elseif ($activeSlave.pubertyXX == 0) && (($activeSlave.ovaries > 0) || ($activeSlave.mpreg == 0))>> + <<elseif ($activeSlave.pubertyXX == 0)>> //She is not yet fertile// <<elseif $activeSlave.physicalAge >= 47>> //She is too old to become pregnant// - <<elseif (($activeSlave.preg >= -1) && (($activeSlave.ovaries != 0)) || ($activeSlave.mpreg == 1))>> + <<elseif ($activeSlave.preg >= -1)>> __Contraception__: <span id="fertility"><strong><<if $activeSlave.preg is -1>><<print "using contraceptives">><<elseif $activeSlave.preg == 0>><<print "fertile">><<elseif $activeSlave.preg < 4>><<print "may be pregnant">><<else>><<print $activeSlave.preg>><<print " weeks pregnant">><</if>></strong></span>. <<if ($activeSlave.preg == 0)>> <<click "Use contraceptives">><<set $activeSlave.preg to -1>><<SlaveInteractImpreg>><<SlaveInteractFertility>><</click>> @@ -350,14 +350,14 @@ [[Abort her pregnancy|Abort]] <</if>> <</if>> -<<else>> +<<elseif ($activeSlave.ovaries == 1 || $activeSlave.mpreg == 1)>> <<if ($activeSlave.preg < -1)>> //It is sterile// - <<elseif ($activeSlave.pubertyXX == 0) && (($activeSlave.ovaries > 0) || ($activeSlave.mpreg == 0))>> + <<elseif ($activeSlave.pubertyXX == 0)>> //It is not yet fertile// <<elseif $activeSlave.physicalAge >= 47>> //It is too old to become pregnant// - <<elseif (($activeSlave.preg >= -1) && (($activeSlave.ovaries != 0)) || ($activeSlave.mpreg == 1))>> + <<elseif ($activeSlave.preg >= -1)>> __Contraception__: <span id="fertility"><strong><<if $activeSlave.preg is -1>><<print "using contraceptives">><<elseif $activeSlave.preg == 0>><<print "fertile">><<elseif $activeSlave.preg < 4>><<print "may be pregnant">><<else>><<print $activeSlave.preg>><<print " weeks pregnant">><</if>></strong></span>. <<if ($activeSlave.preg == 0)>> <<click "Use contraceptives">><<set $activeSlave.preg to -1>><<SlaveInteractFertility>><</click>> @@ -874,9 +874,9 @@ <</if>> <<if $schoolsPerfected.length > 0>> <<if $PC.title == 1>> - <<set $schoolTitle to "Benefactor of ">> + <<set $schoolTitle = "Benefactor of ">> <<else>> - <<set $schoolTitle to "Benefactrix of ">> + <<set $schoolTitle = "Benefactrix of ">> <</if>> <<for $i to 0; $i < $schoolsPerfected.length; $i++>> <<set $seed to $schoolsPerfected[$i]>> @@ -894,7 +894,7 @@ <<set $titles.push($schoolTitle)>> <</if>> <<if $schoolsPresent.length > 0>> - <<set $schoolTitle to "Supporter of ">> + <<set $schoolTitle = "Supporter of ">> <<for $i to 0; $i < $schoolsPresent.length; $i++>> <<set $seed to $schoolsPresent[$i]>> <<set $schoolTitle to ($schoolTitle + $seed)>> @@ -1167,464 +1167,199 @@ <</widget>> /% -Call as <<AssistantArt>> -Displays assistant images. Currently passage-based. -$args[0]: Image size/center. - 3: Large, right. Example: description. - 2: Medium, right. Example: random events. -%/ -<<widget "AssistantArt">> - -<<if $imageChoice == 0>> /* RENDERED IMAGES BY SHOKUSHU */ - -<<switch $assistantAppearance>> -<<case "monstergirl">> - <<set _fileName = "'resources/renders/assistant monstergirl.png' ">> -<<case "shemale">> - <<set _fileName = "'resources/renders/assistant shemale.png' ">> -<<case "amazon">> - <<set _fileName = "'resources/renders/assistant amazon.png' ">> -<<case "businesswoman">> - <<set _fileName = "'resources/renders/assistant businesswoman.png' ">> -<<case "goddess">> - <<set _fileName = "'resources/renders/assistant goddess.png' ">> -<<case "schoolgirl">> - <<set _fileName = "'resources/renders/assistant schoolgirl.png' ">> -<<default>> - <<set _fileName = "'resources/renders/assistant default.png' ">> -<</switch>> -<<if $args[1] == 3>> - <<print "<img src=" + _fileName + "style='float:right; border:3px hidden'/>">> -<<else>> - <<print "<img src=" + _fileName + "style='float:right; border:3px hidden' width='300' height='300'/>">> -<</if>> - -<</if>> /* CLOSES IMAGE CHOICE */ - -<</widget>> - -/% -Call as <<SlaveArt>> -Displays slave images. Currently passage-based. -$args[0]: Slave. -$args[1]: Image size/center. - 3: Large, right. Example: long slave description. - 2: Medium, right. Example: random events. - 1: Small, left. Example: lists. - 0: Tiny, left. Example: facilities -$args[2]: icon UI Display for vector art, 1 for on. + Call as <<AddSlave>> + $args[0]: Slave. %/ -<<widget "SlaveArt">> - -<<if $imageChoice == 1>> /* VECTOR ART BY NOX */ - -<<if $args[1] != 0>> /* IMAGE DOES NOT HAVE TO BE TINY */ -<<if ($args[1] != 1) || ($seeSummaryImages != 0)>> /* IMAGE IS NOT PART OF A LIST, OR IMAGES ARE TO BE DISPLAYED IN LISTS */ - -<div class="imageRef"> - -<<set _folderLoc = "'resources/vector">> - -<<if $args[2] == 1 >> - <<print "<object type='image/svg+xml' data=" + _folderLoc + "/test ui.svg'" + "/></object>">> -<</if>> - -/% Set skin colour %/ -<<set _imgSkinLoc = _folderLoc + "/body/">> -<<switch $args[0].skin>> -<<case "light" "white" "fair" "lightened" "extremely pale" "pale">> - <<set _imgSkinLoc = _imgSkinLoc + "white">> -<<case "light brown" "dark">> - <<set _imgSkinLoc = _imgSkinLoc + "brown">> -<<case "brown" "black">> - <<set _imgSkinLoc = _imgSkinLoc + "dark brown">> -<<default>> - <<set _imgSkinLoc = _imgSkinLoc + "tanned">> -<</switch>> - -/% Shoulder width and arm or no arm %/ -<<if $args[0].amp != 1>> -<<if $args[0].fuckdoll == 0>> - <<if $args[0].devotion > 50>> - <<set _leftArmType = "high">> - <<set _rightArmType = "high">> - <<elseif $args[0].trust >= -20>> - <<if $args[0].devotion < -20>> - <<set _leftArmType = "rebel">> - <<set _rightArmType = "low">> - <<elseif $args[0].devotion <= 20>> - <<set _leftArmType = "low">> - <<set _rightArmType = "low">> - <<else>> - <<set _leftArmType = "mid">> - <<set _rightArmType = "high">> - <</if>> - <<else>> - <<set _leftArmType = "mid">> - <<set _rightArmType = "mid">> - <</if>> - <<print "<object type='image/svg+xml' data=" + _imgSkinLoc + "/arm left " + _leftArmType + ".svg'" + "/></object>">> - <<print "<object type='image/svg+xml' data=" + _imgSkinLoc + "/arm right " + _rightArmType + ".svg'" + "/></object>">> -<<else>> - <<set _leftArmType = "mid latex">> - <<set _rightArmType = "mid latex">> - <<print "<object type='image/svg+xml' data=" + _folderLoc + "/outfit/arm left " + _leftArmType + ".svg'" + "/></object>">> - <<print "<object type='image/svg+xml' data=" + _folderLoc + "/outfit/arm right " + _rightArmType + ".svg'" + "/></object>">> -<</if>> -<</if>> - -/% Hair Aft %/ -<<if $args[0].hStyle != "shaved">> -<<if $args[0].fuckdoll == 0>> - <<switch $args[0].hColor>> - <<case "blonde" "golden" "platinum blonde" "strawberry-blonde">> - <<set _hairColor = "blonde">> - <<case "brown" "hazel" "chestnut" "chocolate brown" "auburn" "dark brown">> - <<set _hairColor = "brown">> - <<case "red" "copper" "ginger" "burgundy">> - <<set _hairColor = "red">> - <<case "green">> - <<set _hairColor = "green">> - <<case "blue">> - <<set _hairColor = "blue">> - <<case "pink">> - <<set _hairColor = "pink">> - <<case "black" "grey" "silver" "white">> - <<set _hairColor = "black">> - <<default>> - <<set _hairColor = "black">> - <</switch>> - <<print "<object type='image/svg+xml' data=" + _folderLoc + "/body/addon/hair aft neat " + _hairColor + ".svg'" + "/></object>">> -<</if>> -<</if>> - -/% Butt %/ -<<if $args[0].amp != 1>> -<<if $args[0].butt > 5>> - <<set _buttSize = 3>> -<<elseif $args[0].butt > 4>> - <<set _buttSize = 2>> -<<elseif $args[0].butt > 3>> - <<set _buttSize = 1>> -<<elseif $args[0].butt > 2>> - <<set _buttSize = 0>> -<</if>> -<<if $args[0].fuckdoll != 0 >> - <<set _buttSize = _buttSize + " latex">> -<</if>> -<<print "<object type='image/svg+xml' data=" + _imgSkinLoc + "/butt " + _buttSize + ".svg'" + "/></object>">> -<</if>> - -/% Leg + 1 size up when chubby or fat%/ -<<if $args[0].hips < 0>> - <<if $args[0].weight <= 95>>/%Chubby%/ - <<set _legSize = "normal">> - <<else>> - <<set _legSize = "narrow">> - <</if>> -<<elseif $args[0].hips == 0>> - <<if $args[0].weight <= 95>>/%Chubby%/ - <<set _legSize = "wide">> - <<else>> - <<set _legSize = "normal">> - <</if>> -<<elseif $args[0].hips > 0>> - <<set _legSize = "wide">> -<</if>> -<<if $args[0].amp != 0>> - <<set _legSize = "stump " + _legSize>> -<</if>> -<<if $args[0].fuckdoll != 0 and $args[0].amp != 1>> - <<set _legSize = _legSize + " latex">> - <<print "<object type='image/svg+xml' data=" + _folderLoc + "/outfit/leg " + _legSize + ".svg'" + "/></object>">> -<<else>> - <<print "<object type='image/svg+xml' data=" + _imgSkinLoc + "/leg " + _legSize + ".svg'" + "/></object>">> -<</if>> +<<widget "AddSlave">> -/% Feet %/ -<<if $args[0].amp != 1>> -<<if $args[0].shoes is "heels">> - <<set _shoesType = "heel">> -<<elseif $args[0].shoes is "extreme heels">> - <<if $args[0].weight <= 95>>/%Chubby%/ - <<set _shoesType = "extreme heel wide">> - <<else>> - <<set _shoesType = "extreme heel">> +<<if $args[0].dick > 0>> + <<if $args[0].balls > 0>> + <<if $args[0].devotion <= 50>> + <<if ($args[0].fetish != "buttslut") || ($args[0].fetishKnown != 1)>> + <<if $args[0].sexualFlaw != "hates women">> + <<set $REFeminizationCheckinIDs.push($args[0].ID)>> <</if>> -<<elseif $args[0].shoes is "boots">> - <<if $args[0].weight <= 95>>/%Chubby%/ - <<set _shoesType = "boot wide">> - <<else>> - <<set _shoesType = "boot">> <</if>> -<<elseif $args[0].shoes is "flats">> - <<set _shoesType = "flat">> -<<else>> - <<print "<object type='image/svg+xml' data=" + _imgSkinLoc + "/feet.svg'" + "/></object>">> -<</if>> -<<if $args[0].shoes is "extreme heels" or $args[0].shoes is "boots">> - <<if $args[0].fuckdoll != 0>> - <<set _shoesType = _shoesType + " latex">> <</if>> - <<print "<object type='image/svg+xml' data=" + _folderLoc + "/outfit/" + _shoesType + ".svg'" + "/></object>">> -<</if>> -<<if $args[0].shoes is "heels" or $args[0].shoes is "flats">> - <<if $args[0].fuckdoll != 0>> - <<set _shoesType = _shoesType + " latex">> - <<print "<object type='image/svg+xml' data=" + _folderLoc + "/outfit/" + _shoesType + ".svg'" + "/></object>">> - <<else>> - <<print "<object type='image/svg+xml' data=" + _imgSkinLoc + "/" + _shoesType + ".svg'" + "/></object>">> <</if>> <</if>> -<</if>> -/% Torso %/ -<<if $args[0].waist is 1>>/%Hour glass%/ - <<if $args[0].weight <= 95>>/%Chubby%/ - <<set _torsoSize = "normal">> - <<else>> - <<set _torsoSize = "hourglass">> +<<if $args[0].actualAge > 35>> + <<if $args[0].face < 2>> + <<if $args[0].analSkill <= 30>> + <<set $REMILFCheckinIDs.push($args[0].ID)>> <</if>> -<<elseif $args[0].waist is 2>>/*Unnatural*/ - <<if $args[0].weight <= 95>>/%Chubby%/ - <<set _torsoSize = "hourglass">> - <<else>> - <<set _torsoSize = "unnatural">> <</if>> -<<elseif $args[0].waist is 0>>/*Normal*/ - <<set _torsoSize = "normal">> -<</if>> -<<print "<object type='image/svg+xml' data=" + _imgSkinLoc + "/torso " + _torsoSize + ".svg'" + "/></object>">> -<<if $args[0].fuckdoll != 0>> - <<set _torsoSize = _torsoSize + " latex">> - <<print "<object type='image/svg+xml' data=" + _folderLoc + "/outfit/torso " + _torsoSize + ".svg'" + "/></object>">> <</if>> -/*Navel Piercing*/ -<<if $args[0].navelPiercing >= 1>> - <<print "<object type='image/svg+xml' data=" + _folderLoc + "/body/addon/navel piercing.svg'" + "/></object>">> -<</if>> -<<if $args[0].navelPiercing == 2>> - <<print "<object type='image/svg+xml' data=" + _folderLoc + "/body/addon/navel piercing heavy.svg'" + "/></object>">> -<</if>> - -/% Vagina %/ -<<if $args[0].vagina >= 0>> - <<print "<object type='image/svg+xml' data=" + _imgSkinLoc + "/vagina.svg'" + "/></object>">> - <<if $args[0].clitPiercing == 1>> - <<print "<object type='image/svg+xml' data=" + _folderLoc + "/body/addon/clit piercing.svg'" + "/></object>">> - <<elseif $args[0].clitPiercing == 2>> - <<print "<object type='image/svg+xml' data=" + _folderLoc + "/body/addon/clit piercing heavy.svg'" + "/></object>">> - <<elseif $args[0].clitPiercing == 3>> - <<print "<object type='image/svg+xml' data=" + _folderLoc + "/body/addon/clit piercing smart.svg'" + "/></object>">> - <</if>> - <<if $args[0].vaginaPiercing == 1>> - <<print "<object type='image/svg+xml' data=" + _folderLoc + "/body/addon/pussy piercing.svg'" + "/></object>">> - <<elseif $args[0].vaginaPiercing == 2>> - <<print "<object type='image/svg+xml' data=" + _folderLoc + "/body/addon/pussy piercing heavy.svg'" + "/></object>">> +<<if $args[0].attrXY <= 60>> + <<if $args[0].attrXX > 60>> + <<set $REOrientationCheckinIDs.push($args[0].ID)>> <</if>> <</if>> -/%if pregnant%/ -<<if $args[0].preg > 0>> - <<print "<object type='image/svg+xml' data=" + _imgSkinLoc + "/preg belly.svg'" + "/></object>">> - <<if $args[0].navelPiercing >= 1>>/*Navel Piercing*/ - <<print "<object type='image/svg+xml' data=" + _folderLoc + "/body/addon/preg navel piercing.svg'" + "/></object>">> - <</if>> - <<if $args[0].navelPiercing == 2>> - <<print "<object type='image/svg+xml' data=" + _folderLoc + "/body/addon/preg navel piercing heavy.svg'" + "/></object>">> - <</if>> +<<if $args[0].face < 0>> + <<set $REUglyCheckinIDs.push($args[0].ID)>> <</if>> -/% Head base image %/ -<<if $args[0].fuckdoll != 0>> - <<print "<object type='image/svg+xml' data=" + _folderLoc + "/outfit/head latex.svg'" + "/></object>">> -<<else>> - <<print "<object type='image/svg+xml' data=" +_imgSkinLoc + "/head.svg'" + "/></object>">> -<</if>> - -/% Collar %/ -<<if $args[0].collar is "dildo gag">> - <<print "<object type='image/svg+xml' data=" + _folderLoc + "/outfit/gag.svg'" + "/></object>">> -<</if>> - -/% Glasses %/ -<<if $args[0].eyewear is "corrective glasses" or $args[0].eyewear is "glasses" or $args[0].eyewear is "blurring glasses">> - <<print "<object type='image/svg+xml' data=" + _folderLoc + "/outfit/glasses.svg'" + "/></object>">> -<</if>> - -/% Boob %/ -<<if $args[0].boobs < 100>> - <<set _boobSize = 0>> -<<elseif $args[0].boobs < 400>> - <<set _boobSize = 1>> -<<elseif $args[0].boobs < 800>> - <<set _boobSize = 2>> -<<elseif $args[0].boobs < 1600>> - <<set _boobSize = 3>> -<<elseif $args[0].boobs < 3200>> - <<set _boobSize = 4>> -<<elseif $args[0].boobs < 6400>> - <<set _boobSize = 5>> -<<elseif $args[0].boobs < 12000>> - <<set _boobSize = 6>> -<<else>> - <<set _boobSize = 7>> -<</if>> -<<if $args[0].fuckdoll != 0>> - <<print "<object type='image/svg+xml' data=" + _folderLoc + "/outfit/boob " +_boobSize +" latex.svg'" + "/></object>">> - <<if $args[0].lactation > 0>><<print "<object type='image/svg+xml' data=" + _imgSkinLoc + "/boob " +_boobSize + " areola.svg'" + "/></object>">><</if>> -<<else>> - <<print "<object type='image/svg+xml' data=" + _imgSkinLoc + "/boob " +_boobSize +".svg'" + "/></object>">> - <<print "<object type='image/svg+xml' data=" + _imgSkinLoc + "/boob " +_boobSize + " areola.svg'" + "/></object>">> -<</if>> -<<if$args[0].nipplesPiercing ==1>> - <<print "<object type='image/svg+xml' data=" + _folderLoc + "/body/addon/boob " +_boobSize +" piercing.svg'" + "/></object>">> -<<elseif$args[0].nipplesPiercing ==2>> - <<print "<object type='image/svg+xml' data=" + _folderLoc + "/body/addon/boob " +_boobSize +" piercing heavy.svg'" + "/></object>">> -<</if>> -<<if$args[0].areolaePiercing ==1>> - <<print "<object type='image/svg+xml' data=" + _folderLoc + "/body/addon/boob " +_boobSize +" areola piercing.svg'" + "/></object>">> -<</if>> - -/% Scrotum %/ -<<if $args[0].scrotum > 0>> - <<if $args[0].scrotum >= 6>> - <<set _ballSize = 4>> - <<elseif $args[0].scrotum >= 4>> - <<set _ballSize = 3>> - <<elseif $args[0].scrotum >= 3>> - <<set _ballSize = 2>> - <<elseif $args[0].scrotum >= 2>> - <<set _ballSize = 1>> - <<else>> - <<set _ballSize = 0>> - <</if>> +<<if $args[0].anus < 2>> + <<set $REButtholeCheckinIDs.push($args[0].ID)>> <</if>> -/% Penis %/ -<<if $args[0].dick > 0>> - <<if $args[0].dick >= 8>> - <<set _penisSize = 6>> - <<elseif $args[0].dick >= 7>> - <<set _penisSize = 5>> - <<elseif $args[0].dick >= 6>> - <<set _penisSize = 4>> - <<elseif $args[0].dick >= 5>> - <<set _penisSize = 3>> - <<elseif $args[0].dick >= 4>> - <<set _penisSize = 2>> - <<elseif $args[0].dick >= 2>> - <<set _penisSize = 1>> - <<else>> - <<set _penisSize = 0>> - <</if>> +<<if $args[0].boobs < 800>> + <<set $REReductionCheckinIDs.push($args[0].ID)>> <</if>> -<<if _boobSize <= 5>> -<<if $args[0].vagina > 0>> - <<if $args[0].dick > 0>> - <div class="highPenis"> - <<if $args[0].scrotum > 0>> - <<print "<object type='image/svg+xml' data=" + _imgSkinLoc + "/ball " + _ballSize + ".svg'" + "/></object>">> - <</if>> - <<print "<object type='image/svg+xml' data=" + _imgSkinLoc + "/penis " + _penisSize + ".svg'" + "/></object>">> - </div> - <</if>> -<<else>> - <<if $args[0].dick > 0>> - <div class="lowPenis"> - <<if $args[0].scrotum > 0>> - <<print "<object type='image/svg+xml' data=" + _imgSkinLoc + "/ball " + _ballSize + ".svg'" + "/></object>">> - <</if>> - <<print "<object type='image/svg+xml' data=" + _imgSkinLoc + "/penis " + _penisSize + ".svg'" + "/></object>">> - </div> - <</if>> +<<if $ui != "start">> +<<if $universalRulesNewSlavesRA == 1>> +<<if $autoRulesAssistant != 0>> + <<silently>> + <<display "Check Auto Rules Activate">> + <<display "Default Rules">> + <</silently>> <</if>> <</if>> - -/% clavicle %/ -<<print "<object type='image/svg+xml' data=" + _folderLoc + "/body/addon/clavicle.svg'" + "/></object>">> - -/% Hair Foreground%/ -<<if $args[0].hStyle != "shaved">> -<<if $args[0].fuckdoll == 0 >> -<<print "<object type='image/svg+xml' data=" + _folderLoc + "/body/addon/hair fore neat " + _hairColor + ".svg'" + "/></object>">> -<</if>> <</if>> -</div> +<<set $slaves.push($args[0]), $slavesOriginal.push($args[0]), $genePool.push($args[0])>> -<</if>> -<</if>> /* CLOSES EXEMPTIONS FOR IMAGE SIZES NOT CURRENTLY SUPPORTED BY VECTOR ART */ - -<<else>> /* RENDERED IMAGES BY SHOKUSHU */ +<</widget>> -<<if $args[0].vagina gt -1>> - <<if $args[0].dick gt 0>> - <<if $args[0].balls gt 0>> - <<set _fileName = "futanari">> - <<else>> - <<set _fileName = "herm">> - <</if>> - <<else>> - <<set _fileName = "female">> - <</if>> -<<else>> - <<if $args[0].balls gt 0>> - <<set _fileName = "shemale">> +/% + Call as <<Enunciate>> + $args[0]: Slave. +%/ +<<widget "Enunciate">> + <<if SlaveStatsChecker.checkForLisp($args[0])>> + <<if def $PC.customTitleLisp>><<set $titleEnunciate = $PC.customTitleLisp>><<elseif $PC.title != 0>><<set $titleEnunciate = "Mathter">><<else>><<set $titleEnunciate = "Mithtreth">><</if>> + <<set $sayEnunciate = "lisp">> + <<set $sEnunciate = "th">> + <<set $SEnunciate = "Th">> + <<set $ssEnunciate = "th">> + <<set $cEnunciate = "th">> <<else>> - <<set _fileName = "gelding">> + <<if def $PC.customTitle>><<set $titleEnunciate = $PC.customTitle>><<elseif $PC.title != 0>><<set $titleEnunciate = "Master">><<else>><<set $titleEnunciate = "Mistress">><</if>> + <<set $sayEnunciate = "say">> + <<set $sEnunciate = "s">> + <<set $SEnunciate = "S">> + <<set $ssEnunciate = "ss">> + <<set $cEnunciate = "c">> <</if>> -<</if>> -<<if $args[0].preg gt 10>> - <<set _fileName = "preg " + _fileName>> -<</if>> -<<if $args[0].boobs < 400>> - <<set _fileName = _fileName + " small">> -<<elseif $args[0].boobs < 800>> - <<set _fileName = _fileName + " big">> -<<elseif $args[0].boobs < 6000>> - <<set _fileName = _fileName + " huge">> -<<else>> - <<set _fileName = _fileName + " hyper">> -<</if>> -<<if $args[0].muscles > 30>> - <<set _fileName = _fileName + " muscle">> -<<else>> - <<set _fileName = _fileName + " soft">> -<</if>> -<<if $args[0].fuckdoll > 0>> - <<set _fileName = _fileName + " rebellious">> -<<elseif $args[0].devotion <= 20>> - <<if $args[0].trust < -20>> - <<set _fileName = _fileName + " reluctant">> +<</widget>> +<<widget "Master">>$titleEnunciate<</widget>> +<<widget "say">>$sayEnunciate<</widget>> +<<widget "s">>$sEnunciate<</widget>> +<<widget "S">>$SEnunciate<</widget>> +<<widget "ss">>$ssEnunciate<</widget>> +<<widget "c">>$cEnunciate<</widget>> + +/% + Call as <<SoftenBehavioralFlaw>> + $args[0]: Slave. +%/ +<<widget "SoftenBehavioralFlaw">> + <<switch $args[0].behavioralFlaw>> + <<case "arrogant">> + <<set $args[0].behavioralQuirk = "confident">> + <<case "bitchy">> + <<set $args[0].behavioralQuirk = "cutting">> + <<case "odd">> + <<set $args[0].behavioralQuirk = "funny">> + <<case "hates men">> + <<set $args[0].behavioralQuirk = "adores women">> + <<case "hates women">> + <<set $args[0].behavioralQuirk = "adores men">> + <<case "gluttonous">> + <<set $args[0].behavioralQuirk = "fitness">> + <<case "anorexic">> + <<set $args[0].behavioralQuirk = "insecure">> + <<case "devout">> + <<set $args[0].behavioralQuirk = "sinful">> + <<case "liberated">> + <<set $args[0].behavioralQuirk = "advocate">> + <</switch>> + <<set $activeSlave.behavioralFlaw = "none">> +<</widget>> + +/% + Call as <<SoftenSexualFlaw>> + $args[0]: Slave. +%/ +<<widget "SoftenSexualFlaw">> + <<switch $args[0].sexualFlaw>> + <<case "hates oral">> + <<set $args[0].sexualQuirk = "gagfuck queen">> + <<case "hates anal">> + <<set $args[0].sexualQuirk = "painal queen">> + <<case "hates penetration">> + <<set $args[0].sexualQuirk = "strugglefuck queen">> + <<case "shamefast">> + <<set $args[0].sexualQuirk = "tease">> + <<case "idealistic">> + <<set $args[0].sexualQuirk = "romantic">> + <<case "repressed">> + <<set $args[0].sexualQuirk = "perverted">> + <<case "apathetic">> + <<set $args[0].sexualQuirk = "caring">> + <<case "crude">> + <<set $args[0].sexualQuirk = "unflinching">> + <<case "judgemental">> + <<set $args[0].sexualQuirk = "size queen">> + <</switch>> + <<set $args[0].sexualFlaw = "none">> +<</widget>> + +/% + Call as <<EventFetish>> + $args[0]: Slave. + $args[1]: Fetish. +%/ +<<widget "EventFetish">> + +<<if $args[0].fetish == $args[1]>> +This experience +<<if $$args[0].fetishKnown == 1>> + <<if $$args[0].fetishStrength > 95>> + @@color:lightsalmon;<<switch $args[0].fetish>> + <<case "submissive">>deepens her sexual need to submit. + <<case "cumslut">>increases her appetite for oral sex. + <<case "humiliation">>makes her even more eager to be humiliated. + <<case "buttslut">>encourages her to focus on anal sex. + <<case "boobs">>focuses her sexuality on her breasts and nipples. + <<case "sadist">>titillates the sadistic part of her. + <<case "masochist">>helps conflate pain and sexual pleasure for her. + <<case "dom">>strengthens her desire to top other slaves. + <<case "pregnancy">>further confuses lust and pregnancy in her mind. + <<default>>ERROR: bad fetish + <</switch>>@@ + <<set $$args[0].fetishStrength += 10>> <<else>> - <<set _fileName = _fileName + " rebellious">> + is @@color:hotpink;especially enjoyable for her,@@ since + <<switch $args[0].fetish>> + <<case "submissive">>she's an utterly submissive little slut. + <<case "cumslut">>her <<if $$args[0].vagina > -1>>clit<<else>>frenulum<</if>> might as well be located in her throat. + <<case "humiliation">>she has a hopeless need to be humiliated and degraded. + <<case "buttslut">>she's completely in love with having her ass fucked. + <<case "boobs">>she loves breast play more than any other kind of sex. + <<case "sadist">>nothing is as titillating to her as another slave's pain can be. + <<case "masochist">>she loves pain more than she likes pleasure. + <<case "dom">>she lives for the times she's allowed to fuck someone. + <<case "pregnancy">>all her deepest sexual desires involve <<if $$args[0].vagina > -1>>pregnancy<<else>>impregnation<</if>>. + <<default>>ERROR: bad fetish + <</switch>> + <<set $$args[0].devotion += 3>> <</if>> -<<elseif $args[0].fetish == "mindbroken">> - <<set _fileName = _fileName + " reluctant">> -<<elseif $args[0].devotion <= 50 || $args[0].fetishKnown != 1 || ($seeMainFetishes == 0 && $args[1] < 2)>> - <<set _fileName = _fileName + " obedient">> <<else>> - <<if $args[0].fetish == "none">> - <<set _fileName = _fileName + " obedient">> - <<else>> - <<set _fileName = _fileName + " " + $args[0].fetish>> - <</if>> + was surprisingly appealing for her, revealing that she's a + @@color:lightsalmon;<<switch $args[0].fetish>> + <<case "submissive">>sexual submissive! + <<case "humiliation">>humiliation slut! + <<case "boobs">>slut for breast play! + <<case "pregnancy">>pregslut! + <<default>>$args[0]! + <</switch>>@@ + <<set $$args[0].fetishKnown = 1>> <</if>> - -<<set _fileName = "'resources/renders/" + _fileName + ".png' ">> -<<if $args[1] == 3>> - <<print "<img src=" + _fileName + "style='float:right; border:3px hidden'/>">> -<<elseif $args[1] == 2>> - <<print "<img src=" + _fileName + "style='float:right; border:3px hidden' width='300' height='300'/>">> -<<elseif $args[1] == 1>> - <<if $seeSummaryImages != 0>><<print "<img src=" + _fileName + "style='float:left; border:3px hidden' width='150' height='150'/>">><</if>> -<<else>> - <<print "<img src=" + _fileName + "style='float:left; border:3px hidden' width='120' height='120'/>">> <</if>> -<</if>> /* CLOSES IMAGE CHOICE */ - <</widget>> \ No newline at end of file diff --git a/src/utility/raWidgets.tw b/src/utility/raWidgets.tw index 0e495b194c855b051e66a093a24dc7da3a9b9a76..74ee9aae40ee6c4c82957d648afdfe48588e1288 100644 --- a/src/utility/raWidgets.tw +++ b/src/utility/raWidgets.tw @@ -2886,23 +2886,6 @@ Your brand design is ''$brandDesign.'' <</replace>> <</widget>> - -/% - Call as <<AutoRulesActivate 1>> -$args[0] is whether silent or not -%/ -<<widget "AutoRulesActivate">> - <<if ($args[0] == 0)>> - <<display "Check Auto Rules Activate">> - <<display "Default Rules">> - <<else>> - <<silently>> - <<display "Check Auto Rules Activate">> - <<display "Default Rules">> - <</silently>> - <</if>> -<</widget>> - /% Call as <<RARemoveRule>> %/ diff --git a/src/utility/slaveCreationWidgets.tw b/src/utility/slaveCreationWidgets.tw index 02a91ded05c3d04360ff8aa2c6fe18689c3d0f5a..7e6a6ec3c707b2275a778609253200be71782b96 100644 --- a/src/utility/slaveCreationWidgets.tw +++ b/src/utility/slaveCreationWidgets.tw @@ -667,8 +667,10 @@ two free levels of @@color:cyan;sex skills@@, one free level of @@color:cyan;prostitution skill@@, and one free level of @@color:cyan;entertainment skill.@@ <<elseif $PC.career is "servant">> @@color:mediumaquamarine;+1 trust@@ and @@color:hotpink;+1 devotion.@@ - <<else>> + <<elseif $PC.career is "wealth">> two free levels of @@color:cyan;sex skills.@@ + <<else>> + @@color:hotpink;+10 devotion,@@ one free level of @@color:cyan;prostitution skill@@ and @@color:cyan;entertainment skill,@@ and two free levels of @@color:cyan;sex skills.@@ <</if>>// <br> <<click "Add slave without career bonus">> @@ -708,7 +710,7 @@ <<else>> //You lack the necessary funds to add this slave.// <</if>> -<br> [[Discard this slave and continue to the arcology|Acquisition]] +<br> [[Discard this slave and continue|Acquisition]] <</replace>> <</widget>>