@strixit/storyscript 0.0.0-stage → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (370) hide show
  1. package/.env +1 -0
  2. package/CodeSnippets/StoryScriptSnippets.code-snippets +573 -0
  3. package/LICENSE.txt +21 -0
  4. package/LiveTemplates/StoryScript.xml +271 -0
  5. package/README.md +9 -2
  6. package/baseViteConfig.js +112 -0
  7. package/clientFiles/currentGameName.js +1 -0
  8. package/clientFiles/gitignore +12 -0
  9. package/clientFiles/tsconfig.json +34 -0
  10. package/clientFiles/vite.config.ts +14 -0
  11. package/clientFiles/vitest.config.ts +29 -0
  12. package/dist/src/Engine/Actions/index.d.ts +2 -0
  13. package/dist/src/Engine/Actions/open.d.ts +6 -0
  14. package/dist/src/Engine/Actions/openWithKey.d.ts +7 -0
  15. package/dist/src/Engine/EntityCreatorFunctions.d.ts +18 -0
  16. package/dist/src/Engine/Interfaces/action.d.ts +37 -0
  17. package/dist/src/Engine/Interfaces/autoplayStep.d.ts +11 -0
  18. package/dist/src/Engine/Interfaces/barrier.d.ts +16 -0
  19. package/dist/src/Engine/Interfaces/barrierAction.d.ts +19 -0
  20. package/dist/src/Engine/Interfaces/character.d.ts +48 -0
  21. package/dist/src/Engine/Interfaces/combatSetup.d.ts +9 -0
  22. package/dist/src/Engine/Interfaces/combatTurn.d.ts +37 -0
  23. package/dist/src/Engine/Interfaces/combatWinnings.d.ts +6 -0
  24. package/dist/src/Engine/Interfaces/combinations/activeCombination.d.ts +14 -0
  25. package/dist/src/Engine/Interfaces/combinations/combinable.d.ts +18 -0
  26. package/dist/src/Engine/Interfaces/combinations/combinationAction.d.ts +41 -0
  27. package/dist/src/Engine/Interfaces/combinations/combinationMatchResult.d.ts +14 -0
  28. package/dist/src/Engine/Interfaces/combinations/combinations.d.ts +17 -0
  29. package/dist/src/Engine/Interfaces/combinations/combine.d.ts +22 -0
  30. package/dist/src/Engine/Interfaces/combinations/combineResult.d.ts +18 -0
  31. package/dist/src/Engine/Interfaces/combinations/gameCombinations.d.ts +40 -0
  32. package/dist/src/Engine/Interfaces/compiledLocation.d.ts +33 -0
  33. package/dist/src/Engine/Interfaces/conversations/conversation.d.ts +44 -0
  34. package/dist/src/Engine/Interfaces/conversations/conversationLogEntry.d.ts +13 -0
  35. package/dist/src/Engine/Interfaces/conversations/conversationNode.d.ts +22 -0
  36. package/dist/src/Engine/Interfaces/conversations/conversationReply.d.ts +49 -0
  37. package/dist/src/Engine/Interfaces/createCharacter/createCharacter.d.ts +20 -0
  38. package/dist/src/Engine/Interfaces/createCharacter/createCharacterAttribute.d.ts +18 -0
  39. package/dist/src/Engine/Interfaces/createCharacter/createCharacterAttributeEntry.d.ts +18 -0
  40. package/dist/src/Engine/Interfaces/createCharacter/createCharacterQuestion.d.ts +18 -0
  41. package/dist/src/Engine/Interfaces/createCharacter/createCharacterQuestionEntry.d.ts +22 -0
  42. package/dist/src/Engine/Interfaces/createCharacter/createCharacterStep.d.ts +40 -0
  43. package/dist/src/Engine/Interfaces/customCursor.d.ts +8 -0
  44. package/dist/src/Engine/Interfaces/defaultEquipment.d.ts +19 -0
  45. package/dist/src/Engine/Interfaces/definitions.d.ts +40 -0
  46. package/dist/src/Engine/Interfaces/destination.d.ts +31 -0
  47. package/dist/src/Engine/Interfaces/dynamicStyle.d.ts +10 -0
  48. package/dist/src/Engine/Interfaces/enemy.d.ts +46 -0
  49. package/dist/src/Engine/Interfaces/enumerations/actionStatus.d.ts +18 -0
  50. package/dist/src/Engine/Interfaces/enumerations/actionType.d.ts +9 -0
  51. package/dist/src/Engine/Interfaces/enumerations/equipmentType.d.ts +51 -0
  52. package/dist/src/Engine/Interfaces/enumerations/gameState.d.ts +11 -0
  53. package/dist/src/Engine/Interfaces/enumerations/playState.d.ts +10 -0
  54. package/dist/src/Engine/Interfaces/enumerations/targetType.d.ts +9 -0
  55. package/dist/src/Engine/Interfaces/equipment.d.ts +43 -0
  56. package/dist/src/Engine/Interfaces/feature.d.ts +37 -0
  57. package/dist/src/Engine/Interfaces/featureCollection.d.ts +7 -0
  58. package/dist/src/Engine/Interfaces/game.d.ts +148 -0
  59. package/dist/src/Engine/Interfaces/gameEvents.d.ts +7 -0
  60. package/dist/src/Engine/Interfaces/groupableItem.d.ts +32 -0
  61. package/dist/src/Engine/Interfaces/helpers.d.ts +50 -0
  62. package/dist/src/Engine/Interfaces/index.d.ts +78 -0
  63. package/dist/src/Engine/Interfaces/interfaceTexts.d.ts +140 -0
  64. package/dist/src/Engine/Interfaces/item.d.ts +96 -0
  65. package/dist/src/Engine/Interfaces/key.d.ts +16 -0
  66. package/dist/src/Engine/Interfaces/location.d.ts +78 -0
  67. package/dist/src/Engine/Interfaces/maps/map.d.ts +45 -0
  68. package/dist/src/Engine/Interfaces/maps/mapLocation.d.ts +23 -0
  69. package/dist/src/Engine/Interfaces/party.d.ts +33 -0
  70. package/dist/src/Engine/Interfaces/person.d.ts +25 -0
  71. package/dist/src/Engine/Interfaces/quest.d.ts +51 -0
  72. package/dist/src/Engine/Interfaces/rules/characterRules.d.ts +84 -0
  73. package/dist/src/Engine/Interfaces/rules/combatRules.d.ts +46 -0
  74. package/dist/src/Engine/Interfaces/rules/combinationRules.d.ts +15 -0
  75. package/dist/src/Engine/Interfaces/rules/demoMode.d.ts +15 -0
  76. package/dist/src/Engine/Interfaces/rules/encounterRules.d.ts +4 -0
  77. package/dist/src/Engine/Interfaces/rules/explorationRules.d.ts +42 -0
  78. package/dist/src/Engine/Interfaces/rules/generalRules.d.ts +62 -0
  79. package/dist/src/Engine/Interfaces/rules/rules.d.ts +31 -0
  80. package/dist/src/Engine/Interfaces/rules/setupRules.d.ts +56 -0
  81. package/dist/src/Engine/Interfaces/rules/titleScreen.d.ts +16 -0
  82. package/dist/src/Engine/Interfaces/saveGame.d.ts +33 -0
  83. package/dist/src/Engine/Interfaces/scoreEntry.d.ts +13 -0
  84. package/dist/src/Engine/Interfaces/services/autoplayService.d.ts +19 -0
  85. package/dist/src/Engine/Interfaces/services/characterService.d.ts +17 -0
  86. package/dist/src/Engine/Interfaces/services/combatService.d.ts +26 -0
  87. package/dist/src/Engine/Interfaces/services/combinationService.d.ts +9 -0
  88. package/dist/src/Engine/Interfaces/services/commandService.d.ts +64 -0
  89. package/dist/src/Engine/Interfaces/services/conversationService.d.ts +5 -0
  90. package/dist/src/Engine/Interfaces/services/dataSerializer.d.ts +4 -0
  91. package/dist/src/Engine/Interfaces/services/dataService.d.ts +33 -0
  92. package/dist/src/Engine/Interfaces/services/dataSynchronizer.d.ts +3 -0
  93. package/dist/src/Engine/Interfaces/services/gameService.d.ts +10 -0
  94. package/dist/src/Engine/Interfaces/services/index.d.ts +16 -0
  95. package/dist/src/Engine/Interfaces/services/itemService.d.ts +14 -0
  96. package/dist/src/Engine/Interfaces/services/localStorageService.d.ts +6 -0
  97. package/dist/src/Engine/Interfaces/services/locationService.d.ts +8 -0
  98. package/dist/src/Engine/Interfaces/services/soundService.d.ts +5 -0
  99. package/dist/src/Engine/Interfaces/services/tradeService.d.ts +9 -0
  100. package/dist/src/Engine/Interfaces/soundPlayer.d.ts +30 -0
  101. package/dist/src/Engine/Interfaces/sprite.d.ts +23 -0
  102. package/dist/src/Engine/Interfaces/stateList.d.ts +9 -0
  103. package/dist/src/Engine/Interfaces/statistics.d.ts +13 -0
  104. package/dist/src/Engine/Interfaces/stock.d.ts +39 -0
  105. package/dist/src/Engine/Interfaces/trade.d.ts +62 -0
  106. package/dist/src/Engine/ServiceFactory.d.ts +52 -0
  107. package/dist/src/Engine/Services/AutoplayService.d.ts +11 -0
  108. package/dist/src/Engine/Services/CharacterService.d.ts +21 -0
  109. package/dist/src/Engine/Services/CombatService.d.ts +16 -0
  110. package/dist/src/Engine/Services/CombinationService.d.ts +15 -0
  111. package/dist/src/Engine/Services/CommandService.d.ts +24 -0
  112. package/dist/src/Engine/Services/ConversationService.d.ts +26 -0
  113. package/dist/src/Engine/Services/DataSerializer.d.ts +17 -0
  114. package/dist/src/Engine/Services/DataService.d.ts +16 -0
  115. package/dist/src/Engine/Services/DataSynchronizer.d.ts +12 -0
  116. package/dist/src/Engine/Services/GameService.d.ts +28 -0
  117. package/dist/src/Engine/Services/HelperService.d.ts +18 -0
  118. package/dist/src/Engine/Services/ItemService.d.ts +21 -0
  119. package/dist/src/Engine/Services/LocalStorageService.d.ts +7 -0
  120. package/dist/src/Engine/Services/LocationService.d.ts +25 -0
  121. package/dist/src/Engine/Services/SoundService.d.ts +13 -0
  122. package/dist/src/Engine/Services/TradeService.d.ts +17 -0
  123. package/dist/src/Engine/Services/index.d.ts +17 -0
  124. package/dist/src/Engine/Services/serializationData.d.ts +8 -0
  125. package/dist/src/Engine/Services/sharedFunctions.d.ts +21 -0
  126. package/dist/src/Engine/arrayAndFunctionExtensions.d.ts +3 -0
  127. package/dist/src/Engine/defaultTexts.d.ts +7 -0
  128. package/dist/src/Engine/gameEvents.d.ts +10 -0
  129. package/dist/src/Engine/index.d.ts +8 -0
  130. package/dist/src/Engine/stateProperties.d.ts +6 -0
  131. package/dist/src/Engine/utilityFunctions.d.ts +25 -0
  132. package/dist/src/UI/Composables/CustomCursor.d.ts +2 -0
  133. package/dist/src/UI/Composables/LocationMap.d.ts +26 -0
  134. package/dist/src/UI/Composables/Sound.d.ts +7 -0
  135. package/dist/src/UI/Composables/TextFeatures.d.ts +8 -0
  136. package/dist/src/UI/Composables/VisualFeatures.d.ts +7 -0
  137. package/dist/src/UI/Composables/index.d.ts +7 -0
  138. package/dist/src/UI/Composables/playStateWatch.d.ts +2 -0
  139. package/dist/src/UI/StateStore.d.ts +14256 -0
  140. package/dist/src/UI/error.d.ts +6 -0
  141. package/dist/src/UI/helpers.d.ts +3 -0
  142. package/dist/src/UI/index.d.ts +6 -0
  143. package/dist/src/UI/main.d.ts +1 -0
  144. package/dist/src/UI/startup.d.ts +2 -0
  145. package/dist/src/constants.d.ts +17 -0
  146. package/dist/src/index.d.ts +3 -0
  147. package/dist/storyscript.css +9566 -0
  148. package/dist/storyscript.js +9659 -0
  149. package/dist/storyscript.js.map +1 -0
  150. package/dist/storyscript.mjs +9569 -0
  151. package/dist/storyscript.mjs.map +1 -0
  152. package/electron.cjs +44 -0
  153. package/index.html +14 -0
  154. package/package.json +118 -4
  155. package/scripts/cli.js +268 -0
  156. package/scripts/createAsset.js +117 -0
  157. package/scripts/createGame.js +40 -0
  158. package/scripts/helpers.js +21 -0
  159. package/scripts/postbuild.js +179 -0
  160. package/scripts/setupTesting.js +17 -0
  161. package/shims-vue.d.ts +1 -0
  162. package/src/Engine/Actions/index.ts +2 -0
  163. package/src/Engine/Actions/open.ts +12 -0
  164. package/src/Engine/Actions/openWithKey.ts +23 -0
  165. package/src/Engine/EntityCreatorFunctions.ts +602 -0
  166. package/src/Engine/Interfaces/action.ts +43 -0
  167. package/src/Engine/Interfaces/autoplayStep.ts +13 -0
  168. package/src/Engine/Interfaces/barrier.ts +18 -0
  169. package/src/Engine/Interfaces/barrierAction.ts +21 -0
  170. package/src/Engine/Interfaces/character.ts +58 -0
  171. package/src/Engine/Interfaces/combatSetup.ts +10 -0
  172. package/src/Engine/Interfaces/combatTurn.ts +45 -0
  173. package/src/Engine/Interfaces/combatWinnings.ts +7 -0
  174. package/src/Engine/Interfaces/combinations/activeCombination.ts +16 -0
  175. package/src/Engine/Interfaces/combinations/combinable.ts +21 -0
  176. package/src/Engine/Interfaces/combinations/combinationAction.ts +45 -0
  177. package/src/Engine/Interfaces/combinations/combinationMatchResult.ts +16 -0
  178. package/src/Engine/Interfaces/combinations/combinations.ts +19 -0
  179. package/src/Engine/Interfaces/combinations/combine.ts +25 -0
  180. package/src/Engine/Interfaces/combinations/combineResult.ts +21 -0
  181. package/src/Engine/Interfaces/combinations/gameCombinations.ts +48 -0
  182. package/src/Engine/Interfaces/compiledLocation.ts +37 -0
  183. package/src/Engine/Interfaces/conversations/conversation.ts +47 -0
  184. package/src/Engine/Interfaces/conversations/conversationLogEntry.ts +14 -0
  185. package/src/Engine/Interfaces/conversations/conversationNode.ts +26 -0
  186. package/src/Engine/Interfaces/conversations/conversationReply.ts +59 -0
  187. package/src/Engine/Interfaces/createCharacter/createCharacter.ts +23 -0
  188. package/src/Engine/Interfaces/createCharacter/createCharacterAttribute.ts +21 -0
  189. package/src/Engine/Interfaces/createCharacter/createCharacterAttributeEntry.ts +21 -0
  190. package/src/Engine/Interfaces/createCharacter/createCharacterQuestion.ts +21 -0
  191. package/src/Engine/Interfaces/createCharacter/createCharacterQuestionEntry.ts +25 -0
  192. package/src/Engine/Interfaces/createCharacter/createCharacterStep.ts +47 -0
  193. package/src/Engine/Interfaces/customCursor.ts +5 -0
  194. package/src/Engine/Interfaces/defaultEquipment.ts +32 -0
  195. package/src/Engine/Interfaces/definitions.ts +48 -0
  196. package/src/Engine/Interfaces/destination.ts +37 -0
  197. package/src/Engine/Interfaces/dynamicStyle.ts +11 -0
  198. package/src/Engine/Interfaces/enemy.ts +54 -0
  199. package/src/Engine/Interfaces/enumerations/actionStatus.ts +20 -0
  200. package/src/Engine/Interfaces/enumerations/actionType.ts +9 -0
  201. package/src/Engine/Interfaces/enumerations/equipmentType.ts +61 -0
  202. package/src/Engine/Interfaces/enumerations/gameState.ts +11 -0
  203. package/src/Engine/Interfaces/enumerations/playState.ts +10 -0
  204. package/src/Engine/Interfaces/enumerations/targetType.ts +9 -0
  205. package/src/Engine/Interfaces/equipment.ts +44 -0
  206. package/src/Engine/Interfaces/feature.ts +43 -0
  207. package/src/Engine/Interfaces/featureCollection.ts +8 -0
  208. package/src/Engine/Interfaces/game.ts +201 -0
  209. package/src/Engine/Interfaces/gameEvents.ts +11 -0
  210. package/src/Engine/Interfaces/groupableItem.ts +37 -0
  211. package/src/Engine/Interfaces/helpers.ts +55 -0
  212. package/src/Engine/Interfaces/index.ts +158 -0
  213. package/src/Engine/Interfaces/interfaceTexts.ts +142 -0
  214. package/src/Engine/Interfaces/item.ts +111 -0
  215. package/src/Engine/Interfaces/key.ts +18 -0
  216. package/src/Engine/Interfaces/location.ts +92 -0
  217. package/src/Engine/Interfaces/maps/map.ts +55 -0
  218. package/src/Engine/Interfaces/maps/mapLocation.ts +28 -0
  219. package/src/Engine/Interfaces/party.ts +40 -0
  220. package/src/Engine/Interfaces/person.ts +29 -0
  221. package/src/Engine/Interfaces/quest.ts +60 -0
  222. package/src/Engine/Interfaces/rules/characterRules.ts +96 -0
  223. package/src/Engine/Interfaces/rules/combatRules.ts +52 -0
  224. package/src/Engine/Interfaces/rules/combinationRules.ts +17 -0
  225. package/src/Engine/Interfaces/rules/demoMode.ts +18 -0
  226. package/src/Engine/Interfaces/rules/encounterRules.ts +5 -0
  227. package/src/Engine/Interfaces/rules/explorationRules.ts +47 -0
  228. package/src/Engine/Interfaces/rules/generalRules.ts +80 -0
  229. package/src/Engine/Interfaces/rules/rules.ts +46 -0
  230. package/src/Engine/Interfaces/rules/setupRules.ts +65 -0
  231. package/src/Engine/Interfaces/rules/titleScreen.ts +19 -0
  232. package/src/Engine/Interfaces/saveGame.ts +39 -0
  233. package/src/Engine/Interfaces/scoreEntry.ts +14 -0
  234. package/src/Engine/Interfaces/services/autoplayService.ts +23 -0
  235. package/src/Engine/Interfaces/services/characterService.ts +35 -0
  236. package/src/Engine/Interfaces/services/combatService.ts +30 -0
  237. package/src/Engine/Interfaces/services/combinationService.ts +10 -0
  238. package/src/Engine/Interfaces/services/commandService.ts +75 -0
  239. package/src/Engine/Interfaces/services/conversationService.ts +7 -0
  240. package/src/Engine/Interfaces/services/dataSerializer.ts +4 -0
  241. package/src/Engine/Interfaces/services/dataService.ts +39 -0
  242. package/src/Engine/Interfaces/services/dataSynchronizer.ts +9 -0
  243. package/src/Engine/Interfaces/services/gameService.ts +17 -0
  244. package/src/Engine/Interfaces/services/index.ts +33 -0
  245. package/src/Engine/Interfaces/services/itemService.ts +25 -0
  246. package/src/Engine/Interfaces/services/localStorageService.ts +6 -0
  247. package/src/Engine/Interfaces/services/locationService.ts +13 -0
  248. package/src/Engine/Interfaces/services/soundService.ts +7 -0
  249. package/src/Engine/Interfaces/services/tradeService.ts +15 -0
  250. package/src/Engine/Interfaces/soundPlayer.ts +30 -0
  251. package/src/Engine/Interfaces/sprite.ts +27 -0
  252. package/src/Engine/Interfaces/stateList.ts +13 -0
  253. package/src/Engine/Interfaces/statistics.ts +14 -0
  254. package/src/Engine/Interfaces/stock.ts +46 -0
  255. package/src/Engine/Interfaces/trade.ts +72 -0
  256. package/src/Engine/ServiceFactory.ts +167 -0
  257. package/src/Engine/Services/AutoplayService.ts +59 -0
  258. package/src/Engine/Services/CharacterService.ts +291 -0
  259. package/src/Engine/Services/CombatService.ts +266 -0
  260. package/src/Engine/Services/CombinationService.ts +197 -0
  261. package/src/Engine/Services/CommandService.ts +197 -0
  262. package/src/Engine/Services/ConversationService.ts +406 -0
  263. package/src/Engine/Services/DataSerializer.ts +326 -0
  264. package/src/Engine/Services/DataService.ts +93 -0
  265. package/src/Engine/Services/DataSynchronizer.ts +216 -0
  266. package/src/Engine/Services/GameService.ts +554 -0
  267. package/src/Engine/Services/HelperService.ts +94 -0
  268. package/src/Engine/Services/ItemService.ts +294 -0
  269. package/src/Engine/Services/LocalStorageService.ts +24 -0
  270. package/src/Engine/Services/LocationService.ts +380 -0
  271. package/src/Engine/Services/SoundService.ts +54 -0
  272. package/src/Engine/Services/TradeService.ts +176 -0
  273. package/src/Engine/Services/index.ts +17 -0
  274. package/src/Engine/Services/serializationData.ts +8 -0
  275. package/src/Engine/Services/sharedFunctions.ts +296 -0
  276. package/src/Engine/arrayAndFunctionExtensions.ts +269 -0
  277. package/src/Engine/defaultTexts.ts +162 -0
  278. package/src/Engine/gameEvents.ts +51 -0
  279. package/src/Engine/index.ts +9 -0
  280. package/src/Engine/stateProperties.ts +9 -0
  281. package/src/Engine/utilityFunctions.ts +238 -0
  282. package/src/Games/_GameTemplate/character.ts +31 -0
  283. package/src/Games/_GameTemplate/customTexts.ts +8 -0
  284. package/src/Games/_GameTemplate/interfaces/action.ts +5 -0
  285. package/src/Games/_GameTemplate/interfaces/combatSetup.ts +7 -0
  286. package/src/Games/_GameTemplate/interfaces/combatTurn.ts +8 -0
  287. package/src/Games/_GameTemplate/interfaces/destination.ts +5 -0
  288. package/src/Games/_GameTemplate/interfaces/enemy.ts +11 -0
  289. package/src/Games/_GameTemplate/interfaces/equipment.ts +5 -0
  290. package/src/Games/_GameTemplate/interfaces/feature.ts +9 -0
  291. package/src/Games/_GameTemplate/interfaces/game.ts +22 -0
  292. package/src/Games/_GameTemplate/interfaces/interfaceTexts.ts +5 -0
  293. package/src/Games/_GameTemplate/interfaces/item.ts +18 -0
  294. package/src/Games/_GameTemplate/interfaces/key.ts +10 -0
  295. package/src/Games/_GameTemplate/interfaces/location.ts +22 -0
  296. package/src/Games/_GameTemplate/interfaces/map.ts +16 -0
  297. package/src/Games/_GameTemplate/interfaces/party.ts +8 -0
  298. package/src/Games/_GameTemplate/interfaces/person.ts +11 -0
  299. package/src/Games/_GameTemplate/interfaces/quest.ts +9 -0
  300. package/src/Games/_GameTemplate/locations/Start.html +5 -0
  301. package/src/Games/_GameTemplate/locations/start.ts +12 -0
  302. package/src/Games/_GameTemplate/rules.ts +60 -0
  303. package/src/Games/_GameTemplate/types.ts +55 -0
  304. package/src/Games/_GameTemplate/ui/styles/game.css +3 -0
  305. package/src/Games/_GameTemplate/webroot/favicon.ico +0 -0
  306. package/src/Games/_GameTemplate/webroot/gameinfo.json +10 -0
  307. package/src/Games/_GameTemplate/webroot/logo192.png +0 -0
  308. package/src/Games/_GameTemplate/webroot/logo512.png +0 -0
  309. package/src/Tests/Games/_GameTemplate/specs/rules.test.ts +9 -0
  310. package/src/UI/Components/AppShell.vue +43 -0
  311. package/src/UI/Components/Autoplay.vue +32 -0
  312. package/src/UI/Components/Combinations.vue +37 -0
  313. package/src/UI/Components/Common/Collapsible.vue +50 -0
  314. package/src/UI/Components/Common/ModalDialog.vue +54 -0
  315. package/src/UI/Components/Common/Sprite.vue +53 -0
  316. package/src/UI/Components/Description.vue +23 -0
  317. package/src/UI/Components/Encounter/Combat/Combat.vue +89 -0
  318. package/src/UI/Components/Encounter/Combat/CombatActions.vue +26 -0
  319. package/src/UI/Components/Encounter/Combat/CombatParticipant.vue +22 -0
  320. package/src/UI/Components/Encounter/Combat/CombatTargetSelect.vue +55 -0
  321. package/src/UI/Components/Encounter/Combat/CombatWin.vue +33 -0
  322. package/src/UI/Components/Encounter/Conversation.vue +66 -0
  323. package/src/UI/Components/Encounter/Encounter.vue +39 -0
  324. package/src/UI/Components/Encounter/Enemy.vue +30 -0
  325. package/src/UI/Components/Encounter/Trade/Stock.vue +58 -0
  326. package/src/UI/Components/Encounter/Trade/Trade.vue +24 -0
  327. package/src/UI/Components/Exploration/ActionLog.vue +17 -0
  328. package/src/UI/Components/Exploration/Destination.vue +66 -0
  329. package/src/UI/Components/Exploration/Exploration.vue +67 -0
  330. package/src/UI/Components/Exploration/Ground.vue +22 -0
  331. package/src/UI/Components/Exploration/LocationMap.vue +42 -0
  332. package/src/UI/Components/Exploration/LocationText.vue +39 -0
  333. package/src/UI/Components/Exploration/LocationVisual.vue +38 -0
  334. package/src/UI/Components/GameContainer.vue +49 -0
  335. package/src/UI/Components/GameMenu.vue +111 -0
  336. package/src/UI/Components/GameState/GameOver.vue +20 -0
  337. package/src/UI/Components/GameState/HighScores.vue +22 -0
  338. package/src/UI/Components/GameState/Intro.vue +17 -0
  339. package/src/UI/Components/GameState/TitleScreen.vue +42 -0
  340. package/src/UI/Components/GameState/Victory.vue +28 -0
  341. package/src/UI/Components/Navigation.vue +94 -0
  342. package/src/UI/Components/Party/Backpack.vue +68 -0
  343. package/src/UI/Components/Party/BuildCharacter.vue +64 -0
  344. package/src/UI/Components/Party/CharacterSheet.vue +57 -0
  345. package/src/UI/Components/Party/CreateCharacter.vue +46 -0
  346. package/src/UI/Components/Party/Equipment.vue +48 -0
  347. package/src/UI/Components/Party/EquipmentSlot.vue +31 -0
  348. package/src/UI/Components/Party/LevelUp.vue +27 -0
  349. package/src/UI/Components/Party/Party.vue +29 -0
  350. package/src/UI/Components/Party/Quests.vue +48 -0
  351. package/src/UI/Components/Sound.vue +42 -0
  352. package/src/UI/Composables/CustomCursor.ts +60 -0
  353. package/src/UI/Composables/LocationMap.ts +315 -0
  354. package/src/UI/Composables/Sound.ts +111 -0
  355. package/src/UI/Composables/TextFeatures.ts +148 -0
  356. package/src/UI/Composables/VisualFeatures.ts +220 -0
  357. package/src/UI/Composables/index.ts +15 -0
  358. package/src/UI/Composables/playStateWatch.ts +31 -0
  359. package/src/UI/StateStore.ts +237 -0
  360. package/src/UI/error.ts +6 -0
  361. package/src/UI/helpers.ts +62 -0
  362. package/src/UI/index.ts +13 -0
  363. package/src/UI/main.ts +62 -0
  364. package/src/UI/startup.ts +58 -0
  365. package/src/UI/styles/bootstrap-storyscript.scss +31 -0
  366. package/src/UI/styles/empty.css +3 -0
  367. package/src/UI/styles/lookinglass.png +0 -0
  368. package/src/UI/styles/storyscript.css +735 -0
  369. package/typeExtensions.d.ts +25 -0
  370. package/vite-env.d.ts +1 -0
