@drincs/pixi-vn 0.6.0 → 0.6.2

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 (415) hide show
  1. package/dist/{TickerBase-RQDWNI4K.d.ts → TickerBase-3rLpDpmb.d.ts} +27 -13
  2. package/dist/{TickerBase-B5CQCJs8.d.mts → TickerBase-DKYzbzro.d.mts} +27 -13
  3. package/dist/classes/CanvasEvent.d.mts +7 -1
  4. package/dist/classes/CanvasEvent.d.ts +7 -1
  5. package/dist/classes/CanvasEvent.js +7 -0
  6. package/dist/classes/CanvasEvent.js.map +1 -1
  7. package/dist/classes/CanvasEvent.mjs +7 -0
  8. package/dist/classes/CanvasEvent.mjs.map +1 -1
  9. package/dist/classes/CharacterBaseModel.d.mts +2 -26
  10. package/dist/classes/CharacterBaseModel.d.ts +2 -26
  11. package/dist/classes/CharacterBaseModel.js +544 -241
  12. package/dist/classes/CharacterBaseModel.js.map +1 -1
  13. package/dist/classes/CharacterBaseModel.mjs +540 -241
  14. package/dist/classes/CharacterBaseModel.mjs.map +1 -1
  15. package/dist/classes/ChoiceMenuOption.d.mts +27 -17
  16. package/dist/classes/ChoiceMenuOption.d.ts +27 -17
  17. package/dist/classes/ChoiceMenuOption.js +548 -243
  18. package/dist/classes/ChoiceMenuOption.js.map +1 -1
  19. package/dist/classes/ChoiceMenuOption.mjs +544 -243
  20. package/dist/classes/ChoiceMenuOption.mjs.map +1 -1
  21. package/dist/classes/CloseLabel.d.mts +1 -1
  22. package/dist/classes/CloseLabel.d.ts +1 -1
  23. package/dist/classes/CloseLabel.js +1 -1
  24. package/dist/classes/CloseLabel.js.map +1 -1
  25. package/dist/classes/CloseLabel.mjs +1 -1
  26. package/dist/classes/CloseLabel.mjs.map +1 -1
  27. package/dist/classes/DialogueBaseModel.d.mts +3 -2
  28. package/dist/classes/DialogueBaseModel.d.ts +3 -2
  29. package/dist/classes/DialogueBaseModel.js +5 -5
  30. package/dist/classes/DialogueBaseModel.js.map +1 -1
  31. package/dist/classes/DialogueBaseModel.mjs +5 -5
  32. package/dist/classes/DialogueBaseModel.mjs.map +1 -1
  33. package/dist/classes/Label.d.mts +1 -1
  34. package/dist/classes/Label.d.ts +1 -1
  35. package/dist/classes/Label.js +1 -1
  36. package/dist/classes/Label.js.map +1 -1
  37. package/dist/classes/Label.mjs +1 -1
  38. package/dist/classes/Label.mjs.map +1 -1
  39. package/dist/classes/StoredClassModel.d.mts +2 -2
  40. package/dist/classes/StoredClassModel.d.ts +2 -2
  41. package/dist/classes/StoredClassModel.js +544 -241
  42. package/dist/classes/StoredClassModel.js.map +1 -1
  43. package/dist/classes/StoredClassModel.mjs +540 -241
  44. package/dist/classes/StoredClassModel.mjs.map +1 -1
  45. package/dist/classes/canvas/CanvasBase.d.mts +5 -1
  46. package/dist/classes/canvas/CanvasBase.d.ts +5 -1
  47. package/dist/classes/canvas/CanvasBase.js +7 -0
  48. package/dist/classes/canvas/CanvasBase.js.map +1 -1
  49. package/dist/classes/canvas/CanvasBase.mjs +7 -0
  50. package/dist/classes/canvas/CanvasBase.mjs.map +1 -1
  51. package/dist/classes/canvas/CanvasContainer.d.mts +4 -1
  52. package/dist/classes/canvas/CanvasContainer.d.ts +4 -1
  53. package/dist/classes/canvas/CanvasContainer.js +57 -37
  54. package/dist/classes/canvas/CanvasContainer.js.map +1 -1
  55. package/dist/classes/canvas/CanvasContainer.mjs +57 -38
  56. package/dist/classes/canvas/CanvasContainer.mjs.map +1 -1
  57. package/dist/classes/canvas/CanvasImage.d.mts +4 -2
  58. package/dist/classes/canvas/CanvasImage.d.ts +4 -2
  59. package/dist/classes/canvas/CanvasImage.js +33 -20
  60. package/dist/classes/canvas/CanvasImage.js.map +1 -1
  61. package/dist/classes/canvas/CanvasImage.mjs +30 -20
  62. package/dist/classes/canvas/CanvasImage.mjs.map +1 -1
  63. package/dist/classes/canvas/CanvasSprite.d.mts +6 -3
  64. package/dist/classes/canvas/CanvasSprite.d.ts +6 -3
  65. package/dist/classes/canvas/CanvasSprite.js +25 -17
  66. package/dist/classes/canvas/CanvasSprite.js.map +1 -1
  67. package/dist/classes/canvas/CanvasSprite.mjs +25 -18
  68. package/dist/classes/canvas/CanvasSprite.mjs.map +1 -1
  69. package/dist/classes/canvas/CanvasText.d.mts +6 -3
  70. package/dist/classes/canvas/CanvasText.d.ts +6 -3
  71. package/dist/classes/canvas/CanvasText.js +25 -17
  72. package/dist/classes/canvas/CanvasText.js.map +1 -1
  73. package/dist/classes/canvas/CanvasText.mjs +25 -18
  74. package/dist/classes/canvas/CanvasText.mjs.map +1 -1
  75. package/dist/classes/canvas/index.js +184 -158
  76. package/dist/classes/canvas/index.js.map +1 -1
  77. package/dist/classes/canvas/index.mjs +184 -158
  78. package/dist/classes/canvas/index.mjs.map +1 -1
  79. package/dist/classes/index.d.mts +6 -4
  80. package/dist/classes/index.d.ts +6 -4
  81. package/dist/classes/index.js +560 -248
  82. package/dist/classes/index.js.map +1 -1
  83. package/dist/classes/index.mjs +556 -248
  84. package/dist/classes/index.mjs.map +1 -1
  85. package/dist/classes/ticker/FadeAlphaTicker.d.mts +27 -0
  86. package/dist/classes/ticker/FadeAlphaTicker.d.ts +27 -0
  87. package/dist/classes/ticker/{TickerFadeAlpha.js → FadeAlphaTicker.js} +549 -248
  88. package/dist/classes/ticker/FadeAlphaTicker.js.map +1 -0
  89. package/dist/classes/ticker/{TickerRotate.mjs → FadeAlphaTicker.mjs} +571 -274
  90. package/dist/classes/ticker/FadeAlphaTicker.mjs.map +1 -0
  91. package/dist/classes/ticker/MoveTicker.d.mts +25 -0
  92. package/dist/classes/ticker/MoveTicker.d.ts +25 -0
  93. package/dist/classes/ticker/{TickerMove.js → MoveTicker.js} +544 -241
  94. package/dist/classes/ticker/MoveTicker.js.map +1 -0
  95. package/dist/classes/ticker/{TickerFadeAlpha.mjs → MoveTicker.mjs} +568 -269
  96. package/dist/classes/ticker/MoveTicker.mjs.map +1 -0
  97. package/dist/classes/ticker/RotateTicker.d.mts +27 -0
  98. package/dist/classes/ticker/RotateTicker.d.ts +27 -0
  99. package/dist/classes/ticker/{TickerRotate.js → RotateTicker.js} +544 -241
  100. package/dist/classes/ticker/RotateTicker.js.map +1 -0
  101. package/dist/classes/ticker/{TickerMove.mjs → RotateTicker.mjs} +558 -259
  102. package/dist/classes/ticker/RotateTicker.mjs.map +1 -0
  103. package/dist/classes/ticker/TickerBase.d.mts +2 -1
  104. package/dist/classes/ticker/TickerBase.d.ts +2 -1
  105. package/dist/classes/ticker/TickerBase.js +12 -6
  106. package/dist/classes/ticker/TickerBase.js.map +1 -1
  107. package/dist/classes/ticker/TickerBase.mjs +12 -6
  108. package/dist/classes/ticker/TickerBase.mjs.map +1 -1
  109. package/dist/classes/ticker/ZoomTicker.d.mts +31 -0
  110. package/dist/classes/ticker/ZoomTicker.d.ts +31 -0
  111. package/dist/classes/ticker/ZoomTicker.js +1647 -0
  112. package/dist/classes/ticker/ZoomTicker.js.map +1 -0
  113. package/dist/classes/ticker/ZoomTicker.mjs +1639 -0
  114. package/dist/classes/ticker/ZoomTicker.mjs.map +1 -0
  115. package/dist/classes/ticker/index.d.mts +11 -8
  116. package/dist/classes/ticker/index.d.ts +11 -8
  117. package/dist/classes/ticker/index.js +567 -266
  118. package/dist/classes/ticker/index.js.map +1 -1
  119. package/dist/classes/ticker/index.mjs +564 -267
  120. package/dist/classes/ticker/index.mjs.map +1 -1
  121. package/dist/constants.d.mts +12 -2
  122. package/dist/constants.d.ts +12 -2
  123. package/dist/constants.js +10 -1
  124. package/dist/constants.js.map +1 -1
  125. package/dist/constants.mjs +9 -2
  126. package/dist/constants.mjs.map +1 -1
  127. package/dist/decorators/CanvasElementDecorator.d.mts +3 -3
  128. package/dist/decorators/CanvasElementDecorator.d.ts +3 -3
  129. package/dist/decorators/CanvasElementDecorator.js +63 -43
  130. package/dist/decorators/CanvasElementDecorator.js.map +1 -1
  131. package/dist/decorators/CanvasElementDecorator.mjs +62 -42
  132. package/dist/decorators/CanvasElementDecorator.mjs.map +1 -1
  133. package/dist/decorators/CharacterDecorator.d.mts +1 -0
  134. package/dist/decorators/CharacterDecorator.d.ts +1 -0
  135. package/dist/decorators/CharacterDecorator.js +1 -1
  136. package/dist/decorators/CharacterDecorator.js.map +1 -1
  137. package/dist/decorators/CharacterDecorator.mjs +1 -1
  138. package/dist/decorators/CharacterDecorator.mjs.map +1 -1
  139. package/dist/decorators/EventDecorator.d.mts +7 -7
  140. package/dist/decorators/EventDecorator.d.ts +7 -7
  141. package/dist/decorators/EventDecorator.js +12 -11
  142. package/dist/decorators/EventDecorator.js.map +1 -1
  143. package/dist/decorators/EventDecorator.mjs +11 -10
  144. package/dist/decorators/EventDecorator.mjs.map +1 -1
  145. package/dist/decorators/LabelDecorator.d.mts +4 -3
  146. package/dist/decorators/LabelDecorator.d.ts +4 -3
  147. package/dist/decorators/LabelDecorator.js +546 -243
  148. package/dist/decorators/LabelDecorator.js.map +1 -1
  149. package/dist/decorators/LabelDecorator.mjs +542 -243
  150. package/dist/decorators/LabelDecorator.mjs.map +1 -1
  151. package/dist/decorators/TickerDecorator.d.mts +9 -6
  152. package/dist/decorators/TickerDecorator.d.ts +9 -6
  153. package/dist/decorators/TickerDecorator.js +7 -6
  154. package/dist/decorators/TickerDecorator.js.map +1 -1
  155. package/dist/decorators/TickerDecorator.mjs +7 -6
  156. package/dist/decorators/TickerDecorator.mjs.map +1 -1
  157. package/dist/decorators/index.d.mts +4 -3
  158. package/dist/decorators/index.d.ts +4 -3
  159. package/dist/decorators/index.js +550 -245
  160. package/dist/decorators/index.js.map +1 -1
  161. package/dist/decorators/index.mjs +546 -245
  162. package/dist/decorators/index.mjs.map +1 -1
  163. package/dist/functions/CanvasUtility.js +56 -37
  164. package/dist/functions/CanvasUtility.js.map +1 -1
  165. package/dist/functions/CanvasUtility.mjs +56 -37
  166. package/dist/functions/CanvasUtility.mjs.map +1 -1
  167. package/dist/functions/DialogueUtility.d.mts +7 -5
  168. package/dist/functions/DialogueUtility.d.ts +7 -5
  169. package/dist/functions/DialogueUtility.js +729 -397
  170. package/dist/functions/DialogueUtility.js.map +1 -1
  171. package/dist/functions/DialogueUtility.mjs +729 -397
  172. package/dist/functions/DialogueUtility.mjs.map +1 -1
  173. package/dist/functions/FlagsUtility.js +544 -241
  174. package/dist/functions/FlagsUtility.js.map +1 -1
  175. package/dist/functions/FlagsUtility.mjs +540 -241
  176. package/dist/functions/FlagsUtility.mjs.map +1 -1
  177. package/dist/functions/GameUtility.js +544 -241
  178. package/dist/functions/GameUtility.js.map +1 -1
  179. package/dist/functions/GameUtility.mjs +540 -241
  180. package/dist/functions/GameUtility.mjs.map +1 -1
  181. package/dist/functions/ImageUtility.d.mts +81 -8
  182. package/dist/functions/ImageUtility.d.ts +81 -8
  183. package/dist/functions/ImageUtility.js +911 -387
  184. package/dist/functions/ImageUtility.js.map +1 -1
  185. package/dist/functions/ImageUtility.mjs +899 -387
  186. package/dist/functions/ImageUtility.mjs.map +1 -1
  187. package/dist/functions/SavesUtility.d.mts +9 -5
  188. package/dist/functions/SavesUtility.d.ts +9 -5
  189. package/dist/functions/SavesUtility.js +611 -252
  190. package/dist/functions/SavesUtility.js.map +1 -1
  191. package/dist/functions/SavesUtility.mjs +611 -252
  192. package/dist/functions/SavesUtility.mjs.map +1 -1
  193. package/dist/functions/TickerUtility.d.mts +1 -1
  194. package/dist/functions/TickerUtility.d.ts +1 -1
  195. package/dist/functions/TickerUtility.js +32 -18
  196. package/dist/functions/TickerUtility.js.map +1 -1
  197. package/dist/functions/TickerUtility.mjs +32 -18
  198. package/dist/functions/TickerUtility.mjs.map +1 -1
  199. package/dist/functions/index.d.mts +18 -8
  200. package/dist/functions/index.d.ts +18 -8
  201. package/dist/functions/index.js +832 -279
  202. package/dist/functions/index.js.map +1 -1
  203. package/dist/functions/index.mjs +825 -280
  204. package/dist/functions/index.mjs.map +1 -1
  205. package/dist/index.d.mts +25 -16
  206. package/dist/index.d.ts +25 -16
  207. package/dist/index.js +1547 -290
  208. package/dist/index.js.map +1 -1
  209. package/dist/index.mjs +1538 -290
  210. package/dist/index.mjs.map +1 -1
  211. package/dist/interface/CharacterBaseModelProps.d.mts +27 -0
  212. package/dist/interface/CharacterBaseModelProps.d.ts +27 -0
  213. package/dist/interface/CharacterBaseModelProps.js +4 -0
  214. package/dist/interface/CharacterBaseModelProps.mjs +3 -0
  215. package/dist/interface/DialogueHistory.d.mts +3 -7
  216. package/dist/interface/DialogueHistory.d.ts +3 -7
  217. package/dist/interface/IHistoryStep.d.mts +12 -8
  218. package/dist/interface/IHistoryStep.d.ts +12 -8
  219. package/dist/interface/ISaveData.d.mts +8 -4
  220. package/dist/interface/ISaveData.d.ts +8 -4
  221. package/dist/interface/ITicker.d.mts +2 -1
  222. package/dist/interface/ITicker.d.ts +2 -1
  223. package/dist/interface/ITickersSteps.d.mts +14 -5
  224. package/dist/interface/ITickersSteps.d.ts +14 -5
  225. package/dist/interface/TickerHistory.d.mts +29 -0
  226. package/dist/interface/TickerHistory.d.ts +29 -0
  227. package/dist/{types/ticker/TickerMoveProps.js → interface/TickerHistory.js} +1 -1
  228. package/dist/interface/TickerHistory.mjs +3 -0
  229. package/dist/interface/TickerProgrationType.d.mts +13 -1
  230. package/dist/interface/TickerProgrationType.d.ts +13 -1
  231. package/dist/interface/TickerTimeoutHistory.d.mts +7 -0
  232. package/dist/interface/TickerTimeoutHistory.d.ts +7 -0
  233. package/dist/interface/TickerTimeoutHistory.js +4 -0
  234. package/dist/interface/TickerTimeoutHistory.mjs +3 -0
  235. package/dist/interface/canvas/ICanvasBaseMemory.d.mts +1 -1
  236. package/dist/interface/canvas/ICanvasBaseMemory.d.ts +1 -1
  237. package/dist/interface/canvas/ICanvasImageMemory.d.mts +1 -1
  238. package/dist/interface/canvas/ICanvasImageMemory.d.ts +1 -1
  239. package/dist/interface/canvas/ICanvasSpriteMemory.d.mts +0 -1
  240. package/dist/interface/canvas/ICanvasSpriteMemory.d.ts +0 -1
  241. package/dist/interface/canvas/ICanvasTextTextMemory.d.mts +0 -1
  242. package/dist/interface/canvas/ICanvasTextTextMemory.d.ts +0 -1
  243. package/dist/interface/export/ExportedCanvas.d.mts +11 -3
  244. package/dist/interface/export/ExportedCanvas.d.ts +11 -3
  245. package/dist/interface/export/ExportedStep.d.mts +7 -3
  246. package/dist/interface/export/ExportedStep.d.ts +7 -3
  247. package/dist/interface/export/index.d.mts +8 -4
  248. package/dist/interface/export/index.d.ts +8 -4
  249. package/dist/interface/index.d.mts +14 -11
  250. package/dist/interface/index.d.ts +14 -11
  251. package/dist/labels/BaseCanvasElementTestLabel.d.mts +9 -0
  252. package/dist/labels/BaseCanvasElementTestLabel.d.ts +9 -0
  253. package/dist/labels/BaseCanvasElementTestLabel.js +1888 -0
  254. package/dist/labels/BaseCanvasElementTestLabel.js.map +1 -0
  255. package/dist/labels/BaseCanvasElementTestLabel.mjs +1882 -0
  256. package/dist/labels/BaseCanvasElementTestLabel.mjs.map +1 -0
  257. package/dist/labels/CanvasEventsTestLabel.d.mts +27 -0
  258. package/dist/labels/CanvasEventsTestLabel.d.ts +27 -0
  259. package/dist/labels/CanvasEventsTestLabel.js +2822 -0
  260. package/dist/labels/CanvasEventsTestLabel.js.map +1 -0
  261. package/dist/labels/CanvasEventsTestLabel.mjs +2816 -0
  262. package/dist/labels/CanvasEventsTestLabel.mjs.map +1 -0
  263. package/dist/labels/CustomTickerCanvasElementTestLabel.d.mts +20 -0
  264. package/dist/labels/CustomTickerCanvasElementTestLabel.d.ts +20 -0
  265. package/dist/labels/CustomTickerCanvasElementTestLabel.js +2792 -0
  266. package/dist/labels/CustomTickerCanvasElementTestLabel.js.map +1 -0
  267. package/dist/labels/CustomTickerCanvasElementTestLabel.mjs +2786 -0
  268. package/dist/labels/CustomTickerCanvasElementTestLabel.mjs.map +1 -0
  269. package/dist/labels/ImagesAnimationsTestLabel.d.mts +9 -0
  270. package/dist/labels/ImagesAnimationsTestLabel.d.ts +9 -0
  271. package/dist/labels/ImagesAnimationsTestLabel.js +3378 -0
  272. package/dist/labels/ImagesAnimationsTestLabel.js.map +1 -0
  273. package/dist/labels/ImagesAnimationsTestLabel.mjs +3372 -0
  274. package/dist/labels/ImagesAnimationsTestLabel.mjs.map +1 -0
  275. package/dist/labels/MarkdownTest.d.mts +9 -0
  276. package/dist/labels/MarkdownTest.d.ts +9 -0
  277. package/dist/labels/MarkdownTest.js +2756 -0
  278. package/dist/labels/MarkdownTest.js.map +1 -0
  279. package/dist/labels/MarkdownTest.mjs +2750 -0
  280. package/dist/labels/MarkdownTest.mjs.map +1 -0
  281. package/dist/labels/StartLabel.d.mts +10 -0
  282. package/dist/labels/StartLabel.d.ts +10 -0
  283. package/dist/labels/StartLabel.js +3736 -0
  284. package/dist/labels/StartLabel.js.map +1 -0
  285. package/dist/labels/StartLabel.mjs +3729 -0
  286. package/dist/labels/StartLabel.mjs.map +1 -0
  287. package/dist/labels/TestConstant.d.mts +17 -0
  288. package/dist/labels/TestConstant.d.ts +17 -0
  289. package/dist/labels/TestConstant.js +1872 -0
  290. package/dist/labels/TestConstant.js.map +1 -0
  291. package/dist/labels/TestConstant.mjs +1856 -0
  292. package/dist/labels/TestConstant.mjs.map +1 -0
  293. package/dist/labels/TickerTestLabel.d.mts +9 -0
  294. package/dist/labels/TickerTestLabel.d.ts +9 -0
  295. package/dist/labels/TickerTestLabel.js +2675 -0
  296. package/dist/labels/TickerTestLabel.js.map +1 -0
  297. package/dist/labels/TickerTestLabel.mjs +2669 -0
  298. package/dist/labels/TickerTestLabel.mjs.map +1 -0
  299. package/dist/labels/index.d.mts +10 -0
  300. package/dist/labels/index.d.ts +10 -0
  301. package/dist/labels/index.js +3736 -0
  302. package/dist/labels/index.js.map +1 -0
  303. package/dist/labels/index.mjs +3729 -0
  304. package/dist/labels/index.mjs.map +1 -0
  305. package/dist/managers/StepManager.d.mts +21 -15
  306. package/dist/managers/StepManager.d.ts +21 -15
  307. package/dist/managers/StepManager.js +610 -251
  308. package/dist/managers/StepManager.js.map +1 -1
  309. package/dist/managers/StepManager.mjs +610 -251
  310. package/dist/managers/StepManager.mjs.map +1 -1
  311. package/dist/managers/WindowManager.d.mts +38 -24
  312. package/dist/managers/WindowManager.d.ts +38 -24
  313. package/dist/managers/WindowManager.js +356 -170
  314. package/dist/managers/WindowManager.js.map +1 -1
  315. package/dist/managers/WindowManager.mjs +352 -170
  316. package/dist/managers/WindowManager.mjs.map +1 -1
  317. package/dist/managers/index.d.mts +15 -14
  318. package/dist/managers/index.d.ts +15 -14
  319. package/dist/managers/index.js +612 -251
  320. package/dist/managers/index.js.map +1 -1
  321. package/dist/managers/index.mjs +612 -251
  322. package/dist/managers/index.mjs.map +1 -1
  323. package/dist/types/CanvasEventNamesType.d.mts +1 -1
  324. package/dist/types/CanvasEventNamesType.d.ts +1 -1
  325. package/dist/types/ChoiceMenuOptionsType.d.mts +2 -2
  326. package/dist/types/ChoiceMenuOptionsType.d.ts +2 -2
  327. package/dist/types/HistoryChoiceMenuOption.d.mts +22 -0
  328. package/dist/types/HistoryChoiceMenuOption.d.ts +22 -0
  329. package/dist/types/HistoryChoiceMenuOption.js +4 -0
  330. package/dist/types/HistoryChoiceMenuOption.mjs +3 -0
  331. package/dist/types/PauseType.d.mts +8 -4
  332. package/dist/types/PauseType.d.ts +8 -4
  333. package/dist/types/PauseType.js +0 -11
  334. package/dist/types/PauseType.js.map +1 -1
  335. package/dist/types/PauseType.mjs +0 -9
  336. package/dist/types/PauseType.mjs.map +1 -1
  337. package/dist/types/RepeatType.d.mts +1 -2
  338. package/dist/types/RepeatType.d.ts +1 -2
  339. package/dist/types/RepeatType.js +0 -4
  340. package/dist/types/RepeatType.js.map +1 -1
  341. package/dist/types/RepeatType.mjs +0 -3
  342. package/dist/types/RepeatType.mjs.map +1 -1
  343. package/dist/types/index.d.mts +5 -4
  344. package/dist/types/index.d.ts +5 -4
  345. package/dist/types/index.js +0 -15
  346. package/dist/types/index.js.map +1 -1
  347. package/dist/types/index.mjs +1 -13
  348. package/dist/types/index.mjs.map +1 -1
  349. package/dist/types/ticker/{TickerFadeAlphaProps.d.mts → FadeAlphaTickerProps.d.mts} +9 -5
  350. package/dist/types/ticker/{TickerFadeAlphaProps.d.ts → FadeAlphaTickerProps.d.ts} +9 -5
  351. package/dist/types/ticker/FadeAlphaTickerProps.js +4 -0
  352. package/dist/types/ticker/FadeAlphaTickerProps.js.map +1 -0
  353. package/dist/types/ticker/FadeAlphaTickerProps.mjs +3 -0
  354. package/dist/types/ticker/FadeAlphaTickerProps.mjs.map +1 -0
  355. package/dist/types/ticker/{TickerMoveProps.d.mts → MoveTickerProps.d.mts} +14 -5
  356. package/dist/types/ticker/{TickerMoveProps.d.ts → MoveTickerProps.d.ts} +14 -5
  357. package/dist/types/ticker/{TickerRotateProps.js → MoveTickerProps.js} +1 -1
  358. package/dist/types/ticker/MoveTickerProps.js.map +1 -0
  359. package/dist/types/ticker/MoveTickerProps.mjs +3 -0
  360. package/dist/types/ticker/MoveTickerProps.mjs.map +1 -0
  361. package/dist/types/ticker/{TickerRotateProps.d.mts → RotateTickerProps.d.mts} +10 -4
  362. package/dist/types/ticker/{TickerRotateProps.d.ts → RotateTickerProps.d.ts} +10 -4
  363. package/dist/types/ticker/RotateTickerProps.js +4 -0
  364. package/dist/types/ticker/RotateTickerProps.js.map +1 -0
  365. package/dist/types/ticker/RotateTickerProps.mjs +3 -0
  366. package/dist/types/ticker/RotateTickerProps.mjs.map +1 -0
  367. package/dist/types/ticker/TagToRemoveAfterType.d.mts +4 -0
  368. package/dist/types/ticker/TagToRemoveAfterType.d.ts +4 -0
  369. package/dist/types/ticker/TagToRemoveAfterType.js +8 -0
  370. package/dist/types/ticker/TagToRemoveAfterType.js.map +1 -0
  371. package/dist/types/ticker/TagToRemoveAfterType.mjs +6 -0
  372. package/dist/types/ticker/TagToRemoveAfterType.mjs.map +1 -0
  373. package/dist/types/ticker/ZoomTickerProps.d.mts +45 -0
  374. package/dist/types/ticker/ZoomTickerProps.d.ts +45 -0
  375. package/dist/types/ticker/ZoomTickerProps.js +4 -0
  376. package/dist/types/ticker/ZoomTickerProps.js.map +1 -0
  377. package/dist/types/ticker/ZoomTickerProps.mjs +3 -0
  378. package/dist/types/ticker/ZoomTickerProps.mjs.map +1 -0
  379. package/dist/types/ticker/index.d.mts +4 -2
  380. package/dist/types/ticker/index.d.ts +4 -2
  381. package/package.json +7 -7
  382. package/dist/classes/ticker/TickerFadeAlpha.d.mts +0 -31
  383. package/dist/classes/ticker/TickerFadeAlpha.d.ts +0 -31
  384. package/dist/classes/ticker/TickerFadeAlpha.js.map +0 -1
  385. package/dist/classes/ticker/TickerFadeAlpha.mjs.map +0 -1
  386. package/dist/classes/ticker/TickerMove.d.mts +0 -29
  387. package/dist/classes/ticker/TickerMove.d.ts +0 -29
  388. package/dist/classes/ticker/TickerMove.js.map +0 -1
  389. package/dist/classes/ticker/TickerMove.mjs.map +0 -1
  390. package/dist/classes/ticker/TickerRotate.d.mts +0 -30
  391. package/dist/classes/ticker/TickerRotate.d.ts +0 -30
  392. package/dist/classes/ticker/TickerRotate.js.map +0 -1
  393. package/dist/classes/ticker/TickerRotate.mjs.map +0 -1
  394. package/dist/functions/ErrorUtility.d.mts +0 -24
  395. package/dist/functions/ErrorUtility.d.ts +0 -24
  396. package/dist/functions/ErrorUtility.js +0 -261
  397. package/dist/functions/ErrorUtility.js.map +0 -1
  398. package/dist/functions/ErrorUtility.mjs +0 -258
  399. package/dist/functions/ErrorUtility.mjs.map +0 -1
  400. package/dist/interface/IClassWithArgsHistory.d.mts +0 -25
  401. package/dist/interface/IClassWithArgsHistory.d.ts +0 -25
  402. package/dist/interface/IClassWithArgsHistory.js +0 -4
  403. package/dist/interface/IClassWithArgsHistory.mjs +0 -3
  404. package/dist/types/ticker/TickerFadeAlphaProps.js +0 -4
  405. package/dist/types/ticker/TickerFadeAlphaProps.mjs +0 -3
  406. package/dist/types/ticker/TickerMoveProps.mjs +0 -3
  407. package/dist/types/ticker/TickerRotateProps.mjs +0 -3
  408. /package/dist/interface/{IClassWithArgsHistory.js.map → CharacterBaseModelProps.js.map} +0 -0
  409. /package/dist/interface/{IClassWithArgsHistory.mjs.map → CharacterBaseModelProps.mjs.map} +0 -0
  410. /package/dist/{types/ticker/TickerFadeAlphaProps.js.map → interface/TickerHistory.js.map} +0 -0
  411. /package/dist/{types/ticker/TickerFadeAlphaProps.mjs.map → interface/TickerHistory.mjs.map} +0 -0
  412. /package/dist/{types/ticker/TickerMoveProps.js.map → interface/TickerTimeoutHistory.js.map} +0 -0
  413. /package/dist/{types/ticker/TickerMoveProps.mjs.map → interface/TickerTimeoutHistory.mjs.map} +0 -0
  414. /package/dist/types/{ticker/TickerRotateProps.js.map → HistoryChoiceMenuOption.js.map} +0 -0
  415. /package/dist/types/{ticker/TickerRotateProps.mjs.map → HistoryChoiceMenuOption.mjs.map} +0 -0
