diff --git a/artTools/README.md b/artTools/README.md index cf7f84f3a9bc9bf5fcf16d82c6f5068c842ed7d9..920ee501e48c0e74a5fa1b05c53c487ce9c04a1d 100644 --- a/artTools/README.md +++ b/artTools/README.md @@ -15,15 +15,15 @@ Note: This does not actually describe how to be an artist. ## 1. Be an artist -Make changes to the vector_source.svg. -Inkscape was thoroughly tested. -Adobe Illustrator might work decently, too. +Make changes to the vector_source.svg. +Inkscape was thoroughly tested. +Adobe Illustrator might work decently, too. ## 2. Respect the structure -While editing, keep the Layers in mind. +While editing, keep the Layers in mind. -* In Inkscape, Layers are special "Inkscape groups". +* In Inkscape, Layers are special "Inkscape groups". * In Illustrator, Layers are groups with user-defined IDs. * All Layers should have an ID that is globally unique (not just within their subtree). @@ -31,10 +31,10 @@ While editing, keep the Layers in mind. * Please use anonymous groups only for the ease of editing. Remove all "helper" groups before finally saving the file. * Anonymous groups can be used for continuous scaling (of e.g. boobs). -* Every asset that should go into a separate file needs to be in a labelled group +* Every asset that should go into a separate file needs to be in a labelled group (even if that is a group with only one shape). * There are some globally available styles defined as CSS classes (e.g. skin, hair). - Use them if your asset should be changed upon display. + Use them if your asset should be changed upon display. Do not set the style directly in the object. ## 3. Normalize the document (before committing) @@ -53,13 +53,13 @@ In case your Editor uses another path data style which cannot be changed, please What it does: * Formats the SVG XML according to Pythons lxml module, regardless of editor. -* Adobe Illustrator uses group IDs as layer labels. +* Adobe Illustrator uses group IDs as layer labels. Inkscape however uses layer labels and a separate, auto-generated group ID. - normalize_svg.py overwrites the group ID with the Inkscape layer label + normalize_svg.py overwrites the group ID with the Inkscape layer label so they are synchronized with Inkscape layer labels. * Inkscape copies the global style definition into the object *every time* - the object is edited. If an object references a CSS class AND at the same time - has a local style, the local style is removed + the object is edited. If an object references a CSS class AND at the same time + has a local style, the local style is removed so global dynamic styling is possible later on. Note: Behavior of Adobe Illustrator is untested. @@ -74,8 +74,8 @@ For faraen revamped art (based on NoX original) python3 vector_revamp_layer_split.py vector_revamp_source.svg tw ../src/art/vector_revamp/layers/ -. This application reads all groups in `vector_source.svg`. -Each group is stored in a separate file in the target directory `/src/art/vector/layers/`. +. This application reads all groups in `vector_source.svg`. +Each group is stored in a separate file in the target directory `/src/art/vector/layers/`. The group ID sets the file name. Therefore, the group ID **must not** contain spaces or any other weird characters. Also consider: @@ -85,14 +85,14 @@ Also consider: * The target directory is not emptied. If a file is no longer needed, you should remove it manually. * This procedure removes global definitions. This means, SVG filters are currently not supported. -Available output formats are `svg` and `tw`. -`svg` output exists for debug reasons. +Available output formats are `svg` and `tw`. +`svg` output exists for debug reasons. `tw` embeds the SVG data into Twine files, but removes the global style definitions so they can be set during display. ## 5. Edit the code -`/src/art/` contains Twine code which shows the assets in the story. -There are many helpful comments in `/src/art/artWidgets.tw`. +`/src/art/` contains Twine code which shows the assets in the story. +There are many helpful comments in `/src/art/artWidgets.tw`. The code also generates the previously removed global style definitions on the fly and per display. ## 6. Compile the story diff --git a/devNotes/twine CSS b/devNotes/twine CSS index 32b636e1f1bb5c4a2936201e7614954c53368a2f..b2c2623c98662aa9bb84ba920e5e3666a54865cc 100644 --- a/devNotes/twine CSS +++ b/devNotes/twine CSS @@ -433,7 +433,7 @@ button.accordion.active:before { font-weight: bold; margin: 0; background: #ffffff88; - border: 2px solid Gold; + border: 2px solid Gold; white-space: nowrap; } diff --git a/fixSpellingMistakes2 b/fixSpellingMistakes2 index 40e4d9aa129d40be36240f44171d86008c2c7ee0..d2f677c94ec483aa7f53bc0430a9b6432a4c1598 100755 --- a/fixSpellingMistakes2 +++ b/fixSpellingMistakes2 @@ -2,7 +2,7 @@ if [ ! -d ".git" ]; then exit 0 fi -GREP="git grep -lz" +GREP="git grep -lz" $GREP "\babandonned\b" -- src/ | xargs -0 perl -i -pE "BEGIN{ @ARGV = map glob, @ARGV } s/\babandonned\b/abandoned/g" *.tw $GREP "\baberation\b" -- src/ | xargs -0 perl -i -pE "BEGIN{ @ARGV = map glob, @ARGV } s/\baberation\b/aberration/g" *.tw $GREP "\babilityes\b" -- src/ | xargs -0 perl -i -pE "BEGIN{ @ARGV = map glob, @ARGV } s/\babilityes\b/abilities/g" *.tw diff --git a/src/002-config/start.tw b/src/002-config/start.tw index 9f5b5359db3354b0677f5d2f5b3b0d5a4bd7fe4f..758c53fd58abc74877ba1009b283ec0f08540e1a 100644 --- a/src/002-config/start.tw +++ b/src/002-config/start.tw @@ -1,6 +1,5 @@ :: Start [nobr] - :: StoryTitle Free Cities \ No newline at end of file diff --git a/src/SpecialForce/SpecialForce.js b/src/SpecialForce/SpecialForce.js index 8c568b715fd84ffd7a7134994813d96e4f1e2845..8f1a8d472ca262902bea698757292b223929288c 100644 --- a/src/SpecialForce/SpecialForce.js +++ b/src/SpecialForce/SpecialForce.js @@ -456,7 +456,7 @@ window.Main = function() { } window.Squad = function() { const V = State.variables; - V.SF.Squad = {Troops:40, Armoury:0, Firebase:0, AV:0, TV:0, Drones:0, Drugs:0, PGT:0, AA:0, TA:0, SpacePlane:0, GunS:0, Satellite:{lv:0, InOrbit:0}, GiantRobot:0, MissileSilo:0, AircraftCarrier:0, Sub:0, HAT:0}; + V.SF.Squad = {Troops:40, Armoury:0, Firebase:0, AV:0, TV:0, Drones:0, Drugs:0, PGT:0, AA:0, TA:0, SpacePlane:0, GunS:0, Satellite:{lv:0, InOrbit:0}, GiantRobot:0, MissileSilo:0, AircraftCarrier:0, Sub:0, HAT:0}; } window.Colonel = function() { const V = State.variables; diff --git a/src/js/datatypeCleanupJS.js b/src/js/datatypeCleanupJS.js index 17e94be3fb6a06098e5eef4501dc5e7605a5d0d5..e31c45624a2a0bdcc227bcb5029ba7baa9a66c90 100644 --- a/src/js/datatypeCleanupJS.js +++ b/src/js/datatypeCleanupJS.js @@ -1217,7 +1217,7 @@ window.EconomyDatatypeCleanup = function EconomyDatatypeCleanup() { V.AProsperityCap = Math.max(+V.AProsperityCap, 0) || 0; V.arcologies[0].ownership = Math.clamp(+V.arcologies[0].ownership, 0, 100) || 0; V.arcologies[0].minority = Math.clamp(+V.arcologies[0].minority, 0, 100) || 0; - + V.food = Math.max(+V.food, 0) || 0; V.economy = Math.max(+V.economy, 20) || 100; diff --git a/src/js/removeActiveSlave.js b/src/js/removeActiveSlave.js index 88ff9b9d5dc08e74b1e8547cc33596ce89b9753f..e44cd6d346bc725f58bb61c122514dd986a83237 100644 --- a/src/js/removeActiveSlave.js +++ b/src/js/removeActiveSlave.js @@ -246,7 +246,7 @@ window.removeActiveSlave = function removeActiveSlave() { window.removeNonNGPSlave = function removeNonNGPSlave(removedSlave) { "use strict"; - + const V = State.variables; const ID = removedSlave.ID; let LENGTH = V.slaves.length; diff --git a/src/uncategorized/corporationDevelopments.tw b/src/uncategorized/corporationDevelopments.tw index 297d35349df0bd3594ab2026ef991242a9b2c62e..35729a7b10e70b9958a67a2160896df7afc91bf2 100644 --- a/src/uncategorized/corporationDevelopments.tw +++ b/src/uncategorized/corporationDevelopments.tw @@ -506,7 +506,7 @@ _corpDivWhoreSlavesRoom = corpDivWhoreSlavesRoom()>> <<if $corpEasy == 1>> <<set _corpOverhead = Math.trunc(_corpOverhead / 2)>> <</if>> -<</if>> +<</if>> <<set $corpCash -= _corpOverhead, _corpProfitProvisional = $corpRev - $corpAssetsDev - $corpAssetsSlave - _corpOpCost>> <<if _corpProfitProvisional > 0>> @@ -730,5 +730,5 @@ $corpOpCostOld = _corpOpCost, $corpAssetsDevOld = $corpAssetsDev, $corpAssetsDev = 0, $corpAssetsSlaveOld = $corpAssetsSlave, -$corpAssetsSlave = 0, +$corpAssetsSlave = 0, $corpOverheadOld = _corpOverhead>> /*This needs to be at the very end of the financials*/ \ No newline at end of file diff --git a/src/uncategorized/milkmaidWorkaround.tw b/src/uncategorized/milkmaidWorkaround.tw index d61d15e12dafbb72907d23952b8abc64575ca7db..0cfb0267683e5c533a8f15b86ce074d6f8fdc35b 100644 --- a/src/uncategorized/milkmaidWorkaround.tw +++ b/src/uncategorized/milkmaidWorkaround.tw @@ -10,4 +10,3 @@ <</if>> <<goto "Dairy">> - diff --git a/src/uncategorized/nurseWorkaround.tw b/src/uncategorized/nurseWorkaround.tw index 503e1bba468bac817fa57088ddef0d89ead5da19..7bca30dedf47d83b30f8ca019e515bd838c2aa47 100644 --- a/src/uncategorized/nurseWorkaround.tw +++ b/src/uncategorized/nurseWorkaround.tw @@ -10,4 +10,3 @@ <</if>> <<goto "Clinic">> - diff --git a/src/uncategorized/randomEventSelect.tw b/src/uncategorized/randomEventSelect.tw index 2dfbf84637f7c035c37bece15f1f9968a24a807b..e935ed03b6885381b890ed563e61898712c546fb 100644 --- a/src/uncategorized/randomEventSelect.tw +++ b/src/uncategorized/randomEventSelect.tw @@ -26,4 +26,3 @@ DEBUG: <br> [[RE no event]] | <<print "[[Go back to previous passage: '" + previous() + "'|previous()][$activeSlave = 0, $eventSlave = 0]] | [[Go all the way back to Scheduled Event|Scheduled Event][$activeSlave = 0, $eventSlave = 0]]">> - diff --git a/src/uncategorized/reNoEvent.tw b/src/uncategorized/reNoEvent.tw index b7aa83dd310d0111509aa2b9cdc9bb920c6c2b93..37d16e3892a7ad632250fdfb484c9b74d3fbef09 100644 --- a/src/uncategorized/reNoEvent.tw +++ b/src/uncategorized/reNoEvent.tw @@ -20,4 +20,4 @@ This is a placeholder event. <br><br> -<<EventNameLink $activeSlave>> does not currently qualify for any events, so $he has been given a generic @@.hotpink;devotion@@ and @@.mediumaquamarine;trust@@ boost. /*If you see this event repeatedly for her, please submit a report so the author can write her some events.*/ +<<EventNameLink $activeSlave>> does not currently qualify for any events, so $he has been given a generic @@.hotpink;devotion@@ and @@.mediumaquamarine;trust@@ boost. /*If you see this event repeatedly for $him, please submit a report so the author can write $him some events.*/ diff --git a/src/uncategorized/rieEligibilityCheck.tw b/src/uncategorized/rieEligibilityCheck.tw index b6791290dbb940781e85877c75f618787c3b9b11..c4a1ea04810ecc16f6173310487155ebb8df0328 100644 --- a/src/uncategorized/rieEligibilityCheck.tw +++ b/src/uncategorized/rieEligibilityCheck.tw @@ -6,13 +6,12 @@ <<for $i = 0; $i < $slaves.length; $i++>> <<if $slaves[$i].assignmentVisible == 1 || $slaves[$i].assignment == "serve in the master suite" || $slaves[$i].assignment == "be your Concubine" || $slaves[$i].assignment == "be a servant">> - <<if $slaves[$i].fuckdoll == 0>> - <<set $eligibleSlaves.push($slaves[$i].ID)>> - <</if>> + <<if $slaves[$i].fuckdoll == 0>> + <<set $eligibleSlaves.push($slaves[$i].ID)>> + <</if>> <</if>> <</for>> - <<if $hostageRescued == 1>> <<goto "P hostage acquisition">> <<elseif $eligibleSlaves.length == 0>> @@ -22,4 +21,3 @@ <</if>> <</silently>> - diff --git a/src/uncategorized/schoolteacherWorkaround.tw b/src/uncategorized/schoolteacherWorkaround.tw index fa740c8d57527b789a477542ef37c0b1e79fe719..dba9ce2a900c9f6d6b8fbf636a98190a1cc9cd01 100644 --- a/src/uncategorized/schoolteacherWorkaround.tw +++ b/src/uncategorized/schoolteacherWorkaround.tw @@ -10,4 +10,3 @@ <</if>> <<goto "Schoolroom">> - diff --git a/src/uncategorized/summaryOptions.tw b/src/uncategorized/summaryOptions.tw index 64ba757bf067d8730cbf56ea301751afcd2352b9..f5fadf4ae762ceae3eb86971238887883ecbe878 100644 --- a/src/uncategorized/summaryOptions.tw +++ b/src/uncategorized/summaryOptions.tw @@ -20,7 +20,6 @@ <br> <span id="OptionRulesAssistantMain"><<OptionRulesAssistantMain>></span> - <br><br> <span id="OptionDisplayAssignments"><<OptionDisplayAssignments>></span>