@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
package/.env ADDED
@@ -0,0 +1 @@
1
+ VITE_BUILDER = true
@@ -0,0 +1,573 @@
1
+ {
2
+ "Locations": {
3
+ "scope": "javascript,typescript",
4
+ "prefix": "ssLocation",
5
+ "body": [
6
+ "import { IGame, Location } from '../types';",
7
+ "import description from './${TM_FILENAME_BASE}.html?raw';",
8
+ "",
9
+ "export function ${TM_FILENAME_BASE/(.*)/${1:/capitalize}/}() {",
10
+ "\treturn Location({",
11
+ "\t\tname: '${TM_FILENAME_BASE/(.*)/${1:/capitalize}/}',",
12
+ "\t\tdescription: description,",
13
+ "\t\tdestinations: [",
14
+ "\t\t\t$1",
15
+ "\t\t]",
16
+ "\t});",
17
+ "}"
18
+ ],
19
+ "description": "Add a new location"
20
+ },
21
+
22
+ "Features": {
23
+ "scope": "javascript,typescript",
24
+ "prefix": "ssFeature",
25
+ "body": [
26
+ "import { IGame, Feature } from '../types';",
27
+ "",
28
+ "export function ${TM_FILENAME_BASE/(.*)/${1:/capitalize}/}() {",
29
+ "\treturn Feature({",
30
+ "\t\tname: '${TM_FILENAME_BASE/(.*)/${1:/capitalize}/}',",
31
+ "\t\tcombinations: {",
32
+ "\t\t\tcombine: [",
33
+ "\t\t\t\t$1",
34
+ "\t\t\t],",
35
+ "\t\t},",
36
+ "\t});",
37
+ "}"
38
+ ],
39
+ "description": "Add a new feature"
40
+ },
41
+
42
+ "InlineFeatures": {
43
+ "scope": "javascript,typescript",
44
+ "prefix": "ssFeature-inline",
45
+ "body": [
46
+ "{",
47
+ "\tname: '$1',",
48
+ "\tcombinations: {",
49
+ "\t\tcombine: [",
50
+ "\t\t\t$2",
51
+ "\t\t],",
52
+ "\t},",
53
+ "},"
54
+ ],
55
+ "description": "Add a new inline feature"
56
+ },
57
+
58
+ "Enemies": {
59
+ "scope": "javascript,typescript",
60
+ "prefix": "ssEnemy",
61
+ "body": [
62
+ "import { IGame, Enemy } from '../types';",
63
+ "import description from './${TM_FILENAME_BASE}.html?raw';",
64
+ "",
65
+ "export function ${TM_FILENAME_BASE/(.*)/${1:/capitalize}/}() {",
66
+ "\treturn Enemy({",
67
+ "\t\tname: '${TM_FILENAME_BASE/(.*)/${1:/capitalize}/}',",
68
+ "\t\tdescription: description,",
69
+ "\t\thitpoints: 10,$1",
70
+ "\t\titems: [",
71
+ "\t\t],",
72
+ "\t});",
73
+ "}"
74
+ ],
75
+ "description": "Add a new enemy"
76
+ },
77
+
78
+ "Persons": {
79
+ "scope": "javascript,typescript",
80
+ "prefix": "ssPerson",
81
+ "body": [
82
+ "import { IGame, IPerson, Person } from '../types';",
83
+ "import description from './${TM_FILENAME_BASE}.html?raw';",
84
+ "",
85
+ "export function ${TM_FILENAME_BASE/(.*)/${1:/capitalize}/}() {",
86
+ "\treturn Person({",
87
+ "\t\tname: '${TM_FILENAME_BASE/(.*)/${1:/capitalize}/}',",
88
+ "\t\tdescription: description,",
89
+ "\t\thitpoints: 10,$1",
90
+ "\t\titems: [",
91
+ "\t\t],",
92
+ "\t\tquests: [",
93
+ "\t\t],",
94
+ "\t\tconversation: {",
95
+ "\t\t\tactions: [",
96
+ "\t\t\t]",
97
+ "\t\t},",
98
+ "\t});",
99
+ "}"
100
+ ],
101
+ "description": "Add a new person"
102
+ },
103
+
104
+ "Items": {
105
+ "scope": "javascript,typescript",
106
+ "prefix": "ssItem",
107
+ "body": [
108
+ "import { IGame, Item } from '../types';",
109
+ "import { EquipmentType } from 'storyScript';",
110
+ "import description from './${TM_FILENAME_BASE}.html?raw';",
111
+ "",
112
+ "export function ${TM_FILENAME_BASE/(.*)/${1:/capitalize}/}() {",
113
+ "\treturn Item({",
114
+ "\t\tname: '${TM_FILENAME_BASE/(.*)/${1:/capitalize}/}',",
115
+ "\t\tdescription: description,",
116
+ "\t\tequipmentType: $1EquipmentType.Miscellaneous,",
117
+ "\t});",
118
+ "}"
119
+ ],
120
+ "description": "Add a new item"
121
+ },
122
+
123
+ "Keys": {
124
+ "scope": "javascript,typescript",
125
+ "prefix": "ssKey",
126
+ "body": [
127
+ "import { IGame, Key } from '../types';",
128
+ "import { EquipmentType } from 'storyScript';",
129
+ "import description from './${TM_FILENAME_BASE}.html?raw';",
130
+ "",
131
+ "export function ${TM_FILENAME_BASE/(.*)/${1:/capitalize}/}() {",
132
+ "\treturn Key({",
133
+ "\t\tname: '${TM_FILENAME_BASE/(.*)/${1:/capitalize}/}',",
134
+ "\t\tdescription: description,",
135
+ "\t\tkeepAfterUse: $1true,",
136
+ "\t\tequipmentType: $2EquipmentType.Miscellaneous,",
137
+ "\t\topen: {",
138
+ "\t\t\ttext: '$3',",
139
+ "\t\t\texecute: (game: IGame) => {",
140
+ "\t\t\t}",
141
+ "\t\t}",
142
+ "\t});",
143
+ "}"
144
+ ],
145
+ "description": "Add a new key"
146
+ },
147
+
148
+ "Maps": {
149
+ "scope": "javascript,typescript",
150
+ "prefix": "ssMap",
151
+ "body": [
152
+ "import { IGame, LocationMap } from '../types';",
153
+ "",
154
+ "export function ${TM_FILENAME_BASE/(.*)/${1:/capitalize}/}() {",
155
+ "\treturn LocationMap({",
156
+ "\t\tname: '${TM_FILENAME_BASE/(.*)/${1:/capitalize}/}',",
157
+ "\t\tmapImage: '$1',",
158
+ "\t\tlocationNamesAsTextMarkers: true,",
159
+ "\t\tlocations: [",
160
+ "\t\t\t{",
161
+ "\t\t\t\tlocation: $2,",
162
+ "\t\t\t\tcoords: '$3'",
163
+ "\t\t\t},",
164
+ "\t\t],",
165
+ "\t});",
166
+ "}"
167
+ ],
168
+ "description": "Add a new map"
169
+ },
170
+
171
+ "MapLocations": {
172
+ "scope": "javascript,typescript",
173
+ "prefix": "ssMapLocation",
174
+ "body": [
175
+ "{",
176
+ "\tlocation: $1,",
177
+ "\tcoords: '$2'",
178
+ "},"
179
+ ],
180
+ "description": "Add a new map location"
181
+ },
182
+
183
+ "Destinations": {
184
+ "scope": "javascript,typescript",
185
+ "prefix": "ssDestination",
186
+ "body": [
187
+ "{",
188
+ "\tname: '$1',",
189
+ "\ttarget: $2null",
190
+ "},"
191
+ ],
192
+ "description": "Add a new destination"
193
+ },
194
+
195
+ "Barriers": {
196
+ "scope": "javascript,typescript",
197
+ "prefix": "ssBarriers",
198
+ "body": [
199
+ "barriers: [",
200
+ "\t[ '$1',",
201
+ "\t{",
202
+ "\t\tname: '$2',",
203
+ "\t\tactions: [",
204
+ "\t\t\t$3",
205
+ "\t\t],",
206
+ "\t}]",
207
+ "],"
208
+ ],
209
+ "description": "Add barriers to a destination"
210
+ },
211
+
212
+ "Barrier": {
213
+ "scope": "javascript,typescript",
214
+ "prefix": "ssBarrier",
215
+ "body": [
216
+ "[ '$1', {",
217
+ "\tname: '$2',",
218
+ "\tactions: [",
219
+ "\t\t$3",
220
+ "\t],",
221
+ "}],"
222
+ ],
223
+ "description": "Add a new destination barrier"
224
+ },
225
+
226
+ "Actions": {
227
+ "scope": "javascript,typescript",
228
+ "body": [
229
+ "import { IAction, ActionStatus, ActionType } from 'storyScript';",
230
+ "import { IGame } from '../types';",
231
+ "",
232
+ "export function ${TM_FILENAME_BASE/(.*)/${1:/capitalize}/}() {",
233
+ "\treturn <IAction>({",
234
+ "\t\ttext: '${TM_FILENAME_BASE/(.*)/${1:/capitalize}/}',",
235
+ "\t\tactionType: ActionType.Regular,",
236
+ "\t\texecute(game: IGame) {",
237
+ "\t\t",
238
+ "\t\t},",
239
+ "\t\tstatus(game: IGame) {",
240
+ "\t\treturn ActionStatus.Available;",
241
+ "\t\t},",
242
+ "\t});",
243
+ "}"
244
+ ],
245
+ "description": "Add a new action"
246
+ },
247
+
248
+ "InlineActions": {
249
+ "scope": "javascript,typescript",
250
+ "prefix": "ssAction",
251
+ "body": [
252
+ "[",
253
+ "\t'$1',",
254
+ "\t\t{",
255
+ "\t\ttext: '$2',",
256
+ "\t\texecute: (game: IGame) => {",
257
+ "\t\t\t$3",
258
+ "\t\t},",
259
+ "\t}",
260
+ "],"
261
+ ],
262
+ "description": "Add a new action"
263
+ },
264
+
265
+ "CombinationActions": {
266
+ "scope": "javascript,typescript",
267
+ "prefix": "ssCombinationAction",
268
+ "body": [
269
+ "{",
270
+ "\ttext: '$1',",
271
+ "\tpreposition: '$2',",
272
+ "\trequiresTool: false,",
273
+ "\tfailText: (game: IGame, target: ICombinable, tool: ICombinable): string => {",
274
+ "\t\treturn '$3';",
275
+ "\t},",
276
+ "},"
277
+ ],
278
+ "description": "Add a new combination"
279
+ },
280
+
281
+ "Combinations": {
282
+ "scope": "javascript,typescript",
283
+ "prefix": "ssCombination",
284
+ "body": [
285
+ "combinations: {",
286
+ "\tcombine: [",
287
+ "\t\t$1",
288
+ "\t],",
289
+ "},"
290
+ ],
291
+ "description": "Add a new combination"
292
+ },
293
+
294
+ "Combines": {
295
+ "scope": "javascript,typescript",
296
+ "prefix": "ssCombine",
297
+ "body": [
298
+ "{",
299
+ "\tcombinationType: '$1',",
300
+ "\tmatch: (game: IGame, target: ICombinable, tool: ICombinable): string | { text: string, removeTarget: boolean } => {",
301
+ "\t\treturn '$2';",
302
+ "\t},",
303
+ "},"
304
+ ],
305
+ "description": "Add a new combination combine"
306
+ },
307
+
308
+ "ConversationAction": {
309
+ "scope": "javascript,typescript",
310
+ "prefix": "ssConversationAction",
311
+ "body": [
312
+ "['$1', (game: IGame, person: IPerson) => {",
313
+ "\t$2",
314
+ "}],"
315
+ ],
316
+ "description": "Add a new conversation action"
317
+ },
318
+
319
+ "Quests": {
320
+ "scope": "javascript,typescript",
321
+ "prefix": "ssQuest",
322
+ "body": [
323
+ "import { IGame, IQuest, Quest, IPerson } from '../types';",
324
+ "",
325
+ "export function ${TM_FILENAME_BASE/(.*)/${1:/capitalize}/}() {",
326
+ "\treturn Quest({",
327
+ "\t\tname: '$1',",
328
+ "\t\tstatus: (game: IGame, quest: IQuest, done: boolean) => {",
329
+ "\t\t\treturn '$2';",
330
+ "\t\t},",
331
+ "\t\tstart: (game: IGame, quest: IQuest, person: IPerson) => {",
332
+ "\t\t},",
333
+ "\t\tcheckDone: (game: IGame, quest:IQuest): boolean => {",
334
+ "\t\t\treturn $3false;",
335
+ "\t\t},",
336
+ "\t\tcomplete: (game: IGame, quest: IQuest, person: IPerson) => {",
337
+ "\t\t},",
338
+ "\t});",
339
+ "}"
340
+ ],
341
+ "description": "Add a new quest"
342
+ },
343
+
344
+ "StoryScriptFunctions": {
345
+ "scope": "javascript,typescript",
346
+ "prefix": "ssFunction",
347
+ "body": [
348
+ "[",
349
+ "\t'$1',",
350
+ "\t(game: IGame) => {",
351
+ "\t\t$2",
352
+ "\t}",
353
+ "]"
354
+ ],
355
+ "description": "Add a new StoryScript function"
356
+ },
357
+
358
+ "CreationAttributes": {
359
+ "scope": "javascript,typescript",
360
+ "prefix": "ssAttributes",
361
+ "body": [
362
+ "{",
363
+ "\tattributes: [",
364
+ "\t\t$1",
365
+ "\t]",
366
+ "},"
367
+ ],
368
+ "description": "Add a new StoryScript attributes step for character creation"
369
+ },
370
+
371
+ "CreationAttribute": {
372
+ "scope": "javascript,typescript",
373
+ "prefix": "ssAttribute",
374
+ "body": [
375
+ "{",
376
+ "\tquestion: '$1',",
377
+ "\tentries: [",
378
+ "\t\t$2",
379
+ "\t]",
380
+ "},"
381
+ ],
382
+ "description": "Add a new StoryScript character creation attribute list"
383
+ },
384
+
385
+ "CreationAttributeEntry": {
386
+ "scope": "javascript,typescript",
387
+ "prefix": "ssAttributeEntry",
388
+ "body": [
389
+ "{",
390
+ "\tattribute: '$1',",
391
+ "\tmin: $2,",
392
+ "\tmax: $3,",
393
+ "\tvalue: '$4'",
394
+ "},"
395
+ ],
396
+ "description": "Add a new StoryScript character creation attribute entry"
397
+ },
398
+
399
+ "CreationQuestions": {
400
+ "scope": "javascript,typescript",
401
+ "prefix": "ssQuestions",
402
+ "body": [
403
+ "{",
404
+ "\tquestions: [",
405
+ "\t\t$1",
406
+ "\t]",
407
+ "},"
408
+ ],
409
+ "description": "Add a new StoryScript questions step for character creation"
410
+ },
411
+
412
+ "CreationQuestion": {
413
+ "scope": "javascript,typescript",
414
+ "prefix": "ssQuestion",
415
+ "body": [
416
+ "{",
417
+ "\tquestion: '$1',",
418
+ "\tentries: [",
419
+ "\t\t$2",
420
+ "\t]",
421
+ "},"
422
+ ],
423
+ "description": "Add a new StoryScript character creation question"
424
+ },
425
+
426
+ "CreationQuestionEntry": {
427
+ "scope": "javascript,typescript",
428
+ "prefix": "ssQuestionEntry",
429
+ "body": [
430
+ "{",
431
+ "\ttext: '$1',",
432
+ "\tvalue: '$2',",
433
+ "\tbonus: $3",
434
+ "},"
435
+ ],
436
+ "description": "Add a new StoryScript character creation question entry"
437
+ },
438
+
439
+ "Trade": {
440
+ "scope": "javascript,typescript",
441
+ "prefix": "ssTrade",
442
+ "body": [
443
+ "{",
444
+ "\tname: '$1',",
445
+ "\ttext: '$2',",
446
+ "\townItemsOnly: $3true,",
447
+ "\tbuy: {",
448
+ "\t\ttext: '$4',",
449
+ "\t\temptyText: '$5',",
450
+ "\t\titemSelector: (game: IGame, item: IItem): boolean => {",
451
+ "\t\t\treturn $6true;",
452
+ "\t\t}",
453
+ "\t},",
454
+ "\tsell: {",
455
+ "\t\ttext: '$7',",
456
+ "\t\temptyText: '$8',",
457
+ "\t\titemSelector: (game: IGame, item: IItem): boolean => {",
458
+ "\t\t\treturn $9true;",
459
+ "\t\t}",
460
+ "\t}",
461
+ "},"
462
+ ],
463
+ "description": "Add a new trade"
464
+ },
465
+
466
+ "Description": {
467
+ "scope": "html",
468
+ "prefix": "ssDescription",
469
+ "body": [
470
+ "<description name=\"$1\">",
471
+ "\t$2",
472
+ "</description>"
473
+ ],
474
+ "description": "Add a new description"
475
+ },
476
+
477
+ "StoryScriptAudio": {
478
+ "scope": "html",
479
+ "prefix": "ssAudio",
480
+ "body": [
481
+ "<audio controls=\"controls\" autoplay=\"autoplay\">",
482
+ "\t<source :src=\"'resources/$1.mp3'\" type=\"audio/mp3\" />",
483
+ "\tYour browser does not support audio.",
484
+ "</audio>"
485
+ ],
486
+ "description": "Add a new audio"
487
+ },
488
+
489
+ "HtmlFeatures": {
490
+ "scope": "html",
491
+ "prefix": "ssFeature",
492
+ "body": [
493
+ "<feature name=\"$1\">$2</feature>"
494
+ ],
495
+ "description": "Add a new feature"
496
+ },
497
+
498
+ "HtmlTrigger": {
499
+ "scope": "html",
500
+ "prefix": "ssTrigger",
501
+ "body": [
502
+ "<span data-trigger=\"$1\">$2</span>"
503
+ ],
504
+ "description": "Add a new trigger"
505
+ },
506
+
507
+ "VisualFeatures": {
508
+ "scope": "html",
509
+ "prefix": "ssVisualFeatures",
510
+ "body": [
511
+ "<visual-features img=\"$1\">",
512
+ "\t<area name=\"$2\" shape=\"$3\" coords=\"$4\" />",
513
+ "</visual-features>"
514
+ ],
515
+ "description": "Add a new visual feature collection"
516
+ },
517
+
518
+ "VisualFeature": {
519
+ "scope": "html",
520
+ "prefix": "ssArea",
521
+ "body": [
522
+ "<area name=\"$1\" shape=\"$2\" coords=\"$3\" />"
523
+ ],
524
+ "description": "Add a new visual feature"
525
+ },
526
+
527
+ "Conversation": {
528
+ "scope": "html",
529
+ "prefix": "ssConversation",
530
+ "body": [
531
+ "<conversation>",
532
+ "\t<default-reply>",
533
+ "\t</default-reply>",
534
+ "\t<node name=\"$1\" trigger=\"$2\">",
535
+ "\t\t<p>",
536
+ "\t\t\t$3",
537
+ "\t\t</p>",
538
+ "\t\t<replies default-reply=\"\">",
539
+ "\t\t\t$4",
540
+ "\t\t</replies>",
541
+ "\t</node>",
542
+ "</conversation>"
543
+ ],
544
+ "description": "Add a new conversation"
545
+ },
546
+
547
+ "ConversationNode": {
548
+ "scope": "html",
549
+ "prefix": "ssNode",
550
+ "body": [
551
+ "<node name=\"$1\" trigger=\"$2\">",
552
+ "\t<p>",
553
+ "\t\t$3",
554
+ "\t</p>",
555
+ "\t<replies default-reply=\"\">",
556
+ "\t\t$4",
557
+ "\t</replies>",
558
+ "</node>"
559
+ ],
560
+ "description": "Add a new conversation node"
561
+ },
562
+
563
+ "Reply": {
564
+ "scope": "html",
565
+ "prefix": "ssReply",
566
+ "body": [
567
+ "<reply node=\"$1\" set-start=\"\" requires=\"\" trigger=\"\" quest-complete=\"\">",
568
+ "\t$2",
569
+ "</reply>"
570
+ ],
571
+ "description": "Add a new conversation reply"
572
+ }
573
+ }
package/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) [2026] [Rutger Schurgers]
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.