Explorar o código

Merge branch 'Modding' into Development

Stephan Fuchs hai 2 meses
pai
achega
1e23bf5134
Modificáronse 61 ficheiros con 170 adicións e 125 borrados
  1. 2 1
      .gitignore
  2. 4 1
      .vscode/tasks.json
  3. 0 8
      mods/mod.html
  4. 3 0
      mods/util/BuildModFiles.bat
  5. 72 0
      mods/util/BuildModFiles.py
  6. 0 3
      mods/util/MakeMod.bat
  7. 0 35
      mods/util/MakeMod.py
  8. 0 3
      mods/util/MakeModableHtml.bat
  9. 0 21
      mods/util/MakeModableHtml.py
  10. 0 0
      sugarcube/devTools/tweeGo/storyFormats/sugarcube-2/format.js
  11. 4 5
      sugarcube/src/PassageFooter.tw
  12. 4 4
      sugarcube/src/PassageHeader.tw
  13. 7 0
      sugarcube/src/_myMod/myMod.tw
  14. 1 1
      sugarcube/src/autogenerated/Gadyukino Characters/andreihunter.tw
  15. 1 1
      sugarcube/src/autogenerated/Gadyukino Characters/grigory.tw
  16. 1 1
      sugarcube/src/autogenerated/Gadyukino Characters/hunterLoveSex.tw
  17. 1 1
      sugarcube/src/autogenerated/Gadyukino Characters/hunter_ambient.tw
  18. 1 1
      sugarcube/src/autogenerated/Gadyukino Characters/hunter_favors.tw
  19. 1 1
      sugarcube/src/autogenerated/Gadyukino Characters/hunter_interactions.tw
  20. 1 1
      sugarcube/src/autogenerated/Gadyukino Characters/hunters.tw
  21. 1 1
      sugarcube/src/autogenerated/Gadyukino Characters/huntersex.tw
  22. 1 1
      sugarcube/src/autogenerated/Gadyukino Characters/igorhunter.tw
  23. 1 1
      sugarcube/src/autogenerated/Gadyukino Characters/mirafather.tw
  24. 1 1
      sugarcube/src/autogenerated/Gadyukino Characters/mirasex.tw
  25. 1 1
      sugarcube/src/autogenerated/Gadyukino Characters/miroslava.tw
  26. 1 1
      sugarcube/src/autogenerated/Gadyukino Characters/mitka.tw
  27. 1 1
      sugarcube/src/autogenerated/Gadyukino Characters/mitkabuh.tw
  28. 1 1
      sugarcube/src/autogenerated/Gadyukino Characters/mitkabuh_group.tw
  29. 1 1
      sugarcube/src/autogenerated/Gadyukino Characters/mitkasex.tw
  30. 1 1
      sugarcube/src/autogenerated/Gadyukino Characters/sergeihunter.tw
  31. 1 1
      sugarcube/src/autogenerated/Gadyukino Characters/swamp_woods.tw
  32. 1 1
      sugarcube/src/autogenerated/Gadyukino/backwater.tw
  33. 1 1
      sugarcube/src/autogenerated/Gadyukino/bicycle.tw
  34. 1 1
      sugarcube/src/autogenerated/Gadyukino/grandmahelp.tw
  35. 1 1
      sugarcube/src/autogenerated/Gadyukino/grandpahelp.tw
  36. 1 1
      sugarcube/src/autogenerated/Gadyukino/meadow.tw
  37. 1 1
      sugarcube/src/autogenerated/Gadyukino/miroslavahome.tw
  38. 1 1
      sugarcube/src/autogenerated/Gadyukino/swamp.tw
  39. 1 1
      sugarcube/src/autogenerated/Gadyukino/swamp_yard.tw
  40. 1 1
      sugarcube/src/autogenerated/Gadyukino/swamphouse.tw
  41. 1 1
      sugarcube/src/autogenerated/Gadyukino/swampspring.tw
  42. 5 0
      sugarcube/src/autogenerated/Stats/stat.tw
  43. 1 0
      sugarcube/src/interfaces.d.ts
  44. 1 1
      sugarcube/src/locations/gadukino/gad_church.tw
  45. 1 1
      sugarcube/src/locations/gadukino/gadbana.tw
  46. 1 1
      sugarcube/src/locations/gadukino/gaddvor.tw
  47. 1 1
      sugarcube/src/locations/gadukino/gadfield.tw
  48. 1 1
      sugarcube/src/locations/gadukino/gadforest.tw
  49. 1 1
      sugarcube/src/locations/gadukino/gadforest_event.tw
  50. 1 1
      sugarcube/src/locations/gadukino/gadforestlost.tw
  51. 1 1
      sugarcube/src/locations/gadukino/gadgarden.tw
  52. 1 1
      sugarcube/src/locations/gadukino/gadhouse.tw
  53. 1 1
      sugarcube/src/locations/gadukino/gadmarket.tw
  54. 1 1
      sugarcube/src/locations/gadukino/gadprostitutes.tw
  55. 1 1
      sugarcube/src/locations/gadukino/gadriver.tw
  56. 1 1
      sugarcube/src/locations/gadukino/gadroad.tw
  57. 1 1
      sugarcube/src/locations/gadukino/gadsarai.tw
  58. 1 1
      sugarcube/src/locations/gadukino/gadukino.tw
  59. 1 1
      sugarcube/src/locations/gadukino/gadukino_event.tw
  60. 22 0
      sugarcube/src/start/index.tw
  61. 2 0
      sugarcube/src/version/VersionControl.ts