@@ -0,0 +1,735 @@
1
+ :root {
2
+ --purple: rgb(72, 61, 139);
3
+ --black: #000;
4
+ --white: #fff;
5
+ --red: red;
6
+ --light-gray: lightgray;
7
+ }
8
+
9
+ body {
10
+ font-family: 'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif;
11
+ color: var(--purple);
12
+ height: 100vh;
13
+ }
14
+
15
+ h2 {
16
+ font-family: 'Trebuchet MS';
17
+ color: var(--purple);
18
+ }
19
+
20
+ button {
21
+ margin-right: 10px;
22
+ }
23
+
24
+
25
+ #error-alert {
26
+ position: absolute;
27
+ z-index: 1500;
28
+ display: flex;
29
+ justify-content: center;
30
+ }
31
+
32
+ #error-alert, #error-alert > h2 {
33
+ font-family: 'Lucida Sans';
34
+ }
35
+
36
+ .error-alert-body {
37
+ margin-top: 50px;
38
+ max-width: 50%;
39
+ }
40
+
41
+ .float-left {
42
+ float: left;
43
+ }
44
+
45
+ .float-right, .menu-buttons {
46
+ float: right;
47
+ }
48
+
49
+ .menu-buttons {
50
+ line-height: 38px;
51
+ }
52
+
53
+ .float-none {
54
+ float: none;
55
+ }
56
+
57
+ .modal-dialog {
58
+ max-width: 50%;
59
+ }
60
+
61
+ .modal-dialog .modal-content {
62
+ max-height: 95%;
63
+ overflow-y: auto;
64
+ }
65
+
66
+ .modal-header {
67
+ display: grid;
68
+ }
69
+
70
+ .close {
71
+ font-size: 1.5rem;
72
+ font-weight: 700;
73
+ line-height: 1;
74
+ color: var(--black);
75
+ text-shadow: 0 1px 0 var(--white);
76
+ opacity: .5;
77
+ border: none;
78
+ background: none;
79
+ justify-self: flex-end;
80
+ margin-top: -40px;
81
+ }
82
+
83
+ .menu-bar {
84
+ padding: 10px 15px 0 15px;
85
+ }
86
+
87
+ #mainmenu .btn, #confirmrestart .btn {
88
+ display: block;
89
+ margin-bottom: 10px;
90
+ }
91
+
92
+ .box-container {
93
+ border: solid 1px var(--purple);;
94
+ padding: 10px;
95
+ margin-bottom: 10px;
96
+ border-radius: 5px 5px 0 0;
97
+ }
98
+
99
+ .box-title {
100
+ font-size: 1.3rem;
101
+ font-family: Andalus;
102
+ color: var(--white);;
103
+ background-color: var(--purple);;
104
+ padding: 0 10px;
105
+ margin: -10px -10px 10px -10px;
106
+ }
107
+
108
+ .box-container li .btn {
109
+ margin: 0 0 5px 5px;
110
+ }
111
+
112
+ .list-unstyled {
113
+ margin-bottom: 0;
114
+ }
115
+
116
+ .modal-body .list-unstyled {
117
+ margin-bottom: 10px;
118
+ }
119
+
120
+ .inline {
121
+ display: inline-block;
122
+ }
123
+
124
+ #create-character .input-group-prepend {
125
+ max-width: 70%;
126
+ }
127
+
128
+ #create-character .input-group-text {
129
+ white-space: normal;
130
+ }
131
+
132
+ #exploration-destinations .btn, #combinations .btn, #trade .btn {
133
+ margin: 0 0 5px 5px;
134
+ }
135
+
136
+ #exploration-destinations button span {
137
+ margin-right: 0;
138
+ }
139
+
140
+ #backpack-panel li {
141
+ margin-bottom: 5px;
142
+ }
143
+
144
+ .box-container li span {
145
+ margin-right: 10px;
146
+ padding: 0 5px;
147
+ }
148
+
149
+ #conversation-options ul {
150
+ padding: 15px 0 10px 1rem;
151
+ border-top: solid 1px lightgray;
152
+ border-bottom: solid 1px lightgray;
153
+ }
154
+
155
+ #conversation-options li {
156
+ cursor: pointer;
157
+ margin-bottom: 5px;
158
+ }
159
+
160
+ #conversation-options li:hover {
161
+ color: var(--bs-blue);
162
+ }
163
+
164
+ #conversation-options .unavailable {
165
+ color: rgba(0, 0, 0, 0.5);
166
+ }
167
+
168
+ #conversation-history-title {
169
+ font-weight: bold;
170
+ margin: 20px 0 0 0;
171
+ }
172
+
173
+ #conversation-history ul {
174
+ max-height: 400px;
175
+ overflow-y: scroll;
176
+ }
177
+
178
+ .conversation-lines p {
179
+ margin: 5px 0 0 0;
180
+ }
181
+
182
+ .conversation-option {
183
+ font-style: italic;
184
+ margin: 5px 0 10px 10px;
185
+ }
186
+
187
+ #combat option, #combat input {
188
+ text-align: center;
189
+ }
190
+
191
+ #combat input {
192
+ height: 38px;
193
+ }
194
+
195
+ #combat .btn {
196
+ margin: 5px 0;
197
+ }
198
+
199
+ .btn.combination-button img {
200
+ margin-right: 10px;
201
+ width: 32px;
202
+ }
203
+
204
+ #combat-win {
205
+ text-align: center;
206
+ }
207
+
208
+ .combat-win-header, .items-taken-header, .enemies-defeated-header {
209
+ font-weight: bold;
210
+ }
211
+
212
+ #combat-win ul {
213
+ list-style: none;
214
+ padding: 0;
215
+ margin-bottom: 10px;
216
+ }
217
+
218
+ .currency-won {
219
+ margin-bottom: 10px;
220
+ }
221
+
222
+ #trade ul {
223
+ margin-top: 10px;
224
+ }
225
+
226
+ .trade-empty {
227
+ font-style: italic;
228
+ margin: 10px 0;
229
+ padding-left: 10px;
230
+ }
231
+
232
+ #save-game {
233
+ margin-bottom: 15px;
234
+ }
235
+
236
+ #save-game p {
237
+ font-weight: bold;
238
+ }
239
+
240
+ #save-game li {
241
+ margin-bottom: 5px;
242
+ cursor: pointer;
243
+ }
244
+
245
+ #start-adventure {
246
+ margin: -10px 0 0 10px;
247
+ }
248
+
249
+ #encounters img, #conversation img {
250
+ max-width: 100%;
251
+ }
252
+
253
+ #conversation img {
254
+ margin-bottom: 10px;
255
+ }
256
+
257
+ #start-combat {
258
+ margin-top: 10px;
259
+ }
260
+
261
+ .save-button {
262
+ margin-bottom: 15px;
263
+ }
264
+
265
+ .action-log {
266
+ max-height: 300px;
267
+ overflow-y: scroll;
268
+ }
269
+
270
+ .barrier {
271
+ margin-bottom: 5px;
272
+ }
273
+
274
+ .action-select {
275
+ display: block;
276
+ margin-top: 5px;
277
+ }
278
+
279
+ .combatlog {
280
+ margin-top: 25px;
281
+ display: grid;
282
+ justify-content: center;
283
+ }
284
+
285
+ .combatlog-title {
286
+ text-align: center;
287
+ }
288
+
289
+ .combatlog li {
290
+ padding: 0 10px 0 10px;
291
+ text-align: center;
292
+ }
293
+
294
+ .single-item {
295
+ width: 100%;
296
+ }
297
+
298
+ #create-character {
299
+ padding-bottom: 10px;
300
+ }
301
+
302
+ .character-equipment .box-title {
303
+ margin-bottom: 0;
304
+ }
305
+
306
+ .character-equipment .row {
307
+ margin-top: 5px;
308
+ }
309
+
310
+ .character-equipment .item-box {
311
+ border-top: 1px solid var(--black);;
312
+ min-height: 25px;
313
+ line-height: 25px;
314
+ }
315
+
316
+ .equipment-panel div {
317
+ overflow: hidden;
318
+ }
319
+
320
+ .body-slot {
321
+ align-content: center;
322
+ }
323
+
324
+ .question-row, .attribute-row {
325
+ margin: 10px 0;
326
+ }
327
+
328
+ #world-properties li {
329
+ display: none;
330
+ }
331
+
332
+ .portraitFrame {
333
+ float: right;
334
+ }
335
+
336
+ #attributes-panel {
337
+ float: left;
338
+ }
339
+
340
+ button.restart {
341
+ margin-top: 25px;
342
+ }
343
+
344
+ .combine-active-hide {
345
+ display: none;
346
+ }
347
+
348
+ .combine-active-selected {
349
+ color: var(--red);;
350
+ }
351
+
352
+ .combine-selectable {
353
+ background-color: var(--light-gray);;
354
+ border-radius: 5px;
355
+ }
356
+
357
+ .combination-actions {
358
+ padding: 0 0 0 5px;
359
+ }
360
+
361
+ .combination-text, .combination-result-text {
362
+ display: inline-block;
363
+ }
364
+
365
+ #highscores {
366
+ margin-top: 20px;
367
+ }
368
+
369
+ table td {
370
+ padding: 10px;
371
+ }
372
+
373
+ #visual-features {
374
+ position: relative;
375
+ }
376
+
377
+ .feature-picture {
378
+ position: absolute;
379
+ cursor: pointer;
380
+ }
381
+
382
+ feature {
383
+ cursor: pointer;
384
+ }
385
+
386
+ #level-up #create-character {
387
+ padding-left: 0;
388
+ }
389
+
390
+ .dialog {
391
+ z-index: 10;
392
+ width: 50%;
393
+ top: 100px;
394
+ }
395
+
396
+ .custom-select {
397
+ position: relative;
398
+ flex: 1 1 0;
399
+ min-width: 0;
400
+ margin-bottom: 0;
401
+ display: inline-block;
402
+ width: 100%;
403
+ height: calc(1.5em + 0.75rem + 2px);
404
+ padding: 0.375rem 1.75rem 0.375rem 0.75rem;
405
+ font-size: 1rem;
406
+ font-weight: 400;
407
+ line-height: 1.5;
408
+ color: #495057;
409
+ vertical-align: middle;
410
+ border: 1px solid #ced4da;
411
+ border-radius: 0.25rem;
412
+ appearance: none;
413
+ transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;
414
+ }
415
+
416
+ #location-selector {
417
+ position: relative;
418
+ float: right;
419
+ max-width: 40%;
420
+ }
421
+
422
+ #location-selector-locations {
423
+ position: absolute;
424
+ inset: 0 auto auto 0;
425
+ margin-top: 40px;
426
+ cursor: pointer;
427
+ }
428
+
429
+ .refine-search {
430
+ font-style: italic;
431
+ opacity: .5;
432
+ margin-bottom: -20px;
433
+ }
434
+
435
+ .not-applicable {
436
+ line-height: normal;
437
+ visibility: hidden;
438
+ }
439
+
440
+ .enemy-list li {
441
+ display: inline-block;
442
+ margin-right: 25px;
443
+ }
444
+
445
+ #encounters img, .enemy-list img {
446
+ margin-left: 10px;
447
+ }
448
+
449
+ .enemy-row, .enemy-row > div, .character-row, .fight-row {
450
+ margin-top: 15px;
451
+ justify-content: center;
452
+ text-align: center;
453
+ }
454
+
455
+ .combat-header, .fight-row {
456
+ display: flex;
457
+ justify-content: center;
458
+ }
459
+
460
+ .unavailable, .empty-slot {
461
+ opacity: .5;
462
+ }
463
+
464
+ .unselectable {
465
+ color: rgba(0, 0, 0, 0.25);
466
+ }
467
+
468
+ .hitpoint-editor {
469
+ display: inline;
470
+ }
471
+
472
+ .combat-actions > li {
473
+ display: grid;
474
+ justify-content: center;
475
+ }
476
+
477
+ .map-dialog {
478
+ padding: 0;
479
+ max-height: 95%;
480
+ overflow: hidden;
481
+ }
482
+
483
+ .map-container {
484
+ position: relative;
485
+ overflow: hidden;
486
+ padding: 0;
487
+ }
488
+
489
+ .map-name {
490
+ position: absolute;
491
+ top: 0;
492
+ left: 0;
493
+ font-size: x-large;
494
+ font-weight: bold;
495
+ background-color: white;
496
+ padding: 0 10px;
497
+ }
498
+
499
+ .map-image {
500
+ transition: all 1s ease 0s;
501
+ }
502
+
503
+ .avatar-image, .map-location-label, .map-location-image {
504
+ transition: all 1s ease 0s;
505
+ position: absolute;
506
+ top: 0;
507
+ left: 0;
508
+ z-index: 2;
509
+ }
510
+
511
+ .map-location-label, .map-location-image, .map-name {
512
+ z-index: 1;
513
+ }
514
+
515
+ .show-marker-instructions {
516
+ display: block;
517
+ font-size: small;
518
+ }
519
+
520
+ .map-location-label {
521
+ background-color: white;
522
+ border: solid 1px black;
523
+ padding: 2px 5px;
524
+ white-space: nowrap;
525
+ }
526
+
527
+ .map-location-label.reachable, .map-location-image.reachable {
528
+ cursor: pointer;
529
+ }
530
+
531
+ .map-location-label span, .map-location-image img {
532
+ opacity: 0.5;
533
+ }
534
+
535
+ .map-location-label.reachable span, .map-location-image.reachable img {
536
+ opacity: 1;
537
+ }
538
+
539
+ .map-full-screen-toggle {
540
+ display: inline-block;
541
+ margin: 10px 0 0 10px;
542
+ cursor: pointer;
543
+ content: url(lookinglass.png);
544
+ }
545
+
546
+ .participant {
547
+ display: flex;
548
+ align-items: center;
549
+ justify-content: center;
550
+ }
551
+
552
+ /* Common component styles */
553
+ .collapsible {
554
+ overflow: hidden;
555
+ transition: max-height .2s ease-out;
556
+ }
557
+
558
+ .dropdown-menu-active {
559
+ position: absolute;
560
+ inset: 0 auto auto 5px;
561
+ margin: 0;
562
+ transform: translate(0px, 40px);
563
+ }
564
+
565
+ dialog {
566
+ border: none;
567
+ outline: none;
568
+ }
569
+
570
+ #autoplay-overlay, #title-screen, #title-screen-start {
571
+ position: absolute;
572
+ top: 0;
573
+ left: 0;
574
+ width: 100%;
575
+ height: 100%;
576
+ }
577
+
578
+ #autoplay-overlay {
579
+ z-index: 1200;
580
+ align-content: center;
581
+ text-align: center;
582
+ }
583
+
584
+ #autoplay-text {
585
+ margin-top: 20px;
586
+ visibility: hidden;
587
+ font-size: 1.5em;
588
+ transition: visibility .1s ease-out;
589
+ display: flex;
590
+ justify-content: center;
591
+ }
592
+
593
+ #autoplay-text span {
594
+ background-color: white;
595
+ border-radius: 3px;
596
+ padding: 5px 10px;
597
+ }
598
+
599
+ #title-screen {
600
+ z-index: 1300;
601
+ background: white;
602
+ align-content: center;
603
+ text-align: center;
604
+ }
605
+
606
+ #title-screen-start {
607
+ z-index: 1310;
608
+ align-content: center;
609
+ text-align: center;
610
+ }
611
+
612
+ #title-screen h1 {
613
+ font-size: 5em;
614
+ margin-bottom: 40px;
615
+ white-space: nowrap;
616
+ }
617
+
618
+ #start-game {
619
+ font-size: 2.5em;
620
+ padding: 5px 40px;
621
+ margin-top: 200px;
622
+ }
623
+
624
+ #visual-features > img {
625
+ max-width: 100%;
626
+ }
627
+
628
+ .no-play-container {
629
+ display: flex;
630
+ justify-content: center;
631
+ font-size: 1.5em;
632
+ }
633
+
634
+ .no-play-container p {
635
+ margin: 0;
636
+ }
637
+
638
+ #victory {
639
+ text-align: center;
640
+ margin-top: 50px;
641
+ }
642
+
643
+ #victory > div {
644
+ display: flex;
645
+ justify-content: center;
646
+ }
647
+
648
+ @media (max-width: 1199px) {
649
+ .combination-result-text {
650
+ margin-top: 10px;
651
+ }
652
+
653
+ .no-play-container {
654
+ font-size: 1.4em;
655
+ }
656
+ }
657
+
658
+ @media (max-width: 991px) {
659
+ #title-screen h1 {
660
+ font-size: 4em;
661
+ margin-bottom: 40px;
662
+ }
663
+
664
+ #start-game {
665
+ font-size: 2em;
666
+ }
667
+
668
+ .no-play-container {
669
+ font-size: 1.3em;
670
+ }
671
+ }
672
+
673
+ @media (max-width: 767px) {
674
+ #title-screen h1 {
675
+ font-size: 3em;
676
+ margin-bottom: 40px;
677
+ }
678
+
679
+ #start-game {
680
+ font-size: 1.5em;
681
+ margin-top: 100px;
682
+ }
683
+
684
+ .no-play-container {
685
+ font-size: 1.2em;
686
+ }
687
+ }
688
+
689
+ @media (max-width: 576px) {
690
+ .box-title {
691
+ font-size: 1.1em;
692
+ }
693
+
694
+ #attributes-panel li, .equipment-panel div {
695
+ white-space: nowrap;
696
+ }
697
+
698
+ .modal-dialog {
699
+ max-width: 95%;
700
+ }
701
+
702
+ .barrier {
703
+ margin: 10px 0 0 0;
704
+ }
705
+
706
+ #quest-panel ul {
707
+ padding: 1em;
708
+ }
709
+
710
+ #title-screen h1 {
711
+ font-size: 2em;
712
+ margin-bottom: 40px;
713
+ }
714
+
715
+ #start-game {
716
+ font-size: 1.3em;
717
+ margin-top: 100px;
718
+ }
719
+
720
+ .no-play-container {
721
+ font-size: 1.1em;
722
+ }
723
+ }
724
+
725
+ @media (hover: hover) {
726
+ .combine-selectable:hover {
727
+ cursor: pointer;
728
+ }
729
+ }
730
+
731
+ @media (hover: none) {
732
+ .combine-selectable:hover {
733
+ cursor: default;
734
+ }
735
+ }