webtalekit-alpha 0.2.13 → 0.2.14

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 (398) hide show
  1. package/README.md +145 -70
  2. package/package.json +10 -2
  3. package/parser/checker.js +184 -0
  4. package/parser/checker.test.ts +491 -0
  5. package/parser/cli.js +34 -2
  6. package/parser/parser.js +25 -18
  7. package/src/core/defaultUIHandler.js +309 -0
  8. package/src/core/defaultUIHandler.js.map +1 -0
  9. package/{dist/src → src}/core/drawer.js +65 -40
  10. package/src/core/drawer.js.map +1 -0
  11. package/{dist/src → src}/core/index.js +188 -257
  12. package/{dist/src → src}/core/scenarioManager.js +29 -7
  13. package/src/core/scenarioManager.js.map +1 -0
  14. package/src/utils/eventBus.js +88 -0
  15. package/src/utils/eventBus.js.map +1 -0
  16. package/{dist/src → src}/utils/logger.js +45 -1
  17. package/src/utils/logger.js.map +1 -0
  18. package/{dist/src → src}/utils/store.js +5 -0
  19. package/src/utils/store.js.map +1 -0
  20. package/.claude/settings.local.json +0 -12
  21. package/.clinerules +0 -65
  22. package/.history/README_20240812174230.md +0 -193
  23. package/.history/README_20240812175424.md +0 -185
  24. package/.history/README_20240812191012.md +0 -185
  25. package/.history/README_20240812191155.md +0 -185
  26. package/.history/README_20240812191211.md +0 -185
  27. package/.history/README_20240812192035.md +0 -185
  28. package/.history/dist/src/core/index_20240815021552.js +0 -474
  29. package/.history/dist/src/core/index_20240815022042.js +0 -476
  30. package/.history/dist/src/core/index_20240815022206.js +0 -476
  31. package/.history/dist/src/core/index_20240815023104.js +0 -478
  32. package/.history/dist/src/core/index_20240817022019.js +0 -494
  33. package/.history/dist/src/core/index_20240818013827.js +0 -493
  34. package/.history/dist/src/core/index_20240820001418.js +0 -502
  35. package/.history/package_20240812174230.json +0 -45
  36. package/.history/package_20240825011731.json +0 -45
  37. package/.history/package_20240825011739.json +0 -44
  38. package/.history/parser/parser_20240812174230.js +0 -50
  39. package/.history/parser/parser_20240825012739.js +0 -47
  40. package/.history/parser/parser_20240825012835.js +0 -52
  41. package/.history/src/core/drawer_20240813091343.ts +0 -262
  42. package/.history/src/core/drawer_20240815232345.ts +0 -262
  43. package/.history/src/core/drawer_20240815232350.ts +0 -262
  44. package/.history/src/core/drawer_20240816025257.ts +0 -357
  45. package/.history/src/core/drawer_20240816025358.ts +0 -357
  46. package/.history/src/core/drawer_20240816030148.ts +0 -365
  47. package/.history/src/core/drawer_20240816231033.ts +0 -294
  48. package/.history/src/core/drawer_20240816231107.ts +0 -262
  49. package/.history/src/core/drawer_20240816231234.ts +0 -268
  50. package/.history/src/core/drawer_20240817013836.ts +0 -290
  51. package/.history/src/core/drawer_20240817015150.ts +0 -289
  52. package/.history/src/core/drawer_20240817015353.ts +0 -290
  53. package/.history/src/core/drawer_20240817021254.ts +0 -291
  54. package/.history/src/core/drawer_20240817023440.ts +0 -295
  55. package/.history/src/core/drawer_20240817023445.ts +0 -295
  56. package/.history/src/core/drawer_20240818015327.ts +0 -295
  57. package/.history/src/core/drawer_20240819231006.ts +0 -318
  58. package/.history/src/core/drawer_20240820002829.ts +0 -317
  59. package/.history/src/core/drawer_20240820003141.ts +0 -295
  60. package/.history/src/core/drawer_20240824010043.ts +0 -295
  61. package/.history/src/core/drawer_20240825013311.ts +0 -293
  62. package/.history/src/core/drawer_20240902235257.ts +0 -295
  63. package/.history/src/core/drawer_20240904002038.ts +0 -262
  64. package/.history/src/core/drawer_20240904004020.ts +0 -262
  65. package/.history/src/core/drawer_20240904004238.ts +0 -262
  66. package/.history/src/core/drawer_20240904005648.ts +0 -262
  67. package/.history/src/core/drawer_20240904005808.ts +0 -262
  68. package/.history/src/core/drawer_20240904010523.ts +0 -262
  69. package/.history/src/core/drawer_20240904011611.ts +0 -262
  70. package/.history/src/core/drawer_20240904011740.ts +0 -262
  71. package/.history/src/core/index_20240812190102.js +0 -443
  72. package/.history/src/core/index_20240812190105.js +0 -443
  73. package/.history/src/core/index_20240812205421.js +0 -452
  74. package/.history/src/core/index_20240812213441.js +0 -452
  75. package/.history/src/core/index_20240812214203.js +0 -453
  76. package/.history/src/core/index_20240813090823.js +0 -453
  77. package/.history/src/core/index_20240813230449.js +0 -452
  78. package/.history/src/core/index_20240813230539.js +0 -452
  79. package/.history/src/core/index_20240813231447.js +0 -453
  80. package/.history/src/core/index_20240813231449.js +0 -453
  81. package/.history/src/core/index_20240813231511.js +0 -453
  82. package/.history/src/core/index_20240813231531.js +0 -453
  83. package/.history/src/core/index_20240813231913.js +0 -453
  84. package/.history/src/core/index_20240813232356.js +0 -453
  85. package/.history/src/core/index_20240813232640.js +0 -453
  86. package/.history/src/core/index_20240813232900.js +0 -453
  87. package/.history/src/core/index_20240814221127.js +0 -454
  88. package/.history/src/core/index_20240814221322.js +0 -454
  89. package/.history/src/core/index_20240814221526.js +0 -454
  90. package/.history/src/core/index_20240814222048.js +0 -454
  91. package/.history/src/core/index_20240814222918.js +0 -459
  92. package/.history/src/core/index_20240814223136.js +0 -459
  93. package/.history/src/core/index_20240814223501.js +0 -464
  94. package/.history/src/core/index_20240814224347.js +0 -468
  95. package/.history/src/core/index_20240815013712.js +0 -474
  96. package/.history/src/core/index_20240815021534.js +0 -474
  97. package/.history/src/core/index_20240815023143.js +0 -477
  98. package/.history/src/core/index_20240815023207.js +0 -479
  99. package/.history/src/core/index_20240815023344.js +0 -481
  100. package/.history/src/core/index_20240815035600.js +0 -479
  101. package/.history/src/core/index_20240815041549.js +0 -480
  102. package/.history/src/core/index_20240815185515.js +0 -481
  103. package/.history/src/core/index_20240815192158.js +0 -481
  104. package/.history/src/core/index_20240815222912.js +0 -482
  105. package/.history/src/core/index_20240815224052.js +0 -483
  106. package/.history/src/core/index_20240815224843.js +0 -484
  107. package/.history/src/core/index_20240815224850.js +0 -483
  108. package/.history/src/core/index_20240815231706.js +0 -479
  109. package/.history/src/core/index_20240816025748.js +0 -483
  110. package/.history/src/core/index_20240816030102.js +0 -484
  111. package/.history/src/core/index_20240817013329.js +0 -485
  112. package/.history/src/core/index_20240817013526.js +0 -485
  113. package/.history/src/core/index_20240817013819.js +0 -488
  114. package/.history/src/core/index_20240817013829.js +0 -488
  115. package/.history/src/core/index_20240817014921.js +0 -494
  116. package/.history/src/core/index_20240817022057.js +0 -494
  117. package/.history/src/core/index_20240817023316.js +0 -493
  118. package/.history/src/core/index_20240818005637.js +0 -493
  119. package/.history/src/core/index_20240818005721.js +0 -493
  120. package/.history/src/core/index_20240818011804.js +0 -493
  121. package/.history/src/core/index_20240818013835.js +0 -493
  122. package/.history/src/core/index_20240818014310.js +0 -493
  123. package/.history/src/core/index_20240818014323.js +0 -493
  124. package/.history/src/core/index_20240818014333.js +0 -493
  125. package/.history/src/core/index_20240818020725.js +0 -496
  126. package/.history/src/core/index_20240819195504.js +0 -497
  127. package/.history/src/core/index_20240819202012.js +0 -495
  128. package/.history/src/core/index_20240819231228.js +0 -501
  129. package/.history/src/core/index_20240819232555.js +0 -502
  130. package/.history/src/core/index_20240819233404.js +0 -502
  131. package/.history/src/core/index_20240820003114.js +0 -495
  132. package/.history/src/core/index_20240820003120.js +0 -495
  133. package/.history/src/core/index_20240820003331.js +0 -495
  134. package/.history/src/core/index_20240820004126.js +0 -498
  135. package/.history/src/core/index_20240820004357.js +0 -497
  136. package/.history/src/core/index_20240820005103.js +0 -498
  137. package/.history/src/core/index_20240820005110.js +0 -499
  138. package/.history/src/core/index_20240820005206.js +0 -497
  139. package/.history/src/core/index_20240820005352.js +0 -497
  140. package/.history/src/core/index_20240823224904.ts +0 -505
  141. package/.history/src/core/index_20240823224905.js +0 -505
  142. package/.history/src/core/index_20240823231631.ts +0 -530
  143. package/.history/src/core/index_20240823231735.ts +0 -530
  144. package/.history/src/core/index_20240823232123.ts +0 -539
  145. package/.history/src/core/index_20240823232329.ts +0 -539
  146. package/.history/src/core/index_20240823233058.ts +0 -539
  147. package/.history/src/core/index_20240823234946.ts +0 -539
  148. package/.history/src/core/index_20240824005956.ts +0 -534
  149. package/.history/src/core/index_20240824010113.ts +0 -534
  150. package/.history/src/core/index_20240824010124.ts +0 -534
  151. package/.history/src/core/index_20240824010212.ts +0 -534
  152. package/.history/src/core/index_20240824010218.ts +0 -534
  153. package/.history/src/core/index_20240824010407.ts +0 -534
  154. package/.history/src/core/index_20240824010611.ts +0 -534
  155. package/.history/src/core/index_20240824010623.ts +0 -534
  156. package/.history/src/core/index_20240824010652.ts +0 -534
  157. package/.history/src/core/index_20240824011007.ts +0 -534
  158. package/.history/src/core/index_20240824210450.ts +0 -534
  159. package/.history/src/core/index_20240824210703.ts +0 -534
  160. package/.history/src/core/index_20240824210708.ts +0 -534
  161. package/.history/src/core/index_20240824211001.ts +0 -537
  162. package/.history/src/core/index_20240824211258.ts +0 -537
  163. package/.history/src/core/index_20240824211654.ts +0 -537
  164. package/.history/src/core/index_20240824211723.ts +0 -537
  165. package/.history/src/core/index_20240824211808.ts +0 -538
  166. package/.history/src/core/index_20240824214041.js +0 -538
  167. package/.history/src/core/index_20240824215312.ts +0 -538
  168. package/.history/src/core/index_20240824215341.ts +0 -538
  169. package/.history/src/core/index_20240824220703.ts +0 -538
  170. package/.history/src/core/index_20240824220709.ts +0 -538
  171. package/.history/src/core/index_20240825012244.ts +0 -536
  172. package/.history/src/core/index_20240825012435.ts +0 -539
  173. package/.history/src/core/index_20240825012440.ts +0 -539
  174. package/.history/src/core/index_20240826005054.ts +0 -539
  175. package/.history/src/core/index_20240826005321.ts +0 -540
  176. package/.history/src/core/index_20240826005410.ts +0 -539
  177. package/.history/src/core/index_20240826005418.ts +0 -539
  178. package/.history/src/core/index_20240830231825.ts +0 -539
  179. package/.history/src/core/index_20240831022416.ts +0 -539
  180. package/.history/src/core/index_20240901222314.js +0 -459
  181. package/.history/src/core/index_20240901222951.js +0 -459
  182. package/.history/src/core/index_20240901223824.js +0 -471
  183. package/.history/src/core/index_20240901223833.js +0 -468
  184. package/.history/src/core/index_20240902223954.js +0 -447
  185. package/.history/src/core/index_20240902224000.js +0 -446
  186. package/.history/src/core/index_20240902230345.js +0 -448
  187. package/.history/src/core/index_20240902231130.js +0 -449
  188. package/.history/src/core/index_20240902231559.js +0 -449
  189. package/.history/src/core/index_20240902232135.js +0 -449
  190. package/.history/src/core/index_20240902232809.js +0 -452
  191. package/.history/src/core/index_20240902232815.js +0 -452
  192. package/.history/src/core/index_20240903000104.js +0 -467
  193. package/.history/src/core/index_20240904001731.js +0 -444
  194. package/.history/src/core/index_20240904002038.ts +0 -539
  195. package/.history/src/core/index_20240904011848.js +0 -444
  196. package/.history/src/core/index_20240904012138.js +0 -444
  197. package/.history/src/core/index_20240904012743.js +0 -444
  198. package/.history/src/core/index_20240904013051.js +0 -444
  199. package/.history/src/core/resourceManager_20240403231531.ts +0 -16
  200. package/.history/src/core/resourceManager_20240823232627.ts +0 -17
  201. package/.history/src/core/resourceManager_20240824214014.js +0 -16
  202. package/.history/src/core/resourceManager_20240824214620.js +0 -17
  203. package/.history/src/core/scenarioManager_20240812203410.ts +0 -86
  204. package/.history/src/core/scenarioManager_20240812203839.ts +0 -94
  205. package/.history/src/core/scenarioManager_20240812213437.ts +0 -85
  206. package/.history/src/core/scenarioManager_20240813225852.ts +0 -85
  207. package/.history/src/core/scenarioManager_20240823235010.ts +0 -85
  208. package/.history/src/core/scenarioManager_20240904002038.ts +0 -94
  209. package/.history/src/core/scenarioManager_20240904012411.ts +0 -94
  210. package/.history/src/core/scenarioManager_20240904012519.ts +0 -94
  211. package/.history/src/index_20240403231531.js +0 -6
  212. package/.history/src/index_20240429233436.js +0 -8
  213. package/.history/src/index_20240429233926.js +0 -8
  214. package/.history/src/index_20240429234401.js +0 -7
  215. package/.history/src/index_20240429234404.js +0 -6
  216. package/.history/src/resource/soundObject_20240419004314.ts +0 -71
  217. package/.history/src/resource/soundObject_20240815034420.ts +0 -66
  218. package/.history/src/resource/soundObject_20240815034836.ts +0 -79
  219. package/.history/src/resource/soundObject_20240815034919.ts +0 -87
  220. package/.history/src/resource/soundObject_20240815040724.ts +0 -81
  221. package/.history/src/resource/soundObject_20240815041022.ts +0 -87
  222. package/.history/src/resource/soundObject_20240815042103.ts +0 -87
  223. package/.history/src/resource/soundObject_20240823235929.ts +0 -91
  224. package/.history/src/resource/soundObject_20240824213129.ts +0 -99
  225. package/.history/src/resource/soundObject_20240824213611.ts +0 -101
  226. package/.history/src/resource/soundObject_20240824215734.ts +0 -101
  227. package/.history/src/resource/soundObject_20240825004926.ts +0 -101
  228. package/.history/src/resource/soundObject_20240825004947.ts +0 -101
  229. package/.history/src/utils/logger_20240812174230.ts +0 -13
  230. package/.history/src/utils/logger_20240823232736.ts +0 -14
  231. package/.history/src/utils/logger_20240824214930.js +0 -14
  232. package/.history/src/utils/store_20240812174230.ts +0 -17
  233. package/.history/src/utils/store_20240823232948.ts +0 -29
  234. package/.history/src/utils/store_20240824214020.js +0 -17
  235. package/.history/src/utils/store_20240824214955.js +0 -29
  236. package/.history/src/utils/waitUtil_20240812174230.ts +0 -4
  237. package/.history/src/utils/waitUtil_20240823232739.ts +0 -4
  238. package/.history/src/utils/waitUtil_20240824214024.js +0 -4
  239. package/.history/src/utils/waitUtil_20240824215009.js +0 -4
  240. package/.history/test/js/title_20240428215305.js +0 -254
  241. package/.history/test/js/title_20240429221911.js +0 -227
  242. package/.history/test/js/title_20240429222806.js +0 -243
  243. package/.history/test/js/title_20240429222854.js +0 -263
  244. package/.history/test/js/title_20240429222906.js +0 -263
  245. package/.history/test/js/title_20240429235639.js +0 -263
  246. package/.history/test/js/title_20240429235840.js +0 -263
  247. package/.history/test/js/title_20240430014721.js +0 -262
  248. package/.history/test/js/title_20240430014759.js +0 -254
  249. package/.history/test/js/title_20240430134612.js +0 -285
  250. package/.history/test/js/title_20240430141051.js +0 -285
  251. package/.history/test/js/title_20240430173745.js +0 -245
  252. package/.history/tsconfig_20240812174230.json +0 -22
  253. package/.history/tsconfig_20240824010157.json +0 -19
  254. package/.history/tsconfig_20240824220700.json +0 -20
  255. package/.history/tsconfig_20240825011301.json +0 -20
  256. package/.history/webpack.config_20240423002825.js +0 -37
  257. package/.history/webpack.config_20240430001157.js +0 -38
  258. package/.history/webpack.config_20240430001309.js +0 -37
  259. package/.history/webpack.config_20240430002112.js +0 -37
  260. package/CLAUDE.md +0 -96
  261. package/LICENSE +0 -21
  262. package/coverage/lcov-report/base.css +0 -224
  263. package/coverage/lcov-report/block-navigation.js +0 -87
  264. package/coverage/lcov-report/core/drawer.ts.html +0 -1264
  265. package/coverage/lcov-report/core/index.html +0 -146
  266. package/coverage/lcov-report/core/resourceManager.ts.html +0 -136
  267. package/coverage/lcov-report/core/scenarioManager.ts.html +0 -373
  268. package/coverage/lcov-report/favicon.png +0 -0
  269. package/coverage/lcov-report/index.html +0 -146
  270. package/coverage/lcov-report/prettify.css +0 -1
  271. package/coverage/lcov-report/prettify.js +0 -2
  272. package/coverage/lcov-report/resource/ImageObject.ts.html +0 -433
  273. package/coverage/lcov-report/resource/index.html +0 -131
  274. package/coverage/lcov-report/resource/soundObject.ts.html +0 -346
  275. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  276. package/coverage/lcov-report/sorter.js +0 -196
  277. package/coverage/lcov-report/utils/TextMeasurer.ts.html +0 -520
  278. package/coverage/lcov-report/utils/index.html +0 -161
  279. package/coverage/lcov-report/utils/logger.ts.html +0 -142
  280. package/coverage/lcov-report/utils/store.ts.html +0 -151
  281. package/coverage/lcov-report/utils/waitUtil.ts.html +0 -97
  282. package/coverage/lcov.info +0 -882
  283. package/dist/README.md +0 -294
  284. package/dist/engineConfig.json +0 -10
  285. package/dist/package.json +0 -51
  286. package/dist/parser/cli.js +0 -61
  287. package/dist/parser/parser.js +0 -53
  288. package/dist/src/core/drawer.js.map +0 -1
  289. package/dist/src/core/scenarioManager.js.map +0 -1
  290. package/dist/src/utils/logger.js.map +0 -1
  291. package/dist/src/utils/store.js.map +0 -1
  292. package/dist/webtalekit-alpha-0.2.13.tgz +0 -0
  293. package/docs/event-system-specification.md +0 -493
  294. package/docs/glossary.html +0 -833
  295. package/docs/index.html +0 -296
  296. package/docs/tag-reference.html +0 -1317
  297. package/docs/ui-template-guide.html +0 -1068
  298. package/example/README.md +0 -29
  299. package/example/engineConfig.json +0 -10
  300. package/example/package-lock.json +0 -5145
  301. package/example/package.json +0 -26
  302. package/example/src/index.js +0 -13
  303. package/example/src/resource/background/beach.jpg +0 -0
  304. package/example/src/resource/background/city.jpg +0 -0
  305. package/example/src/resource/background/crossroad.jpg +0 -0
  306. package/example/src/resource/background/forest.jpg +0 -0
  307. package/example/src/resource/background/laboratory.jpg +0 -0
  308. package/example/src/resource/background/library.jpg +0 -0
  309. package/example/src/resource/background/living_room.jpg +0 -0
  310. package/example/src/resource/background/music_room.jpg +0 -0
  311. package/example/src/resource/background/stage.jpg +0 -0
  312. package/example/src/resource/background/sunset.jpg +0 -0
  313. package/example/src/resource/background/title_bg.png +0 -0
  314. package/example/src/resource/bgm/calm_music.wav +0 -0
  315. package/example/src/resource/bgm/doorbell.mp3 +0 -0
  316. package/example/src/resource/bgm/nc366476_Virtual_Voyage.mp3 +0 -0
  317. package/example/src/resource/bgm/title_theme.mp3 +0 -0
  318. package/example/src/resource/chara/dancer.png +0 -0
  319. package/example/src/resource/chara/guest.png +0 -0
  320. package/example/src/resource/chara/guide.png +0 -0
  321. package/example/src/resource/chara/scientist.png +0 -0
  322. package/example/src/resource/config.js +0 -0
  323. package/example/src/resource/se/doorbell.mp3 +0 -0
  324. package/example/src/resource/system/systemPicture/01_message/message.png +0 -0
  325. package/example/src/resource/system/systemPicture/02_button/button.png +0 -0
  326. package/example/src/resource/system/systemPicture/02_button/button2.png +0 -0
  327. package/example/src/resource/system/systemPicture/02_button/button3.png +0 -0
  328. package/example/src/resource/system/systemPicture/03_system_button/auto.png +0 -0
  329. package/example/src/resource/system/systemPicture/03_system_button/auto2.png +0 -0
  330. package/example/src/resource/system/systemPicture/03_system_button/close.png +0 -0
  331. package/example/src/resource/system/systemPicture/03_system_button/close2.png +0 -0
  332. package/example/src/resource/system/systemPicture/03_system_button/config.png +0 -0
  333. package/example/src/resource/system/systemPicture/03_system_button/config2.png +0 -0
  334. package/example/src/resource/system/systemPicture/03_system_button/load.png +0 -0
  335. package/example/src/resource/system/systemPicture/03_system_button/load2.png +0 -0
  336. package/example/src/resource/system/systemPicture/03_system_button/log.png +0 -0
  337. package/example/src/resource/system/systemPicture/03_system_button/log2.png +0 -0
  338. package/example/src/resource/system/systemPicture/03_system_button/menu.png +0 -0
  339. package/example/src/resource/system/systemPicture/03_system_button/menu2.png +0 -0
  340. package/example/src/resource/system/systemPicture/03_system_button/qload.png +0 -0
  341. package/example/src/resource/system/systemPicture/03_system_button/qload2.png +0 -0
  342. package/example/src/resource/system/systemPicture/03_system_button/qsave.png +0 -0
  343. package/example/src/resource/system/systemPicture/03_system_button/qsave2.png +0 -0
  344. package/example/src/resource/system/systemPicture/03_system_button/save.png +0 -0
  345. package/example/src/resource/system/systemPicture/03_system_button/save2.png +0 -0
  346. package/example/src/resource/system/systemPicture/03_system_button/screen.png +0 -0
  347. package/example/src/resource/system/systemPicture/03_system_button/screen2.png +0 -0
  348. package/example/src/resource/system/systemPicture/03_system_button/skip.png +0 -0
  349. package/example/src/resource/system/systemPicture/03_system_button/skip2.png +0 -0
  350. package/example/src/resource/system/systemPicture/03_system_button/title.png +0 -0
  351. package/example/src/resource/system/systemPicture/03_system_button/title2.png +0 -0
  352. package/example/src/resource/system/systemPicture//345/210/251/347/224/250/350/246/217/347/264/204.txt +0 -0
  353. package/example/src/resource/system/wait.gif +0 -0
  354. package/example/src/scene/animation.scene +0 -28
  355. package/example/src/scene/background.scene +0 -29
  356. package/example/src/scene/character.scene +0 -26
  357. package/example/src/scene/choice.scene +0 -97
  358. package/example/src/scene/dialog.scene +0 -105
  359. package/example/src/scene/effects.scene +0 -38
  360. package/example/src/scene/en/animation.scene +0 -28
  361. package/example/src/scene/en/background.scene +0 -26
  362. package/example/src/scene/en/character.scene +0 -26
  363. package/example/src/scene/en/choice.scene +0 -32
  364. package/example/src/scene/en/effects.scene +0 -37
  365. package/example/src/scene/en/sound.scene +0 -26
  366. package/example/src/scene/en/text.scene +0 -26
  367. package/example/src/scene/en/title.scene +0 -39
  368. package/example/src/scene/if_test.scene +0 -37
  369. package/example/src/scene/resource-error-test.scene +0 -15
  370. package/example/src/scene/save-load-test.scene +0 -48
  371. package/example/src/scene/sound.scene +0 -26
  372. package/example/src/scene/test_error.scene +0 -21
  373. package/example/src/scene/text.scene +0 -34
  374. package/example/src/scene/title.scene +0 -51
  375. package/example/src/screen/incoming.html +0 -474
  376. package/example/src/screen/title.html +0 -135
  377. package/example/src/template.html +0 -16
  378. package/example/test-results/.last-run.json +0 -4
  379. package/example/webpack.config.js +0 -69
  380. package/image.png +0 -0
  381. package/playwright-report/index.html +0 -71
  382. package/s-plan1-5Light-s-1.jpg +0 -0
  383. package/test-results/.last-run.json +0 -6
  384. package/tests/e2e/if-global-attribute.spec.js +0 -90
  385. package/tests/e2e/resource-error-handling.spec.js +0 -58
  386. package/tests/e2e/screenshots/before-error-check.png +0 -0
  387. package/tests/e2e/screenshots/choices.png +0 -0
  388. package/tests/e2e/screenshots/message-window-click-wait.png +0 -0
  389. /package/{dist/src → src}/core/resourceManager.js +0 -0
  390. /package/{dist/src → src}/core/resourceManager.js.map +0 -0
  391. /package/{dist/src → src}/resource/ImageObject.js +0 -0
  392. /package/{dist/src → src}/resource/ImageObject.js.map +0 -0
  393. /package/{dist/src → src}/resource/soundObject.js +0 -0
  394. /package/{dist/src → src}/resource/soundObject.js.map +0 -0
  395. /package/{dist/src → src}/utils/fallbackTemplate.js +0 -0
  396. /package/{dist/src → src}/utils/fallbackTemplate.js.map +0 -0
  397. /package/{dist/src → src}/utils/waitUtil.js +0 -0
  398. /package/{dist/src → src}/utils/waitUtil.js.map +0 -0