+ 2 - 1
.gitignore

@@ -45,7 +45,8 @@ glife.7z.tmp
 glife.7z
 
 *.test
-glife.html
+*.html
+*.php
 
 
 __pycache__/

+ 4 - 1
.vscode/tasks.json

@@ -56,7 +56,10 @@
 			"group": {
 				"kind": "build"
 			},
-			"problemMatcher": []
+			"problemMatcher": [],
+			"dependsOn": [
+				"MakeHTML"
+			]
 		},
 		{
 			"type": "typescript",

+ 0 - 8
mods/mod.html

@@ -1,8 +0,0 @@
-<tw-passagedata pid="1680" name="intro_sg_select_char_after" tags="mod modExample" position="1225,20975" size="100,100">&lt;&lt;act &#39;Godess&#39;&gt;&gt;
-    &lt;&lt;gt &#39;modExample_intr_sg_select_godess&#39;&gt;&gt;
-&lt;&lt;/act&gt;&gt;</tw-passagedata>
-<tw-passagedata pid="1681" name="modExample_intr_sg_select_godess" tags="mod modExample" position="100,21100" size="100,100">&lt;h2&gt;Godess&lt;/h2&gt;
-	&lt;&lt;image &quot;system/1_openings/2_sg/nerd_0.jpg&quot;&gt;&gt;
-	&lt;p&gt;
-		Modded start.
-	&lt;/p&gt;</tw-passagedata>

+ 3 - 0
mods/util/BuildModFiles.bat

@@ -0,0 +1,3 @@
+@ECHO off
+
+Python -X utf8 mods/util/BuildModFiles.py

+ 72 - 0
mods/util/BuildModFiles.py

@@ -0,0 +1,72 @@
+#!/usr/bin/env python3
+import os
+import fileinput
+import re
+import sys
+
+
+modTag = "mod"
+
+file_path_html = 'glife.html'
+file_path_mod = 'mods'
+file_path_mod_online = 'mods'
+
+data = ''
+modData = {}
+scripts = {}
+dataWithoutModStuff = ''
+
+with open(file_path_html, 'r') as file:
+    data = file.read()
+
+dataWithoutModStuff = data
+
+i = 0
+regex = r"""<tw-passagedata pid="(\d+)" name="([\s\w]+)" tags="(.*?)" (?:position="\d+,\d+" )?(?:size="\d+,\d+")?>(.*?)</tw-passagedata>"""
+for match in re.finditer(regex,data,re.S):
+    tags = match.group(3).split()
+
+    if(modTag in tags):
+        modId = 'default'
+        for tag in tags:
+            if tag.startswith('mod_'):
+                modId = tag[4:]
+        if modId not in modData:
+            modData[modId] = ''    
+        modData[modId] += match.group(0)+'\n'
+        dataWithoutModStuff = dataWithoutModStuff.replace(match.group(0),'')
+
+    i += 1
+    if(i % 100 == 0):
+        print(i)
+
+regex = r"""/\*\s*Start Mod:\s*"([^"]*)"\s*\*/(.*?)/\*\s*End Mod:\s*"Mod"\s*\*/"""
+for match in re.finditer(regex,data,re.S):
+    modId = match.group(1).strip()
+    if not modId:
+        modId = 'default'
+    if modId not in scripts:
+        scripts[modId] = ''    
+    scripts[modId] += match.group(2)
+    dataWithoutModStuff = dataWithoutModStuff.replace(match.group(0),'')
+
+for modId, scriptContent in scripts.items():
+    if modId not in modData:
+        modData[modId] = ''  
+    modData[modId] += "\n.-.-.-. STORYDATA / SCRIPT .-.-.-.\n"
+    modData[modId] += scriptContent
+
+for modId, modContent in modData.items():
+    modPath = os.path.join(file_path_mod,modId+'.html')
+    with open(modPath, 'w') as file:
+        file.write(modContent)
+
+for modId, modContent in modData.items():
+    modPath = os.path.join(file_path_mod_online,modId+'.php')
+    with open(modPath, 'w') as file:
+        file.write(f'<?php header("Access-Control-Allow-Origin: *"); header(\'Content-type: text/javascript\'); echo($_GET[\'callback\']);?>(`{modContent}\n`);')
+
+with open(file_path_html, 'w') as file:
+    file.write(dataWithoutModStuff)
+
+print('Done')

+ 0 - 3
mods/util/MakeMod.bat

@@ -1,3 +0,0 @@
-@ECHO off
-
-Python -X utf8 mods/util/MakeMod.py

+ 0 - 35
mods/util/MakeMod.py

@@ -1,35 +0,0 @@
-#!/usr/bin/env python3
-import os
-import fileinput
-import re
-import sys
-
-
-modTag = "mod"
-
-file_path_html = 'glife.html'
-file_path_mod = 'mods/mod.html'
-
-data = ''
-modData = ''
-
-with open(file_path_html, 'r') as file:
-    data = file.read()
-
-i = 0
-regex = r"""<tw-passagedata pid="(\d+)" name="([\s\w]+)" tags="(.*?)" (?:position="\d+,\d+" )?(?:size="\d+,\d+")?>(.*?)</tw-passagedata>"""
-for match in re.finditer(regex,data,re.S):
-    tags = match.group(3).split()
-
-    if(modTag in tags):
-        modData += match.group(0)+'\n'
-    i += 1
-    if(i % 100 == 0):
-        print(i)
-
-
-
-with open(file_path_mod, 'w') as file:
-    file.write(modData)
-
-print('Done')

+ 0 - 3
mods/util/MakeModableHtml.bat

@@ -1,3 +0,0 @@
-@ECHO off
-
-Python -X utf8 mods/util/MakeModableHtml.py

+ 0 - 21
mods/util/MakeModableHtml.py

@@ -1,21 +0,0 @@
-#!/usr/bin/env python3
-import os
-import fileinput
-import re
-import sys
-
-file_path_html = 'glife.html'
-file_path_out = 'mods/modable_glife.html'
-
-data = ''
-with open(file_path_html, 'r') as file:
-    data = file.read()
-
-
-data = re.sub(r"""(<script id="script-sugarcube" type="text/javascript">)(.*?)(</script>)""",r"""\1$.ajax({  url: "mod.html",  cache: false})  .done(function( html ) {    $( "tw-storydata" ).append( html );\2});\3""",data,1, re.S)
-
-
-with open(file_path_out, 'w') as file:
-    file.write(data)
-
-print('Done')

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
sugarcube/devTools/tweeGo/storyFormats/sugarcube-2/format.js


+ 4 - 5
sugarcube/src/PassageFooter.tw

@@ -1,10 +1,9 @@
 :: PassageFooter
-
-<<if Story.has($here+'_after')>>
+/*<<if Story.has($here+'_after')>>
 	<<include `$here+'_after'`>>
-<</if>>
-<<set _afterPassages = Story.lookup("tags", $here+'_after')>>
-<<for _afterPassage range _afterPassages>>
+<</if>>*/
+<<for _afterPassage range Story.lookup("tags", $here+'_after')>>
+	<<run console.log('Included after-passage:',_afterPassage.title)>>
 	<<include _afterPassage.title>>
 <</for>>
 

+ 4 - 4
sugarcube/src/PassageHeader.tw

@@ -20,11 +20,11 @@
 <<include 'PassageHeaderAll'>>
 
 
-<<if Story.has($here+'_before')>>
-    <<include `$here+'_before'`>>
-<</if>>
+<<for _beforePassage range Story.lookup("tags", $here+'_before')>>
+	<<include _beforePassage.title>>
+<</for>>
 
-:: PassageHeaderAll
+:: PassageHeaderAll[include]
 <!-- Also exists for subpassages and if CLA was called -->
 <div id="connectedLocations"></div>
 <div id="messagesContainter">

+ 7 - 0
sugarcube/src/_myMod/myMod.tw

@@ -0,0 +1,7 @@
+:: mod_cheats_scripts[script]
+/* Start Mod: "Mod" */
+    Object.defineProperty(setup.PlayerCharacter.prototype, 'pcs_energy', {
+        get() {return 100;},
+        set(v){this.pcs_energy_raw = v;}});
+
+/* End Mod: "Mod" */

+ 1 - 1
sugarcube/src/autogenerated/Gadyukino Characters/andreihunter.tw

@@ -1,4 +1,4 @@
-:: andreihunter
+:: andreihunter[mod mod_gad]
 <<set $here = 'andreihunter'>>
 <<set $ARGS = $location_var[$here]>>
 <!-- !2021/05/02-->

+ 1 - 1
sugarcube/src/autogenerated/Gadyukino Characters/grigory.tw

@@ -1,4 +1,4 @@
-:: grigory
+:: grigory[mod mod_gad]
 <<set $here = 'grigory'>>
 <<set $ARGS = $location_var[$here]>>
 <!-- !2021/05/02-->

+ 1 - 1
sugarcube/src/autogenerated/Gadyukino Characters/hunterLoveSex.tw

@@ -1,4 +1,4 @@
-:: hunterLoveSex
+:: hunterLoveSex[mod mod_gad]
 <<set $here = 'hunterLoveSex'>>
 <<set $ARGS = $location_var[$here]>>
 <!-- !2021/05/02-->

+ 1 - 1
sugarcube/src/autogenerated/Gadyukino Characters/hunter_ambient.tw

@@ -1,4 +1,4 @@
-:: hunter_ambient
+:: hunter_ambient[mod mod_gad]
 <<set $here = 'hunter_ambient'>>
 <<set $ARGS = $location_var[$here]>>
 <!-- !Leaf conversation events-->

+ 1 - 1
sugarcube/src/autogenerated/Gadyukino Characters/hunter_favors.tw

@@ -1,4 +1,4 @@
-:: hunter_favors
+:: hunter_favors[mod mod_gad]
 <<set $here = 'hunter_favors'>>
 <<set $ARGS = $location_var[$here]>>
 <!-- !2021/05/02-->

+ 1 - 1
sugarcube/src/autogenerated/Gadyukino Characters/hunter_interactions.tw

@@ -1,4 +1,4 @@
-:: hunter_interactions
+:: hunter_interactions[mod mod_gad]
 <<set $here = 'hunter_interactions'>>
 <<set $ARGS = $location_var[$here]>>
 <!-- !2021/05/08-->

+ 1 - 1
sugarcube/src/autogenerated/Gadyukino Characters/hunters.tw

@@ -1,4 +1,4 @@
-:: hunters
+:: hunters[mod mod_gad]
 <<set $here = 'hunters'>>
 <<set $ARGS = $location_var[$here]>>
 <!-- !!2022/05/06-->

+ 1 - 1
sugarcube/src/autogenerated/Gadyukino Characters/huntersex.tw

@@ -1,4 +1,4 @@
-:: huntersex
+:: huntersex[mod mod_gad]
 <<set $here = 'huntersex'>>
 <<set $ARGS = $location_var[$here]>>
 <<if $location_var[$here][0] == 'sexafterstrip1'>>

+ 1 - 1
sugarcube/src/autogenerated/Gadyukino Characters/igorhunter.tw

@@ -1,4 +1,4 @@
-:: igorhunter
+:: igorhunter[mod mod_gad]
 <<set $here = 'igorhunter'>>
 <<set $ARGS = $location_var[$here]>>
 <!-- !2021/05/02-->

+ 1 - 1
sugarcube/src/autogenerated/Gadyukino Characters/mirafather.tw

@@ -1,4 +1,4 @@
-:: mirafather
+:: mirafather[mod mod_gad]
 <<set $here = 'mirafather'>>
 <<set $ARGS = $location_var[$here]>>
 <!-- !2021/05/02-->

+ 1 - 1
sugarcube/src/autogenerated/Gadyukino Characters/mirasex.tw

@@ -1,4 +1,4 @@
-:: mirasex
+:: mirasex[mod mod_gad]
 <<set $here = 'mirasex'>>
 <<set $ARGS = $location_var[$here]>>
 <!-- !2021/05/05-->

+ 1 - 1
sugarcube/src/autogenerated/Gadyukino Characters/miroslava.tw

@@ -1,4 +1,4 @@
-:: miroslava
+:: miroslava[mod mod_gad]
 <<set $here = 'miroslava'>>
 <<set $ARGS = $location_var[$here]>>
 <!-- !2021/05/05-->

+ 1 - 1
sugarcube/src/autogenerated/Gadyukino Characters/mitka.tw

@@ -1,4 +1,4 @@
-:: mitka
+:: mitka[mod mod_gad]
 <<set $here = 'mitka'>>
 <<set $ARGS = $location_var[$here]>>
 <!-- !2021/05/02-->

+ 1 - 1
sugarcube/src/autogenerated/Gadyukino Characters/mitkabuh.tw

@@ -1,4 +1,4 @@
-:: mitkabuh
+:: mitkabuh[mod mod_gad]
 <<set $here = 'mitkabuh'>>
 <<set $ARGS = $location_var[$here]>>
 <!-- !2021/05/05-->

+ 1 - 1
sugarcube/src/autogenerated/Gadyukino Characters/mitkabuh_group.tw

@@ -1,4 +1,4 @@
-:: mitkabuh_group
+:: mitkabuh_group[mod mod_gad]
 <<set $here = 'mitkabuh_group'>>
 <<set $ARGS = $location_var[$here]>>
 <!-- !2021/05/05-->

+ 1 - 1
sugarcube/src/autogenerated/Gadyukino Characters/mitkasex.tw

@@ -1,4 +1,4 @@
-:: mitkasex
+:: mitkasex[mod mod_gad]
 <<set $here = 'mitkasex'>>
 <<set $ARGS = $location_var[$here]>>
 <<set $menu_off = 1>>

+ 1 - 1
sugarcube/src/autogenerated/Gadyukino Characters/sergeihunter.tw

@@ -1,4 +1,4 @@
-:: sergeihunter
+:: sergeihunter[mod mod_gad]
 <<set $here = 'sergeihunter'>>
 <<set $ARGS = $location_var[$here]>>
 <!-- !2021/05/02-->

+ 1 - 1
sugarcube/src/autogenerated/Gadyukino Characters/swamp_woods.tw

@@ -1,4 +1,4 @@
-:: swamp_woods
+:: swamp_woods[mod mod_gad]
 <<set $here = 'swamp_woods'>>
 <<set $ARGS = $location_var[$here]>>
 <!-- !TODO: Break into more arg blocks-->

+ 1 - 1
sugarcube/src/autogenerated/Gadyukino/backwater.tw

@@ -1,4 +1,4 @@
-:: backwater
+:: backwater[mod mod_gad]
 <<set $here = 'backwater'>>
 <<set $ARGS = $location_var[$here]>>
 <<set $location_type = 'secluded'>>

+ 1 - 1
sugarcube/src/autogenerated/Gadyukino/bicycle.tw

@@ -1,4 +1,4 @@
-:: bicycle
+:: bicycle[mod mod_gad]
 <<set $here = 'bicycle'>>
 <<set $ARGS = $location_var[$here]>>
 <!-- ! BikeLoc - tells us where bicycle is currently located-->

+ 1 - 1
sugarcube/src/autogenerated/Gadyukino/grandmahelp.tw

@@ -1,4 +1,4 @@
-:: grandmahelp
+:: grandmahelp[mod mod_gad]
 <<set $here = 'grandmahelp'>>
 <<set $ARGS = $location_var[$here]>>
 <<set $menu_off = 1>>

+ 1 - 1
sugarcube/src/autogenerated/Gadyukino/grandpahelp.tw

@@ -1,4 +1,4 @@
-:: grandpahelp
+:: grandpahelp[mod mod_gad]
 <<set $here = 'grandpahelp'>>
 <<set $ARGS = $location_var[$here]>>
 <<set $locclass to null>>

+ 1 - 1
sugarcube/src/autogenerated/Gadyukino/meadow.tw

@@ -1,4 +1,4 @@
-:: meadow
+:: meadow[mod mod_gad]
 <<set $here = 'meadow'>>
 <<set $ARGS = $location_var[$here]>>
 <!-- !2021/05/05-->

+ 1 - 1
sugarcube/src/autogenerated/Gadyukino/miroslavahome.tw

@@ -1,4 +1,4 @@
-:: miroslavahome
+:: miroslavahome[mod mod_gad]
 <<set $here = 'miroslavahome'>>
 <<set $ARGS = $location_var[$here]>>
 <!-- !2021/05/02-->

+ 1 - 1
sugarcube/src/autogenerated/Gadyukino/swamp.tw

@@ -1,4 +1,4 @@
-:: swamp
+:: swamp[mod mod_gad]
 <<set $here = 'swamp'>>
 <<set $ARGS = $location_var[$here]>>
 <<if $location_var[$here][0] == 'start'>>

+ 1 - 1
sugarcube/src/autogenerated/Gadyukino/swamp_yard.tw

@@ -1,4 +1,4 @@
-:: swamp_yard
+:: swamp_yard[mod mod_gad]
 <<set $here = 'swamp_yard'>>
 <<set $ARGS = $location_var[$here]>>
 <<gs 'hunter_ambient' 'schedule'>>

+ 1 - 1
sugarcube/src/autogenerated/Gadyukino/swamphouse.tw

@@ -1,4 +1,4 @@
-:: swamphouse
+:: swamphouse[mod mod_gad]
 <<set $here = 'swamphouse'>>
 <<set $ARGS = $location_var[$here]>>
 <!-- !2021/05/02-->

+ 1 - 1
sugarcube/src/autogenerated/Gadyukino/swampspring.tw

@@ -1,4 +1,4 @@
-:: swampspring
+:: swampspring[mod mod_gad]
 <<set $here = 'swampspring'>>
 <<set $ARGS = $location_var[$here]>>
 <<set $loc = 'swampspring'>>

+ 5 - 0
sugarcube/src/autogenerated/Stats/stat.tw

@@ -1232,5 +1232,10 @@
 			<<set $bimbolevel = 0>>
 
 		<</if>>
+
+	<<for _afterPassage range Story.lookup("tags", 'stat_15minutes_changes_after')>>
+		<<include _afterPassage.title>>
+	<</for>>
+	
 <!-- END: stat_15minutes_changes -->
  */

+ 1 - 0
sugarcube/src/interfaces.d.ts

@@ -178,6 +178,7 @@ declare module "twine-sugarcube" {
 		location_var: object;
 		locationTravelRequest?:LocationTravelRequest;
 		media_path: string;
+		modVars:any;
 		quest: (id:string)=>Quest;
 		result: number | string;
 		/**

+ 1 - 1
sugarcube/src/locations/gadukino/gad_church.tw

@@ -1,4 +1,4 @@
-:: gad_church
+:: gad_church[mod mod_gad]
 <<set $here = 'gad_church'>>
 <<set $ARGS = $location_var[$here]>>
 <!-- !2021/05/04-->

+ 1 - 1
sugarcube/src/locations/gadukino/gadbana.tw

@@ -1,4 +1,4 @@
-:: Gadbana
+:: Gadbana[mod mod_gad]
 <<set $here = 'Gadbana'>>
 <<set $ARGS = $location_var[$here]>>
 <!-- !2021/05/05-->

+ 1 - 1
sugarcube/src/locations/gadukino/gaddvor.tw

@@ -1,4 +1,4 @@
-:: gaddvor
+:: gaddvor[mod mod_gad]
 <<set $here = 'gaddvor'>>
 <<set $ARGS = $location_var[$here]>>
 <<if !$location_var[$here][0]>>

+ 1 - 1
sugarcube/src/locations/gadukino/gadfield.tw

@@ -1,4 +1,4 @@
-:: gadfield
+:: gadfield[mod mod_gad]
 <<set $here = 'gadfield'>>
 <<set $ARGS = $location_var[$here]>>
 <!-- !2021/05/05-->

+ 1 - 1
sugarcube/src/locations/gadukino/gadforest.tw

@@ -1,4 +1,4 @@
-:: gadforest
+:: gadforest[mod mod_gad]
 <<set $here = 'gadforest'>>
 <<set $ARGS = $location_var[$here]>>
 <!-- !2021/05/05-->

+ 1 - 1
sugarcube/src/locations/gadukino/gadforest_event.tw

@@ -1,4 +1,4 @@
-:: gadforest_event
+:: gadforest_event[mod mod_gad]
 <<set $here = 'gadforest_event'>>
 <<set $ARGS = $location_var[$here]>>
 <!-- !2021/05/05-->

+ 1 - 1
sugarcube/src/locations/gadukino/gadforestlost.tw

@@ -1,4 +1,4 @@
-:: gadforestlost
+:: gadforestlost[mod mod_gad]
 <<set $here = 'gadforestlost'>>
 <<set $ARGS = $location_var[$here]>>
 <!-- ! this file holds all the current code and events for player when lost-->

+ 1 - 1
sugarcube/src/locations/gadukino/gadgarden.tw

@@ -1,4 +1,4 @@
-:: gadgarden
+:: gadgarden[mod mod_gad]
 <<set $here = 'gadgarden'>>
 <<set $ARGS = $location_var[$here]>>
 <<if $location_var[$here][0] == 'garden'>>

+ 1 - 1
sugarcube/src/locations/gadukino/gadhouse.tw

@@ -1,4 +1,4 @@
-:: gadhouse
+:: gadhouse[mod mod_gad]
 <<set $here = 'gadhouse'>>
 <<set $ARGS = $location_var[$here]>>
 <!-- !! VARIABLE LIST FOR GRANDPARENTS AND THEIR CHORES - START-->

+ 1 - 1
sugarcube/src/locations/gadukino/gadmarket.tw

@@ -1,4 +1,4 @@
-:: gadmarket
+:: gadmarket[mod mod_gad]
 <<set $here = 'gadmarket'>>
 <<set $ARGS = $location_var[$here]>>
 <<set $loc = 'gadmarket'>>

+ 1 - 1
sugarcube/src/locations/gadukino/gadprostitutes.tw

@@ -1,4 +1,4 @@
-:: gadprostitutes
+:: gadprostitutes[mod mod_gad]
 <<set $here = 'gadprostitutes'>>
 <<set $ARGS = $location_var[$here]>>
 <!-- !2021/05/05-->

+ 1 - 1
sugarcube/src/locations/gadukino/gadriver.tw

@@ -1,4 +1,4 @@
-:: gadriver
+:: gadriver[mod mod_gad]
 <<set $here = 'gadriver'>>
 <<set $ARGS = $location_var[$here]>>
 <!-- !!2022/05/02-->

+ 1 - 1
sugarcube/src/locations/gadukino/gadroad.tw

@@ -1,4 +1,4 @@
-:: gadroad
+:: gadroad[mod mod_gad]
 <<set $here = 'gadroad'>>
 <<set $ARGS = $location_var[$here]>>
 <<if !$location_var[$here][0]>>

+ 1 - 1
sugarcube/src/locations/gadukino/gadsarai.tw

@@ -1,4 +1,4 @@
-:: gadsarai
+:: gadsarai[mod mod_gad]
 <<set $here = 'gadsarai'>>
 <<set $ARGS = $location_var[$here]>>
 <!-- !2021/05/08-->

+ 1 - 1
sugarcube/src/locations/gadukino/gadukino.tw

@@ -1,4 +1,4 @@
-:: gadukino
+:: gadukino[mod mod_gad]
 <<set $here = 'gadukino'>>
 <<set $ARGS = $location_var[$here]>>
 <!-- !!2022/05/02-->

+ 1 - 1
sugarcube/src/locations/gadukino/gadukino_event.tw

@@ -1,4 +1,4 @@
-:: gadukino_event
+:: gadukino_event[mod mod_gad]
 <<set $here = 'gadukino_event'>>
 <<set $ARGS = $location_var[$here]>>
 <!-- !!2022/05/06-->

+ 22 - 0
sugarcube/src/start/index.tw

@@ -64,6 +64,10 @@
 		<<gt 'ImageSetting'>>
 	<</act>>
 
+	<<act 'Mod Manager'>>
+		<<gt 'ModManager'>>
+	<</act>>
+
 </center>
 <!-- ! WD: Set variable to store Image needed HTML code-->
 <<set $ImageNeededPlacholder = '<center>IMAGE MISSING</center>'>>
@@ -97,3 +101,21 @@
 <p><b style="color:red;">If you see an image below your settings are correct.</b></p>
 <<image "system/1_openings/splashes/splash#.jpg" 1 14>>
 
+:: ModManager[menu]
+	<<set _modPaths = JSON.parse(localStorage.getItem('modPaths') || '[]')>>
+	<<set _modPathsDisplay = _modPaths.join('\n')>>
+
+	<<textarea "_modPathsDisplay" _modPathsDisplay>>
+
+	<<button 'Apply'>>
+		<<set _modPaths = _modPathsDisplay.split(/\r?\n|\r|\n/g)>>
+		<<set _modPaths = _modPaths.map((raw)=>raw.trim()).filter((path)=>path!='')>>
+		<<if _modPaths.length>>
+			<<run localStorage.setItem('modPaths',JSON.stringify(_modPaths))>>
+		<<else>>
+			<<run localStorage.setItem('modPaths',"[]")>>
+		<</if>>
+		<<run location.reload()>>
+	<</button>>
+
+	<<link "Back">><<goto "index">><</link>>

+ 2 - 0
sugarcube/src/version/VersionControl.ts

@@ -15,6 +15,8 @@ class VersionControl{
 			variables.q._quests['mother_virgin'].certificateDeadline = new Date(0);
 		}
 		
+		variables.modVars ??= {};
+
 		variables.version = toVersion;
 		
 	}

Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio