webtalekit-alpha 0.2.10 → 0.2.13

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 (391) hide show
  1. package/.claude/settings.local.json +12 -0
  2. package/.clinerules +65 -0
  3. package/.history/README_20240812174230.md +193 -0
  4. package/.history/README_20240812175424.md +185 -0
  5. package/.history/README_20240812191012.md +185 -0
  6. package/.history/README_20240812191155.md +185 -0
  7. package/.history/README_20240812191211.md +185 -0
  8. package/.history/README_20240812192035.md +185 -0
  9. package/.history/dist/src/core/index_20240815021552.js +474 -0
  10. package/.history/dist/src/core/index_20240815022042.js +476 -0
  11. package/.history/dist/src/core/index_20240815022206.js +476 -0
  12. package/.history/dist/src/core/index_20240815023104.js +478 -0
  13. package/.history/dist/src/core/index_20240817022019.js +494 -0
  14. package/.history/dist/src/core/index_20240818013827.js +493 -0
  15. package/.history/dist/src/core/index_20240820001418.js +502 -0
  16. package/.history/package_20240812174230.json +45 -0
  17. package/.history/package_20240825011731.json +45 -0
  18. package/.history/package_20240825011739.json +44 -0
  19. package/.history/parser/parser_20240812174230.js +50 -0
  20. package/.history/parser/parser_20240825012739.js +47 -0
  21. package/.history/parser/parser_20240825012835.js +52 -0
  22. package/.history/src/core/drawer_20240813091343.ts +262 -0
  23. package/.history/src/core/drawer_20240815232345.ts +262 -0
  24. package/.history/src/core/drawer_20240815232350.ts +262 -0
  25. package/.history/src/core/drawer_20240816025257.ts +357 -0
  26. package/.history/src/core/drawer_20240816025358.ts +357 -0
  27. package/.history/src/core/drawer_20240816030148.ts +365 -0
  28. package/.history/src/core/drawer_20240816231033.ts +294 -0
  29. package/.history/src/core/drawer_20240816231107.ts +262 -0
  30. package/.history/src/core/drawer_20240816231234.ts +268 -0
  31. package/.history/src/core/drawer_20240817013836.ts +290 -0
  32. package/.history/src/core/drawer_20240817015150.ts +289 -0
  33. package/.history/src/core/drawer_20240817015353.ts +290 -0
  34. package/.history/src/core/drawer_20240817021254.ts +291 -0
  35. package/.history/src/core/drawer_20240817023440.ts +295 -0
  36. package/.history/src/core/drawer_20240817023445.ts +295 -0
  37. package/.history/src/core/drawer_20240818015327.ts +295 -0
  38. package/.history/src/core/drawer_20240819231006.ts +318 -0
  39. package/.history/src/core/drawer_20240820002829.ts +317 -0
  40. package/.history/src/core/drawer_20240820003141.ts +295 -0
  41. package/.history/src/core/drawer_20240824010043.ts +295 -0
  42. package/.history/src/core/drawer_20240825013311.ts +293 -0
  43. package/.history/src/core/drawer_20240902235257.ts +295 -0
  44. package/.history/src/core/drawer_20240904002038.ts +262 -0
  45. package/.history/src/core/drawer_20240904004020.ts +262 -0
  46. package/.history/src/core/drawer_20240904004238.ts +262 -0
  47. package/.history/src/core/drawer_20240904005648.ts +262 -0
  48. package/.history/src/core/drawer_20240904005808.ts +262 -0
  49. package/.history/src/core/drawer_20240904010523.ts +262 -0
  50. package/.history/src/core/drawer_20240904011611.ts +262 -0
  51. package/.history/src/core/drawer_20240904011740.ts +262 -0
  52. package/.history/src/core/index_20240812190102.js +443 -0
  53. package/.history/src/core/index_20240812190105.js +443 -0
  54. package/.history/src/core/index_20240812205421.js +452 -0
  55. package/.history/src/core/index_20240812213441.js +452 -0
  56. package/.history/src/core/index_20240812214203.js +453 -0
  57. package/.history/src/core/index_20240813090823.js +453 -0
  58. package/.history/src/core/index_20240813230449.js +452 -0
  59. package/.history/src/core/index_20240813230539.js +452 -0
  60. package/.history/src/core/index_20240813231447.js +453 -0
  61. package/.history/src/core/index_20240813231449.js +453 -0
  62. package/.history/src/core/index_20240813231511.js +453 -0
  63. package/.history/src/core/index_20240813231531.js +453 -0
  64. package/.history/src/core/index_20240813231913.js +453 -0
  65. package/.history/src/core/index_20240813232356.js +453 -0
  66. package/.history/src/core/index_20240813232640.js +453 -0
  67. package/.history/src/core/index_20240813232900.js +453 -0
  68. package/.history/src/core/index_20240814221127.js +454 -0
  69. package/.history/src/core/index_20240814221322.js +454 -0
  70. package/.history/src/core/index_20240814221526.js +454 -0
  71. package/.history/src/core/index_20240814222048.js +454 -0
  72. package/.history/src/core/index_20240814222918.js +459 -0
  73. package/.history/src/core/index_20240814223136.js +459 -0
  74. package/.history/src/core/index_20240814223501.js +464 -0
  75. package/.history/src/core/index_20240814224347.js +468 -0
  76. package/.history/src/core/index_20240815013712.js +474 -0
  77. package/.history/src/core/index_20240815021534.js +474 -0
  78. package/.history/src/core/index_20240815023143.js +477 -0
  79. package/.history/src/core/index_20240815023207.js +479 -0
  80. package/.history/src/core/index_20240815023344.js +481 -0
  81. package/.history/src/core/index_20240815035600.js +479 -0
  82. package/.history/src/core/index_20240815041549.js +480 -0
  83. package/.history/src/core/index_20240815185515.js +481 -0
  84. package/.history/src/core/index_20240815192158.js +481 -0
  85. package/.history/src/core/index_20240815222912.js +482 -0
  86. package/.history/src/core/index_20240815224052.js +483 -0
  87. package/.history/src/core/index_20240815224843.js +484 -0
  88. package/.history/src/core/index_20240815224850.js +483 -0
  89. package/.history/src/core/index_20240815231706.js +479 -0
  90. package/.history/src/core/index_20240816025748.js +483 -0
  91. package/.history/src/core/index_20240816030102.js +484 -0
  92. package/.history/src/core/index_20240817013329.js +485 -0
  93. package/.history/src/core/index_20240817013526.js +485 -0
  94. package/.history/src/core/index_20240817013819.js +488 -0
  95. package/.history/src/core/index_20240817013829.js +488 -0
  96. package/.history/src/core/index_20240817014921.js +494 -0
  97. package/.history/src/core/index_20240817022057.js +494 -0
  98. package/.history/src/core/index_20240817023316.js +493 -0
  99. package/.history/src/core/index_20240818005637.js +493 -0
  100. package/.history/src/core/index_20240818005721.js +493 -0
  101. package/.history/src/core/index_20240818011804.js +493 -0
  102. package/.history/src/core/index_20240818013835.js +493 -0
  103. package/.history/src/core/index_20240818014310.js +493 -0
  104. package/.history/src/core/index_20240818014323.js +493 -0
  105. package/.history/src/core/index_20240818014333.js +493 -0
  106. package/.history/src/core/index_20240818020725.js +496 -0
  107. package/.history/src/core/index_20240819195504.js +497 -0
  108. package/.history/src/core/index_20240819202012.js +495 -0
  109. package/.history/src/core/index_20240819231228.js +501 -0
  110. package/.history/src/core/index_20240819232555.js +502 -0
  111. package/.history/src/core/index_20240819233404.js +502 -0
  112. package/.history/src/core/index_20240820003114.js +495 -0
  113. package/.history/src/core/index_20240820003120.js +495 -0
  114. package/.history/src/core/index_20240820003331.js +495 -0
  115. package/.history/src/core/index_20240820004126.js +498 -0
  116. package/.history/src/core/index_20240820004357.js +497 -0
  117. package/.history/src/core/index_20240820005103.js +498 -0
  118. package/.history/src/core/index_20240820005110.js +499 -0
  119. package/.history/src/core/index_20240820005206.js +497 -0
  120. package/.history/src/core/index_20240820005352.js +497 -0
  121. package/{src/core/index.js → .history/src/core/index_20240823224904.ts} +75 -224
  122. package/.history/src/core/index_20240823224905.js +505 -0
  123. package/.history/src/core/index_20240823231631.ts +530 -0
  124. package/.history/src/core/index_20240823231735.ts +530 -0
  125. package/.history/src/core/index_20240823232123.ts +539 -0
  126. package/.history/src/core/index_20240823232329.ts +539 -0
  127. package/.history/src/core/index_20240823233058.ts +539 -0
  128. package/.history/src/core/index_20240823234946.ts +539 -0
  129. package/.history/src/core/index_20240824005956.ts +534 -0
  130. package/.history/src/core/index_20240824010113.ts +534 -0
  131. package/.history/src/core/index_20240824010124.ts +534 -0
  132. package/.history/src/core/index_20240824010212.ts +534 -0
  133. package/.history/src/core/index_20240824010218.ts +534 -0
  134. package/.history/src/core/index_20240824010407.ts +534 -0
  135. package/.history/src/core/index_20240824010611.ts +534 -0
  136. package/.history/src/core/index_20240824010623.ts +534 -0
  137. package/.history/src/core/index_20240824010652.ts +534 -0
  138. package/.history/src/core/index_20240824011007.ts +534 -0
  139. package/.history/src/core/index_20240824210450.ts +534 -0
  140. package/.history/src/core/index_20240824210703.ts +534 -0
  141. package/.history/src/core/index_20240824210708.ts +534 -0
  142. package/.history/src/core/index_20240824211001.ts +537 -0
  143. package/.history/src/core/index_20240824211258.ts +537 -0
  144. package/.history/src/core/index_20240824211654.ts +537 -0
  145. package/.history/src/core/index_20240824211723.ts +537 -0
  146. package/.history/src/core/index_20240824211808.ts +538 -0
  147. package/.history/src/core/index_20240824214041.js +538 -0
  148. package/.history/src/core/index_20240824215312.ts +538 -0
  149. package/.history/src/core/index_20240824215341.ts +538 -0
  150. package/.history/src/core/index_20240824220703.ts +538 -0
  151. package/.history/src/core/index_20240824220709.ts +538 -0
  152. package/.history/src/core/index_20240825012244.ts +536 -0
  153. package/.history/src/core/index_20240825012435.ts +539 -0
  154. package/.history/src/core/index_20240825012440.ts +539 -0
  155. package/.history/src/core/index_20240826005054.ts +539 -0
  156. package/.history/src/core/index_20240826005321.ts +540 -0
  157. package/.history/src/core/index_20240826005410.ts +539 -0
  158. package/.history/src/core/index_20240826005418.ts +539 -0
  159. package/.history/src/core/index_20240830231825.ts +539 -0
  160. package/.history/src/core/index_20240831022416.ts +539 -0
  161. package/.history/src/core/index_20240901222314.js +459 -0
  162. package/.history/src/core/index_20240901222951.js +459 -0
  163. package/.history/src/core/index_20240901223824.js +471 -0
  164. package/.history/src/core/index_20240901223833.js +468 -0
  165. package/.history/src/core/index_20240902223954.js +447 -0
  166. package/.history/src/core/index_20240902224000.js +446 -0
  167. package/.history/src/core/index_20240902230345.js +448 -0
  168. package/.history/src/core/index_20240902231130.js +449 -0
  169. package/.history/src/core/index_20240902231559.js +449 -0
  170. package/.history/src/core/index_20240902232135.js +449 -0
  171. package/.history/src/core/index_20240902232809.js +452 -0
  172. package/.history/src/core/index_20240902232815.js +452 -0
  173. package/.history/src/core/index_20240903000104.js +467 -0
  174. package/.history/src/core/index_20240904001731.js +444 -0
  175. package/.history/src/core/index_20240904002038.ts +539 -0
  176. package/.history/src/core/index_20240904011848.js +444 -0
  177. package/.history/src/core/index_20240904012138.js +444 -0
  178. package/.history/src/core/index_20240904012743.js +444 -0
  179. package/.history/src/core/index_20240904013051.js +444 -0
  180. package/.history/src/core/resourceManager_20240403231531.ts +16 -0
  181. package/.history/src/core/resourceManager_20240823232627.ts +17 -0
  182. package/.history/src/core/resourceManager_20240824214014.js +16 -0
  183. package/.history/src/core/resourceManager_20240824214620.js +17 -0
  184. package/.history/src/core/scenarioManager_20240812203410.ts +86 -0
  185. package/.history/src/core/scenarioManager_20240812203839.ts +94 -0
  186. package/.history/src/core/scenarioManager_20240812213437.ts +85 -0
  187. package/.history/src/core/scenarioManager_20240813225852.ts +85 -0
  188. package/.history/src/core/scenarioManager_20240823235010.ts +85 -0
  189. package/.history/src/core/scenarioManager_20240904002038.ts +94 -0
  190. package/.history/src/core/scenarioManager_20240904012411.ts +94 -0
  191. package/.history/src/core/scenarioManager_20240904012519.ts +94 -0
  192. package/.history/src/index_20240403231531.js +6 -0
  193. package/.history/src/index_20240429233436.js +8 -0
  194. package/.history/src/index_20240429233926.js +8 -0
  195. package/.history/src/index_20240429234401.js +7 -0
  196. package/.history/src/index_20240429234404.js +6 -0
  197. package/.history/src/resource/soundObject_20240419004314.ts +71 -0
  198. package/.history/src/resource/soundObject_20240815034420.ts +66 -0
  199. package/.history/src/resource/soundObject_20240815034836.ts +79 -0
  200. package/.history/src/resource/soundObject_20240815034919.ts +87 -0
  201. package/.history/src/resource/soundObject_20240815040724.ts +81 -0
  202. package/.history/src/resource/soundObject_20240815041022.ts +87 -0
  203. package/.history/src/resource/soundObject_20240815042103.ts +87 -0
  204. package/.history/src/resource/soundObject_20240823235929.ts +91 -0
  205. package/.history/src/resource/soundObject_20240824213129.ts +99 -0
  206. package/.history/src/resource/soundObject_20240824213611.ts +101 -0
  207. package/.history/src/resource/soundObject_20240824215734.ts +101 -0
  208. package/.history/src/resource/soundObject_20240825004926.ts +101 -0
  209. package/.history/src/resource/soundObject_20240825004947.ts +101 -0
  210. package/.history/src/utils/logger_20240812174230.ts +13 -0
  211. package/.history/src/utils/logger_20240823232736.ts +14 -0
  212. package/.history/src/utils/logger_20240824214930.js +14 -0
  213. package/.history/src/utils/store_20240812174230.ts +17 -0
  214. package/.history/src/utils/store_20240823232948.ts +29 -0
  215. package/.history/src/utils/store_20240824214020.js +17 -0
  216. package/.history/src/utils/store_20240824214955.js +29 -0
  217. package/.history/src/utils/waitUtil_20240812174230.ts +4 -0
  218. package/.history/src/utils/waitUtil_20240823232739.ts +4 -0
  219. package/.history/src/utils/waitUtil_20240824214024.js +4 -0
  220. package/.history/src/utils/waitUtil_20240824215009.js +4 -0
  221. package/.history/test/js/title_20240428215305.js +254 -0
  222. package/.history/test/js/title_20240429221911.js +227 -0
  223. package/.history/test/js/title_20240429222806.js +243 -0
  224. package/.history/test/js/title_20240429222854.js +263 -0
  225. package/.history/test/js/title_20240429222906.js +263 -0
  226. package/.history/test/js/title_20240429235639.js +263 -0
  227. package/.history/test/js/title_20240429235840.js +263 -0
  228. package/.history/test/js/title_20240430014721.js +262 -0
  229. package/.history/test/js/title_20240430014759.js +254 -0
  230. package/.history/test/js/title_20240430134612.js +285 -0
  231. package/.history/test/js/title_20240430141051.js +285 -0
  232. package/.history/test/js/title_20240430173745.js +245 -0
  233. package/.history/tsconfig_20240812174230.json +22 -0
  234. package/.history/tsconfig_20240824010157.json +19 -0
  235. package/.history/tsconfig_20240824220700.json +20 -0
  236. package/.history/tsconfig_20240825011301.json +20 -0
  237. package/.history/webpack.config_20240423002825.js +37 -0
  238. package/.history/webpack.config_20240430001157.js +38 -0
  239. package/.history/webpack.config_20240430001309.js +37 -0
  240. package/.history/webpack.config_20240430002112.js +37 -0
  241. package/CLAUDE.md +96 -0
  242. package/LICENSE +21 -0
  243. package/README.md +149 -48
  244. package/coverage/lcov-report/base.css +224 -0
  245. package/coverage/lcov-report/block-navigation.js +87 -0
  246. package/coverage/lcov-report/core/drawer.ts.html +1264 -0
  247. package/coverage/lcov-report/core/index.html +146 -0
  248. package/coverage/lcov-report/core/resourceManager.ts.html +136 -0
  249. package/coverage/lcov-report/core/scenarioManager.ts.html +373 -0
  250. package/coverage/lcov-report/favicon.png +0 -0
  251. package/coverage/lcov-report/index.html +146 -0
  252. package/coverage/lcov-report/prettify.css +1 -0
  253. package/coverage/lcov-report/prettify.js +2 -0
  254. package/coverage/lcov-report/resource/ImageObject.ts.html +433 -0
  255. package/coverage/lcov-report/resource/index.html +131 -0
  256. package/coverage/lcov-report/resource/soundObject.ts.html +346 -0
  257. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  258. package/coverage/lcov-report/sorter.js +196 -0
  259. package/coverage/lcov-report/utils/TextMeasurer.ts.html +520 -0
  260. package/coverage/lcov-report/utils/index.html +161 -0
  261. package/coverage/lcov-report/utils/logger.ts.html +142 -0
  262. package/coverage/lcov-report/utils/store.ts.html +151 -0
  263. package/coverage/lcov-report/utils/waitUtil.ts.html +97 -0
  264. package/coverage/lcov.info +882 -0
  265. package/dist/README.md +294 -0
  266. package/dist/engineConfig.json +10 -0
  267. package/dist/package.json +51 -0
  268. package/dist/parser/cli.js +61 -0
  269. package/dist/parser/parser.js +53 -0
  270. package/{src → dist/src}/core/drawer.js +2 -11
  271. package/dist/src/core/drawer.js.map +1 -0
  272. package/dist/src/core/index.js +969 -0
  273. package/{src → dist/src}/core/scenarioManager.js +5 -6
  274. package/dist/src/core/scenarioManager.js.map +1 -0
  275. package/{src → dist/src}/resource/ImageObject.js +2 -2
  276. package/{src → dist/src}/resource/soundObject.js +6 -4
  277. package/dist/src/resource/soundObject.js.map +1 -0
  278. package/dist/src/utils/fallbackTemplate.js +13 -0
  279. package/dist/src/utils/fallbackTemplate.js.map +1 -0
  280. package/{src → dist/src}/utils/logger.js +4 -3
  281. package/dist/src/utils/logger.js.map +1 -0
  282. package/{src → dist/src}/utils/waitUtil.js +4 -3
  283. package/dist/src/utils/waitUtil.js.map +1 -0
  284. package/dist/webtalekit-alpha-0.2.13.tgz +0 -0
  285. package/docs/event-system-specification.md +493 -0
  286. package/docs/glossary.html +833 -0
  287. package/docs/index.html +296 -0
  288. package/docs/tag-reference.html +1317 -0
  289. package/docs/ui-template-guide.html +1068 -0
  290. package/example/README.md +29 -0
  291. package/example/engineConfig.json +10 -0
  292. package/example/package-lock.json +5145 -0
  293. package/example/package.json +26 -0
  294. package/example/src/index.js +13 -0
  295. package/example/src/resource/background/beach.jpg +0 -0
  296. package/example/src/resource/background/city.jpg +0 -0
  297. package/example/src/resource/background/crossroad.jpg +0 -0
  298. package/example/src/resource/background/forest.jpg +0 -0
  299. package/example/src/resource/background/laboratory.jpg +0 -0
  300. package/example/src/resource/background/library.jpg +0 -0
  301. package/example/src/resource/background/living_room.jpg +0 -0
  302. package/example/src/resource/background/music_room.jpg +0 -0
  303. package/example/src/resource/background/stage.jpg +0 -0
  304. package/example/src/resource/background/sunset.jpg +0 -0
  305. package/example/src/resource/background/title_bg.png +0 -0
  306. package/example/src/resource/bgm/calm_music.wav +0 -0
  307. package/example/src/resource/bgm/doorbell.mp3 +0 -0
  308. package/example/src/resource/bgm/nc366476_Virtual_Voyage.mp3 +0 -0
  309. package/example/src/resource/bgm/title_theme.mp3 +0 -0
  310. package/example/src/resource/chara/dancer.png +0 -0
  311. package/example/src/resource/chara/guest.png +0 -0
  312. package/example/src/resource/chara/guide.png +0 -0
  313. package/example/src/resource/chara/scientist.png +0 -0
  314. package/example/src/resource/config.js +0 -0
  315. package/example/src/resource/se/doorbell.mp3 +0 -0
  316. package/example/src/resource/system/systemPicture/01_message/message.png +0 -0
  317. package/example/src/resource/system/systemPicture/02_button/button.png +0 -0
  318. package/example/src/resource/system/systemPicture/02_button/button2.png +0 -0
  319. package/example/src/resource/system/systemPicture/02_button/button3.png +0 -0
  320. package/example/src/resource/system/systemPicture/03_system_button/auto.png +0 -0
  321. package/example/src/resource/system/systemPicture/03_system_button/auto2.png +0 -0
  322. package/example/src/resource/system/systemPicture/03_system_button/close.png +0 -0
  323. package/example/src/resource/system/systemPicture/03_system_button/close2.png +0 -0
  324. package/example/src/resource/system/systemPicture/03_system_button/config.png +0 -0
  325. package/example/src/resource/system/systemPicture/03_system_button/config2.png +0 -0
  326. package/example/src/resource/system/systemPicture/03_system_button/load.png +0 -0
  327. package/example/src/resource/system/systemPicture/03_system_button/load2.png +0 -0
  328. package/example/src/resource/system/systemPicture/03_system_button/log.png +0 -0
  329. package/example/src/resource/system/systemPicture/03_system_button/log2.png +0 -0
  330. package/example/src/resource/system/systemPicture/03_system_button/menu.png +0 -0
  331. package/example/src/resource/system/systemPicture/03_system_button/menu2.png +0 -0
  332. package/example/src/resource/system/systemPicture/03_system_button/qload.png +0 -0
  333. package/example/src/resource/system/systemPicture/03_system_button/qload2.png +0 -0
  334. package/example/src/resource/system/systemPicture/03_system_button/qsave.png +0 -0
  335. package/example/src/resource/system/systemPicture/03_system_button/qsave2.png +0 -0
  336. package/example/src/resource/system/systemPicture/03_system_button/save.png +0 -0
  337. package/example/src/resource/system/systemPicture/03_system_button/save2.png +0 -0
  338. package/example/src/resource/system/systemPicture/03_system_button/screen.png +0 -0
  339. package/example/src/resource/system/systemPicture/03_system_button/screen2.png +0 -0
  340. package/example/src/resource/system/systemPicture/03_system_button/skip.png +0 -0
  341. package/example/src/resource/system/systemPicture/03_system_button/skip2.png +0 -0
  342. package/example/src/resource/system/systemPicture/03_system_button/title.png +0 -0
  343. package/example/src/resource/system/systemPicture/03_system_button/title2.png +0 -0
  344. package/example/src/resource/system/systemPicture//345/210/251/347/224/250/350/246/217/347/264/204.txt +0 -0
  345. package/example/src/resource/system/wait.gif +0 -0
  346. package/example/src/scene/animation.scene +28 -0
  347. package/example/src/scene/background.scene +29 -0
  348. package/example/src/scene/character.scene +26 -0
  349. package/example/src/scene/choice.scene +97 -0
  350. package/example/src/scene/dialog.scene +105 -0
  351. package/example/src/scene/effects.scene +38 -0
  352. package/example/src/scene/en/animation.scene +28 -0
  353. package/example/src/scene/en/background.scene +26 -0
  354. package/example/src/scene/en/character.scene +26 -0
  355. package/example/src/scene/en/choice.scene +32 -0
  356. package/example/src/scene/en/effects.scene +37 -0
  357. package/example/src/scene/en/sound.scene +26 -0
  358. package/example/src/scene/en/text.scene +26 -0
  359. package/example/src/scene/en/title.scene +39 -0
  360. package/example/src/scene/if_test.scene +37 -0
  361. package/example/src/scene/resource-error-test.scene +15 -0
  362. package/example/src/scene/save-load-test.scene +48 -0
  363. package/example/src/scene/sound.scene +26 -0
  364. package/example/src/scene/test_error.scene +21 -0
  365. package/example/src/scene/text.scene +34 -0
  366. package/example/src/scene/title.scene +51 -0
  367. package/example/src/screen/incoming.html +474 -0
  368. package/example/src/screen/title.html +135 -0
  369. package/example/src/template.html +16 -0
  370. package/example/test-results/.last-run.json +4 -0
  371. package/example/webpack.config.js +69 -0
  372. package/image.png +0 -0
  373. package/package.json +3 -1
  374. package/playwright-report/index.html +71 -0
  375. package/s-plan1-5Light-s-1.jpg +0 -0
  376. package/test-results/.last-run.json +6 -0
  377. package/tests/e2e/if-global-attribute.spec.js +90 -0
  378. package/tests/e2e/resource-error-handling.spec.js +58 -0
  379. package/tests/e2e/screenshots/before-error-check.png +0 -0
  380. package/tests/e2e/screenshots/choices.png +0 -0
  381. package/tests/e2e/screenshots/message-window-click-wait.png +0 -0
  382. package/src/core/drawer.js.map +0 -1
  383. package/src/core/scenarioManager.js.map +0 -1
  384. package/src/resource/soundObject.js.map +0 -1
  385. package/src/utils/logger.js.map +0 -1
  386. package/src/utils/waitUtil.js.map +0 -1
  387. /package/{src → dist/src}/core/resourceManager.js +0 -0
  388. /package/{src → dist/src}/core/resourceManager.js.map +0 -0
  389. /package/{src → dist/src}/resource/ImageObject.js.map +0 -0
  390. /package/{src → dist/src}/utils/store.js +0 -0
  391. /package/{src → dist/src}/utils/store.js.map +0 -0
