Menu.tw 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. :: Menu[menu]
  2. <h2>Settings</h2>
  3. <h3>User Interface (Experimental)</h3>
  4. <<set $settings.ui ??= {}>>
  5. <<set $settings.ui.actionsAtBottom ??= false>>
  6. <<set $settings.ui.sidebarRight ??= false>>
  7. <<set $settings.ui.css ??= "">>
  8. <p>
  9. <b>Note: All Style-settings tinker with the display-code at a low level. You might need to reload the page (F5) for changes to take effect.</b>
  10. </p>
  11. <p>
  12. <<checkbox "$settings.ui.actionsAtBottom" false true autocheck>> Display the available actions at the bottom of each passage instead of on the left side (only effects screens which are large enough to display the actions on the left to begin with).
  13. </p>
  14. <p>
  15. <<checkbox "$settings.ui.sidebarRight" false true autocheck>> Display the sidebar on the right instead of the left side.
  16. </p>
  17. <p>
  18. Custom CSS:<br/>
  19. Use URLs of external stylesheets (one stylesheet per line). Example: <i>"""https://girllife.neocities.org/blue.css"""</i>
  20. Note: you can't host stylesheets everywhere. The correct MIME-type has to be transferred. Most webservers will work, but services such as pastebin won't.<br/>
  21. <<textarea "$settings.ui.css" $settings.ui.css>>
  22. </p>
  23. <hr/>
  24. <h3>Gameplay</h3>
  25. <p>
  26. <<checkbox "$settings.shoes_keepOnPrivateIndoors" false true autocheck>> Keep your shoes on at private indoor locations (such as your home or a rented hotel room).
  27. Under normal circumstances, you will take them off for sleep independent of this setting.
  28. </p>
  29. <hr/>
  30. <h3>World</h3>
  31. <<set $settings.world ??= {}>>
  32. <<set $settings.world.crime ??= 'default'>>
  33. <h4>Crime</h4>
  34. <p>
  35. The crime settings influence how often you become the target of criminals.
  36. There are various types of crime, such as theft and abduction.
  37. At lower crime settings, many places, such as populated areas, are mostly safe from some crimes (theft) and completely safe from others (abduction, rape, etc.) during daytime.
  38. Some places, such police stations, are always safe.
  39. Most crimes depend on the type of location you are at. For example, theft will happen outdoors while burglary happens indoors.
  40. </p>
  41. <p>
  42. Note that this setting does not affect events where you are the criminal yourself.
  43. </p>
  44. <ul>
  45. <li><<radiobutton "$settings.world.crime" "minimal" autocheck>> Minimal: There is still crime, but you have to actively go looking for it. Random crime events are disabled.</li>
  46. <li><<radiobutton "$settings.world.crime" "realistic" autocheck>> Realistic: While criminals exist you are rather unlikely to become their target unless you actively search for them.</li>
  47. <li><<radiobutton "$settings.world.crime" "default" autocheck>> Default: You need to mind where you're going, especially in the dark.</li>
  48. <li><<radiobutton "$settings.world.crime" "high" autocheck>> High: Criminals are a common problem. You even have a small risk of encountering them at populated public places during daytime.</li>
  49. <li><<radiobutton "$settings.world.crime" "always" autocheck>> Always: There is an army of criminals after you. Only use this option if you want to encounter the relevant content as soon as possible.</li>
  50. </ul>
  51. <hr/>
  52. <h3>Development</h3>
  53. <p><<checkbox "$DEBUGGING" false true autocheck>> Enable Debugging</p>
  54. <h3>Graphics</h3>
  55. <p>
  56. <<checkbox "$settings.lightmode" false true autocheck>>
  57. Change the colors of the font and the background of the main passage depending on the light levels around the main character (turning this setting off requires a page-reload(F5)).
  58. </p>
  59. <p>
  60. Image path: <<textbox "$media_path" $media_path>>
  61. </p>
  62. <h3>Misc</h3>
  63. <p>
  64. Autosave:
  65. <ul>
  66. <li><<radiobutton "$settings.autosave" "ALWAYS" autocheck>> Save on each passage. Might put a heavy strain on weaker systems.</li>
  67. <li><<radiobutton "$settings.autosave" "AWAKE" autocheck>> Save each time you wake up after sleeping and at key story events.</li>
  68. <li><<radiobutton "$settings.autosave" "NONE" autocheck>> Never autosave.</li>
  69. </ul>
  70. </p>
  71. <p>
  72. <<set $settings.maxStates ??= Config.history.maxStates>>
  73. History: <<attr 'min' 1 'max' 100>><<numberbox '$settings.maxStates' $settings.maxStates>><</attr>>
  74. </p>
  75. <p>
  76. [[Achievements|AchievementsOverview]]
  77. </p>
  78. <p>
  79. [[CheatMenu]]
  80. </p>
  81. <<act "Return">>
  82. <<run memorize('media_path', $media_path)>>
  83. <<run setup.settingsApply($settings)>>
  84. <<gt $location>>
  85. <</act>>
  86. :: CheatMenu[menu]
  87. <<ret>>
  88. <h3>Appearance</h3>
  89. <p>
  90. Total Appearance: $pc.pcs_apprnc
  91. </p>
  92. <p>
  93. Base Appearance: $pc.pcs_apprncbase
  94. </p>
  95. <p>
  96. Clothing Appearance: $pc.appearance_clothingBonus
  97. </p>
  98. <p>
  99. Accessories Appearance: $pc.appearance_accessoriesBonus
  100. </p>
  101. <p>
  102. Grooming Bonus Appearance: $pc.appearance_groomingBonus
  103. </p>
  104. <p>
  105. Grooming Penalty Appearance: $pc.appearance_groomingPenalty
  106. </p>
  107. <p>
  108. Hotcat: $pc.hotcat
  109. </p>
  110. <h3>NPCs</h3>
  111. <<set _npcIds = $npcs.ids()>>
  112. <div id="npcOverview">
  113. <<for _npcId range _npcIds>>
  114. <<set _npc = $npcs.npcData(_npcId)>>
  115. <div class="npcId">
  116. <<capture _npcId>>
  117. <<link _npcId>>
  118. <<set $cheatMenuNpc to _npcId>>
  119. <<goto "CheatMenu_NPC">>
  120. <</link>>
  121. <</capture>>
  122. </div>
  123. <div class="npcFirstName">_npc.firstname</div>
  124. <div class="npcLastName">_npc.lastname</div>
  125. <div class="npcRel">_npc.rel</div>
  126. <</for>>
  127. </div>
  128. :: CheatMenu_NPC
  129. <div id="npcOverviewContainer">
  130. <<npcDetails $cheatMenuNpc>>
  131. </div>
  132. <<link "Reset">>
  133. <<replace "#npcOverviewContainer">>
  134. <<npcDetails $cheatMenuNpc>>
  135. <</replace>>
  136. <</link>>
  137. <<link "Confirm">>
  138. <<for _key, _value range _npc>>
  139. <<if _value == "undefined">>
  140. <<set _v = undefined>>
  141. <<elseif _value == "null">>
  142. <<set _v = null>>
  143. <<elseif !isNaN(_value)>>
  144. <<set _v = Number(_value)>>
  145. <<else>>
  146. <<set _v = _value>>
  147. <</if>>
  148. <<run $npcs.set($cheatMenuNpc,_key,_v)>>
  149. <</for>>
  150. <<goto "CheatMenu">>
  151. <</link>>
  152. :: CheatMenu_NPC_Widgets[widget]
  153. <<widget 'npcDetails'>>
  154. <<set _npc = $npcs.npcData(_args[0])>>
  155. <div id="npcDetails">
  156. <label>First Name: <<textbox "_npc.firstname" _npc.firstname>></label>
  157. <label>Last Name: <<textbox "_npc.lastname" _npc.lastname>></label>
  158. <label>Day of birth: <<textbox "_npc.dob" _npc.dob>></label>
  159. <label>Relationship: <<textbox "_npc.rel" _npc.rel>></label>
  160. </div>
  161. <</widget>>