@@ -0,0 +1,309 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.DefaultUIHandler = void 0;
40
+ var DefaultUIHandler = /** @class */ (function () {
41
+ function DefaultUIHandler() {
42
+ }
43
+ /**
44
+ * 指定されたEventBusにDOM操作関連のイベントハンドラをすべて登録する。
45
+ *
46
+ * @param eventBus - 共有EventBusインスタンス
47
+ * @param drawer - Drawerインスタンス(キャンバス・テキスト描画)
48
+ * @param gameContainer - ゲームのルートコンテナ要素
49
+ * @param resolution - キャンバス初期化に使用するエンジン解像度
50
+ */
51
+ DefaultUIHandler.register = function (eventBus, drawer, gameContainer, resolution) {
52
+ var _this = this;
53
+ // ----------------------------------------------------------------
54
+ // screen:load
55
+ // テンプレートURLからHTMLを読み込み・パースしてDOMに注入する。
56
+ // 通常モードはgameContainerのinnerHTMLを置換し、drawer.setScreenを呼び出す。
57
+ // ダイアログモードはダイアログ要素を追加し、スタイルにマークを付ける。
58
+ // data.template — テンプレートファイルのURL
59
+ // data.isDialog — ダイアログモードかどうか
60
+ // data.fallbackTemplate — テンプレートが見つからない場合のフォールバック関数
61
+ // ----------------------------------------------------------------
62
+ eventBus.on('screen:load', function (data) { return __awaiter(_this, void 0, void 0, function () {
63
+ var template, isDialog, fallbackTemplate, htmlString, parser, doc, mainDiv, fallbackContent, wrapper, styleEl, styleElement, styleContent, styleTags, styleEl, existingDialog, styleEl;
64
+ return __generator(this, function (_a) {
65
+ switch (_a.label) {
66
+ case 0:
67
+ template = data.template, isDialog = data.isDialog, fallbackTemplate = data.fallbackTemplate;
68
+ return [4 /*yield*/, fetch(template)];
69
+ case 1: return [4 /*yield*/, (_a.sent()).text()];
70
+ case 2:
71
+ htmlString = _a.sent();
72
+ parser = new DOMParser();
73
+ doc = parser.parseFromString(htmlString, 'text/html');
74
+ mainDiv = isDialog
75
+ ? doc.getElementById('dialogContainer')
76
+ : doc.getElementById('main');
77
+ if (!mainDiv) {
78
+ // 対象要素が見つからない場合はフォールバックテンプレートを使用する
79
+ if (fallbackTemplate) {
80
+ console.warn('テンプレートにメイン要素が見つからないため、フォールバックを使用します');
81
+ fallbackContent = fallbackTemplate();
82
+ wrapper = doc.createElement('div');
83
+ wrapper.innerHTML = fallbackContent.htmlString;
84
+ mainDiv = wrapper;
85
+ styleEl = doc.head.getElementsByTagName('style')[0] || doc.createElement('style');
86
+ styleEl.textContent = fallbackContent.styleString || '';
87
+ doc.head.appendChild(styleEl);
88
+ }
89
+ else {
90
+ throw new Error('テンプレートにメイン要素が見つからず、フォールバックも指定されていません。');
91
+ }
92
+ }
93
+ styleElement = doc.head.getElementsByTagName('style')[0];
94
+ styleContent = styleElement ? styleElement.textContent : null;
95
+ if (!isDialog) {
96
+ styleTags = Array.from(document.head.getElementsByTagName('style'));
97
+ styleTags.forEach(function (tag) { return document.head.removeChild(tag); });
98
+ gameContainer.tabIndex = 0;
99
+ gameContainer.style.outline = 'none';
100
+ // HTMLコンテンツを注入する
101
+ gameContainer.innerHTML = mainDiv.innerHTML;
102
+ // キャンバスと各ビューの参照を初期化する
103
+ drawer.setScreen(gameContainer, resolution);
104
+ // テンプレートのスタイルシートを適用する
105
+ if (styleContent) {
106
+ styleEl = document.createElement('style');
107
+ styleEl.textContent = styleContent;
108
+ document.head.appendChild(styleEl);
109
+ }
110
+ gameContainer.focus();
111
+ }
112
+ else {
113
+ // 古いダイアログ用スタイルシートを削除する
114
+ document.head
115
+ .querySelectorAll('style[data-dialog-style]')
116
+ .forEach(function (tag) { return document.head.removeChild(tag); });
117
+ existingDialog = document.querySelector('#dialogContainer');
118
+ if (existingDialog) {
119
+ existingDialog.close();
120
+ existingDialog.remove();
121
+ }
122
+ // 新しいダイアログ要素を追加する
123
+ gameContainer.appendChild(mainDiv);
124
+ // ダイアログ用スタイルシートにマークを付けて適用する
125
+ if (styleContent) {
126
+ styleEl = document.createElement('style');
127
+ styleEl.textContent = styleContent;
128
+ styleEl.setAttribute('data-dialog-style', 'true');
129
+ document.head.appendChild(styleEl);
130
+ }
131
+ }
132
+ return [2 /*return*/];
133
+ }
134
+ });
135
+ }); });
136
+ // ----------------------------------------------------------------
137
+ // text:clear
138
+ // メッセージテキスト表示領域をクリアする。
139
+ // ----------------------------------------------------------------
140
+ eventBus.on('text:clear', function () {
141
+ drawer.clearText();
142
+ });
143
+ // ----------------------------------------------------------------
144
+ // text:show
145
+ // 話者名を表示し、コンテンツを1文字ずつアニメーションで描画する。
146
+ // data.expandVariable — Coreから渡される変数展開コールバック
147
+ // data.waitFn — Coreから渡されるwaitHandlerコールバック(<wait>タグ用)
148
+ // ----------------------------------------------------------------
149
+ eventBus.on('text:show', function (data) { return __awaiter(_this, void 0, void 0, function () {
150
+ var name, content, speed, expandVariable, waitFn, _i, content_1, text, container;
151
+ return __generator(this, function (_a) {
152
+ switch (_a.label) {
153
+ case 0:
154
+ name = data.name, content = data.content, speed = data.speed, expandVariable = data.expandVariable, waitFn = data.waitFn;
155
+ drawer.drawName(name);
156
+ _i = 0, content_1 = content;
157
+ _a.label = 1;
158
+ case 1:
159
+ if (!(_i < content_1.length)) return [3 /*break*/, 9];
160
+ text = content_1[_i];
161
+ if (!(typeof text === 'string')) return [3 /*break*/, 3];
162
+ return [4 /*yield*/, drawer.drawText(expandVariable(text), speed)];
163
+ case 2:
164
+ _a.sent();
165
+ return [3 /*break*/, 8];
166
+ case 3:
167
+ if (!(text.type === 'br' || text.type === 'wait')) return [3 /*break*/, 6];
168
+ if (text.type === 'br')
169
+ drawer.drawLineBreak();
170
+ if (!(text.type === 'wait' && !text.nw)) return [3 /*break*/, 5];
171
+ return [4 /*yield*/, waitFn({ wait: text.time })];
172
+ case 4:
173
+ _a.sent();
174
+ _a.label = 5;
175
+ case 5: return [3 /*break*/, 8];
176
+ case 6:
177
+ container = drawer.createDecoratedElement(text);
178
+ return [4 /*yield*/, drawer.drawText(expandVariable(text.content[0]), text.speed || speed, container)];
179
+ case 7:
180
+ _a.sent();
181
+ _a.label = 8;
182
+ case 8:
183
+ _i++;
184
+ return [3 /*break*/, 1];
185
+ case 9: return [2 /*return*/];
186
+ }
187
+ });
188
+ }); });
189
+ // ----------------------------------------------------------------
190
+ // choice:show
191
+ // インタラクティブビューを表示し、Drawerで選択肢ボタンを描画して、
192
+ // 選択後に非表示に戻す。選択結果 { selectId, onSelect } を返す。
193
+ // ----------------------------------------------------------------
194
+ eventBus.on('choice:show', function (data) { return __awaiter(_this, void 0, void 0, function () {
195
+ var interactiveView, result;
196
+ return __generator(this, function (_a) {
197
+ switch (_a.label) {
198
+ case 0:
199
+ interactiveView = document.querySelector('#interactiveView');
200
+ if (interactiveView)
201
+ interactiveView.style.visibility = 'visible';
202
+ return [4 /*yield*/, drawer.drawChoices(data)];
203
+ case 1:
204
+ result = _a.sent();
205
+ if (interactiveView)
206
+ interactiveView.style.visibility = 'hidden';
207
+ return [2 /*return*/, result];
208
+ }
209
+ });
210
+ }); });
211
+ // ----------------------------------------------------------------
212
+ // dialog:show
213
+ // 読み込まれたダイアログコンテナにプロンプトテキストとアクションボタンを
214
+ // 設定し、モーダルを表示する。ダイアログが閉じられると選択されたアクションの
215
+ // IDで解決するPromiseを返す。
216
+ // data.expandVariable — Coreから渡される変数展開コールバック
217
+ // data.addScenario — scenarioManager.addScenarioコールバック
218
+ // ----------------------------------------------------------------
219
+ eventBus.on('dialog:show', function (data) { return __awaiter(_this, void 0, void 0, function () {
220
+ var content, expandVariable, addScenario, result, dialogContainer;
221
+ return __generator(this, function (_a) {
222
+ content = data.content, expandVariable = data.expandVariable, addScenario = data.addScenario;
223
+ result = null;
224
+ dialogContainer = document.querySelector('#dialogContainer');
225
+ if (!dialogContainer) {
226
+ throw new Error('Dialog container not found.');
227
+ }
228
+ content.forEach(function (item) {
229
+ if (item.type === 'prompt') {
230
+ var promptElement = dialogContainer.querySelector('.dialog-prompt');
231
+ if (promptElement) {
232
+ promptElement.innerHTML = item.content
233
+ .map(function (text) { return expandVariable(text); })
234
+ .join('\n');
235
+ }
236
+ }
237
+ else if (item.type === 'actions') {
238
+ var buttonContainer_1 = dialogContainer.querySelector('.dialog-buttons');
239
+ if (!buttonContainer_1)
240
+ return;
241
+ item.content.forEach(function (action) {
242
+ action.label = expandVariable(action.label);
243
+ var button = buttonContainer_1.querySelector("#dialog-button-".concat(action.id));
244
+ if (!button) {
245
+ // ボタンが存在しない場合は新規作成する
246
+ button = document.createElement('button');
247
+ button.id = "dialog-button-".concat(action.id);
248
+ button.classList.add('dialog-button');
249
+ buttonContainer_1.appendChild(button);
250
+ }
251
+ button.innerText = action.label;
252
+ button.addEventListener('click', function () {
253
+ // 選択されたアクションのシナリオを追加してダイアログを閉じる
254
+ addScenario(action.content);
255
+ result = action.id;
256
+ dialogContainer.close();
257
+ });
258
+ });
259
+ }
260
+ });
261
+ dialogContainer.showModal();
262
+ return [2 /*return*/, new Promise(function (resolve) {
263
+ dialogContainer.addEventListener('close', function () {
264
+ resolve(result);
265
+ });
266
+ })];
267
+ });
268
+ }); });
269
+ // ----------------------------------------------------------------
270
+ // input:bind
271
+ // ゲームコンテナにキーボードとクリックのリスナーをバインドする。
272
+ // data.onNext — ユーザーが進行操作(Enter / クリック)した際に呼ばれる
273
+ // data.setSkip — (drawerSkip: boolean, coreNext: boolean) => void
274
+ // 再度 input:bind が発行された際は以前のリスナーを先に削除する。
275
+ // ----------------------------------------------------------------
276
+ var inputAbortController = null;
277
+ eventBus.on('input:bind', function (data) {
278
+ // 重複登録を防ぐために以前バインドしたリスナーを削除する
279
+ if (inputAbortController)
280
+ inputAbortController.abort();
281
+ inputAbortController = new AbortController();
282
+ var signal = inputAbortController.signal;
283
+ var onNext = data.onNext, setSkip = data.setSkip, toggleAuto = data.toggleAuto, toggleSkip = data.toggleSkip;
284
+ gameContainer.addEventListener('keydown', function (e) {
285
+ if (e.key === 'Enter') {
286
+ onNext();
287
+ }
288
+ else if (e.key === 'Control') {
289
+ toggleSkip();
290
+ }
291
+ else if (e.key.toLowerCase() === 'a' && toggleAuto) {
292
+ toggleAuto();
293
+ }
294
+ }, { signal: signal });
295
+ gameContainer.addEventListener('keyup', function (e) {
296
+ if (e.key === 'Control') {
297
+ toggleSkip();
298
+ }
299
+ }, { signal: signal });
300
+ gameContainer.addEventListener('click', function () {
301
+ gameContainer.focus();
302
+ onNext();
303
+ }, { signal: signal });
304
+ });
305
+ };
306
+ return DefaultUIHandler;
307
+ }());
308
+ exports.DefaultUIHandler = DefaultUIHandler;
309
+ //# sourceMappingURL=defaultUIHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultUIHandler.js","sourceRoot":"","sources":["../../../src/core/defaultUIHandler.ts"],"names":[],"mappings":"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"}
@@ -38,6 +38,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.Drawer = void 0;
40
40
  var waitUtil_1 = require("../utils/waitUtil");