@@ -43,17 +43,17 @@ export class Core {
43
43
  this.usedSounds = {}
44
44
  }
45
45
 
46
- async start(initScene) {
47
- outputLog('call', 'debug', initScene)
46
+ async start() {
47
+ outputLog('call', 'debug')
48
48
  // TODO: ブラウザ用のビルドの場合は、最初にクリックしてもらう
49
49
  // titleタグの内容を書き換える
50
50
  document.title = engineConfig.title
51
51
  // sceneファイルを読み込む
52
- await this.loadScene(initScene || 'title')
52
+ await this.loadScene('title')
53
53
  // 画面を表示する
54
54
  await this.loadScreen(this.sceneConfig)
55
55
  // 入力イベントを設定する
56
- document.querySelector('#gameContainer').addEventListener('keydown', (e) => {
56
+ document.addEventListener('keydown', (e) => {
57
57
  if (e.key === 'Enter') {
58
58
  this.onNextHandler()
59
59
  } else if (e.key === 'Control') {
@@ -61,13 +61,13 @@ export class Core {
61
61
  this.isNext = true
62
62
  }
63
63
  })
64
- document.querySelector('#gameContainer').addEventListener('keyup', (e) => {
64
+ document.addEventListener('keyup', (e) => {
65
65
  if (e.key === 'Control') {
66
66
  this.drawer.isSkip = true
67
67
  this.isNext = false
68
68
  }
69
69
  })
70
- document.querySelector('#gameContainer').addEventListener('click', (e) => {
70
+ document.addEventListener('click', (e) => {
71
71
  this.onNextHandler()
72
72
  })
73
73
 
@@ -84,11 +84,6 @@ export class Core {
84
84
  outputLog('call', 'debug', sceneFileName)
85
85
  // sceneファイルを読み込む
86
86
  this.sceneFile = await import(/* webpackChunkName: "[request]" */ `/src/js/${sceneFileName}.js`)
87
- // sceneファイルの初期化処理を実行
88
- if (this.sceneFile.init) {
89
- this.sceneFile.init(this.getAPIForScript())
90
- }
91
- // シナリオの進行状況を初期化
92
87
  this.scenarioManager.setScenario(this.sceneFile.scenario, sceneFileName)
93
88
  this.sceneConfig = { ...this.sceneConfig, ...this.sceneFile.sceneConfig }
94
89
  outputLog('sceneFile', 'debug', this.sceneFile)
@@ -102,12 +97,6 @@ export class Core {
102
97
  var parser = new DOMParser()
103
98
  var doc = parser.parseFromString(htmlString, 'text/html')
104
99
  this.gameContainer.innerHTML = doc.getElementById('main').innerHTML
105
- // 既に読み込んだスタイルシートがあったら削除する
106
- const styleTags = document.head.getElementsByTagName('style')
107
- for (const styleTag of styleTags) {
108
- document.head.removeChild(styleTag)
109
- }
110
-
111
100
  // Styleタグを取り出して、headタグに追加する
112
101
  const styleElement = doc.head.getElementsByTagName('style')[0]
113
102
  document.head.appendChild(styleElement)
@@ -135,8 +124,9 @@ export class Core {
135
124
  return
136
125
  }
137
126
  outputLog('scenarioObject', 'debug', scenarioObject)
138
- // シナリオオブジェクトのtypeプロパティに応じて、対応する関数を実行する
127
+ // prettier-ignore
139
128
  const boundFunction = this.commandList[scenarioObject.type || 'text'].bind(this)
129
+ // prettier-ignore
140
130
  outputLog(`boundFunction:${boundFunction.name.split(' ')[1]}`, 'debug', scenarioObject)
141
131
  scenarioObject = await this.httpHandler(scenarioObject)
142
132
  await boundFunction(scenarioObject)
@@ -151,7 +141,7 @@ export class Core {
151
141
  scenarioObject.content = scenarioObject.content.concat(scenarioObject.then || scenarioObject.error)
152
142
  }
153
143
  outputLog('call', 'debug', scenarioObject)
154
-
144
+
155
145
  // 名前が設定されている場合は、名前を表示する
156
146
  if (scenarioObject.name) {
157
147
  this.drawer.drawName(scenarioObject.name)
@@ -161,33 +151,40 @@ export class Core {
161
151
 
162
152
  //prettier-ignore
163
153
  this.onNextHandler = () => { this.drawer.isSkip = true }
164
- this.drawer.clearText() // テキスト表示領域をクリア
165
154
  // 表示する文章を1行ずつ表示する
166
- for (const text of scenarioObject.content) {
167
- outputLog('textSpeed', 'debug', text)
168
- if (typeof text === 'string') {
169
- await this.drawer.drawText(this.expandVariable(text), scenarioObject.speed || 25)
155
+ for (const line of scenarioObject.content) {
156
+ // scenarioObject.content内にオブジェクトが含まれている場合は、クリア処理をスキップする
157
+ if (scenarioObject.content.some(item => typeof item === 'object' && item !== null)) {
158
+
170
159
  } else {
171
- if (text.type === 'br' || text.type === 'wait') {
172
- outputLog('text', 'debug', text)
173
- if (text.type === 'br') this.drawer.drawLineBreak()
174
- if (!text.nw) {
175
- await this.waitHandler({ wait: text.time })
176
- }
177
- } else {
178
- const container = this.drawer.createDecoratedElement(text)
179
- await this.drawer.drawText(this.expandVariable(text.content[0]), text.speed || 25, container)
160
+ this.drawer.clearText(); // テキスト表示領域をクリア
161
+ }
162
+
163
+ if (typeof line === 'string') {
164
+ await this.drawer.drawText(this.expandVariable(line), line.speed || 50)
165
+ } else {
166
+ const container = this.drawer.createDecoratedElement(line);
167
+ await this.drawer.drawText(this.expandVariable(line.content[0]), line.speed || 50, container)
168
+ }
169
+ //prettier-ignore
170
+ this.onNextHandler = () => { this.isNext = true }
171
+ if (typeof line.wait === 'number') {
172
+ if (line.wait > 0 || this.isAuto) {
173
+ const waitTime = line.wait || 1500
174
+ // 指定された時間だけ待機
175
+ await sleep(waitTime)
180
176
  }
177
+ } else {
178
+ // 改行ごとに入力待ち
179
+ await this.clickWait()
181
180
  }
182
181
  }
183
- await this.waitHandler({ wait: scenarioObject.time })
184
182
  this.drawer.isSkip = false
185
183
  this.scenarioManager.setHistory(scenarioObject.content)
186
184
  }
187
185
 
188
186
  expandVariable(text) {
189
187
  outputLog('call', 'debug', text)
190
- if (typeof text !== 'string') return text
191
188
  return text.replace(/{{([^{}]+)}}/g, (match) => {
192
189
  const expr = match.slice(2, -2)
193
190
  const returnValue = this.executeCode(`return ${expr}`)
@@ -195,31 +192,6 @@ export class Core {
195
192
  })
196
193
  }
197
194
 
198
- async waitHandler(line) {
199
- // line.timeがある場合、line.waitに代入する
200
- if (line.time) line.wait = line.time
201
- outputLog('call', 'debug', line)
202
- //prettier-ignore
203
- this.onNextHandler = () => { this.isNext = true }
204
- outputLog('wait type', 'debug', typeof line.wait)
205
-
206
- // line.waitが数値に変換可能な文字列の場合、数値に変換
207
- if (typeof line.wait === 'string' && !isNaN(Number(line.wait))) {
208
- line.wait = Number(line.wait)
209
- }
210
- if (typeof line.wait === 'number') {
211
- outputLog('wait number', 'debug', line.wait)
212
- if (line.wait > 0 || this.isAuto) {
213
- const waitTime = line.wait || 1500
214
- // 指定された時間だけ待機
215
- await sleep(waitTime)
216
- }
217
- } else {
218
- // 改行ごとに入力待ち
219
- await this.clickWait()
220
- }
221
- }
222
-
223
195
  // クリック待ち処理
224
196
  async clickWait() {
225
197
  outputLog('call', 'debug')
@@ -240,60 +212,30 @@ export class Core {
240
212
  outputLog('call', 'debug', line)
241
213
  // say(name:string, pattern: string, voice: {playの引数}, ...text)
242
214
  if (line.voice) await this.soundHandler({ path: line.voice, play: undefined })
243
- await this.textHandler({ content: line.content, name: line.name, speed: line.speed || 25 })
215
+ await this.textHandler({ content: line.content, name: line.name })
244
216
  this.scenarioManager.setHistory(line)
245
217
  }
246
218
 
247
219
  async choiceHandler(line) {
248
220
  outputLog('call', 'debug', line)
249
- document.querySelector('#interactiveView').style.visibility = 'visible'
250
- if (line.prompt) this.textHandler(line.prompt)
251
- // ムスタッシュ構文があるときは、変数の展開
252
- line.content.forEach((choice) => {
253
- choice.label = this.expandVariable(choice.label)
254
- })
221
+ if (line.prompt) this.textHandler(line.prompt) // promptがある場合は、表示する
255
222
  const { selectId, onSelect: selectHandler } = await this.drawer.drawChoices(line)
256
223
  if (selectHandler !== undefined) {
257
224
  this.scenarioManager.addScenario(selectHandler)
258
225
  }
259
226
  this.scenarioManager.setHistory({ line, ...selectId })
260
- document.querySelector('#interactiveView').style.visibility = 'hidden'
261
227
  }
262
228
 
263
229
  jumpHandler(line) {
264
230
  outputLog('call:', 'debug', line.index)
265
- // ジャンプ先が現在の行より小さいときは、今の行とジャンプ先の行の間で、sub=falseの行を抽出して、scenarioManagerに追加する
266
- if (line.index < this.scenarioManager.getIndex()) {
267
- // scenarioManagerからシナリオを取得
268
- const scenario = this.scenarioManager.getScenario()
269
- // 結合用に、ジャンプ先までのインデックスを取得
270
- const noEditScenarioList = {
271
- before: scenario.slice(0, line.index),
272
- after: scenario.slice(this.scenarioManager.getIndex()),
273
- }
274
- outputLog('noEditScenarioList', 'debug', noEditScenarioList)
275
- // ジャンプ先のインデックスまでのシナリオを取得
276
- const scenarioList = scenario.slice(line.index, this.scenarioManager.getIndex())
277
- outputLog('scenarioList', 'debug', scenarioList)
278
- // sub=falseの行だけを取得
279
- const subFalseScenario = scenarioList.filter((line) => !line.sub)
280
- outputLog('subFalseScenario', 'debug', subFalseScenario)
281
- // scenarioManagerに追加
282
- this.scenarioManager.setScenario([...noEditScenarioList.before, ...subFalseScenario, ...noEditScenarioList.after])
283
- outputLog('scenarioManager', 'debug', this.scenarioManager.getScenario())
284
- }
285
231
  this.newpageHandler()
286
232
  this.scenarioManager.setIndex(Number(line.index))
287
233
  }
288
234
 
289
235
  async showHandler(line) {
290
236
  outputLog('line', 'debug', line)
291
- // ムスタッシュ構文があるときは、変数の展開
292
- Object.keys(line).forEach((item) => {
293
- line[item] = this.expandVariable(line[item])
294
- })
295
237
  // 表示する画像の情報を管理オブジェクトに追加
296
- const modeList = { bg: 'background', cutin: '', chara: '', cg: 'background', effect: 'effect' }
238
+ const modeList = { 'bg': 'background', 'cutin': '', 'chara': '', 'cg': 'background', 'effect': 'effect' }
297
239
  const key = Object.keys(modeList).includes(line.mode) ? modeList[line.mode] : line.name || line.src.split('/').pop()
298
240
  const baseLine = engineConfig.resolution.height / 2
299
241
  const centerPoint = {
@@ -301,7 +243,6 @@ export class Core {
301
243
  center: { x: engineConfig.resolution.width * 0.5, y: baseLine },
302
244
  right: { x: engineConfig.resolution.width * 0.75, y: baseLine },
303
245
  }
304
- line.src = this.expandVariable(line.src) || line.name
305
246
 
306
247
  const image = await this.getImageObject(line)
307
248
  // 画像の表示位置を設定
@@ -323,9 +264,9 @@ export class Core {
323
264
  if (line.pos) {
324
265
  const pos = line.pos.split(':')
325
266
  const baseLines = {
326
- top: 0 + size.height,
267
+ top: 0,
327
268
  middle: engineConfig.resolution.height / 2,
328
- bottom: engineConfig.resolution.height - size.height,
269
+ bottom: engineConfig.resolution.height,
329
270
  }
330
271
  // エイリアスが設定されている場合、画像の中心点を求めて、画像の表示位置を設定する
331
272
  position.x = centerPoint[pos[0]].x - size.width / 2
@@ -344,47 +285,24 @@ export class Core {
344
285
  look: line.look,
345
286
  entry: line.entry,
346
287
  }
347
-
348
288
  outputLog('displayedImages', 'debug', this.displayedImages[key])
349
289
  if (line.sepia) this.displayedImages[key].image.setSepia(line.sepia)
350
290
  if (line.mono) this.displayedImages[key].image.setMonochrome(line.mono)
351
291
  if (line.blur) this.displayedImages[key].image.setBlur(line.blur)
352
292
  if (line.opacity) this.displayedImages[key].image.setOpacity(line.opacity)
353
-
354
- if (line.transition === 'fade') {
355
- // フェードイン効果で表示
356
- await this.drawer.fadeIn(line.duration || 2000, await this.getImageObject(line), {
357
- pos: position,
358
- size,
359
- look: line.look,
360
- entry: line.entry,
361
- })
362
- this.drawer.show(this.displayedImages)
363
- } else {
364
- // 通常の表示処理
365
- this.drawer.show(this.displayedImages)
366
- }
293
+ this.drawer.show(this.displayedImages)
367
294
  outputLog('this.displayedImages', 'debug', this.displayedImages)
368
295
  }
369
296
 
370
- async hideHandler(line) {
297
+ hideHandler(line) {
371
298
  outputLog('call', 'debug', line)
372
- const targetImage = this.displayedImages[line.name]
373
- if (line.mode === 'cg') {
299
+ if(line.mode === 'cg') {
374
300
  this.displayedImages = { ...this.tempImages }
375
301
  this.tempImages = {}
376
302
  } else {
377
303
  delete this.displayedImages[line.name]
378
304
  }
379
305
  this.drawer.show(this.displayedImages)
380
- if (line.transition === 'fade') {
381
- // フェードアウト効果で非表示
382
- await this.drawer.fadeOut(line.duration || 1000, targetImage.image, {
383
- pos: targetImage.pos,
384
- size: targetImage.size,
385
- look: targetImage.look,
386
- })
387
- }
388
306
  }
389
307
 
390
308
  async moveToHandler(line) {
@@ -396,15 +314,13 @@ export class Core {
396
314
 
397
315
  async getImageObject(line) {
398
316
  outputLog('call', 'debug', line)
399
- const name = line.name || line.src.split('/').pop()
400
317
  let image
401
318
  // 既にインスタンスがある場合は、それを使う
402
- if (Object.hasOwn(this.displayedImages, name)) {
403
- const targetImage = this.displayedImages[name]
319
+ if (line.name) {
320
+ const targetImage = this.displayedImages[line.name]
404
321
  const imageObject = targetImage ? targetImage.image : new ImageObject()
405
322
  image = await imageObject.setImageAsync(line.src)
406
323
  } else {
407
- outputLog('new ImageObject', 'debug')
408
324
  image = await new ImageObject().setImageAsync(line.src)
409
325
  }
410
326
  return image
@@ -413,24 +329,24 @@ export class Core {
413
329
  async soundHandler(line) {
414
330
  outputLog('call', 'debug', line)
415
331
  let soundObject = null
416
- if (line.mode === 'bgm') {
332
+ if(line.mode === 'bgm') {
417
333
  if (this.bgm.isPlaying) {
418
334
  this.bgm.stop()
419
335
  }
420
336
  soundObject = await this.getSoundObject(line)
421
337
  this.bgm = soundObject
422
338
  } else {
423
- // soundObjectを作成
424
- soundObject = await this.getSoundObject(line)
425
- // playプロパティが存在する場合は、再生する
426
- }
427
- if ('play' in line) {
428
- 'loop' in line ? soundObject.play(true) : soundObject.play()
429
- } else if ('stop' in line) {
430
- soundObject.stop()
431
- } else if ('pause' in line) {
432
- soundObject.pause()
433
- }
339
+ // soundObjectを作成
340
+ soundObject = await this.getSoundObject(line)
341
+ // playプロパティが存在する場合は、再生する
342
+ }
343
+ if ('play' in line) {
344
+ 'loop' in line ? soundObject.play(true) : soundObject.play()
345
+ } else if ('stop' in line) {
346
+ soundObject.stop()
347
+ } else if ('pause' in line) {
348
+ soundObject.pause()
349
+ }
434
350
  // soundObjectを管理オブジェクトに追加
435
351
  const key = line.name || line.src.split('/').pop()
436
352
  this.usedSounds[key] = {
@@ -440,10 +356,9 @@ export class Core {
440
356
 
441
357
  async getSoundObject(line) {
442
358
  outputLog('call', 'debug', line)
443
- const name = line.name || line.src.split('/').pop()
444
359
  let resource
445
- if (Object.hasOwn(this.usedSounds, name)) {
446
- const targetResource = this.usedSounds[name]
360
+ if (line.name) {
361
+ const targetResource = this.usedSounds[line.name]
447
362
  const soundObject = targetResource ? targetResource.audio : new SoundObject()
448
363
  resource = await soundObject.setAudioAsync(line.src)
449
364
  } else {
@@ -471,9 +386,13 @@ export class Core {
471
386
  outputLog('call', 'debug', line)
472
387
  const isTrue = this.executeCode(`return ${line.condition}`)
473
388
  outputLog(`${isTrue}`, 'debug')
474
- const appendScenario = isTrue ? line.content[0].content : line.content[1].content
475
- outputLog('', 'debug', appendScenario)
476
- this.scenarioManager.addScenario(appendScenario)
389
+ if (isTrue) {
390
+ outputLog('', 'debug', line.content[0].content)
391
+ this.scenarioManager.addScenario(line.content[0].content)
392
+ } else {
393
+ outputLog('', 'debug', line.content[1].content)
394
+ this.scenarioManager.addScenario(line.content[1].content)
395
+ }
477
396
  }
478
397
 
479
398
  async routeHandler(line) {
@@ -483,22 +402,18 @@ export class Core {
483
402
  this.bgm = null
484
403
  }
485
404
  this.newpageHandler()
486
- if (this.sceneFile.cleanUp) {
487
- // 終了処理を実行する
488
- this.sceneFile.cleanUp()
489
- }
490
405
  // sceneファイルを読み込む
491
406
  await this.loadScene(line.to)
492
407
  // 画面を表示する
493
408
  await this.loadScreen(this.sceneConfig)
494
- // BGMを再生する
495
- this.bgm.play(true)
409
+ // BGMを再生する
410
+ this.bgm.play(true)
496
411
  }
497
412
 
498
413
  // Sceneファイルに、ビルド時に実行処理を追加して、そこに処理をお願いしたほうがいいかも?
499
414
  callHandler(line) {
500
415
  outputLog('call', 'debug', line)
501
- this.executeCode(line.method)
416
+ this.executeCode(line.func)
502
417
  }
503
418
 
504
419
  async httpHandler(line) {
@@ -563,16 +478,22 @@ export class Core {
563
478
  return line
564
479
  }
565
480
 
481
+ async waitHandler(line) {
482
+ outputLog('call', 'debug', line)
483
+ if (line.time) {
484
+ await sleep(line.time)
485
+ }
486
+ }
487
+
566
488
  setBackground(image) {
567
- this.displayedImages['background'] = image
489
+ this.displayedImages["background"] = image
568
490
  }
569
491
 
570
492
  getBackground() {
571
- return this.displayedImages['background'].image
493
+ return this.displayedImages["background"].image
572
494
  }
573
495
 
574
496
  executeCode(code) {
575
- outputLog('call', 'debug', code)
576
497
  try {
577
498
  const context = { ...this.sceneFile }
578
499
  const func = new Function(...Object.keys(context), code)
@@ -581,74 +502,4 @@ export class Core {
581
502
  console.error('Error executing code:', error)
582
503
  }
583
504
  }
584
-
585
- // Scriptから安全にアクセスできるメソッドを定義
586
- getAPIForScript() {
587
- return {
588
- drawer: {
589
- drawName: this.drawer.drawName.bind(this.drawer),
590
- drawText: this.drawer.drawText.bind(this.drawer),
591
- drawChoices: this.drawer.drawChoices.bind(this.drawer),
592
- clearText: this.drawer.clearText.bind(this.drawer),
593
- show: this.drawer.show.bind(this.drawer),
594
- moveTo: this.drawer.moveTo.bind(this.drawer),
595
- fadeIn: this.drawer.fadeIn.bind(this.drawer),
596
- fadeOut: this.drawer.fadeOut.bind(this.drawer),
597
- },
598
- sound: {
599
- play: this.soundHandler.bind(this),
600
- stop: (name) => this.soundHandler({ name, stop: true }),
601
- pause: (name) => this.soundHandler({ name, pause: true }),
602
- },
603
- scenario: {
604
- jump: this.jumpHandler.bind(this),
605
- addScene: this.scenarioManager.addScenario.bind(this.scenarioManager),
606
- getProgress: () => this.scenarioManager.progress,
607
- setProgress: (progress) => (this.scenarioManager.progress = progress),
608
- getIndex: () => this.scenarioManager.getIndex(),
609
- setIndex: (index) => this.scenarioManager.setIndex(index),
610
- hasNext: () => this.scenarioManager.hasNext(),
611
- next: () => this.scenarioManager.next(),
612
- getHistory: () => this.scenarioManager.getHistory(),
613
- setHistory: (history) => this.scenarioManager.setHistory(history),
614
- setScenario: (scenario) => this.scenarioManager.setScenario(scenario),
615
- getScenario: () => this.scenarioManager.getScenario(),
616
- getSceneName: () => this.scenarioManager.progress.currentScene,
617
- setScreenName: (name) => (this.sceneConfig.name = name),
618
- },
619
- images: {
620
- get: this.getImageObject.bind(this),
621
- getAll: () => this.displayedImages,
622
- set: (name, image) => (this.displayedImages[name] = image),
623
- delete: (name) => delete this.displayedImages[name],
624
- },
625
- sounds: {
626
- get: (name) => this.usedSounds[name],
627
- getAll: () => this.usedSounds,
628
- set: (name, sound) => (this.usedSounds[name] = sound),
629
- delete: (name) => delete this.usedSounds[name],
630
- load: this.getSoundObject.bind(this),
631
- },
632
- background: {
633
- set: this.setBackground.bind(this),
634
- get: this.getBackground.bind(this),
635
- },
636
- wait: this.waitHandler.bind(this),
637
- clickWait: this.clickWait.bind(this),
638
- core: {
639
- text: this.textHandler.bind(this),
640
- choice: this.choiceHandler.bind(this),
641
- show: this.showHandler.bind(this),
642
- newpage: this.newpageHandler.bind(this),
643
- hide: this.hideHandler.bind(this),
644
- jump: this.jumpHandler.bind(this),
645
- sound: this.soundHandler.bind(this),
646
- say: this.sayHandler.bind(this),
647
- if: this.ifHandler.bind(this),
648
- moveto: this.moveToHandler.bind(this),
649
- route: this.routeHandler.bind(this),
650
- wait: this.waitHandler.bind(this),
651
- },
652
- }
653
- }
654
505
  }