@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,23 @@
1
+ import {IAutoplayStep, IDemoMode} from 'storyScript';
2
+
3
+ export interface IAutoplayService {
4
+
5
+ /**
6
+ * Start autoplay using the steps specified.
7
+ * @param steps The steps to autoplay.
8
+ * @param callback If needed, call a function when autoplay completes.
9
+ */
10
+ start: (steps: IAutoplayStep[], callback?: () => void) => void;
11
+
12
+ /**
13
+ * Stops autoplay in progress.
14
+ */
15
+ stop: () => void;
16
+
17
+ /**
18
+ * Start autoplaying the game in demo mode using the configuration specified.
19
+ * @param demoConfig The demo mode configuration.
20
+ * @param restartCallback Call a function to restart the demo when it completes.
21
+ */
22
+ startDemoMode: (demoConfig: IDemoMode, restartCallback: () => void) => void;
23
+ }
@@ -0,0 +1,35 @@
1
+ import {
2
+ ICharacter,
3
+ ICreateCharacter,
4
+ ICreateCharacterAttribute,
5
+ ICreateCharacterAttributeEntry,
6
+ ICreateCharacterStep,
7
+ IGame,
8
+ IQuest
9
+ } from 'storyScript';
10
+
11
+ export interface ICharacterService {
12
+ getSheetAttributes(): string[];
13
+
14
+ setupCharacter(): ICreateCharacter;
15
+
16
+ setupLevelUp(): ICreateCharacter;
17
+
18
+ createCharacter(game: IGame, characterData: any): ICharacter;
19
+
20
+ levelUp(character: ICharacter): ICharacter;
21
+
22
+ limitSheetInput(value: number, attribute: ICreateCharacterAttribute, entry: ICreateCharacterAttributeEntry): void;
23
+
24
+ distributionDone(sheet: ICreateCharacter, step: ICreateCharacterStep): boolean;
25
+
26
+ isSlotUsed(character: ICharacter, slot: string): boolean;
27
+
28
+ questStatus(quest: IQuest): string;
29
+
30
+ /**
31
+ * Check whether all the equipment on the characters is in valid equipment slots. The equipment type may change
32
+ * during editing, leaving items previously equipped in invalid slots.
33
+ */
34
+ checkEquipment(): void;
35
+ }
@@ -0,0 +1,30 @@
1
+ import {ICharacter, ICombatSetup, ICombatTurn, IEnemy, IItem} from 'storyScript';
2
+
3
+ export interface ICombatService {
4
+ /**
5
+ * The function executed when combat is started.
6
+ */
7
+ initCombat(): void;
8
+
9
+ /**
10
+ * The function executed when the player attacks an enemy.
11
+ * @param combatRound The setup for this combat round
12
+ * @param retaliate True if the enemy can retaliate (default), false otherwise
13
+ */
14
+ fight(combatRound: ICombatSetup<ICombatTurn>, retaliate?: boolean): Promise<void> | void;
15
+
16
+ /**
17
+ * Gets a value indicating whether the item is selectable. True when selectable, false otherwise.
18
+ * @param item The item to check.
19
+ */
20
+ isSelectable(item: IItem): boolean;
21
+
22
+ /**
23
+ * Gets a value indicating whether an item can target the proposed target. True when so, false
24
+ * otherwise.
25
+ * @param item The item to check the target for.
26
+ * @param target The proposed target.
27
+ * @param character The character whom the item belongs to.
28
+ */
29
+ canTarget(item: IItem, target: IEnemy | ICharacter, character: ICharacter): boolean;
30
+ }
@@ -0,0 +1,10 @@
1
+ import { ICombinationAction } from '../combinations/combinationAction';
2
+ import { ICombinable } from '../combinations/combinable';
3
+ import { ICombineResult } from '../combinations/combineResult';
4
+
5
+ export interface ICombinationService {
6
+ combinationActions: ICombinationAction[];
7
+ getCombineClass(tool: ICombinable): string;
8
+ setActiveCombination(combination: ICombinationAction): void;
9
+ tryCombination(target: ICombinable): ICombineResult;
10
+ }
@@ -0,0 +1,75 @@
1
+ import {IAction, IBarrier, IBarrierAction, IDestination, IFeature, IItem, ILocation, IPerson} from 'storyScript';
2
+
3
+ export interface ICommandService {
4
+ /**
5
+ * Go to the location specified. If you set the saveProgress flag to false, the game progress will NOT be saved.
6
+ * @param location The location to travel to.
7
+ * @param saveProgress Omit if you want to save the game progress, set to false if you don't want to save.
8
+ */
9
+ go: (location: (() => ILocation) | string, saveProgress?: boolean) => void;
10
+
11
+ /**
12
+ * Talk to the specified person at the current location.
13
+ * @param person The person to talk to
14
+ */
15
+ talk: (person: () => IPerson) => void;
16
+
17
+ /**
18
+ * Answer to the specified node. If no reply is specified, the default reply will be used.
19
+ * @param node
20
+ * @param reply
21
+ */
22
+ answer: (node: string, reply?: string) => void;
23
+
24
+ /**
25
+ * Set the specified combination as the active one.
26
+ * @param combination The combination to set as the active one.
27
+ */
28
+ selectCombination: (combination: string) => void;
29
+
30
+ /**
31
+ * Set the specified feature as the currently active tool.
32
+ * @param feature The feature to make the currently active tool.
33
+ */
34
+ setTool: (feature: (() => IFeature) | string) => void;
35
+
36
+ /**
37
+ * Try the combination specified on the target, optionally using the tool.
38
+ * @param combination The combination to try.
39
+ * @param target The target to try the combination on.
40
+ * @param tool The tool to use in the combination.
41
+ */
42
+ combine: (combination: string, target: (() => IFeature) | string, tool?: (() => IFeature) | string) => void;
43
+
44
+ /**
45
+ * Use the action specified at the current location.
46
+ * @param action The action to use
47
+ */
48
+ useAction: (action: string | [string, IAction]) => void;
49
+
50
+ /**
51
+ * Use the barrier action specified on the barrier and destination at the current location.
52
+ * @param destination The destination the barrier is on
53
+ * @param barrier The barrier to use the action on
54
+ * @param action The barrier action to use
55
+ */
56
+ useBarrierAction: (destination: string | IDestination, barrier: string | [string, IBarrier], action: string | [string, IBarrierAction]) => void;
57
+
58
+ /**
59
+ * Trade with the specified person or object at the current location.
60
+ * @param trade The person or object to trade with.
61
+ */
62
+ trade: (trade: string | (() => IPerson)) => void;
63
+
64
+ /**
65
+ * Buy the specified item from the current trader
66
+ * @param item The item to buy
67
+ */
68
+ buy: (item: (() => IItem)) => void;
69
+
70
+ /**
71
+ * Sell the specified item to the current trader
72
+ * @param item The item to sell
73
+ */
74
+ sell: (item: (() => IItem)) => void;
75
+ }
@@ -0,0 +1,7 @@
1
+ import {IConversationNode, IConversationReply, IPerson} from 'storyScript';
2
+
3
+ export interface IConversationService {
4
+ talk(person: IPerson): void;
5
+
6
+ answer(node: IConversationNode, reply: IConversationReply): void;
7
+ }
@@ -0,0 +1,4 @@
1
+ export interface IDataSerializer {
2
+ createSerializableClone(values: any, clone?: any): any;
3
+ restoreObjects (loaded: any): any;
4
+ }
@@ -0,0 +1,39 @@
1
+ import {IGame} from 'storyScript';
2
+
3
+ export interface IDataService {
4
+ /**
5
+ * Save the specified object using the save key.
6
+ * @param key The key to use to identity this saved state.
7
+ * @param value The value to save.
8
+ */
9
+ save<T>(key: string, value: T): void;
10
+
11
+ /**
12
+ * Loads an object from the specified save key.
13
+ * @param key The key to use to identity the saved state.
14
+ */
15
+ load<T>(key: string): T;
16
+
17
+ /**
18
+ * Remove an object from storage using the save key.
19
+ * @param key The key to use to identity the saved state.
20
+ */
21
+ remove(key: string): void;
22
+
23
+ /**
24
+ * Save the game state, using the default state save key or the one supplied.
25
+ * @param game The game to save
26
+ * @param name The name of the save game to create.
27
+ */
28
+ saveGame(game: IGame, name?: string): void;
29
+
30
+ /**
31
+ * Gets all the keys of the saved states for the game.
32
+ */
33
+ getSaveKeys(): string[];
34
+
35
+ /**
36
+ * True if there is a saved game state for the game, false otherwise.
37
+ */
38
+ hasGameState(): boolean;
39
+ }
@@ -0,0 +1,9 @@
1
+ export interface IDataSynchronizer {
2
+ synchronizeEntityData (
3
+ entity: any,
4
+ pristineEntity?: any,
5
+ parentEntity?: any,
6
+ pristineParentEntity?: any,
7
+ parentProperty?: string
8
+ ): void;
9
+ }
@@ -0,0 +1,17 @@
1
+ import {IDemoMode, IGame, PlayState} from 'storyScript';
2
+
3
+ export interface IGameService {
4
+ init(): void;
5
+
6
+ initDemo(demoConfig: IDemoMode): void;
7
+
8
+ startNewGame(characterData: any): void;
9
+
10
+ reset(): void;
11
+
12
+ restart(skipIntro?: boolean): void;
13
+
14
+ loadGame(name: string): void;
15
+
16
+ watchPlayState(callBack: (game: IGame, newPlayState: PlayState, oldPlayState: PlayState) => void): void;
17
+ }
@@ -0,0 +1,33 @@
1
+ import type { IAutoplayService } from './autoplayService';
2
+ import type { ICharacterService } from './characterService';
3
+ import type { ICombatService } from './combatService';
4
+ import type { ICombinationService } from './combinationService';
5
+ import type { ICommandService } from './commandService';
6
+ import type { IConversationService } from './conversationService';
7
+ import type { IDataSerializer } from './dataSerializer';
8
+ import type { IDataService } from './dataService';
9
+ import type { IDataSynchronizer } from './dataSynchronizer';
10
+ import type { IGameService } from './gameService';
11
+ import type { IItemService } from './itemService';
12
+ import type { ILocalStorageService } from './localStorageService';
13
+ import type { ILocationService } from './locationService';
14
+ import type { ISoundService } from './soundService';
15
+ import type { ITradeService } from './tradeService';
16
+
17
+ export type {
18
+ IAutoplayService,
19
+ ICharacterService,
20
+ ICombatService,
21
+ ICombinationService,
22
+ ICommandService,
23
+ IConversationService,
24
+ IDataSerializer,
25
+ IDataService,
26
+ IDataSynchronizer,
27
+ IGameService,
28
+ IItemService,
29
+ ILocalStorageService,
30
+ ILocationService,
31
+ ISoundService,
32
+ ITradeService
33
+ }
@@ -0,0 +1,25 @@
1
+ import {ICharacter, IEnemy, IGroupableItem, IItem} from 'storyScript';
2
+
3
+ export interface IItemService {
4
+ getItemName(item: IItem): string;
5
+
6
+ pickupItem(character: ICharacter, item: IItem): boolean;
7
+
8
+ canGroupItem(character: ICharacter, group: IGroupableItem<IItem>, item: IGroupableItem<IItem>): boolean;
9
+
10
+ groupItem(character: ICharacter, group: IGroupableItem<IItem>, item: IGroupableItem<IItem>): boolean;
11
+
12
+ splitItemGroup(character: ICharacter, item: IGroupableItem<IItem>): void;
13
+
14
+ useItem(character: ICharacter, item: IItem, target?: IEnemy): Promise<void> | void;
15
+
16
+ isEquippable(item: IItem, character?: ICharacter): boolean;
17
+
18
+ equipItem(character: ICharacter, item: IItem): boolean;
19
+
20
+ unequipItem(character: ICharacter, item: IItem): boolean;
21
+
22
+ canDrop(item: IItem): boolean
23
+
24
+ dropItem(character: ICharacter, item: IItem): void;
25
+ }
@@ -0,0 +1,6 @@
1
+ export interface ILocalStorageService {
2
+ get(key: string): any;
3
+ set(key: string, value: any): void;
4
+ remove(key: string): void;
5
+ getKeys(prefix: string): string[];
6
+ }
@@ -0,0 +1,13 @@
1
+ import {IAction, IGame, ILocation} from 'storyScript';
2
+
3
+ export interface ILocationService {
4
+ init(): void;
5
+
6
+ processDestinations(game: IGame): void;
7
+
8
+ loadLocationDescriptions(game: IGame): void;
9
+
10
+ changeLocation(location: string | (() => ILocation), travel: boolean, game: IGame): void;
11
+
12
+ executeAction(action: [string, IAction]): void;
13
+ }
@@ -0,0 +1,7 @@
1
+ import {ISoundPlayer} from 'storyScript';
2
+
3
+ export interface ISoundService {
4
+ getSounds(): ISoundPlayer;
5
+
6
+ getCurrentMusic(): string
7
+ }
@@ -0,0 +1,15 @@
1
+ import {ICharacter, IItem, IPerson, ITrade} from 'storyScript';
2
+
3
+ export interface ITradeService {
4
+ trade(trade: IPerson | ITrade): void;
5
+
6
+ canPay(item: IItem, buyer: ITrade | ICharacter, seller: ITrade | ICharacter): boolean;
7
+
8
+ actualPrice(item: IItem, buyer: ITrade | ICharacter, seller: ITrade | ICharacter): number;
9
+
10
+ displayPrice(item: IItem, actualPrice: number): string;
11
+
12
+ buy(item: IItem, trade: ITrade): boolean;
13
+
14
+ sell(item: IItem, trade: ITrade): boolean;
15
+ }
@@ -0,0 +1,30 @@
1
+ export interface ISoundPlayer {
2
+ /**
3
+ * Start playing the currently selected music.
4
+ */
5
+ startMusic(): void;
6
+
7
+ /**
8
+ * Stop playing the current music.
9
+ */
10
+ stopMusic(): void;
11
+
12
+ /**
13
+ * Play a sound and optionally call a function when it completes.
14
+ * @param fileName The sound to play.
15
+ * @param completeCallBack The function to call once the sound has played.
16
+ */
17
+ playSound(fileName: string, completeCallBack?: () => void): void;
18
+
19
+ /**
20
+ * Gets the game's sound queue, containing all the sounds that are being played or are yet
21
+ * to be played.
22
+ */
23
+ soundQueue: Map<number, { value: string, playing: boolean, completeCallBack?: () => void }>;
24
+
25
+ /**
26
+ * Contains a list of files that have been played before. This is used to play files embedded
27
+ * in audio elements that are set to autoplay only once.
28
+ */
29
+ playedAudio: string[];
30
+ }
@@ -0,0 +1,27 @@
1
+ export interface Sprite {
2
+ /**
3
+ * The path to the animation's sprite sheet. It should be relative to the resources folder.
4
+ */
5
+ sheet: string;
6
+
7
+ /**
8
+ * The width of each animation frame in pixels.
9
+ */
10
+ width: number;
11
+
12
+ /**
13
+ * The height of each animation frame in pixels.
14
+ */
15
+ height: number;
16
+
17
+ /**
18
+ * The number of frames to display.
19
+ */
20
+ steps: number;
21
+
22
+ /**
23
+ * The speed at which to display one iteration through all the animation steps, in seconds. When
24
+ * omitted, a default of 1 second is used.
25
+ */
26
+ speed?: number;
27
+ }
@@ -0,0 +1,13 @@
1
+ import { GameState } from "./enumerations/gameState";
2
+ import { PlayState } from "./enumerations/playState";
3
+ import { IGame } from "./game";
4
+ import { ILocation } from "./location";
5
+
6
+ export class StateList implements Record<string, StateListEntry>
7
+ {
8
+ [key: string]: (GameState | PlayState | (() => ILocation) | ((game: IGame) => string) | string)[];
9
+ }
10
+
11
+ export class StateListEntry extends Array<(GameState | PlayState | (() => ILocation) | ((game: IGame) => string) | string)>
12
+ {
13
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Statistics tracked during the game.
3
+ */
4
+ export interface IStatistics {
5
+ /**
6
+ * The number of enemies the player defeated.
7
+ */
8
+ enemiesDefeated?: number;
9
+
10
+ /**
11
+ * The number of locations the player visited
12
+ * */
13
+ LocationsVisited?: number;
14
+ }
@@ -0,0 +1,46 @@
1
+ import { IItem } from './item';
2
+ import { IGame } from './game';
3
+
4
+ /**
5
+ * The base properties to configure a collection of items available to buy or sell.
6
+ */
7
+ export interface IStock {
8
+ /**
9
+ * The text for buying or selling the items as shown to the player.
10
+ */
11
+ text: string;
12
+
13
+ /**
14
+ * The text to show to the player when there are no items available for buying or selling.
15
+ */
16
+ emptyText: string;
17
+
18
+ /**
19
+ * A number or a function to generate a number dynamically that is used to modify the price of items to buy or sell.
20
+ * This can be used to e.g. give players a discount when they completed quests for the trader.
21
+ */
22
+ priceModifier?: number | ((game: IGame) => number);
23
+
24
+ /**
25
+ * This function can be used to limit the items selected from the list of items available for the trader or the items
26
+ * the player has that are available for trading. Return true if the item should be included in the list, false otherwise.
27
+ * @param game The game object
28
+ * @param item The item considered for selection.
29
+ */
30
+ itemSelector?(game: IGame, item: IItem): boolean;
31
+
32
+ /**
33
+ * The maximum number of items to select for buying or selling using the item selector.
34
+ */
35
+ maxItems?: number;
36
+
37
+ /**
38
+ * The items available for buying or selling.
39
+ */
40
+ items?: IItem[];
41
+
42
+ /**
43
+ * The text shown to ask the user to confirm the buy or sell.
44
+ */
45
+ confirmationText?: string;
46
+ }
@@ -0,0 +1,72 @@
1
+ import { IItem } from './item';
2
+ import { IStock } from './stock';
3
+ import { IGame } from './game';
4
+
5
+ /**
6
+ * The base properties to configure a trader of or a container for items in the game.
7
+ */
8
+ export interface ITrade {
9
+ /**
10
+ * The id of the trade, set at runtime.
11
+ */
12
+ id?: string;
13
+
14
+ /**
15
+ * The title as shown to the player in the trade dialog. If the trade is defined
16
+ * for a person, omitting the name will have StoryScript use the person name for
17
+ * the trade.
18
+ */
19
+ name?: string;
20
+
21
+ /**
22
+ * The description text of the trade as shown to the player.
23
+ */
24
+ text?: string;
25
+
26
+ /**
27
+ * The amount of credits the trader has in whatever credits are used in the game. When the trader is a person,
28
+ * the person's currency property will be used to set this value.
29
+ */
30
+ currency?: number;
31
+
32
+ /**
33
+ * True if the items for sale by a person are selected from the items the person is carrying, false if other
34
+ * items in the game are also included in the collection the items are to be selected from. The selection of
35
+ * items is done using the initCollection function.
36
+ */
37
+ ownItemsOnly?: boolean;
38
+
39
+ /**
40
+ * This function is executed when the player has bought an item from the trader.
41
+ * @param game The game object
42
+ * @param item The item bought
43
+ */
44
+ onBuy?(game: IGame, item: IItem): void;
45
+
46
+ /**
47
+ * This function is executed when the player has sold an item to the trader.
48
+ * @param game The game object
49
+ * @param item The item sold
50
+ */
51
+ onSell?(game: IGame, item: IItem): void;
52
+
53
+ /**
54
+ * The collection of items the trader will buy or that can be put in the store.
55
+ */
56
+ sell?: IStock;
57
+
58
+ /**
59
+ * The collection of items the trader has to offer or that can be taken from the store.
60
+ */
61
+ buy?: IStock & {
62
+
63
+ /**
64
+ * This function runs when initiating trade and determines whether the list of items
65
+ * available for buying should be refreshed. Return true to refresh the lists, false
66
+ * to keep them as they were.
67
+ * @param game The game object
68
+ * @param trade The trader for which to refresh the item lists
69
+ */
70
+ initCollection?(game: IGame, trade: ITrade): boolean;
71
+ };
72
+ }