41
+ var gsap_1 = require("gsap");
41
42
  /*
42
43
  drawerの目的
43
44
  UIのHTMLとcanvasを描画する。
@@ -88,7 +89,7 @@ var Drawer = /** @class */ (function () {
88
89
  };
89
90
  Drawer.prototype.drawText = function (text, wait, containerElement) {
90
91
  return __awaiter(this, void 0, void 0, function () {
91
- var element, _i, text_1, char;
92
+ var element, textNode, rt, displayedLength, _i, text_1, char;
92
93
  var _this = this;
93
94
  return __generator(this, function (_a) {
94
95
  switch (_a.label) {
@@ -99,44 +100,51 @@ var Drawer = /** @class */ (function () {
99
100
  this.messageText.appendChild(containerElement);
100
101
  element = containerElement;
101
102
  }
103
+ textNode = document.createTextNode('');
104
+ element.appendChild(textNode);
105
+ // ruby要素の場合、ルビテキスト(<rt>)をベーステキストの後に追加する
106
+ if (element.tagName === 'RUBY' && element.dataset.rubyText) {
107
+ rt = document.createElement('rt');
108
+ rt.textContent = element.dataset.rubyText;
109
+ element.appendChild(rt);
110
+ }
111
+ displayedLength = 0;
102
112
  _i = 0, text_1 = text;
103
113
  _a.label = 1;
104
114
  case 1:
105
- if (!(_i < text_1.length)) return [3 /*break*/, 7];
115
+ if (!(_i < text_1.length)) return [3 /*break*/, 5];
106
116
  char = text_1[_i];
107
117
  //prettier-ignore
108
118
  setTimeout(function () { _this.readySkip = true, wait; });
109
119
  if (!!this.isSkip) return [3 /*break*/, 3];
110
- element.innerHTML += char;
120
+ textNode.textContent += char;
121
+ displayedLength++;
111
122
  return [4 /*yield*/, (0, waitUtil_1.sleep)(wait)];
112
123
  case 2:
113
124
  _a.sent();
114
125
  return [3 /*break*/, 4];
115
126
  case 3:
116
127
  if (this.readySkip) {
117
- element.innerHTML += text.slice(element.textContent.length);
128
+ textNode.textContent += text.slice(displayedLength);
118
129
  this.readySkip = false;
119
130
  this.isSkip = false;
120
- return [3 /*break*/, 7];
131
+ return [3 /*break*/, 5];
121
132
  }
122
133
  _a.label = 4;
123
- case 4: return [4 /*yield*/, (0, waitUtil_1.sleep)(wait)];
124
- case 5:
125
- _a.sent();
126
- _a.label = 6;
127
- case 6:
134
+ case 4:
128
135
  _i++;
129
136
  return [3 /*break*/, 1];
130
- case 7: return [2 /*return*/];
137
+ case 5: return [2 /*return*/];
131
138
  }
132
139
  });
133
140
  });
134
141
  };
135
142
  Drawer.prototype.drawLineBreak = function () {
136
143
  return __awaiter(this, void 0, void 0, function () {
144
+ var br;
137
145
  return __generator(this, function (_a) {
138
- // メッセージテキストに改行を追加する
139
- this.messageText.innerHTML += '<br>';
146
+ br = document.createElement('br');
147
+ this.messageText.appendChild(br);
140
148
  return [2 /*return*/];
141
149
  });
142
150
  });
@@ -154,9 +162,7 @@ var Drawer = /** @class */ (function () {
154
162
  return span;
155
163
  case 'ruby':
156
164
  var ruby = document.createElement('ruby');
157
- var rt = document.createElement('rt');
158
- rt.textContent = element.text;
159
- ruby.appendChild(rt);
165
+ ruby.dataset.rubyText = element.text;
160
166
  return ruby;
161
167
  case 'b':
162
168
  return document.createElement('strong');
@@ -168,7 +174,7 @@ var Drawer = /** @class */ (function () {
168
174
  };
169
175
  Drawer.prototype.drawChoices = function (choices) {
170
176
  return __awaiter(this, void 0, void 0, function () {
171
- var isSelect, selectId, onSelect, interactiveView, _loop_1, this_1, _i, _a, choice;
177
+ var isSelect, selectId, onSelect, interactiveView, CHOICE_HEIGHT, TWO_COLUMN_THRESHOLD, choiceCount_1, choiceCount, useTwoColumns, _loop_1, this_1, _i, _a, choice;
172
178
  var _this = this;
173
179
  var _b, _c;
174
180
  return __generator(this, function (_d) {
@@ -176,12 +182,31 @@ var Drawer = /** @class */ (function () {
176
182
  selectId = 0;
177
183
  onSelect = 0;
178
184
  interactiveView = document.querySelector('#interactiveView');
185
+ CHOICE_HEIGHT = 50 // 1つの選択肢の高さ(px) - button.style.heightと一致させる必要がある
186
+ ;
187
+ TWO_COLUMN_THRESHOLD = 6 // 2列レイアウトに切り替える選択肢の数
188
+ ;
179
189
  if (choices.position == 'auto' || choices.position === undefined) {
180
190
  interactiveView.className = 'auto';
191
+ choiceCount_1 = choices.content.length;
192
+ if (choiceCount_1 >= TWO_COLUMN_THRESHOLD) {
193
+ // 6つ以上の選択肢がある場合、2列レイアウトに切り替え
194
+ interactiveView.style.flexWrap = 'wrap';
195
+ interactiveView.style.columnGap = '20px'; // 列間の余白を減らす
196
+ interactiveView.style.alignContent = 'center';
197
+ }
198
+ else {
199
+ // 少数の選択肢の場合、通常通り表示
200
+ interactiveView.style.flexWrap = 'wrap';
201
+ interactiveView.style.columnGap = '';
202
+ interactiveView.style.alignContent = 'center';
203
+ }
181
204
  }
182
205
  else {
183
206
  interactiveView.className = 'manual';
184
207
  }
208
+ choiceCount = choices.content.length;
209
+ useTwoColumns = choiceCount >= TWO_COLUMN_THRESHOLD;
185
210
  _loop_1 = function (choice) {
186
211
  var defaultImage = choice.default !== undefined ? choice.default : './src/resource/system/systemPicture/02_button/button.png';
187
212
  var hoverImage = choice.hover !== undefined ? choice.hover : './src/resource/system/systemPicture/02_button/button2.png';
@@ -194,7 +219,8 @@ var Drawer = /** @class */ (function () {
194
219
  button.style.left = ((_c = choice.position) === null || _c === void 0 ? void 0 : _c.x) || 0;
195
220
  }
196
221
  button.style.color = choice.color !== undefined ? choice.color.default : 'black';
197
- button.style.width = '100%';
222
+ // 2列レイアウトの場合は幅を調整
223
+ button.style.width = useTwoColumns ? 'calc(50% - 10px)' : '100%';
198
224
  button.style.height = '50px';
199
225
  button.style.backgroundImage = "url(".concat(defaultImage, ")");
200
226
  button.style.textAlign = 'center';
@@ -229,7 +255,6 @@ var Drawer = /** @class */ (function () {
229
255
  this_1.interactiveView.appendChild(button);
230
256
  };
231
257
  this_1 = this;
232
- // 選択肢を表示
233
258
  for (_i = 0, _a = choices.content; _i < _a.length; _i++) {
234
259
  choice = _a[_i];
235
260
  _loop_1(choice);
@@ -321,32 +346,25 @@ var Drawer = /** @class */ (function () {
321
346
  for (var key in displayedImages) {
322
347
  _loop_2(key);
323
348
  }
349
+ this.adjustScale(this.gameScreen);
324
350
  };
325
351
  Drawer.prototype.moveTo = function (name, displayedImages, pos, durning) {
326
352
  var _this = this;
327
353
  return new Promise(function (resolve) {
328
354
  var target = displayedImages[name];
329
- var startPos = { x: target.pos.x, y: target.pos.y };
330
- var dest = { x: startPos.x + Number(pos.x), y: startPos.y + Number(pos.y) };
331
- var startTime = performance.now();
332
- var move = function (currentTime) {
333
- var elapsedTime = (currentTime - startTime) / 1000; // 秒単位の経過時間
334
- var progress = Math.min(elapsedTime / durning, 1); // 0から1の進捗
335
- target.pos.x = startPos.x + (dest.x - startPos.x) * progress;
336
- target.pos.y = startPos.y + (dest.y - startPos.y) * progress;
337
- _this.show(displayedImages);
338
- if (progress < 1) {
339
- window.requestAnimationFrame(move);
340
- }
341
- else {
342
- // 最終位置を正確に設定
343
- target.pos.x = dest.x;
344
- target.pos.y = dest.y;
355
+ var dest = { x: target.pos.x + Number(pos.x), y: target.pos.y + Number(pos.y) };
356
+ gsap_1.gsap.to(target.pos, {
357
+ x: dest.x,
358
+ y: dest.y,
359
+ duration: durning,
360
+ ease: 'power2.out',
361
+ onUpdate: function () {
345
362
  _this.show(displayedImages);
363
+ },
364
+ onComplete: function () {
346
365
  resolve(null);
347
- }
348
- };
349
- window.requestAnimationFrame(move);
366
+ },
367
+ });
350
368
  });
351
369
  };
352
370
  Drawer.prototype.clear = function (ctx) {
@@ -375,8 +393,15 @@ var Drawer = /** @class */ (function () {
375
393
  var scaleY = viewportHeight / originalHeight;
376
394
  // 幅と高さのうち、小さい方のスケールを選択(アスペクト比を維持)
377
395
  var scale = Math.min(scaleX, scaleY);
378
- // ターゲット要素にスケールを適用
379
- targetElement.style.transform = "scale(".concat(scale, ")");
396
+ // スケール後のサイズを計算
397
+ var scaledWidth = originalWidth * scale;
398
+ var scaledHeight = originalHeight * scale;
399
+ // 中央配置のための位置を計算
400
+ var offsetX = (viewportWidth - scaledWidth) / 2;
401
+ var offsetY = (viewportHeight - scaledHeight) / 2;
402
+ // ターゲット要素にスケールと位置を適用
403
+ targetElement.style.transformOrigin = 'top left';
404
+ targetElement.style.transform = "translate(".concat(offsetX, "px, ").concat(offsetY, "px) scale(").concat(scale, ")");
380
405
  };
381
406
  Drawer.prototype.setVisibility = function (name, isVisible) {
382
407
  var target = this.screenHtml.querySelector(name);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drawer.js","sourceRoot":"","sources":["../../../src/core/drawer.ts"],"names":[],"mappings":"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"}