@@ -27,8 +27,7 @@ var __decorateClass = (decorators, target, key, kind) => {
27
27
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
28
28
  if (decorator = decorators[i])
29
29
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
30
- if (kind && result)
31
- __defProp(target, key, result);
30
+ if (kind && result) __defProp(target, key, result);
32
31
  return result;
33
32
  };
34
33
  var __async = (__this, __arguments, generator) => {
@@ -53,7 +52,8 @@ var __async = (__this, __arguments, generator) => {
53
52
  };
54
53
 
55
54
  // src/constants.ts
56
- var PIXIVN_VERSION = "0.6.0";
55
+ var PIXIVN_VERSION = "0.6.2";
56
+ var Repeat = "repeat";
57
57
  function getStepSha1(step) {
58
58
  let sha1String = sha1(step.toString().toLocaleLowerCase());
59
59
  return sha1String.toString();
@@ -77,7 +77,7 @@ var Label = class {
77
77
  this._choiseIndex = choiseIndex;
78
78
  }
79
79
  /**
80
- * Get the id of the label
80
+ * Get the id of the label. This variable is used in the system to get the label by id, {@link getLabelById}
81
81
  */
82
82
  get id() {
83
83
  return this._id;
@@ -147,17 +147,23 @@ function exportCanvasElement(element) {
147
147
  return element.memory;
148
148
  }
149
149
  function importCanvasElement(memory) {
150
- let element = getCanvasElementInstanceByClassName(memory.className);
150
+ let element = getCanvasElementInstanceById(memory.pixivnId);
151
151
  if (element) {
152
152
  element.memory = memory;
153
153
  } else {
154
- throw new Error("[Pixi'VN] The element " + memory.className + " could not be created");
154
+ throw new Error("[Pixi'VN] The element " + memory.pixivnId + " could not be created");
155
155
  }
156
156
  return element;
157
157
  }
158
158
 
159
159
  // src/classes/canvas/CanvasContainer.ts
160
+ var CANVAS_CONTAINER_ID = "CanvasContainer";
160
161
  var CanvasContainer = class extends Container {
162
+ constructor(options) {
163
+ super(options);
164
+ this.pixivnId = CANVAS_CONTAINER_ID;
165
+ this.pixivnId = this.constructor.prototype.pixivnId;
166
+ }
161
167
  get memory() {
162
168
  let memory = getMemoryContainer(this);
163
169
  this.children.forEach((child) => {
@@ -173,8 +179,12 @@ var CanvasContainer = class extends Container {
173
179
  }
174
180
  };
175
181
  function getMemoryContainer(element) {
182
+ let className = "CanvasContainer";
183
+ if (element.hasOwnProperty("pixivnId")) {
184
+ className = element.pixivnId;
185
+ }
176
186
  return {
177
- className: "CanvasContainer",
187
+ pixivnId: className,
178
188
  elements: [],
179
189
  width: element.width,
180
190
  height: element.height,
@@ -290,40 +300,43 @@ function getTextStyle(style) {
290
300
 
291
301
  // src/decorators/EventDecorator.ts
292
302
  var registeredEvents = {};
293
- function getEventTypeByClassName(eventName) {
303
+ function getEventTypeById(eventId) {
294
304
  try {
295
- let eventType = registeredEvents[eventName];
305
+ let eventType = registeredEvents[eventId];
296
306
  if (!eventType) {
297
- console.error(`[Pixi'VN] Event ${eventName} not found`);
307
+ console.error(`[Pixi'VN] Event ${eventId} not found`);
298
308
  return;
299
309
  }
300
310
  new eventType();
301
311
  return eventType;
302
312
  } catch (e) {
303
- console.error(`[Pixi'VN] Error while getting Event ${eventName}`, e);
313
+ console.error(`[Pixi'VN] Error while getting Event ${eventId}`, e);
304
314
  return;
305
315
  }
306
316
  }
307
- function getEventInstanceByClassName(eventName) {
317
+ function getEventInstanceById(eventId) {
308
318
  try {
309
- let eventType = registeredEvents[eventName];
319
+ let eventType = registeredEvents[eventId];
310
320
  if (!eventType) {
311
- console.error(`[Pixi'VN] Event ${eventName} not found`);
321
+ console.error(`[Pixi'VN] Event ${eventId} not found`);
312
322
  return;
313
323
  }
314
324
  let event = new eventType();
315
325
  return event;
316
326
  } catch (e) {
317
- console.error(`[Pixi'VN] Error while getting Event ${eventName}`, e);
327
+ console.error(`[Pixi'VN] Error while getting Event ${eventId}`, e);
318
328
  return;
319
329
  }
320
330
  }
321
331
 
322
332
  // src/classes/canvas/CanvasSprite.ts
333
+ var CANVAS_SPRITE_ID = "CanvasSprite";
323
334
  var CanvasSprite = class _CanvasSprite extends Sprite {
324
- constructor() {
325
- super(...arguments);
335
+ constructor(options) {
336
+ super(options);
337
+ this.pixivnId = CANVAS_SPRITE_ID;
326
338
  this._onEvents = {};
339
+ this.pixivnId = this.constructor.prototype.pixivnId;
327
340
  }
328
341
  get memory() {
329
342
  return getMemorySprite(this);
@@ -364,9 +377,9 @@ var CanvasSprite = class _CanvasSprite extends Sprite {
364
377
  * ```
365
378
  */
366
379
  onEvent(event, eventClass) {
367
- let className = eventClass.name;
368
- let instance = getEventInstanceByClassName(className);
369
- this._onEvents[event] = className;
380
+ let id = eventClass.prototype.id;
381
+ let instance = getEventInstanceById(id);
382
+ this._onEvents[event] = id;
370
383
  if (instance) {
371
384
  super.on(event, () => {
372
385
  instance.fn(event, this);
@@ -395,7 +408,7 @@ var CanvasSprite = class _CanvasSprite extends Sprite {
395
408
  function getMemorySprite(element) {
396
409
  let temp = getMemoryContainer(element);
397
410
  return __spreadProps(__spreadValues({}, temp), {
398
- className: "CanvasSprite",
411
+ pixivnId: element.pixivnId,
399
412
  textureImage: getTextureMemory(element.texture),
400
413
  anchor: { x: element.anchor.x, y: element.anchor.y },
401
414
  roundPixels: element.roundPixels,
@@ -418,8 +431,8 @@ function setMemorySprite(element, memory) {
418
431
  }
419
432
  memory.roundPixels && (element.roundPixels = memory.roundPixels);
420
433
  for (let event in memory.onEvents) {
421
- let className = memory.onEvents[event];
422
- let instance = getEventTypeByClassName(className);
434
+ let id = memory.onEvents[event];
435
+ let instance = getEventTypeById(id);
423
436
  if (instance) {
424
437
  element.onEvent(event, instance);
425
438
  }
@@ -427,9 +440,11 @@ function setMemorySprite(element, memory) {
427
440
  }
428
441
 
429
442
  // src/classes/canvas/CanvasImage.ts
443
+ var CANVAS_IMAGE_ID = "CanvasImage";
430
444
  var CanvasImage = class _CanvasImage extends CanvasSprite {
431
445
  constructor(options, imageLink) {
432
446
  super(options);
447
+ this.pixivnId = CANVAS_IMAGE_ID;
433
448
  this.imageLink = "";
434
449
  if (imageLink) {
435
450
  this.imageLink = imageLink;
@@ -437,12 +452,13 @@ var CanvasImage = class _CanvasImage extends CanvasSprite {
437
452
  }
438
453
  get memory() {
439
454
  return __spreadProps(__spreadValues({}, getMemorySprite(this)), {
440
- className: "CanvasImage",
441
- textureImage: { image: this.imageLink }
455
+ pixivnId: this.pixivnId,
456
+ imageLink: this.imageLink
442
457
  });
443
458
  }
444
459
  set memory(memory) {
445
460
  setMemorySprite(this, memory);
461
+ this.imageLink = memory.imageLink;
446
462
  }
447
463
  static from(source, skipCache) {
448
464
  let sprite = Sprite.from(source, skipCache);
@@ -470,10 +486,13 @@ var CanvasImage = class _CanvasImage extends CanvasSprite {
470
486
  });
471
487
  }
472
488
  };
489
+ var CANVAS_TEXT_ID = "CanvasText";
473
490
  var CanvasText = class extends Text {
474
- constructor() {
475
- super(...arguments);
491
+ constructor(options) {
492
+ super(options);
493
+ this.pixivnId = CANVAS_TEXT_ID;
476
494
  this._onEvents = {};
495
+ this.pixivnId = this.constructor.prototype.pixivnId;
477
496
  }
478
497
  get memory() {
479
498
  return getMemoryText(this);
@@ -514,9 +533,9 @@ var CanvasText = class extends Text {
514
533
  * ```
515
534
  */
516
535
  onEvent(event, eventClass) {
517
- let className = eventClass.name;
518
- let instance = getEventInstanceByClassName(className);
519
- this._onEvents[event] = className;
536
+ let id = eventClass.prototype.id;
537
+ let instance = getEventInstanceById(id);
538
+ this._onEvents[event] = id;
520
539
  if (instance) {
521
540
  super.on(event, () => {
522
541
  instance.fn(event, this);
@@ -539,7 +558,7 @@ var CanvasText = class extends Text {
539
558
  function getMemoryText(element) {
540
559
  let temp = getMemoryContainer(element);
541
560
  return __spreadProps(__spreadValues({}, temp), {
542
- className: "CanvasText",
561
+ pixivnId: element.pixivnId,
543
562
  anchor: { x: element.anchor.x, y: element.anchor.y },
544
563
  text: element.text,
545
564
  resolution: element.resolution,
@@ -562,8 +581,8 @@ function setMemoryText(element, memory) {
562
581
  memory.style && (element.style = memory.style);
563
582
  memory.roundPixels && (element.roundPixels = memory.roundPixels);
564
583
  for (let event in memory.onEvents) {
565
- let className = memory.onEvents[event];
566
- let instance = getEventTypeByClassName(className);
584
+ let id = memory.onEvents[event];
585
+ let instance = getEventTypeById(id);
567
586
  if (instance) {
568
587
  element.onEvent(event, instance);
569
588
  }
@@ -572,28 +591,28 @@ function setMemoryText(element, memory) {
572
591
 
573
592
  // src/decorators/CanvasElementDecorator.ts
574
593
  var registeredCanvasElement = {};
575
- function getCanvasElementInstanceByClassName(canvasName) {
594
+ function getCanvasElementInstanceById(canvasId) {
576
595
  try {
577
- let eventType = registeredCanvasElement[canvasName];
596
+ let eventType = registeredCanvasElement[canvasId];
578
597
  if (!eventType) {
579
- if (canvasName === "CanvasContainer") {
598
+ if (canvasId === CANVAS_CONTAINER_ID) {
580
599
  eventType = CanvasContainer;
581
- } else if (canvasName === "CanvasImage") {
600
+ } else if (canvasId === CANVAS_IMAGE_ID) {
582
601
  eventType = CanvasImage;
583
- } else if (canvasName === "CanvasSprite") {
602
+ } else if (canvasId === CANVAS_SPRITE_ID) {
584
603
  eventType = CanvasSprite;
585
- } else if (canvasName === "CanvasText") {
604
+ } else if (canvasId === CANVAS_TEXT_ID) {
586
605
  eventType = CanvasText;
587
606
  }
588
607
  }
589
608
  if (!eventType) {
590
- console.error(`[Pixi'VN] CanvasElement ${canvasName} not found`);
609
+ console.error(`[Pixi'VN] CanvasElement ${canvasId} not found`);
591
610
  return;
592
611
  }
593
612
  let canvasElement = new eventType();
594
613
  return canvasElement;
595
614
  } catch (e) {
596
- console.error(`[Pixi'VN] Error while getting CanvasElement ${canvasName}`, e);
615
+ console.error(`[Pixi'VN] Error while getting CanvasElement ${canvasId}`, e);
597
616
  return;
598
617
  }
599
618
  }
@@ -606,30 +625,28 @@ function tickerDecorator(name) {
606
625
  name = target.name;
607
626
  }
608
627
  if (registeredTickers[name]) {
609
- console.warn(`[Pixi'VN] Ticker ${name} already exists, it will be overwritten`);
628
+ console.info(`[Pixi'VN] Ticker ${name} already exists, it will be overwritten`);
610
629
  }
630
+ target.prototype.id = name;
611
631
  registeredTickers[name] = target;
612
632
  };
613
633
  }
614
- function geTickerInstanceByClassName(tickerName, args, duration, priority) {
634
+ function geTickerInstanceById(tickerId, args, duration, priority) {
615
635
  try {
616
- let ticker = registeredTickers[tickerName];
636
+ let ticker = registeredTickers[tickerId];
617
637
  if (!ticker) {
618
- console.error(`[Pixi'VN] Ticker ${tickerName} not found`);
638
+ console.error(`[Pixi'VN] Ticker ${tickerId} not found`);
619
639
  return;
620
640
  }
621
641
  return new ticker(args, duration, priority);
622
642
  } catch (e) {
623
- console.error(`[Pixi'VN] Error while getting Ticker ${tickerName}`, e);
643
+ console.error(`[Pixi'VN] Error while getting Ticker ${tickerId}`, e);
624
644
  return;
625
645
  }
626
646
  }
627
647
 
628
- // src/types/PauseType.ts
629
- var PauseValueType = "pause";
630
-
631
- // src/types/RepeatType.ts
632
- var Repeat = "repeat";
648
+ // src/types/CloseType.ts
649
+ var Close = "close";
633
650
 
634
651
  // src/decorators/LabelDecorator.ts
635
652
  var registeredLabels = {};
@@ -646,44 +663,75 @@ function getLabelById(id) {
646
663
  function getDialogue() {
647
664
  return GameStorageManager.getVariable(GameStorageManager.keysSystem.CURRENT_DIALOGUE_MEMORY_KEY);
648
665
  }
666
+ function getChoiceMenuOptions() {
667
+ let d = GameStorageManager.getVariable(GameStorageManager.keysSystem.CURRENT_MENU_OPTIONS_MEMORY_KEY);
668
+ if (d) {
669
+ let options = [];
670
+ d.forEach((option, index) => {
671
+ if (option.type === Close) {
672
+ let itemLabel = newCloseLabel(index);
673
+ options.push({
674
+ text: option.text,
675
+ label: itemLabel,
676
+ type: Close,
677
+ closeCurrentLabel: option.closeCurrentLabel,
678
+ props: {}
679
+ });
680
+ return;
681
+ }
682
+ let label = getLabelById(option.label);
683
+ if (label) {
684
+ let itemLabel = new Label(label.id, label.steps, label.onStepRun, index);
685
+ options.push(__spreadProps(__spreadValues({}, option), {
686
+ label: itemLabel
687
+ }));
688
+ }
689
+ });
690
+ return options;
691
+ }
692
+ return void 0;
693
+ }
649
694
 
650
695
  // src/classes/ticker/TickerBase.ts
651
696
  var TickerBase = class {
652
697
  /**
653
698
  * @param args The arguments that you want to pass to the ticker.
654
- * @param duration The duration of the ticker. If is undefined, the ticker will be called every frame.
655
- * @param priority The priority of the ticker. If is undefined, the priority will be UPDATE_PRIORITY.NORMAL.
699
+ * @param duration The duration of the ticker in seconds. If is undefined, the step will end only when the animation is finished (if the animation doesn't have a goal to reach then it won't finish). @default undefined
700
+ * @param priority The priority of the ticker. @default UPDATE_PRIORITY.NORMAL
656
701
  */
657
702
  constructor(args, duration, priority) {
703
+ /**
704
+ * Get the id of the ticker. This variable is used in the system to get the ticker by id, {@link geTickerInstanceById}
705
+ */
706
+ this.id = "ticker_id_not_set";
658
707
  this.args = args;
659
708
  this.duration = duration;
660
709
  this.priority = priority;
710
+ this.id = this.constructor.prototype.id;
661
711
  }
662
712
  /**
663
713
  * The method that will be called every frame.
664
714
  * This method should be overridden and you can use GameWindowManager.addCanvasElement() to get the canvas element of the canvas, and edit them.
665
- * @param t The ticker that is calling this method
666
- * @param args The arguments that you passed when you added the ticker
667
- * @param tags The tags of the canvas elements that are connected to this ticker
715
+ * @param _ticker The ticker that is calling this method
716
+ * @param _args The arguments that you passed when you added the ticker
717
+ * @param _tags The tags of the canvas elements that are connected to this ticker
718
+ * @param _tickerId The id of the ticker. You can use this to get the ticker from the {@link GameWindowManager.currentTickers}
668
719
  */
669
- fn(_t, _args, _tags) {
720
+ fn(_ticker, _args, _tags, _tickerId) {
670
721
  throw new Error("[Pixi'VN] The method TickerBase.fn() must be overridden");
671
722
  }
672
723
  };
673
- var TickerFadeAlpha = class extends TickerBase {
674
- /**
675
- * The method that will be called every frame to fade the alpha of the canvas element of the canvas.
676
- * @param delta The delta time
677
- * @param args The arguments that are passed to the ticker
678
- * @param tags The tags of the canvas element that are connected to this ticker
679
- */
680
- fn(t, args, tags) {
724
+
725
+ // src/classes/ticker/FadeAlphaTicker.ts
726
+ var FadeAlphaTicker = class extends TickerBase {
727
+ fn(ticker, args, tags, tickerId) {
681
728
  let type = args.type === void 0 ? "hide" : args.type;
682
- let speed = args.speed === void 0 ? 0.1 : args.speed;
729
+ let duration = args.duration === void 0 ? 1 : args.duration;
730
+ let speed = 1 / (duration * 60);
683
731
  let limit = args.limit === void 0 ? type === "hide" ? 0 : 1 : args.limit;
684
- let removeElementAfter = args.tagToRemoveAfter || [];
685
- if (typeof removeElementAfter === "string") {
686
- removeElementAfter = [removeElementAfter];
732
+ let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
733
+ if (typeof tagToRemoveAfter2 === "string") {
734
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
687
735
  }
688
736
  if (type === "hide" && limit < 0) {
689
737
  limit = 0;
@@ -704,61 +752,88 @@ var TickerFadeAlpha = class extends TickerBase {
704
752
  let element = GameWindowManager.getCanvasElement(tag);
705
753
  if (element && element instanceof Container) {
706
754
  if (type === "show" && element.alpha < limit) {
707
- element.alpha += speed * t.deltaTime;
755
+ element.alpha += speed * ticker.deltaTime;
708
756
  } else if (type === "hide" && element.alpha > limit) {
709
- element.alpha -= speed * t.deltaTime;
710
- } else {
757
+ element.alpha -= speed * ticker.deltaTime;
758
+ }
759
+ if (type === "show" && element.alpha >= limit) {
760
+ element.alpha = limit;
761
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
762
+ } else if (type === "hide" && element.alpha <= limit) {
711
763
  element.alpha = limit;
712
- GameWindowManager.removeAssociationBetweenTickerCanvasElement(tag, this);
713
- GameWindowManager.removeCanvasElement(removeElementAfter);
764
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
714
765
  }
715
766
  }
716
767
  });
717
768
  }
718
769
  };
719
- TickerFadeAlpha = __decorateClass([
770
+ FadeAlphaTicker = __decorateClass([
720
771
  tickerDecorator()
721
- ], TickerFadeAlpha);
772
+ ], FadeAlphaTicker);
722
773
 
723
774
  // src/functions/TickerUtility.ts
724
775
  function updateTickerProgression(args, propertyName, progression) {
725
- if (args.hasOwnProperty(propertyName) && typeof args[propertyName] !== "number") {
776
+ if (args[propertyName] === void 0 || !progression || args[propertyName] === progression.limit) {
726
777
  return;
727
778
  }
728
- if (args[propertyName] !== void 0 && progression && args[propertyName] !== progression.limit) {
779
+ if (typeof args[propertyName] === "number") {
729
780
  if (progression.type === "linear") {
730
- args[propertyName] += progression.amt;
731
- if (progression.limit !== void 0) {
732
- if (args[propertyName] > progression.limit && progression.amt > 0) {
733
- args[propertyName] = progression.limit;
734
- } else if (args[propertyName] < progression.limit && progression.amt < 0) {
735
- args[propertyName] = progression.limit;
736
- }
737
- }
781
+ args[propertyName] = getLinearProgression(args[propertyName], progression);
738
782
  } else if (progression.type === "exponential") {
739
- args[propertyName] += args[propertyName] * progression.percentage;
740
- if (progression.limit !== void 0) {
741
- if (args[propertyName] > progression.limit && progression.percentage > 0) {
742
- args[propertyName] = progression.limit;
743
- } else if (args[propertyName] < progression.limit && progression.percentage < 0) {
744
- args[propertyName] = progression.limit;
745
- }
746
- }
783
+ args[propertyName] = getExponentialProgression(args[propertyName], progression);
784
+ }
785
+ } else if (args[propertyName] !== void 0 && typeof args[propertyName] === "object" && args[propertyName].haveOwnProperty("x") && args[propertyName].haveOwnProperty("y") && typeof args[propertyName].x === "number" && typeof args[propertyName].y === "number") {
786
+ if (progression.type === "linear") {
787
+ args[propertyName].x = getLinearProgression(args[propertyName].x, progression);
788
+ args[propertyName].y = getLinearProgression(args[propertyName].y, progression);
789
+ } else if (progression.type === "exponential") {
790
+ args[propertyName].x = getExponentialProgression(args[propertyName].x, progression);
791
+ args[propertyName].y = getExponentialProgression(args[propertyName].y, progression);
792
+ }
793
+ }
794
+ }
795
+ function getLinearProgression(number, progression) {
796
+ if (progression.limit !== void 0) {
797
+ if (number > progression.limit && progression.amt > 0) {
798
+ return progression.limit;
799
+ } else if (number < progression.limit && progression.amt < 0) {
800
+ return progression.limit;
747
801
  }
748
802
  }
803
+ return number + progression.amt / 60;
804
+ }
805
+ function getExponentialProgression(number, progression) {
806
+ if (progression.limit !== void 0) {
807
+ if (number > progression.limit && progression.percentage > 0) {
808
+ return progression.limit;
809
+ } else if (number < progression.limit && progression.percentage < 0) {
810
+ return progression.limit;
811
+ }
812
+ }
813
+ return number + number * progression.percentage;
749
814
  }
750
815
 
751
- // src/classes/ticker/TickerMove.ts
752
- var TickerMove = class extends TickerBase {
753
- /**
754
- * The method that will be called every frame to move the canvas element of the canvas.
755
- * @param t The ticker that is calling this method
756
- * @param args The arguments that are passed to the ticker
757
- * @param tags The tags of the canvas element that are connected to this ticker
758
- */
759
- fn(t, args, tags) {
760
- let speed = args.speed === void 0 ? 0.1 : args.speed;
816
+ // src/classes/ticker/MoveTicker.ts
817
+ var MoveTicker = class extends TickerBase {
818
+ fn(ticker, args, tags, tickerId) {
819
+ let xSpeed = 1;
820
+ let ySpeed = 1;
821
+ if (args.speed) {
822
+ if (typeof args.speed === "number") {
823
+ xSpeed = args.speed;
824
+ ySpeed = args.speed;
825
+ } else {
826
+ xSpeed = args.speed.x;
827
+ ySpeed = args.speed.y;
828
+ }
829
+ }
830
+ xSpeed /= 60;
831
+ ySpeed /= 60;
761
832
  let destination = args.destination;
833
+ let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
834
+ if (typeof tagToRemoveAfter2 === "string") {
835
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
836
+ }
762
837
  tags.filter((tag) => {
763
838
  var _a;
764
839
  let element = GameWindowManager.getCanvasElement(tag);
@@ -771,41 +846,42 @@ var TickerMove = class extends TickerBase {
771
846
  }).forEach((tag) => {
772
847
  let element = GameWindowManager.getCanvasElement(tag);
773
848
  if (element && element instanceof Container) {
774
- let xDistance = destination.x - element.x;
849
+ let xDistance = destination.x - element.x > 0 ? 1 : -1;
775
850
  if (xDistance != 0) {
776
- element.x += xDistance / speed * t.deltaTime;
851
+ element.x += xDistance * xSpeed * ticker.deltaTime;
777
852
  let newDistance = destination.x - element.x;
778
853
  if (xDistance < 0 && newDistance > 0 || xDistance > 0 && newDistance < 0) {
779
854
  element.x = destination.x;
780
855
  }
781
856
  }
782
- let yDistance = destination.y - element.y;
857
+ let yDistance = destination.y - element.y > 0 ? 1 : -1;
783
858
  if (yDistance != 0) {
784
- element.y += yDistance / speed * t.deltaTime;
859
+ element.y += yDistance * ySpeed * ticker.deltaTime;
785
860
  let newDistance = destination.y - element.y;
786
861
  if (yDistance < 0 && newDistance > 0 || yDistance > 0 && newDistance < 0) {
787
862
  element.y = destination.y;
788
863
  }
789
864
  }
865
+ if (element.x == destination.x && element.y == destination.y) {
866
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
867
+ }
790
868
  }
791
869
  });
792
870
  if (args.speedProgression)
793
871
  updateTickerProgression(args, "speed", args.speedProgression);
794
872
  }
795
873
  };
796
- TickerMove = __decorateClass([
874
+ MoveTicker = __decorateClass([
797
875
  tickerDecorator()
798
- ], TickerMove);
799
- var TickerRotate = class extends TickerBase {
800
- /**
801
- * The method that will be called every frame to rotate the canvas element of the canvas.
802
- * @param delta The delta time
803
- * @param args The arguments that are passed to the ticker
804
- * @param tags The tags of the canvas element that are connected to this ticker
805
- */
806
- fn(t, args, tags) {
807
- let speed = args.speed === void 0 ? 0.1 : args.speed;
876
+ ], MoveTicker);
877
+ var RotateTicker = class extends TickerBase {
878
+ fn(ticker, args, tags, tickerId) {
879
+ let speed = (args.speed === void 0 ? 1 : args.speed) / 60;
808
880
  let clockwise = args.clockwise === void 0 ? true : args.clockwise;
881
+ let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
882
+ if (typeof tagToRemoveAfter2 === "string") {
883
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
884
+ }
809
885
  tags.filter((tag) => {
810
886
  var _a;
811
887
  let element = GameWindowManager.getCanvasElement(tag);
@@ -819,18 +895,111 @@ var TickerRotate = class extends TickerBase {
819
895
  let element = GameWindowManager.getCanvasElement(tag);
820
896
  if (element && element instanceof Container) {
821
897
  if (clockwise)
822
- element.rotation += speed * t.deltaTime;
898
+ element.rotation += speed * ticker.deltaTime;
823
899
  else
824
- element.rotation -= speed * t.deltaTime;
900
+ element.rotation -= speed * ticker.deltaTime;
901
+ if (speed < 1e-5 && !(args.speedProgression && args.speedProgression.type == "linear" && args.speedProgression.amt != 0)) {
902
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
903
+ }
825
904
  }
826
905
  });
827
906
  if (args.speedProgression)
828
907
  updateTickerProgression(args, "speed", args.speedProgression);
829
908
  }
830
909
  };
831
- TickerRotate = __decorateClass([
910
+ RotateTicker = __decorateClass([
832
911
  tickerDecorator()
833
- ], TickerRotate);
912
+ ], RotateTicker);
913
+ var ZoomTicker = class extends TickerBase {
914
+ fn(ticker, args, tags, tickerId) {
915
+ let xSpeed = 0.1;
916
+ let ySpeed = 0.1;
917
+ if (args.speed) {
918
+ if (typeof args.speed === "number") {
919
+ xSpeed = args.speed;
920
+ ySpeed = args.speed;
921
+ } else {
922
+ xSpeed = args.speed.x;
923
+ ySpeed = args.speed.y;
924
+ }
925
+ }
926
+ xSpeed /= 60;
927
+ ySpeed /= 60;
928
+ let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
929
+ if (typeof tagToRemoveAfter2 === "string") {
930
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
931
+ }
932
+ let type = args.type || "zoom";
933
+ let xLimit = type === "zoom" ? Infinity : 0;
934
+ let yLimit = type === "zoom" ? Infinity : 0;
935
+ if (args.limit) {
936
+ if (typeof args.limit === "number") {
937
+ xLimit = args.limit;
938
+ yLimit = args.limit;
939
+ } else {
940
+ xLimit = args.limit.x;
941
+ yLimit = args.limit.y;
942
+ }
943
+ }
944
+ tags.filter((tag) => {
945
+ var _a;
946
+ let element = GameWindowManager.getCanvasElement(tag);
947
+ if (args.startOnlyIfHaveTexture) {
948
+ if (element && element instanceof Sprite && ((_a = element.texture) == null ? void 0 : _a.label) == "EMPTY") {
949
+ return false;
950
+ }
951
+ }
952
+ return true;
953
+ }).forEach((tag) => {
954
+ let element = GameWindowManager.getCanvasElement(tag);
955
+ if (element && element instanceof Container) {
956
+ if (type === "zoom" && (element.scale.x < xLimit || element.scale.y < yLimit)) {
957
+ element.scale.x += xSpeed * ticker.deltaTime;
958
+ element.scale.y += ySpeed * ticker.deltaTime;
959
+ } else if (type === "unzoom" && (element.scale.x > xLimit || element.scale.y > yLimit)) {
960
+ element.scale.x -= xSpeed * ticker.deltaTime;
961
+ element.scale.y -= ySpeed * ticker.deltaTime;
962
+ }
963
+ if (type === "zoom") {
964
+ if (element.scale.x > xLimit) {
965
+ element.scale.x = xLimit;
966
+ }
967
+ if (element.scale.y > yLimit) {
968
+ element.scale.y = yLimit;
969
+ }
970
+ if (element.scale.x >= xLimit && element.scale.y >= yLimit) {
971
+ element.scale.x = xLimit;
972
+ element.scale.y = yLimit;
973
+ this.onEndOfTicker(tag, tickerId, element, tagToRemoveAfter2);
974
+ }
975
+ } else if (type === "unzoom") {
976
+ if (element.scale.x < xLimit) {
977
+ element.scale.x = xLimit;
978
+ }
979
+ if (element.scale.y < yLimit) {
980
+ element.scale.y = yLimit;
981
+ }
982
+ if (element.scale.x <= xLimit && element.scale.y <= yLimit) {
983
+ element.scale.x = xLimit;
984
+ element.scale.y = yLimit;
985
+ this.onEndOfTicker(tag, tickerId, element, tagToRemoveAfter2);
986
+ }
987
+ }
988
+ if (xSpeed < 1e-5 && ySpeed < 1e-5 && !(args.speedProgression && args.speedProgression.type == "linear" && args.speedProgression.amt != 0)) {
989
+ this.onEndOfTicker(tag, tickerId, element, tagToRemoveAfter2);
990
+ }
991
+ }
992
+ });
993
+ if (args.speedProgression)
994
+ updateTickerProgression(args, "speed", args.speedProgression);
995
+ }
996
+ onEndOfTicker(tag, tickerId, _element, tagToRemoveAfter2) {
997
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
998
+ }
999
+ };
1000
+ ZoomTicker = __decorateClass([
1001
+ tickerDecorator()
1002
+ ], ZoomTicker);
834
1003
 
835
1004
  // src/functions/ExportUtility.ts
836
1005
  function createExportableElement(element) {
@@ -980,6 +1149,9 @@ function asciiArtLog() {
980
1149
  `);
981
1150
  }
982
1151
 
1152
+ // src/types/ticker/TagToRemoveAfterType.ts
1153
+ var tagToRemoveAfter = "tagToRemoveAfter";
1154
+
983
1155
  // src/managers/WindowManager.ts
984
1156
  var _GameWindowManager = class _GameWindowManager {
985
1157
  constructor() {
@@ -1162,25 +1334,25 @@ var _GameWindowManager = class _GameWindowManager {
1162
1334
  /**
1163
1335
  * Remove a canvas element from the canvas.
1164
1336
  * And remove all tickers that are not connected to any canvas element.
1165
- * @param tag The tag of the canvas element to be removed.
1337
+ * @param tags The tag of the canvas element to be removed.
1166
1338
  * @returns
1167
1339
  * @example
1168
1340
  * ```typescript
1169
1341
  * GameWindowManager.removeCanvasElement("bunny");
1170
1342
  * ```
1171
1343
  */
1172
- static removeCanvasElement(tag) {
1173
- if (typeof tag === "string") {
1174
- tag = [tag];
1344
+ static removeCanvasElement(tags) {
1345
+ if (typeof tags === "string") {
1346
+ tags = [tags];
1175
1347
  }
1176
- tag.forEach((t) => {
1177
- if (_GameWindowManager._children[t]) {
1178
- _GameWindowManager.app.stage.removeChild(_GameWindowManager._children[t]);
1179
- delete _GameWindowManager._children[t];
1348
+ tags.forEach((tag) => {
1349
+ if (_GameWindowManager._children[tag]) {
1350
+ _GameWindowManager.app.stage.removeChild(_GameWindowManager._children[tag]);
1351
+ delete _GameWindowManager._children[tag];
1352
+ _GameWindowManager.removeTickerByCanvasElement(tag);
1180
1353
  }
1181
1354
  });
1182
- _GameWindowManager.removeTickersWithoutAssociatedCanvasElement();
1183
- _GameWindowManager.childrenTagsOrder = _GameWindowManager.childrenTagsOrder.filter((t) => !tag.includes(t));
1355
+ _GameWindowManager.childrenTagsOrder = _GameWindowManager.childrenTagsOrder.filter((t) => !tags.includes(t));
1184
1356
  }
1185
1357
  /**
1186
1358
  * Get a canvas element by the tag.
@@ -1210,18 +1382,43 @@ var _GameWindowManager = class _GameWindowManager {
1210
1382
  _GameWindowManager.app.stage.removeChildren();
1211
1383
  _GameWindowManager._children = {};
1212
1384
  _GameWindowManager.childrenTagsOrder = [];
1213
- _GameWindowManager.removeTickers();
1385
+ _GameWindowManager.removeAllTickers();
1214
1386
  }
1215
1387
  /**
1216
1388
  * Edit the tag of a canvas element.
1217
1389
  * @param oldTag The old tag of the canvas element.
1218
1390
  * @param newTag The new tag of the canvas element.
1219
1391
  */
1220
- static editTagCanvasElement(oldTag, newTag) {
1392
+ static editCanvasElementTag(oldTag, newTag) {
1221
1393
  if (_GameWindowManager._children[oldTag]) {
1222
1394
  _GameWindowManager._children[newTag] = _GameWindowManager._children[oldTag];
1223
1395
  delete _GameWindowManager._children[oldTag];
1224
1396
  }
1397
+ if (_GameWindowManager._currentTickersSteps[oldTag]) {
1398
+ _GameWindowManager._currentTickersSteps[newTag] = _GameWindowManager._currentTickersSteps[oldTag];
1399
+ delete _GameWindowManager._currentTickersSteps[oldTag];
1400
+ }
1401
+ for (let id in _GameWindowManager._currentTickers) {
1402
+ let ticker = _GameWindowManager._currentTickers[id];
1403
+ if (ticker.canvasElementTags.includes(oldTag)) {
1404
+ ticker.canvasElementTags = ticker.canvasElementTags.map((t) => t === oldTag ? newTag : t);
1405
+ if (ticker.args.hasOwnProperty(tagToRemoveAfter)) {
1406
+ let tagToRemoveAfter2 = ticker.args.tagToRemoveAfter;
1407
+ if (typeof tagToRemoveAfter2 === "string") {
1408
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
1409
+ }
1410
+ if (Array.isArray(tagToRemoveAfter2)) {
1411
+ ticker.args.tagToRemoveAfter = tagToRemoveAfter2.map((t) => t === oldTag ? newTag : t);
1412
+ }
1413
+ }
1414
+ }
1415
+ }
1416
+ for (let timeout in _GameWindowManager._currentTickersTimeouts) {
1417
+ let TickerTimeout = _GameWindowManager._currentTickersTimeouts[timeout];
1418
+ if (TickerTimeout.tags.includes(oldTag)) {
1419
+ TickerTimeout.tags = TickerTimeout.tags.map((t) => t === oldTag ? newTag : t);
1420
+ }
1421
+ }
1225
1422
  }
1226
1423
  /** Edit Tickers Methods */
1227
1424
  /**
@@ -1230,106 +1427,127 @@ var _GameWindowManager = class _GameWindowManager {
1230
1427
  static get currentTickers() {
1231
1428
  return _GameWindowManager._currentTickers;
1232
1429
  }
1430
+ static get currentTickersList() {
1431
+ return Object.values(_GameWindowManager._currentTickers);
1432
+ }
1433
+ static get currentTickersWithoutCreatedBySteps() {
1434
+ return Object.fromEntries(Object.entries(_GameWindowManager._currentTickers).filter(([_, ticker]) => !ticker.createdByTicketStepsId));
1435
+ }
1233
1436
  /**
1234
1437
  * The steps of the tickers
1235
1438
  */
1236
1439
  static get currentTickersSteps() {
1237
1440
  return _GameWindowManager._currentTickersSteps;
1238
1441
  }
1442
+ static generateTickerId(tickerData) {
1443
+ try {
1444
+ return sha1(JSON.stringify(tickerData)).toString() + "_" + Math.random().toString(36).substring(7);
1445
+ } catch (e) {
1446
+ throw new Error(`[Pixi'VN] Error to generate ticker id: ${e}`);
1447
+ }
1448
+ }
1239
1449
  /**
1240
- * Run a ticker.
1450
+ * Run a ticker. You can run multiple addTicker with the same tag and different tickerClasses.
1451
+ * If you run a ticker with the same tag and tickerClass, the old ticker will be removed.
1452
+ * If already exists a sequence of tickers with the same tag, it will be removed.
1241
1453
  * @param canvasEslementTag The tag of the canvas element that will use the ticker.
1242
1454
  * @param ticker The ticker class to be run.
1243
1455
  * @param args The arguments to be used in the ticker.
1244
- * @param duration The time to be used in the ticker. This number is in milliseconds. If it is undefined, the ticker will run forever.
1456
+ * @param duration The time to be used in the ticker. This number is in seconds. If it is undefined, the ticker will run forever.
1245
1457
  * @param priority The priority to be used in the ticker.
1246
1458
  * @returns
1247
1459
  * @example
1248
1460
  * ```typescript
1249
- * GameWindowManager.addTicker("alien", new TickerRotate({ speed: 0.2 }))
1461
+ * GameWindowManager.addTicker("alien", new RotateTicker({ speed: 0.2 }))
1250
1462
  * ```
1251
1463
  */
1252
1464
  static addTicker(canvasElementTag, ticker) {
1253
- let tickerName = ticker.constructor.name;
1465
+ let tickerId = ticker.id;
1254
1466
  if (typeof canvasElementTag === "string") {
1255
1467
  canvasElementTag = [canvasElementTag];
1256
1468
  }
1257
- let t = geTickerInstanceByClassName(tickerName, ticker.args, ticker.duration, ticker.priority);
1258
- if (!t) {
1259
- console.error(`[Pixi'VN] Ticker ${tickerName} not found`);
1469
+ if (!geTickerInstanceById(tickerId, ticker.args, ticker.duration, ticker.priority)) {
1470
+ console.error(`[Pixi'VN] Ticker ${tickerId} not found`);
1260
1471
  return;
1261
1472
  }
1262
- _GameWindowManager.removeAssociationBetweenTickerCanvasElement(canvasElementTag, ticker);
1263
1473
  let tickerHistory = {
1264
1474
  fn: () => {
1265
1475
  },
1266
- className: tickerName,
1267
- args: ticker.args,
1476
+ id: tickerId,
1477
+ args: createExportableElement(ticker.args),
1268
1478
  canvasElementTags: canvasElementTag,
1269
1479
  priority: ticker.priority,
1270
1480
  duration: ticker.duration
1271
1481
  };
1272
- _GameWindowManager.pushTicker(tickerHistory, t);
1273
- _GameWindowManager.removeTickersWithoutAssociatedCanvasElement();
1482
+ let id = _GameWindowManager.generateTickerId(tickerHistory);
1483
+ _GameWindowManager.pushTicker(id, tickerHistory, ticker);
1274
1484
  if (ticker.duration) {
1275
1485
  let timeout = setTimeout(() => {
1276
1486
  _GameWindowManager.removeTickerTimeoutInfo(timeout);
1277
- _GameWindowManager.nextTickerStep(canvasElementTag);
1278
- }, ticker.duration);
1279
- _GameWindowManager.addTickerTimeoutInfo(canvasElementTag, tickerName, timeout.toString());
1487
+ let tickerTimeoutInfo = _GameWindowManager._currentTickersTimeouts[timeout.toString()];
1488
+ if (tickerTimeoutInfo) {
1489
+ _GameWindowManager.removeTicker(id);
1490
+ }
1491
+ }, ticker.duration * 1e3);
1492
+ _GameWindowManager.addTickerTimeoutInfo(canvasElementTag, tickerId, timeout.toString(), true);
1280
1493
  }
1281
1494
  }
1282
- static pushTicker(tickerData, ticker) {
1283
- _GameWindowManager.removeAssociationBetweenTickerCanvasElement(tickerData.canvasElementTags, tickerData);
1284
- _GameWindowManager._currentTickers.push(tickerData);
1495
+ static pushTicker(id, tickerData, ticker) {
1496
+ _GameWindowManager.removeAssociationBetweenTickerCanvasElement(tickerData.canvasElementTags, ticker);
1497
+ _GameWindowManager._currentTickers[id] = tickerData;
1285
1498
  tickerData.fn = (t) => {
1286
- ticker == null ? void 0 : ticker.fn(t, tickerData.args, tickerData.canvasElementTags);
1499
+ let data = _GameWindowManager._currentTickers[id];
1500
+ if (data) {
1501
+ ticker == null ? void 0 : ticker.fn(t, data.args, data.canvasElementTags, id);
1502
+ }
1287
1503
  };
1288
1504
  _GameWindowManager.app.ticker.add(tickerData.fn, void 0, tickerData.priority);
1289
1505
  }
1290
1506
  /**
1291
- * Run a sequence of tickers.
1507
+ * Run a sequence of tickers. If exists a ticker steps with the same tag, it will be removed.
1292
1508
  * @param tag The tag of canvas element that will use the tickers.
1293
1509
  * @param steps The steps of the tickers.
1510
+ * @param currentStepNumber The current step number. It is used to continue the sequence of tickers.
1294
1511
  * @returns
1295
1512
  * @example
1296
1513
  * ```typescript
1297
1514
  * GameWindowManager.addTickersSteps("alien", [
1298
- * new TickerRotate({ speed: 0.1, clockwise: true }, 2000),
1299
- * Pause(500),
1300
- * new TickerRotate({ speed: 0.2, clockwise: false }, 2000),
1515
+ * new RotateTicker({ speed: 0.1, clockwise: true }, 2), // 2 seconds
1516
+ * Pause(1), // 1 second
1517
+ * new RotateTicker({ speed: 0.2, clockwise: false }, 2),
1301
1518
  * Repeat,
1302
1519
  * ])
1303
1520
  * ```
1304
1521
  */
1305
- static addTickersSteps(tag, steps) {
1522
+ static addTickersSteps(tag, steps, currentStepNumber = 0) {
1306
1523
  if (steps.length == 0) {
1307
1524
  console.warn("[Pixi'VN] The steps of the tickers is empty");
1308
1525
  return;
1309
1526
  }
1310
- let alredyExists = _GameWindowManager._currentTickersSteps[tag] !== void 0;
1527
+ _GameWindowManager.removeTickerStepByCanvasElement(tag);
1311
1528
  _GameWindowManager._currentTickersSteps[tag] = {
1312
- currentStepNumber: 0,
1313
- steps: steps.map((s) => {
1314
- if (s === Repeat) {
1315
- return s;
1316
- }
1317
- if (!s.duration) {
1318
- console.warn("[Pixi'VN] Duration is not defined, so it will be set to 1000");
1319
- s.duration = 1e3;
1529
+ currentStepNumber,
1530
+ steps: steps.map((step) => {
1531
+ if (step === Repeat) {
1532
+ return step;
1320
1533
  }
1321
- if (s.hasOwnProperty("type") && s.type === PauseValueType) {
1322
- return s;
1534
+ if (step.hasOwnProperty("type") && step.type === "pause") {
1535
+ return step;
1323
1536
  }
1324
- let tickerName = s.constructor.name;
1537
+ let tickerId = step.id;
1325
1538
  return {
1326
- ticker: tickerName,
1327
- args: s.args,
1328
- duration: s.duration
1539
+ ticker: tickerId,
1540
+ args: createExportableElement(step.args),
1541
+ duration: step.duration
1329
1542
  };
1330
1543
  })
1331
1544
  };
1332
- if (!alredyExists) {
1545
+ _GameWindowManager.runTickersSteps(tag);
1546
+ }
1547
+ static restoneTickersSteps(data) {
1548
+ for (let tag in data) {
1549
+ let steps = data[tag];
1550
+ _GameWindowManager._currentTickersSteps[tag] = steps;
1333
1551
  _GameWindowManager.runTickersSteps(tag);
1334
1552
  }
1335
1553
  }
@@ -1343,70 +1561,106 @@ var _GameWindowManager = class _GameWindowManager {
1343
1561
  return;
1344
1562
  }
1345
1563
  }
1346
- if (step.hasOwnProperty("type") && step.type === PauseValueType) {
1564
+ if (step.hasOwnProperty("type") && step.type === "pause") {
1347
1565
  let timeout = setTimeout(() => {
1566
+ let tickerTimeoutInfo = _GameWindowManager._currentTickersTimeouts[timeout.toString()];
1567
+ if (tickerTimeoutInfo) {
1568
+ tickerTimeoutInfo.tags.forEach((tag2) => {
1569
+ _GameWindowManager.nextTickerStep(tag2);
1570
+ });
1571
+ }
1348
1572
  _GameWindowManager.removeTickerTimeoutInfo(timeout);
1349
- _GameWindowManager.nextTickerStep(tag);
1350
- }, step.duration);
1351
- _GameWindowManager.addTickerTimeoutInfo(tag, "steps", timeout.toString());
1573
+ }, step.duration * 1e3);
1574
+ _GameWindowManager.addTickerTimeoutInfo(tag, "steps", timeout.toString(), false);
1352
1575
  return;
1353
1576
  }
1354
- let ticker = geTickerInstanceByClassName(step.ticker, step.args, step.duration, step.priority);
1577
+ let ticker = geTickerInstanceById(step.ticker, step.args, step.duration, step.priority);
1355
1578
  if (!ticker) {
1356
1579
  console.error(`[Pixi'VN] Ticker ${step.ticker} not found`);
1357
1580
  return;
1358
1581
  }
1359
- _GameWindowManager.addTicker(tag, ticker);
1582
+ let tickerName = ticker.id;
1583
+ let tickerHistory = {
1584
+ fn: () => {
1585
+ },
1586
+ id: tickerName,
1587
+ args: createExportableElement(ticker.args),
1588
+ canvasElementTags: [tag],
1589
+ priority: ticker.priority,
1590
+ duration: ticker.duration,
1591
+ createdByTicketStepsId: tag
1592
+ };
1593
+ let id = _GameWindowManager.generateTickerId(tickerHistory);
1594
+ _GameWindowManager.pushTicker(id, tickerHistory, ticker);
1595
+ if (ticker.duration) {
1596
+ let timeout = setTimeout(() => {
1597
+ let tickerTimeoutInfo = _GameWindowManager._currentTickersTimeouts[timeout.toString()];
1598
+ if (tickerTimeoutInfo) {
1599
+ _GameWindowManager.removeTicker(id);
1600
+ tickerTimeoutInfo.tags.forEach((tag2) => {
1601
+ _GameWindowManager.nextTickerStep(tag2);
1602
+ });
1603
+ }
1604
+ _GameWindowManager.removeTickerTimeoutInfo(timeout);
1605
+ }, ticker.duration * 1e3);
1606
+ _GameWindowManager.addTickerTimeoutInfo(tag, tickerName, timeout.toString(), false);
1607
+ }
1360
1608
  }
1361
1609
  static nextTickerStep(tag) {
1362
- if (typeof tag === "string") {
1363
- tag = [tag];
1610
+ if (_GameWindowManager._currentTickersSteps[tag]) {
1611
+ let steps = _GameWindowManager._currentTickersSteps[tag];
1612
+ if (steps.currentStepNumber + 1 < steps.steps.length) {
1613
+ steps.currentStepNumber++;
1614
+ _GameWindowManager._currentTickersSteps[tag] = steps;
1615
+ _GameWindowManager.runTickersSteps(tag);
1616
+ } else {
1617
+ _GameWindowManager.removeTickerStepByCanvasElement(tag);
1618
+ }
1364
1619
  }
1365
- tag.forEach((tag2) => {
1366
- if (_GameWindowManager._currentTickersSteps[tag2]) {
1367
- let steps = _GameWindowManager._currentTickersSteps[tag2];
1368
- if (steps.currentStepNumber + 1 < steps.steps.length) {
1369
- steps.currentStepNumber++;
1370
- _GameWindowManager._currentTickersSteps[tag2] = steps;
1371
- _GameWindowManager.runTickersSteps(tag2);
1372
- } else {
1373
- delete _GameWindowManager._currentTickersSteps[tag2];
1374
- }
1620
+ }
1621
+ static onEndOfTicker(canvasElementTags, ticker, canvasElementTagsToDelete, tickerId) {
1622
+ let tickerData = _GameWindowManager._currentTickers[tickerId];
1623
+ _GameWindowManager.removeAssociationBetweenTickerCanvasElement(canvasElementTags, ticker);
1624
+ _GameWindowManager.removeCanvasElement(canvasElementTagsToDelete);
1625
+ if (tickerData) {
1626
+ _GameWindowManager.removeTicker(tickerId);
1627
+ if (tickerData.duration == void 0 && tickerData.createdByTicketStepsId) {
1628
+ _GameWindowManager.nextTickerStep(tickerData.createdByTicketStepsId);
1375
1629
  }
1376
- });
1630
+ }
1377
1631
  }
1378
1632
  /**
1379
1633
  * Remove a connection between a canvas element and a ticker.
1380
1634
  * And remove the ticker if there is no canvas element connected to it.
1381
- * @param tag The tag of the canvas element that will use the ticker.
1635
+ * @param tags The tag of the canvas element that will use the ticker.
1382
1636
  * @param ticker The ticker class to be removed.
1383
1637
  * @example
1384
1638
  * ```typescript
1385
- * GameWindowManager.removeAssociationBetweenTickerCanvasElement("alien", TickerRotate)
1639
+ * GameWindowManager.removeAssociationBetweenTickerCanvasElement("alien", RotateTicker)
1386
1640
  * ```
1387
1641
  */
1388
- static removeAssociationBetweenTickerCanvasElement(tag, ticker) {
1389
- let tickerName;
1390
- if (ticker instanceof TickerBase) {
1391
- tickerName = ticker.constructor.name;
1642
+ static removeAssociationBetweenTickerCanvasElement(tags, ticker) {
1643
+ let tickerId;
1644
+ if (typeof ticker === "string") {
1645
+ tickerId = ticker;
1646
+ } else if (ticker instanceof TickerBase) {
1647
+ tickerId = ticker.id;
1392
1648
  } else {
1393
- tickerName = ticker.name;
1649
+ tickerId = ticker.prototype.id;
1394
1650
  }
1395
- if (typeof tag === "string") {
1396
- tag = [tag];
1651
+ if (typeof tags === "string") {
1652
+ tags = [tags];
1397
1653
  }
1398
- _GameWindowManager._currentTickers = _GameWindowManager._currentTickers.map((t) => {
1399
- if (t.className === tickerName) {
1400
- t.canvasElementTags = t.canvasElementTags.filter((e) => !tag.includes(e));
1654
+ for (let id in _GameWindowManager._currentTickers) {
1655
+ let ticker2 = _GameWindowManager._currentTickers[id];
1656
+ if (ticker2.id === tickerId) {
1657
+ _GameWindowManager._currentTickers[id].canvasElementTags = ticker2.canvasElementTags.filter((e) => !tags.includes(e));
1401
1658
  }
1402
- return t;
1403
- });
1404
- for (let timeout in _GameWindowManager.currentTickersTimeouts) {
1405
- let t = _GameWindowManager.currentTickersTimeouts[timeout].tags.filter((e) => !tag.includes(e));
1406
- if (t.length == 0) {
1407
- _GameWindowManager.removeTickerTimeoutInfo(timeout);
1408
- } else {
1409
- _GameWindowManager.currentTickersTimeouts[timeout].tags = t;
1659
+ }
1660
+ for (let timeout in _GameWindowManager._currentTickersTimeouts) {
1661
+ let TickerTimeout = _GameWindowManager._currentTickersTimeouts[timeout];
1662
+ if (TickerTimeout.ticker === tickerId && TickerTimeout.canBeDeletedBeforeEnd) {
1663
+ _GameWindowManager._currentTickersTimeouts[timeout].tags = TickerTimeout.tags.filter((t) => !tags.includes(t));
1410
1664
  }
1411
1665
  }
1412
1666
  _GameWindowManager.removeTickersWithoutAssociatedCanvasElement();
@@ -1415,49 +1669,117 @@ var _GameWindowManager = class _GameWindowManager {
1415
1669
  * Remove all tickers that are not connected to any existing canvas element.
1416
1670
  */
1417
1671
  static removeTickersWithoutAssociatedCanvasElement() {
1418
- let currentTickers = _GameWindowManager._currentTickers.map((t) => {
1419
- t.canvasElementTags = t.canvasElementTags.filter((e) => _GameWindowManager._children[e]);
1420
- return t;
1421
- });
1422
- currentTickers.filter((t) => t.canvasElementTags.length === 0).forEach((t) => {
1423
- _GameWindowManager.app.ticker.remove(t.fn);
1424
- });
1425
- currentTickers = currentTickers.filter((t) => t.canvasElementTags.length > 0);
1426
- _GameWindowManager._currentTickers = currentTickers;
1672
+ for (let id in _GameWindowManager._currentTickers) {
1673
+ let ticker = _GameWindowManager._currentTickers[id];
1674
+ ticker.canvasElementTags = ticker.canvasElementTags.filter((e) => _GameWindowManager._children[e]);
1675
+ if (ticker.canvasElementTags.length === 0) {
1676
+ _GameWindowManager.removeTicker(id);
1677
+ }
1678
+ }
1427
1679
  for (let tag in _GameWindowManager._currentTickersSteps) {
1428
1680
  if (_GameWindowManager._children[tag] === void 0) {
1429
1681
  delete _GameWindowManager._currentTickersSteps[tag];
1430
1682
  }
1431
1683
  }
1684
+ Object.entries(_GameWindowManager._currentTickersTimeouts).forEach(([timeout, { tags }]) => {
1685
+ if (tags.length === 0) {
1686
+ _GameWindowManager.removeTickerTimeout(timeout);
1687
+ }
1688
+ });
1432
1689
  }
1433
- static addTickerTimeoutInfo(tags, ticker, timeout) {
1690
+ static addTickerTimeoutInfo(tags, ticker, timeout, canBeDeletedBeforeEnd) {
1434
1691
  if (typeof tags === "string") {
1435
1692
  tags = [tags];
1436
1693
  }
1437
- _GameWindowManager.currentTickersTimeouts[timeout] = {
1694
+ _GameWindowManager._currentTickersTimeouts[timeout] = {
1438
1695
  tags,
1439
- ticker
1696
+ ticker,
1697
+ canBeDeletedBeforeEnd
1440
1698
  };
1441
1699
  }
1442
1700
  static removeTickerTimeoutInfo(timeout) {
1443
1701
  if (typeof timeout !== "string") {
1444
1702
  timeout = timeout.toString();
1445
1703
  }
1446
- if (_GameWindowManager.currentTickersTimeouts[timeout]) {
1447
- delete _GameWindowManager.currentTickersTimeouts[timeout];
1704
+ if (_GameWindowManager._currentTickersTimeouts[timeout]) {
1705
+ delete _GameWindowManager._currentTickersTimeouts[timeout];
1706
+ }
1707
+ }
1708
+ static removeTickerTimeout(timeout) {
1709
+ if (typeof timeout !== "string") {
1710
+ timeout = timeout.toString();
1711
+ }
1712
+ clearTimeout(Number(timeout));
1713
+ _GameWindowManager.removeTickerTimeoutInfo(timeout);
1714
+ }
1715
+ static removeTickerTimeoutsByTag(tag, checkCanBeDeletedBeforeEnd) {
1716
+ for (let timeout in _GameWindowManager._currentTickersTimeouts) {
1717
+ let tagsWithoutTagToRemove = _GameWindowManager._currentTickersTimeouts[timeout].tags.filter((t) => t !== tag);
1718
+ if (tagsWithoutTagToRemove.length === 0) {
1719
+ let canBeDeletedBeforeEnd = _GameWindowManager._currentTickersTimeouts[timeout].canBeDeletedBeforeEnd;
1720
+ if (!checkCanBeDeletedBeforeEnd || canBeDeletedBeforeEnd) {
1721
+ _GameWindowManager.removeTickerTimeout(timeout);
1722
+ }
1723
+ } else {
1724
+ _GameWindowManager._currentTickersTimeouts[timeout].tags = tagsWithoutTagToRemove;
1725
+ }
1448
1726
  }
1449
1727
  }
1450
1728
  /**
1451
1729
  * Remove all tickers from the canvas.
1452
1730
  */
1453
- static removeTickers() {
1731
+ static removeAllTickers() {
1454
1732
  _GameWindowManager._currentTickersSteps = {};
1455
- _GameWindowManager._currentTickers.forEach((t) => {
1456
- _GameWindowManager.app.ticker.remove(t.fn);
1733
+ Object.keys(_GameWindowManager._currentTickers).forEach((id) => {
1734
+ _GameWindowManager.removeTicker(id);
1457
1735
  });
1458
- _GameWindowManager._currentTickers = [];
1459
- for (let timeout in _GameWindowManager.currentTickersTimeouts) {
1460
- _GameWindowManager.removeTickerTimeoutInfo(timeout);
1736
+ _GameWindowManager._currentTickers = {};
1737
+ for (let timeout in _GameWindowManager._currentTickersTimeouts) {
1738
+ _GameWindowManager.removeTickerTimeout(timeout);
1739
+ }
1740
+ }
1741
+ /**
1742
+ * Remove all tickers from a canvas element.
1743
+ * @param tag The tag of the canvas element that will use the ticker.
1744
+ */
1745
+ static removeTickerByCanvasElement(tag) {
1746
+ if (typeof tag === "string") {
1747
+ tag = [tag];
1748
+ }
1749
+ tag.forEach((tag2) => {
1750
+ for (let id in _GameWindowManager._currentTickers) {
1751
+ let ticker = _GameWindowManager._currentTickers[id];
1752
+ if (ticker.canvasElementTags.includes(tag2)) {
1753
+ _GameWindowManager.removeTicker(id);
1754
+ }
1755
+ }
1756
+ if (_GameWindowManager._currentTickersSteps[tag2]) {
1757
+ delete _GameWindowManager._currentTickersSteps[tag2];
1758
+ }
1759
+ _GameWindowManager.removeTickerTimeoutsByTag(tag2, false);
1760
+ delete _GameWindowManager._currentTickersSteps[tag2];
1761
+ });
1762
+ }
1763
+ static removeTickerStepByCanvasElement(tag) {
1764
+ if (_GameWindowManager._currentTickersSteps[tag]) {
1765
+ delete _GameWindowManager._currentTickersSteps[tag];
1766
+ }
1767
+ for (let id in _GameWindowManager._currentTickers) {
1768
+ let ticker = _GameWindowManager._currentTickers[id];
1769
+ if (ticker.createdByTicketStepsId === tag) {
1770
+ _GameWindowManager.removeTicker(id);
1771
+ }
1772
+ }
1773
+ }
1774
+ static removeTicker(tickerId) {
1775
+ let ticker = _GameWindowManager._currentTickers[tickerId];
1776
+ if (ticker) {
1777
+ if (ticker.args.hasOwnProperty(tagToRemoveAfter)) {
1778
+ let tagToRemoveAfter2 = ticker.args.tagToRemoveAfter;
1779
+ _GameWindowManager.removeCanvasElement(tagToRemoveAfter2);
1780
+ }
1781
+ _GameWindowManager.app.ticker.remove(ticker.fn);
1782
+ delete _GameWindowManager._currentTickers[tickerId];
1461
1783
  }
1462
1784
  }
1463
1785
  /**
@@ -1484,7 +1806,8 @@ var _GameWindowManager = class _GameWindowManager {
1484
1806
  currentElements[tag] = exportCanvasElement(_GameWindowManager._children[tag]);
1485
1807
  }
1486
1808
  return {
1487
- currentTickers: createExportableElement(_GameWindowManager._currentTickers),
1809
+ currentTickers: createExportableElement(_GameWindowManager.currentTickersWithoutCreatedBySteps),
1810
+ currentTickersSteps: createExportableElement(_GameWindowManager._currentTickersSteps),
1488
1811
  currentElements: createExportableElement(currentElements),
1489
1812
  childrenTagsOrder: createExportableElement(_GameWindowManager.childrenTagsOrder)
1490
1813
  };
@@ -1519,15 +1842,20 @@ var _GameWindowManager = class _GameWindowManager {
1519
1842
  }
1520
1843
  if (data.hasOwnProperty("currentTickers")) {
1521
1844
  let currentTickers = data["currentTickers"];
1522
- currentTickers.forEach((t) => {
1845
+ for (let id in currentTickers) {
1846
+ let t = currentTickers[id];
1523
1847
  let tags = t.canvasElementTags;
1524
- let ticker = geTickerInstanceByClassName(t.className, t.args, t.duration, t.priority);
1848
+ let ticker = geTickerInstanceById(t.id, t.args, t.duration, t.priority);
1525
1849
  if (ticker) {
1526
1850
  _GameWindowManager.addTicker(tags, ticker);
1527
1851
  } else {
1528
- console.error(`[Pixi'VN] Ticker ${t.className} not found`);
1852
+ console.error(`[Pixi'VN] Ticker ${t.id} not found`);
1529
1853
  }
1530
- });
1854
+ }
1855
+ }
1856
+ if (data.hasOwnProperty("currentTickersSteps")) {
1857
+ let currentTickersSteps = data["currentTickersSteps"];
1858
+ _GameWindowManager.restoneTickersSteps(currentTickersSteps);
1531
1859
  }
1532
1860
  } catch (e) {
1533
1861
  console.error("[Pixi'VN] Error importing data", e);
@@ -1541,9 +1869,9 @@ _GameWindowManager._children = {};
1541
1869
  * The order of the children tags.
1542
1870
  */
1543
1871
  _GameWindowManager.childrenTagsOrder = [];
1544
- _GameWindowManager._currentTickers = [];
1872
+ _GameWindowManager._currentTickers = {};
1545
1873
  _GameWindowManager._currentTickersSteps = {};
1546
- _GameWindowManager.currentTickersTimeouts = {};
1874
+ _GameWindowManager._currentTickersTimeouts = {};
1547
1875
  var GameWindowManager = _GameWindowManager;
1548
1876
 
1549
1877
  // src/managers/StepManager.ts
@@ -1610,7 +1938,8 @@ var _GameStepManager = class _GameStepManager {
1610
1938
  canvas: {
1611
1939
  childrenTagsOrder: [],
1612
1940
  currentElements: {},
1613
- currentTickers: []
1941
+ currentTickers: {},
1942
+ currentTickersSteps: {}
1614
1943
  },
1615
1944
  labelIndex: -1,
1616
1945
  openedLabels: []
@@ -1721,6 +2050,13 @@ var _GameStepManager = class _GameStepManager {
1721
2050
  _GameStepManager._openedLabels = _GameStepManager.originalStepData.openedLabels;
1722
2051
  }
1723
2052
  /* Run Methods */
2053
+ static get canGoNext() {
2054
+ let options = getChoiceMenuOptions();
2055
+ if (options && options.length > 0) {
2056
+ return false;
2057
+ }
2058
+ return true;
2059
+ }
1724
2060
  /**
1725
2061
  * Execute the next step and add it to the history.
1726
2062
  * @param props The props to pass to the step.
@@ -1730,7 +2066,7 @@ var _GameStepManager = class _GameStepManager {
1730
2066
  * ```typescript
1731
2067
  * function nextOnClick() {
1732
2068
  * setLoading(true)
1733
- * GameStepManager.runNextStep(yourParams)
2069
+ * GameStepManager.goNext(yourParams)
1734
2070
  * .then((result) => {
1735
2071
  * setUpdate((p) => p + 1)
1736
2072
  * setLoading(false)
@@ -1745,8 +2081,12 @@ var _GameStepManager = class _GameStepManager {
1745
2081
  * }
1746
2082
  * ```
1747
2083
  */
1748
- static runNextStep(props, choiseMade) {
2084
+ static goNext(props, choiseMade) {
1749
2085
  return __async(this, null, function* () {
2086
+ if (!_GameStepManager.canGoNext) {
2087
+ console.warn("[Pixi'VN] The player must make a choice");
2088
+ return;
2089
+ }
1750
2090
  _GameStepManager.increaseCurrentStepIndex();
1751
2091
  return yield _GameStepManager.runCurrentStep(props, choiseMade);
1752
2092
  });
@@ -1777,7 +2117,7 @@ var _GameStepManager = class _GameStepManager {
1777
2117
  return result;
1778
2118
  } else if (_GameStepManager.openedLabels.length > 1) {
1779
2119
  _GameStepManager.closeCurrentLabel();
1780
- return yield _GameStepManager.runNextStep(props, choiseMade);
2120
+ return yield _GameStepManager.goNext(props, choiseMade);
1781
2121
  } else {
1782
2122
  _GameStepManager.restorLastLabelList();
1783
2123
  console.error("[Pixi'VN] The end of the game is not managed, so the game is blocked. Read this documentation to know how to manage the end of the game: https://pixi-vn.web.app/start/labels.html#how-manage-the-end-of-the-game");
@@ -1821,8 +2161,15 @@ var _GameStepManager = class _GameStepManager {
1821
2161
  }
1822
2162
  try {
1823
2163
  if (labelId === CLOSE_LABEL_ID) {
1824
- let closeLabel = newCloseLabel(choiseMade);
1825
- return _GameStepManager.closeChoiceMenu(closeLabel, props);
2164
+ let closeCurrentLabel = newCloseLabel(choiseMade);
2165
+ let choice = {
2166
+ label: closeCurrentLabel,
2167
+ text: "",
2168
+ closeCurrentLabel: false,
2169
+ type: "close",
2170
+ props: {}
2171
+ };
2172
+ return _GameStepManager.closeChoiceMenu(choice, props);
1826
2173
  }
1827
2174
  let tempLabel = getLabelById(labelId);
1828
2175
  if (!tempLabel) {
@@ -1872,8 +2219,15 @@ var _GameStepManager = class _GameStepManager {
1872
2219
  }
1873
2220
  try {
1874
2221
  if (labelId === CLOSE_LABEL_ID) {
1875
- let closeLabel = newCloseLabel(choiseMade);
1876
- return _GameStepManager.closeChoiceMenu(closeLabel, props);
2222
+ let closeCurrentLabel = newCloseLabel(choiseMade);
2223
+ let choice = {
2224
+ label: closeCurrentLabel,
2225
+ text: "",
2226
+ closeCurrentLabel: false,
2227
+ type: "close",
2228
+ props: {}
2229
+ };
2230
+ return _GameStepManager.closeChoiceMenu(choice, props);
1877
2231
  }
1878
2232
  let tempLabel = getLabelById(labelId);
1879
2233
  if (!tempLabel) {
@@ -1889,7 +2243,8 @@ var _GameStepManager = class _GameStepManager {
1889
2243
  }
1890
2244
  /**
1891
2245
  * When the player is in a choice menu, can use this function to exit to the choice menu.
1892
- * @param props The props to pass to the step.
2246
+ * @param choice
2247
+ * @param props
1893
2248
  * @returns StepLabelResultType or undefined.
1894
2249
  * @example
1895
2250
  * ```typescript
@@ -1900,13 +2255,17 @@ var _GameStepManager = class _GameStepManager {
1900
2255
  * })
1901
2256
  * ```
1902
2257
  */
1903
- static closeChoiceMenu(label, props) {
2258
+ static closeChoiceMenu(choice, props) {
1904
2259
  return __async(this, null, function* () {
2260
+ let label = choice.label;
1905
2261
  let choiseMade = void 0;
1906
2262
  if (typeof label.choiseIndex === "number") {
1907
2263
  choiseMade = label.choiseIndex;
1908
2264
  }
1909
- return _GameStepManager.runNextStep(props, choiseMade);
2265
+ if (choice.closeCurrentLabel) {
2266
+ _GameStepManager.closeCurrentLabel();
2267
+ }
2268
+ return _GameStepManager.goNext(props, choiseMade);
1910
2269
  });
1911
2270
  }
1912
2271
  /* After Update Methods */