diff --git a/src/events/intro/introSummary.tw b/src/events/intro/introSummary.tw index 83524f44018588c5b00c6379343d473c8dcc617e..cd091e42dc4b89e2f45d90802ea641b8cd295ffe 100644 --- a/src/events/intro/introSummary.tw +++ b/src/events/intro/introSummary.tw @@ -22,39 +22,35 @@ You may review your settings before clicking "Continue" to begin. <</if>> __''World Settings''__ -<br>Economic climate: +<br> <<set $localEcon = $economy>> -<<if $economy > 125>> - ''not truly dire. Not yet.'' //Very Easy// - <br>[[Harder|Intro Summary][$economy = 125]] -<<elseif $economy > 100>> - ''getting a touch dire.'' //Easy// - <br>[[Harder|Intro Summary][$economy = 100]] | [[Easier|Intro Summary][$economy = 200]] -<<elseif $economy > 80>> - ''serious risks.'' //Default Difficulty// - <br>[[Harder|Intro Summary][$economy = 80]] | [[Easier|Intro Summary][$economy = 125]] -<<elseif $economy > 67>> - ''ugly.'' //Hard// - <br>[[Harder|Intro Summary][$economy = 67]] | [[Easier|Intro Summary][$economy = 100]] -<<else>> - ''this is the last dance.'' //Very Hard// - <br>[[Easier|Intro Summary][$economy = 80]] -<</if>> +<<options $economy>> + Economic climate: + <<option 200 "Very Easy">> + ''not truly dire. Not yet.'' //Very Easy// + <<option 125 "Easy">> + ''getting a touch dire.'' //Easy// + <<option 100 "Default Difficulty">> + ''serious risks.'' //Default Difficulty// + <<option 80 "Hard">> + ''ugly.'' //Hard// + <<option 67 "Hard">> + ''this is the last dance.'' //Very Hard// +<</options>> <<if $difficultySwitch == 1>><<set $econAdvantage = -2>><</if>> -<br>Economic forecast: -<<if $difficultySwitch == 0>> - ''no change.'' //Vanilla -- Some economic content requires this to be set to harder than vanilla// - <br>[[Harder|Intro Summary][$difficultySwitch = 1, $econRate = 1]] -<<elseif $econRate == 1>> - ''slow decline''. //Easy// - <br>[[Harder|Intro Summary][$econRate = 2]] | [[Easier|Intro Summary][$difficultySwitch = 0]] -<<elseif $econRate == 2>> - ''noticeable deterioration'' //Default Difficulty// - <br>[[Harder|Intro Summary][$econRate = 4]] | [[Easier|Intro Summary][$econRate = 1]] -<<else>> - ''going to hell in a handbasket''. //Hard// - <br>[[Easier|Intro Summary][$econRate = 2]] -<</if>> +<<if $difficultySwitch == 0>><<set $econRate = 0>><</if>> +<br> +<<options $econRate>> +Economic forecast: + <<option 0 "Vanilla" "$difficultySwitch = 0">> + ''no change.'' //Vanilla -- Some economic content requires this to be set to harder than vanilla// + <<option 1 "Easy" "$difficultySwitch = 1">> + ''slow decline''. //Easy// + <<option 2 "Default" "$difficultySwitch = 1">> + ''noticeable deterioration'' //Default Difficulty// + <<option 4 "Hard" "$difficultySwitch = 1">> + ''going to hell in a handbasket''. //Hard// +<</options>> /* Not functional yet <br> All the things you need to run your arcology are getting more expensive @@ -84,7 +80,12 @@ __''World Settings''__ <br> <<if ndef $customVariety>> -You are using standardized slave trading channels. [[Customize the slave trade|Customize Slave Trade][$customVariety = 1, $customWA = 0]] +<<options>> + You are using standardized slave trading channels. + <<option>> + [[Customize the slave trade...|Customize Slave Trade][$customVariety = 1, +$customWA = 0]] +<</options>> <br> <<options $internationalTrade>> <<option 0 "Restrict the trade to continental">> @@ -96,10 +97,11 @@ You are using standardized slave trading channels. [[Customize the slave trade|C <<if $internationalTrade == 1>> <<options $internationalVariety>> - <<option 0 "Semi-realistic national variety">> - International slave variety is ''semi-realistic,'' so more populous nations will be more common. - <<option 1 "Normalized national variety">> - International slave variety is ''normalized,'' so small nations will appear nearly as much as large ones. + International slave variety is + <<option 0 "Semi-realistic national variety">> + ''semi-realistic,'' so more populous nations will be more common. + <<option 1 "Normalized national variety">> + ''normalized,'' so small nations will appear nearly as much as large ones. <</options>> <</if>> <br> @@ -284,7 +286,11 @@ __''Slave age settings''__ /% Either out of range or not a number. %/ <<set $minimumSlaveAge = 18>> <</if>> -Girls appearing in the game will be no younger than <<textbox "$minimumSlaveAge" $minimumSlaveAge "Intro Summary">> +<<options>> + Girls appearing in the game will be no younger than: + <<option>> + <<textbox "$minimumSlaveAge" $minimumSlaveAge "Intro Summary">> +<</options>> <br> <<options $extremeUnderage>> @@ -302,8 +308,13 @@ Girls appearing in the game will be no younger than <<textbox "$minimumSlaveAge" /% Either out of range or not a number. %/ <<set $retirementAge = 45>> <</if>> -Initial retirement age will be at <<textbox "$retirementAge" $retirementAge "Intro Summary">> //May cause issues with New Game and initial slaves if set below 45.// - +<<options>> + Initial retirement age will be at: + <<option>> + <<textbox "$retirementAge" $retirementAge "Intro Summary">> + <<comment>> + May cause issues with New Game and initial slaves if set below 45. +<</options>> <br> <<options $pedo_mode>> <<option 0 "Normal mode">> @@ -321,7 +332,11 @@ Initial retirement age will be at <<textbox "$retirementAge" $retirementAge "Int /% Either out of range or not a number. %/ <<set $fertilityAge = 18>> <</if>> -Girls will not be able to become pregnant if their age is under <<textbox "$fertilityAge" $fertilityAge "Intro Summary">> +<<options>> + Girls will not be able to become pregnant if their age is under: + <<option>> + <<textbox "$fertilityAge" $fertilityAge "Intro Summary">> +<</options>> <br> <<if $potencyAge < 3>> @@ -332,7 +347,11 @@ Girls will not be able to become pregnant if their age is under <<textbox "$fert /% Either out of range or not a number. %/ <<set $potencyAge = 18>> <</if>> -Girls will not be able to impregnate others if their age is under <<textbox "$potencyAge" $potencyAge "Intro Summary">> +<<options>> + Girls will not be able to impregnate others if their age is under: + <<option>> + <<textbox "$potencyAge" $potencyAge "Intro Summary">> +<</options>> <br> <<options $precociousPuberty>> @@ -466,60 +485,69 @@ Should you be able to surgically attach a penis to your female slaves and starti <br><br> __''The Free City''__ <br> -The Free City features ''$neighboringArcologies'' arcologies in addition to your own. -<<textbox "$neighboringArcologies" $neighboringArcologies "Intro Summary">> -<br> -//Setting this to 0 will disable most content involving the rest of the Free City.// +<<options>> + The Free City features ''$neighboringArcologies'' arcologies in addition to your own. + <<option>> + <<textbox "$neighboringArcologies" $neighboringArcologies "Intro Summary">> + <<comment>> + Setting this to 0 will disable most content involving the rest of the Free + City. +<</options>> <<if $targetArcology.type == "New">> <br> - The Free City is located on ''$terrain'' terrain. - [[Urban|Intro Summary][$terrain = "urban"]] | - [[Rural|Intro Summary][$terrain = "rural"]] | - [[Ravine|Intro Summary][$terrain = "ravine"]] | - [[Marine|Intro Summary][$terrain = "marine"]] | - [[Oceanic|Intro Summary][$terrain = "oceanic"]] + <<options $terrain>> + The Free City is located on ''$terrain'' terrain. + <<option "urban" "Urban">> + <<option "rural" "Rural">> + <<option "ravine" "Ravine">> + <<option "marine" "Marine">> + <<option "oceanic" "Oceanic">> + <</options>> <<if $terrain != "oceanic">> <br> - The Free City is located in ''$continent''. - [[North America|Intro Summary][$continent = "North America", $language = "English"]] | [[South America|Intro Summary][$continent = "South America", $language = "Spanish"]] | [[Brazil|Intro Summary][$continent = "Brazil", $language = "Portuguese"]] | [[Europe|Intro Summary][$continent = "Europe", $language = "English"]] | [[the Middle East|Intro Summary][$continent = "the Middle East", $language = "Arabic"]] | [[Africa|Intro Summary][$continent = "Africa", $language = "Arabic"]] | [[Asia|Intro Summary][$continent = "Asia", $language = "Chinese"]] | [[Australia|Intro Summary][$continent = "Australia", $language = "English"]] | <<if $freshPC == 1 || $saveImported == 0>> - [[Japan|Intro Summary][$continent = "Japan", $language = "Japanese", $PC.race = "asian", $PC.nationality = "Japanese", $PC.hColor = "black", $PC.eyeColor = "brown"]] + <<options $continent>> + The Free City is located in ''$continent''. + <<option "North America" "North America" "$language = 'English'">> + <<option "South America" "South America" "$language = 'Spanish'">> + <<option "Brazil" "Brazil" "$language = 'Portuguese'">> + <<option "Europe" "Europe" "$language = 'English'">> + <<option "the Middle East" "the Middle East" "$language = 'Arabic'">> + <<option "Africa" "Africa" "$language = 'Arabic'">> + <<option "Asia" "Asia" "$language = 'Chinese'">> + <<option "Australia" "Australia" "$language = 'English'">> + <<option "Japan" "Japan" "$language = 'Japanese', $PC.race = 'asian', $PC.nationality = 'Japanese', $PC.hColor = 'black', $PC.eyeColor = 'brown'">> + <</options>> <<else>> - [[Japan|Intro Summary][$continent = "Japan", $language = "Japanese"]] + <<options $continent>> + The Free City is located in ''$continent''. + <<option "North America" "North America" "$language = 'English'">> + <<option "South America" "South America" "$language = 'Spanish'">> + <<option "Brazil" "Brazil" "$language = 'Portuguese'">> + <<option "Europe" "Europe" "$language = 'English'">> + <<option "the Middle East" "the Middle East" "$language = 'Arabic'">> + <<option "Africa" "Africa" "$language = 'Arabic'">> + <<option "Asia" "Asia" "$language = 'Chinese'">> + <<option "Australia" "Australia" "$language = 'English'">> + <<option "Japan" "Japan" "$language = 'Japanese'">> + <</options>> <</if>> <</if>> <</if>> - +<br> <<if !["ArabianRevivalist", "AztecRevivalist", "ChineseRevivalist", "EdoRevivalist", "EgyptianRevivalist", "RomanRevivalist"].includes($targetArcology.type)>> + <<options $language>> + The lingua franca of your arcology is: + <<option "English" "English">> + <<option "Spanish" "Spanish">> + <<option "Arabic" "Arabic">> + <<option>> + <<textbox "$language" $language "Intro Summary">> + <</options>> <br> - The lingua franca of your arcology is <<textbox "$language" $language "Intro Summary">>. - <<if $language != "English">> - [[English|Intro Summary][$language = "English"]] | - <<else>> - English | - <</if>> - <<if $language != "Spanish">> - [[Spanish|Intro Summary][$language = "Spanish"]] | - <<else>> - Spanish | - <</if>> - <<if $language != "Arabic">> - [[Arabic|Intro Summary][$language = "Arabic"]] | - <<else>> - Arabic | - <</if>> - <<if $language != "Chinese">> - [[Chinese|Intro Summary][$language = "Chinese"]] - <<else>> - Chinese - <</if>> <</if>> -<br> -The Free City could develop as many as ''$FSCreditCount'' future societies. -<<textbox "$FSCreditCount" $FSCreditCount "Intro Summary">> -<br> <<if $FSCreditCount >= 7>> <<set $FSCreditCountString = "seven">> <<elseif $FSCreditCount == 6>> @@ -529,9 +557,17 @@ The Free City could develop as many as ''$FSCreditCount'' future societies. <<elseif $FSCreditCount <= 4>> <<set $FSCreditCountString = "four">> <</if>> -//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// + +<<options $FSCreditCount>> + The Free City could develop as many as ''$FSCreditCount'' future societies. + <<option>> + <<textbox "$FSCreditCount" $FSCreditCount "Intro Summary">> + <<comment>> + <br> + 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 +<</options>> <br><br> __''Player Character''__ @@ -545,111 +581,149 @@ __''Player Character''__ <</if>> <</if>> - <br>You are a $PCCreationSex. - <br>Change to - <<if $PCCreationSex != "masculine ''Master''">> - [[masculine Master|Intro Summary][$PC.title = 1, $PC.genes = "XY", $PCCreationSex = "masculine ''Master''"]] - <<elseif $PCCreationSex != "feminine ''Mistress''">> - [[feminine Mistress|Intro Summary][$PC.title = 0, $PC.genes = "XX", $PCCreationSex = "feminine ''Mistress''"]] - <</if>> + <br> + <<options $PC.title>> + You are a $PCCreationSex. Change to: + <<option 1 "masculine Master" "$PC.genes = 'XY', $PCCreationSex = \"masculine ''Master''\"">> + <<option 0 "feminine Mistress" "$PC.genes = 'XX', $PCCreationSex = \"feminine ''Mistress''\"">> + <</options>> - <br>Everyone calls you ''<<= PlayerName()>>.'' <br> - With ''<<textbox "$PC.name" $PC.name>>'' as your given name and + Everyone calls you ''<<= PlayerName()>>.'' + <br> + <<options>> + With your given name as: + <<option>> + <<textbox "$PC.name" $PC.name>> + <</options>> + <br> <<if $PC.surname == 0>> - no surname. - <<link "Add a surname">> - <<set $PC.surname = "Anon">> - <<goto "Intro Summary">> - <</link>> //Surnames cannot be changed during the game outside of special circumstances.// + <<options $PC.surname>> + And no surname. + <<option "Anon" "Add a surname">> + <<comment>> + Surnames cannot be changed during the game outside of special circumstances. + <</options>> <<else>> - ''<<textbox "$PC.surname" $PC.surname>>'' as your surname. - <<link "Go by a single name">> - <<set $PC.surname = 0, $PC.surname = "">> - <<goto "Intro Summary">> - <</link>> + <<options $PC.surname>> + And your surname is: + <<option>> + <<textbox "$PC.surname" $PC.surname>> + <<option 0 "Go by a single name">> + <</options>> <</if>> - <br> - You are <<textbox "$PC.actualAge" $PC.actualAge "Intro Summary">> years old which is - <<if $PC.actualAge >= 65>> - ''old''. - <<elseif $PC.actualAge >= 50>> - ''well into middle age''. - <<elseif $PC.actualAge >= 35>> - ''entering middle age''. - <<else>> - ''surprisingly young''. - <</if>> <<set $PC.physicalAge = $PC.actualAge, $PC.visualAge = $PC.actualAge>> - - Your birthday was <<textbox "$PC.birthWeek" $PC.birthWeek "Intro Summary">> weeks ago. - - <<if $playerAging == 2>> - and you ''age naturally''. - [[Disable aging|Intro Summary][$playerAging = 0]] | - [[Semi aging|Intro Summary][$playerAging = 1]] - <<elseif $playerAging == 1>> - and you ''will'' celebrate birthdays, but ''not age''. - [[Enable aging fully|Intro Summary][$playerAging = 2]] | - [[Disable aging|Intro Summary][$playerAging = 0]] + <<options>> + You are ''$PC.actualAge'' years old which is + <<if $PC.actualAge >= 65>> + ''old''. + <<elseif $PC.actualAge >= 50>> + ''well into middle age''. + <<elseif $PC.actualAge >= 35>> + ''entering middle age''. + <<else>> + ''surprisingly young''. + <</if>> + <<option>> + <<textbox "$PC.actualAge" $PC.actualAge "Intro Summary">> + <</options>> + <br> + <<options>> + Your birthday was ''$PC.birthWeek'' weeks ago. + <<option>> + <<textbox "$PC.birthWeek" $PC.birthWeek "Intro Summary">> + <</options>> + <br> + <<options $playerAging>> + <<option 2 "Enable aging">> + and you ''age naturally''. + <<option 1 "Semi aging">> + and you ''will'' celebrate birthdays, but ''not age''. + <<option 0 "Disable aging">> + and you will ''not age,'' nor experience birthdays. + <<comment>> + This option cannot be changed during the game + <</options>> + <br> + <<if def $PC.customTitle>> + <<options>> + Your custom title is: + <<option>> + <<textbox "$PC.customTitle" $PC.customTitle "Intro Summary">> + <</options>> + <br> + <<options>> + and when lisped it is: + <<option>> + <<textbox "$PC.customTitleLisp" $PC.customTitleLisp "Intro Summary">> + <<custom>> + 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. + <</options>> <<else>> - and you will ''not age,'' nor experience birthdays. - [[Enable aging|Intro Summary][$playerAging = 2]] | - [[Semi aging|Intro Summary][$playerAging = 1]] + <<options $PC.customTitle>> + You have no custom title: + <<option "Master" "Set custom title" "$PC.customTitleLisp = 'Mather'">> + <<custom>> + 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. + <</options>> <</if>> - //This option cannot be changed during the game// - <br> - Your custom title is ''<<textbox "$PC.customTitle" $PC.customTitle "Intro Summary">>'' - and when lisped it is ''<<textbox "$PC.customTitleLisp" $PC.customTitleLisp "Intro Summary">>''. - - //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.// - + <<options>> + Your nationality is: + <<option>> + <<textbox "$PC.nationality" $PC.nationality "Intro Summary">> + <<comment>> + Capitalize it + <</options>> <br> - Your nationality (//Capitalize it//) is <<textbox "$PC.nationality" $PC.nationality "Intro Summary">>, - race is <<textbox "$PC.race" $PC.race "Intro Summary">> - and skin tone is <<textbox "$PC.skin" $PC.skin "Intro Summary">>. - -<br>__Race:__ - [[White|Intro Summary][$PC.race = "white"]] | - [[Asian|Intro Summary][$PC.race = "asian"]] | - [[Latina|Intro Summary][$PC.race = "latina"]] | - [[Middle Eastern|Intro Summary][$PC.race = "middle eastern"]] | - [[Black|Intro Summary][$PC.race = "black"]] | - [[Semitic|Intro Summary][$PC.race = "semitic"]] | - [[Southern European|Intro Summary][$PC.race = "southern european"]] | - [[Indo-Aryan|Intro Summary][$PC.race = "indo-aryan"]] | - [[Amerindian|Intro Summary][$PC.race = "amerindian"]] | - [[Pacific Islander|Intro Summary][$PC.race = "pacific islander"]] | - [[Malay|Intro Summary][$PC.race = "malay"]] | - [[Mixed Race|Intro Summary][$PC.race = "mixed race"]] - -<br>__Skin tone:__ - [[Pure White|Intro Summary][$PC.skin = "pure white"]] | - [[Extremely Pale|Intro Summary][$PC.skin = "extremely pale"]] | - [[Pale|Intro Summary][$PC.skin = "pale"]] | - [[Extremely Fair|Intro Summary][$PC.skin = "extremely fair"]] | - [[Very Fair|Intro Summary][$PC.skin = "very fair"]] | - [[Fair|Intro Summary][$PC.skin = "fair"]] | - [[White|Intro Summary][$PC.skin = "white"]] | - [[Light|Intro Summary][$PC.skin = "light"]] | - [[Lightened|Intro Summary][$PC.skin = "lightened"]] | - [[Light Olive|Intro Summary][$PC.skin = "light olive"]] | - [[Olive|Intro Summary][$PC.skin = "olive"]] | - [[Natural|Intro Summary][$PC.skin = "natural"]] | - [[Tanned|Intro Summary][$PC.skin = "tanned"]] | - [[Bronzed|Intro Summary][$PC.skin = "bronzed"]] | - [[Dark Olive|Intro Summary][$PC.skin = "dark olive"]] | - [[Dark|Intro Summary][$PC.skin = "dark"]] | - [[Light Brown|Intro Summary][$PC.skin = "light brown"]] | - [[Brown|Intro Summary][$PC.skin = "brown"]] | - [[Dark Brown|Intro Summary][$PC.skin = "dark brown"]] | - [[Black|Intro Summary][$PC.skin = "black"]] | - [[Ebony|Intro Summary][$PC.skin = "ebony"]] | - [[Pure Black|Intro Summary][$PC.skin = "pure black"]] - + <<options $PC.race>> + Your race is: + <<option "white" "White">> + <<option "asian" "Asian">> + <<option "latina" "Latina">> + <<option "middle eastern" "Middle Eastern">> + <<option "black" "Black">> + <<option "semitic" "Semitic">> + <<option "southern european" "Southern European">> + <<option "indo-aryan" "Indo-Aryan">> + <<option "amerindian" "Amerindian">> + <<option "pacific islander" "Pacific Islander">> + <<option "malay" "Malay">> + <<option "mixed race" "Mixed Race">> + <<option>> + <<textbox "$PC.race" $PC.race "Intro Summary">> + <</options>> + <br> + <<options $PC.skin>> + Your skin tone is: + <<option "pure white" "Pure White" >> + <<option "extremely pale" "Extremely Pale" >> + <<option "pale" "Pale" >> + <<option "extremely fair" "Extremely Fair" >> + <<option "very fair" "Very Fair" >> + <<option "fair" "Fair" >> + <<option "white" "White" >> + <<option "light" "Light" >> + <<option "lightened" "Lightened" >> + <<option "light olive" "Light Olive" >> + <<option "olive" "Olive" >> + <<option "natural" "Natural" >> + <<option "tanned" "Tanned" >> + <<option "bronzed" "Bronzed" >> + <<option "dark olive" "Dark Olive" >> + <<option "dark" "Dark" >> + <<option "light brown" "Light Brown" >> + <<option "brown" "Brown" >> + <<option "dark brown" "Dark Brown" >> + <<option "black" "Black" >> + <<option "ebony" "Ebony" >> + <<option "pure black" "Pure Black" >> + <<option>> + <<textbox "$PC.skin" $PC.skin "Intro Summary">> + <</options>> <br> <<options $PC.markings>> <<option "none" "None">> @@ -660,10 +734,18 @@ __''Player Character''__ Your body ''has heavy freckling''. <</options>> - <br>Your eyes are <<textbox "$PC.eyeColor" $PC.eyeColor "Intro Summary">> - - and hair is <<textbox "$PC.hColor" $PC.hColor "Intro Summary">>. - + <br> + <<options>> + Your eyes are: + <<option>> + <<textbox "$PC.eyeColor" $PC.eyeColor "Intro Summary">> + <</options>> + <br> + <<options>> + Your hair is: + <<option>> + <<textbox "$PC.hColor" $PC.hColor "Intro Summary">> + <</options>> <br> <<options $PC.faceShape>> <<option "normal" "Normal">> @@ -680,13 +762,33 @@ __''Player Character''__ Your face is ''exotic''. <</options>> <br> - Your preferred refreshment is <<textbox "$PC.refreshment" $PC.refreshment "Intro Summary">> [[Cigars|Intro Summary][$PC.refreshment = "cigar",$PC.refreshmentType = 0]] | [[Whiskey|Intro Summary][$PC.refreshment = "whiskey",$PC.refreshmentType = 1]] - - and you consume it by ''<<if $PC.refreshmentType == 0>>Smoking<<elseif $PC.refreshmentType == 1>>Drink<<elseif $PC.refreshmentType == 2>>Eating<<elseif $PC.refreshmentType == 3>>Snorting<<elseif $PC.refreshmentType == 4>>Injection<<elseif $PC.refreshmentType == 5>>Popping<<else>>Orally Dissolving<</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]] | [[Popped|Intro Summary][$PC.refreshmentType = 5]] | [[Orally Dissolved|Intro Summary][$PC.refreshmentType = 6]] - + <<options $PC.refreshment>> + Your preferred refreshment is: + <<option "cigar" "Cigars" "$PC.refreshmentType = 0">> + <<option "whiskey" "Whiskey" "$PC.refreshmentType = 1">> + <<option>> + <<textbox "$PC.refreshment" $PC.refreshment "Intro Summary">> + <</options>> + <br> + <<options $PC.refreshmentType>> + Which you + <<option 0 "Smoke">> + smoke + <<option 1 "Drink">> + eat + <<option 2 "Eat">> + eat + <<option 3 "Snort">> + snort + <<option 4 "Inject">> + inject + <<option 5 "Pop">> + pop + <<option 6 "Orally Disolve">> + orally disolve + <</options>> <br> - <<if $PC.refreshmentType == 0>>//"Smoked" must fit into the following sentence: "I smoked a $PC.refreshment" to fit events properly + <<if ($PC.refreshmentType == 0) && ($PC.refreshmentType != 0) >>//"Smoked" must fit into the following sentence: "I smoked a $PC.refreshment" to fit events properly <<elseif $PC.refreshmentType == 5>>//"Popped" must fit into the following sentence: "I shook the bottle of $PC.refreshment" to fit events properly <<elseif $PC.refreshmentType == 6>>//"Orally Dissolved" must fit into the following sentence: "I placed a tab of $PC.refreshment under my tongue" to fit events properly <</if>> @@ -716,81 +818,108 @@ __''Player Character''__ <<set _PCCreationCareer = "a member of the idle wealthy">> <</switch>> <br> - Before you came to the Free Cities, you were ''_PCCreationCareer'' and it is rumored that you acquired your arcology through ''$PC.rumor''. - - <br>__Past career:__ - <<if $PC.career != "arcology owner">> - [[member of the idle wealthy|Intro Summary][$PC.career = "wealth"]] | - [[business leader|Intro Summary][$PC.career = "capitalist"]] | - [[mercenary|Intro Summary][$PC.career = "mercenary"]] | - [[slaver|Intro Summary][$PC.career = "slaver"]] | - [[engineer|Intro Summary][$PC.career = "engineer"]] | - [[doctor|Intro Summary][$PC.career = "medicine"]] | - [[hacker|Intro Summary][$PC.career = "BlackHat"]] | - [[minor celebrity|Intro Summary][$PC.career = "celebrity"]] | - [[escort|Intro Summary][$PC.career = "escort"]] | - [[servant|Intro Summary][$PC.career = "servant"]] | - [[gang leader|Intro Summary][$PC.career = "gang"]] + <<if $PC.career == "arcology owner">> + Before you came to the Free Cities, you were ''_PCCreationCareer'' + <<else>> + <<options $PC.career>> + Before you came to the Free Cities, you were ''_PCCreationCareer'': + <<option "wealth" "member of the idle wealthy">> + <<option "capitalist" "business leader">> + <<option "mercenary" "mercenary">> + <<option "slaver" "slaver">> + <<option "engineer" "engineer">> + <<option "medicine" "doctor">> + <<option "BlackHat" "hacker">> + <<option "celebrity" "minor celebrity">> + <<option "escort" "escort">> + <<option "servant" "servant">> + <<option "gang" "gang leader">> + <</options>> <</if>> - - <br>__rumor:__ - [[wealth|Intro Summary][$PC.rumor = "wealth"]] | - [[hard work|Intro Summary][$PC.rumor = "diligence"]] | - [[force|Intro Summary][$PC.rumor = "force"]] | - [[social engineering|Intro Summary][$PC.rumor = "social engineering"]] | - [[blind luck|Intro Summary][$PC.rumor = "luck"]] - <br> - You have a + <<options $PC.rumor>> + It is rumored that you acquired your arcology through ''$PC.rumor'': + <<option "wealth" "wealth">> + <<option "diligence" "hard work">> + <<option "force" "force">> + <<option "social engineering" "social engineering">> + <<option "luck" "blind luck">> + <</options>> + <br> + <<if $PC.vagina == 1 && $PC.dick == 1>> - ''penis and vagina''. Sex scene variations; more difficult reputation maintenance; some unique opportunities, especially with breasts. - [[No penis|Intro Summary][$PC.dick = 0]] | [[No vagina|Intro Summary][$PC.vagina = 0, $PC.preg = 0, $PC.pregType = 0]] - <<elseif $PC.dick == 1>> - ''penis''. Standard sex scenes; easiest reputation maintenance. - [[Switch to vagina|Intro Summary][$PC.dick = 0, $PC.vagina = 1]] | [[Add a vagina|Intro Summary][$PC.vagina = 1]] + <<set _vagina_penis = 2>> <<elseif $PC.vagina == 1>> - ''vagina''. Sex scene variations; most difficult reputation maintenance. - [[Switch to penis|Intro Summary][$PC.dick = 1, $PC.vagina = 0, $PC.preg = 0, $PC.pregType = 0]] | [[Add a penis|Intro Summary][$PC.dick = 1]] + <<set _vagina_penis = 1>> + <<else>> + <<set _vagina_penis = 0>> <</if>> + <<options _vagina_penis>> + You have a + <<option 0 "Penis" "$PC.preg=0, $PC.pregType=0, $PC.dick=1, $PC.vagina=0">> + ''penis''. Standard sex scenes; easiest reputation maintenance. + <<option 1 "Vagina" "$PC.dick=0, $PC.vagina=1">> + ''vagina''. Sex scene variations; most difficult reputation maintenance. + <<option 2 "Penis and Vagina" "$PC.dick=1, $PC.vagina=1">> + ''penis and vagina''. Sex scene variations; more difficult reputation maintenance; some unique opportunities, especially with breasts. + <</options>> + <br> + <<if $PC.vagina == 1>> - <br> - You are + + <<if $PC.preg == -1>> - taking contraceptives. You ''can't'' get pregnant, however there will be a slight increase to living expenses. - [[Do not take contraceptives|Intro Summary][$PC.preg = 0]] + <<options $PC.preg>> + You are taking contraceptives. You ''can't'' get pregnant, however there + will be a slight increase to living expenses. + <<option -1 "Taking contraceptives">> + <<option 0 "Do not take contraceptives">> + <</options>> <<elseif $PC.preg == 0>> - ''not'' on contraceptives. You ''can'' get pregnant. - [[Take contraceptives|Intro Summary][$PC.preg = -1]] - | [[Too late for that|Intro Summary][$PC.preg = 16, $PC.pregType = 1]] + <<options $PC.preg>> + You are ''not'' on contraceptives. You ''can'' get pregnant. + <<option -1 "Take contraceptives">> + <<option 0 "Not taking contraceptives">> + <<option 16 "Too late for that!" "$PC.pregType = 1">> + <</options>> <<elseif $PC.preg > 42>> - ''<<print $PC.preg>> weeks pregnant with octuplets'' and your water just broke. - [[Not pregnant|Intro Summary][$PC.preg = 0, $PC.pregType = 0, $PC.labor = 0]] + <<options $PC.preg>> + You are ''<<print $PC.preg>> weeks pregnant with octuplets'' and your + water just broke. + <<options 0 "Not pregnant" "$PC.pregType = 0, $PC.labor = 0">> + <</options>> <<elseif $PC.preg > 37>> - ''<<print $PC.preg>> weeks pregnant'' and going to go into labor soon. - [[Not pregnant|Intro Summary][$PC.preg = 0, $PC.pregType = 0]] + <<options $PC.preg>> + You are ''<<print $PC.preg>> weeks pregnant'' and going to go into labor soon. + <<options 0 "Not pregnant" "$PC.pregType = 0, $PC.labor = 0">> + <<option 43 "Stuffed to capacity" "$PC.pregType = 8, $PC.labor = 1">> + <</options>> <<elseif $PC.preg > 0>> - ''<<print $PC.preg>> weeks pregnant'' so there is no need to worry about contraceptives. - [[Not pregnant|Intro Summary][$PC.preg = 0, $PC.pregType = 0]] - | [[Ready to drop|Intro Summary][$PC.preg = 40]] - | [[Stuffed to capacity|Intro Summary][$PC.preg = 43, $PC.pregType = 8, $PC.labor = 1]] + <<options $PC.preg>> + You are ''<<print $PC.preg>> weeks pregnant'' so there is no need to + worry about contraceptives. + <<option 0 "Not pregnant" "$PC.pregType = 0">> + <<option 40 "Ready to drop">> + <<option 43 "Stuffed to capacity" "$PC.pregType = 8, $PC.labor = 1">> + <</options>> <</if>> <<if $PC.births > 0>> <br>You have given birth to ''$PC.births'' babies. <</if>> - <br>Your hormones - <<if $PC.pregMood == 1>> - influence you to be ''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>> - do not affect you. Vanilla setting. - [[Change to motherly|Intro Summary][$PC.pregMood = 1]] | [[Change to aggressive|Intro Summary][$PC.pregMood = 2]] - <<else>> - influence you to be ''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>> + <br> + <<options $PC.pregMood>> + Your hormones + <<option 0 "Not affected">> + do not affect you. Vanilla setting. + <<option 1 "Caring and motherly">> + influence you to be ''caring and motherly''. Sex scene alterations; + slaves will trust you more, but may try to take advantage of your mercy. + <<option 2 "Aggressive and domineering">> + influence you to be ''aggressive and domineering''. Sex scene alterations; slaves will fear you more, but will become more submissive to you. + <</options>> <</if>> <br> @@ -818,21 +947,26 @@ __''Player Character''__ <</if>> <<if $PC.boobs > 0>> - Your breasts are ''_PCCreationBoobSize'' - and ''_PCCreationBreast''. - <<if $PC.boobsBonus == 0>> - [[Go bigger|Intro Summary][$PC.boobsBonus = 2, $PC.boobsImplant = 0]] | [[Get implants|Intro Summary][$PC.boobsBonus = 2, $PC.boobsImplant = 1]] | [[Go smaller|Intro Summary][$PC.boobsBonus = -2, $PC.boobsImplant = 0]] - <<elseif $PC.boobsBonus == 2>> - [[Go smaller |Intro Summary][$PC.boobsBonus = 0, $PC.boobsImplant = 0]] - <<elseif $PC.boobsBonus == -2>> - [[Go bigger |Intro Summary][$PC.boobsBonus = 0]] - <</if>> - | [[Remove them|Intro Summary][$PC.boobs = 0, $PC.boobsBonus = 0, $PC.boobsImplant = 0]] + <<options $PC.boobsBonus>> + Your breasts are ''_PCCreationBoobSize'' and ''_PCCreationBreast''. + <<option -2 "C-cup" "$PC.boobsImplant = 0">> + <<option 0 "DD-cup" "$PC.boobsImplant = 0">> + <<option 2 "F-cup" "$PC.boobsImplant = 0">> + <<option 2 "G-cup" "$PC.boobsImplant = 0">> + <<option 2 "G-cup implants" "$PC.boobsImplant = 1">> + <<option 0 "Remove them" "$PC.boobs = 0, $PC.boobsImplant = 0">> + <</options>> <<else>> <<if $PC.title == 1>> - Your chest is ''manly.'' [[Add breasts|Intro Summary][$PC.boobs = 1, $PC.boobsBonus = -2]] + <<options $PC.boobs>> + Your chest is ''manly.'' + <<option 1 "Add breasts" "$PC.boobsBonus = -2">> + <</options>> <<else>> - You are ''flat chested.'' [[Grow breasts|Intro Summary][$PC.boobs = 1, $PC.boobsBonus = -2]] + <<options $PC.boobs>> + You are ''flat chested.'' + <<option 1 "Grow breasts" "$PC.boobsBonus = -2">> + <</options>> <</if>> <</if>> @@ -858,21 +992,19 @@ __''Player Character''__ ''surprisingly young''. <</if>> - Your birthday will be in $PC.birthWeek weeks - <<if $playerAging == 2>> - and you ''age naturally''. - [[Disable aging|Intro Summary][$playerAging = 0]] | - [[Semi aging|Intro Summary][$playerAging = 1]] - <<elseif $playerAging == 1>> - and you ''will'' celebrate birthdays, but ''not age''. - [[Enable aging fully|Intro Summary][$playerAging = 2]] | - [[Disable aging|Intro Summary][$playerAging = 0]] - <<else>> - and you will ''not age,'' nor experience birthdays. - [[Enable aging|Intro Summary][$playerAging = 2]] | - [[Semi aging|Intro Summary][$playerAging = 1]] - <</if>> - //This option cannot be changed during the game// + <br> + + <<options $playerAging>> + Your birthday will be in $PC.birthWeek weeks + <<option 2 "Enable aging">> + and you ''age naturally''. + <<option 1 "Semi aging">> + and you ''will'' celebrate birthdays, but ''not age''. + <<option 0 "Disable aging">> + and you will ''not age,'' nor experience birthdays. + <<comment>> + This option cannot be changed during the game + <</options>> <br> Your custom title is ''<<textbox "$PC.customTitle" $PC.customTitle "Intro Summary">>'' diff --git a/src/gui/css/optionsMacro.tw b/src/gui/css/optionsMacro.tw index f6fa1ccc7cf508dbd614f4075348229848069907..95e2e766efe5db61cc7abf3258c5491c32cc0c5f 100644 --- a/src/gui/css/optionsMacro.tw +++ b/src/gui/css/optionsMacro.tw @@ -1,31 +1,93 @@ :: Options Macro [stylesheet] -.optionMacroDescription { +.optionMacro { + margin-top: 8px; + display: inline-block; +} + +.optionDescription { + display: inline-block; + width: 500px; + margin-right: 10px; + line-height: 1.2; +} + +@media only screen and (max-width: 1200px) { + .optionDescription { + display: block; + width: unset; + } + + .optionMacro { + margin-top: 30px; + } + } .optionMacroOption { + border: #555 solid 0.5px; + border-top-width: 0; + vertical-align: top; + background: linear-gradient(transparent,#222); + -moz-user-select: none; + padding: 4px; } -/* Seperate each option with a | */ -.optionMacroOption::after { - content: " | "; +.optionComment { + vertical-align: top; + color: gray; } /* But don't add the | after the last one */ -.optionMacroOption:last-child::after { - content: unset; +.optionMacroOption:last-child { + border-top-right-radius: 6px; + border-bottom-right-radius: 6px; + border-right-width: 0; } +.optionMacroOption:first-child { + border-top-left-radius: 6px; + border-bottom-left-radius: 6px; +} .optionMacroOption a { + padding: 4px 0; } .optionMacroOption:hover { + background: linear-gradient(#2F2F2F,#111); } .optionMacroSelected { + background: linear-gradient(#2F2F2F,#111); + padding: 4px; + cursor: pointer; +} + +.optionValue input { + padding: 3px; + background: linear-gradient(transparent,#222); + border: #555 solid 0.5px; + border-top-width: 0; + min-width: reset; + width: 140px; +} + +.optionValue input:last-child { + border-top-right-radius: 6px; + border-bottom-right-radius: 6px; + border-right-width: 0; +} + +.optionValue input:first-child { + border-top-left-radius: 6px; + border-bottom-left-radius: 6px; +} + +.optionMacroSelected.optionMacroEnable { + /*background-image: linear-gradient(rgba(255, 100, 0, 1), rgba(0, 255, 0, 1));*/ } -/* Container div of the list of options */ -.optionMacroOptionsList { +.optionMacroSelected.optionMacroDisable { + /*background-image: linear-gradient(rgba(255, 100, 0, 1), rgba(255, 0, 0, 1));*/ } diff --git a/src/js/optionsMacro.js b/src/js/optionsMacro.js index 81989302e9dd69cb199517bdf9e3dd1a225b110c..c11b469439662c33a0912c7241349dc5f25784c4 100644 --- a/src/js/optionsMacro.js +++ b/src/js/optionsMacro.js @@ -1,8 +1,11 @@ /* Use like: - * <<option $varname "New Passage (defaults to current passage)">> - * <<option "value_to_set_varname_to" "English text to show user" "additional variables to set when clicked" "Extra english text to show, but not as a link">> + <<options $varname "New Passage (defaults to current passage)">> + A title + <<option "value_to_set_varname_to" "English text to show user" "additional variables to set when clicked" "Extra english text to show, but not as a link">> Text to show if $varname matches this option <<option ....>> + <<comment>> + Some comment to add at the end <</option>> */ Macro.add('options', { @@ -11,58 +14,74 @@ Macro.add('options', { handler : function () { try { var currentOption = this.payload[0].args[0]; - if (currentOption === undefined) - currentOption = false; - if (!this.payload[0].args.full.startsWith("State.variables.")) { - throw new Error("First parameter to 'options' must be a variable"); - } - var variable = this.payload[0].args.full.split(' ',1)[0].substring("State.variables.".length); + var variable = null; + var title = this.payload[0].contents || ''; var passageName = this.payload[0].args[1] || passage(); var found = false; var comment = null; - var description = null; - /* First print out the string for the current value */ - for (var i = 1, len = this.payload.length; i < len; ++i) { - if (this.payload[i].name === 'option') { - if (this.payload[i].args[0] === currentOption) { - if (found) { - throw new Error("Two 'option' found with the same value"); + var hasMultipleOptionsWithSameValue = false; + var description = ""; + + /* Check if we have a first argument - if we do, it should be a + variable like $foo + */ + if (this.payload[0].args.full && + this.payload[0].args.full != '""' && this.payload[0].args.full != "''") { + if (currentOption === undefined) + currentOption = false; + if (this.payload[0].args.full.startsWith("State.temporary.")) { + variable = "_" + this.payload[0].args.full.split(' ',1)[0].substring("State.temporary.".length); + } else if (this.payload[0].args.full.startsWith("State.variables.")) { + variable = "$" + this.payload[0].args.full.split(' ',1)[0].substring("State.variables.".length); + } else { + console.log(this.payload[0].args.full); + throw new Error("First parameter to 'options' must be a variable"); + } + + /* First print out the string for the current value */ + for (var i = 1, len = this.payload.length; i < len; ++i) { + if (this.payload[i].name === 'option') { + if (this.payload[i].args[0] === currentOption) { + if (found) { + hasMultipleOptionsWithSameValue = true; + } + description = this.payload[i].contents; + found = true; } - description = this.payload[i].contents; - found = true; + } else if (this.payload[i].name === 'comment') { + comment = this.payload[i].contents; + } else { + throw new Error("Only valid tag is 'option' inside 'options'") } - } else if (this.payload[i].name === 'comment') { - comment = this.payload[i].contents; - } else { - throw new Error("Only valid tag is 'option' inside 'options'") } } - if (!found) { - throw new Error("No option found for value " + this.payload[0].args[0]); - } - var showSelectedOption = this.payload.length != 3 || !description; + var showSelectedOption = true; //this.payload.length != 3 || !description; /* Now print out the list of options */ var output = ""; for (var i = 1, len = this.payload.length; i < len; ++i) { if (this.payload[i].name === 'option') { var args = this.payload[i].args; - var extraComment = args[3] ? (' ' + args[3]) : ''; - var className = "optionMacroOption " + (args[1].startsWith("Enable") ? "optionMacroEnable" : args[1].startsWith("Disable") ? "optionMacroDisable" : ""); - if (args[0] !== currentOption) { - var onClickChange = args[2] ? (', ' + args[2]) : ''; - output += '<span class="' + className + '">[[' + args[1] + "|" + passageName + "][$" + variable + " = " + JSON.stringify(args[0]) + onClickChange + "]]" + extraComment + "</span>"; - } else if (showSelectedOption) { - output +='<span class="optionMacroSelected ' + className + '">' + args[1] + extraComment + '</span>'; + if (args.length === 0) { + output += this.payload[i].contents.trim(); + } else { + var extraComment = args[3] ? (' ' + args[3]) : ''; + var className = "optionMacroOption " + (args[1].startsWith("Enable") ? "optionMacroEnable" : args[1].startsWith("Disable") ? "optionMacroDisable" : ""); + if (args[0] !== currentOption || hasMultipleOptionsWithSameValue) { + var onClickChange = args[2] ? (', ' + args[2]) : ''; + output += '<span class="' + className + '">[[' + args[1] + "|" + passageName + "][" + variable + " = " + JSON.stringify(args[0]) + onClickChange + "]]" + extraComment + "</span>"; + } else if (showSelectedOption) { + output +='<span class="optionMacroSelected ' + className + '">' + args[1] + extraComment + '</span>'; + } } } } jQuery(this.output).wiki( '<span class="optionMacro">' + - '<span class="optionMacroDescription">' + description + "</span>" + - '<span class="optionMacroOptionsList">' + output + "</span>" + - (comment ? '<span class="optionMacroComment">//' + comment + "//</span>" : '') + + '<span class="optionDescription">' + title + ' ' + description + "</span>" + + '<span class="optionValue">' + output + "</span>" + + (comment ? '<span class="optionComment">//' + comment + "//</span>" : '') + '</span>'); } catch (ex) {