@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
@@ -33,8 +33,7 @@ var __decorateClass = (decorators, target, key, kind) => {
33
33
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
34
34
  if (decorator = decorators[i])
35
35
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
36
- if (kind && result)
37
- __defProp(target, key, result);
36
+ if (kind && result) __defProp(target, key, result);
38
37
  return result;
39
38
  };
40
39
  var __async = (__this, __arguments, generator) => {
@@ -59,7 +58,8 @@ var __async = (__this, __arguments, generator) => {
59
58
  };
60
59
 
61
60
  // src/constants.ts
62
- var PIXIVN_VERSION = "0.6.0";
61
+ var PIXIVN_VERSION = "0.6.2";
62
+ var Repeat = "repeat";
63
63
  function getStepSha1(step) {
64
64
  let sha1String = sha1__default.default(step.toString().toLocaleLowerCase());
65
65
  return sha1String.toString();
@@ -83,7 +83,7 @@ var Label = class {
83
83
  this._choiseIndex = choiseIndex;
84
84
  }
85
85
  /**
86
- * Get the id of the label
86
+ * Get the id of the label. This variable is used in the system to get the label by id, {@link getLabelById}
87
87
  */
88
88
  get id() {
89
89
  return this._id;
@@ -153,17 +153,23 @@ function exportCanvasElement(element) {
153
153
  return element.memory;
154
154
  }
155
155
  function importCanvasElement(memory) {
156
- let element = getCanvasElementInstanceByClassName(memory.className);
156
+ let element = getCanvasElementInstanceById(memory.pixivnId);
157
157
  if (element) {
158
158
  element.memory = memory;
159
159
  } else {
160
- throw new Error("[Pixi'VN] The element " + memory.className + " could not be created");
160
+ throw new Error("[Pixi'VN] The element " + memory.pixivnId + " could not be created");
161
161
  }
162
162
  return element;
163
163
  }
164
164
 
165
165
  // src/classes/canvas/CanvasContainer.ts
166
+ var CANVAS_CONTAINER_ID = "CanvasContainer";
166
167
  var CanvasContainer = class extends pixi_js.Container {
168
+ constructor(options) {
169
+ super(options);
170
+ this.pixivnId = CANVAS_CONTAINER_ID;
171
+ this.pixivnId = this.constructor.prototype.pixivnId;
172
+ }
167
173
  get memory() {
168
174
  let memory = getMemoryContainer(this);
169
175
  this.children.forEach((child) => {
@@ -179,8 +185,12 @@ var CanvasContainer = class extends pixi_js.Container {
179
185
  }
180
186
  };
181
187
  function getMemoryContainer(element) {
188
+ let className = "CanvasContainer";
189
+ if (element.hasOwnProperty("pixivnId")) {
190
+ className = element.pixivnId;
191
+ }
182
192
  return {
183
- className: "CanvasContainer",
193
+ pixivnId: className,
184
194
  elements: [],
185
195
  width: element.width,
186
196
  height: element.height,
@@ -296,40 +306,43 @@ function getTextStyle(style) {
296
306
 
297
307
  // src/decorators/EventDecorator.ts
298
308
  var registeredEvents = {};
299
- function getEventTypeByClassName(eventName) {
309
+ function getEventTypeById(eventId) {
300
310
  try {
301
- let eventType = registeredEvents[eventName];
311
+ let eventType = registeredEvents[eventId];
302
312
  if (!eventType) {
303
- console.error(`[Pixi'VN] Event ${eventName} not found`);
313
+ console.error(`[Pixi'VN] Event ${eventId} not found`);
304
314
  return;
305
315
  }
306
316
  new eventType();
307
317
  return eventType;
308
318
  } catch (e) {
309
- console.error(`[Pixi'VN] Error while getting Event ${eventName}`, e);
319
+ console.error(`[Pixi'VN] Error while getting Event ${eventId}`, e);
310
320
  return;
311
321
  }
312
322
  }
313
- function getEventInstanceByClassName(eventName) {
323
+ function getEventInstanceById(eventId) {
314
324
  try {
315
- let eventType = registeredEvents[eventName];
325
+ let eventType = registeredEvents[eventId];
316
326
  if (!eventType) {
317
- console.error(`[Pixi'VN] Event ${eventName} not found`);
327
+ console.error(`[Pixi'VN] Event ${eventId} not found`);
318
328
  return;
319
329
  }
320
330
  let event = new eventType();
321
331
  return event;
322
332
  } catch (e) {
323
- console.error(`[Pixi'VN] Error while getting Event ${eventName}`, e);
333
+ console.error(`[Pixi'VN] Error while getting Event ${eventId}`, e);
324
334
  return;
325
335
  }
326
336
  }
327
337
 
328
338
  // src/classes/canvas/CanvasSprite.ts
339
+ var CANVAS_SPRITE_ID = "CanvasSprite";
329
340
  var CanvasSprite = class _CanvasSprite extends pixi_js.Sprite {
330
- constructor() {
331
- super(...arguments);
341
+ constructor(options) {
342
+ super(options);
343
+ this.pixivnId = CANVAS_SPRITE_ID;
332
344
  this._onEvents = {};
345
+ this.pixivnId = this.constructor.prototype.pixivnId;
333
346
  }
334
347
  get memory() {
335
348
  return getMemorySprite(this);
@@ -370,9 +383,9 @@ var CanvasSprite = class _CanvasSprite extends pixi_js.Sprite {
370
383
  * ```
371
384
  */
372
385
  onEvent(event, eventClass) {
373
- let className = eventClass.name;
374
- let instance = getEventInstanceByClassName(className);
375
- this._onEvents[event] = className;
386
+ let id = eventClass.prototype.id;
387
+ let instance = getEventInstanceById(id);
388
+ this._onEvents[event] = id;
376
389
  if (instance) {
377
390
  super.on(event, () => {
378
391
  instance.fn(event, this);
@@ -401,7 +414,7 @@ var CanvasSprite = class _CanvasSprite extends pixi_js.Sprite {
401
414
  function getMemorySprite(element) {
402
415
  let temp = getMemoryContainer(element);
403
416
  return __spreadProps(__spreadValues({}, temp), {
404
- className: "CanvasSprite",
417
+ pixivnId: element.pixivnId,
405
418
  textureImage: getTextureMemory(element.texture),
406
419
  anchor: { x: element.anchor.x, y: element.anchor.y },
407
420
  roundPixels: element.roundPixels,
@@ -424,8 +437,8 @@ function setMemorySprite(element, memory) {
424
437
  }
425
438
  memory.roundPixels && (element.roundPixels = memory.roundPixels);
426
439
  for (let event in memory.onEvents) {
427
- let className = memory.onEvents[event];
428
- let instance = getEventTypeByClassName(className);
440
+ let id = memory.onEvents[event];
441
+ let instance = getEventTypeById(id);
429
442
  if (instance) {
430
443
  element.onEvent(event, instance);
431
444
  }
@@ -433,9 +446,11 @@ function setMemorySprite(element, memory) {
433
446
  }
434
447
 
435
448
  // src/classes/canvas/CanvasImage.ts
449
+ var CANVAS_IMAGE_ID = "CanvasImage";
436
450
  var CanvasImage = class _CanvasImage extends CanvasSprite {
437
451
  constructor(options, imageLink) {
438
452
  super(options);
453
+ this.pixivnId = CANVAS_IMAGE_ID;
439
454
  this.imageLink = "";
440
455
  if (imageLink) {
441
456
  this.imageLink = imageLink;
@@ -443,12 +458,13 @@ var CanvasImage = class _CanvasImage extends CanvasSprite {
443
458
  }
444
459
  get memory() {
445
460
  return __spreadProps(__spreadValues({}, getMemorySprite(this)), {
446
- className: "CanvasImage",
447
- textureImage: { image: this.imageLink }
461
+ pixivnId: this.pixivnId,
462
+ imageLink: this.imageLink
448
463
  });
449
464
  }
450
465
  set memory(memory) {
451
466
  setMemorySprite(this, memory);
467
+ this.imageLink = memory.imageLink;
452
468
  }
453
469
  static from(source, skipCache) {
454
470
  let sprite = pixi_js.Sprite.from(source, skipCache);
@@ -476,10 +492,13 @@ var CanvasImage = class _CanvasImage extends CanvasSprite {
476
492
  });
477
493
  }
478
494
  };
495
+ var CANVAS_TEXT_ID = "CanvasText";
479
496
  var CanvasText = class extends pixi_js.Text {
480
- constructor() {
481
- super(...arguments);
497
+ constructor(options) {
498
+ super(options);
499
+ this.pixivnId = CANVAS_TEXT_ID;
482
500
  this._onEvents = {};
501
+ this.pixivnId = this.constructor.prototype.pixivnId;
483
502
  }
484
503
  get memory() {
485
504
  return getMemoryText(this);
@@ -520,9 +539,9 @@ var CanvasText = class extends pixi_js.Text {
520
539
  * ```
521
540
  */
522
541
  onEvent(event, eventClass) {
523
- let className = eventClass.name;
524
- let instance = getEventInstanceByClassName(className);
525
- this._onEvents[event] = className;
542
+ let id = eventClass.prototype.id;
543
+ let instance = getEventInstanceById(id);
544
+ this._onEvents[event] = id;
526
545
  if (instance) {
527
546
  super.on(event, () => {
528
547
  instance.fn(event, this);
@@ -545,7 +564,7 @@ var CanvasText = class extends pixi_js.Text {
545
564
  function getMemoryText(element) {
546
565
  let temp = getMemoryContainer(element);
547
566
  return __spreadProps(__spreadValues({}, temp), {
548
- className: "CanvasText",
567
+ pixivnId: element.pixivnId,
549
568
  anchor: { x: element.anchor.x, y: element.anchor.y },
550
569
  text: element.text,
551
570
  resolution: element.resolution,
@@ -568,8 +587,8 @@ function setMemoryText(element, memory) {
568
587
  memory.style && (element.style = memory.style);
569
588
  memory.roundPixels && (element.roundPixels = memory.roundPixels);
570
589
  for (let event in memory.onEvents) {
571
- let className = memory.onEvents[event];
572
- let instance = getEventTypeByClassName(className);
590
+ let id = memory.onEvents[event];
591
+ let instance = getEventTypeById(id);
573
592
  if (instance) {
574
593
  element.onEvent(event, instance);
575
594
  }
@@ -578,28 +597,28 @@ function setMemoryText(element, memory) {
578
597
 
579
598
  // src/decorators/CanvasElementDecorator.ts
580
599
  var registeredCanvasElement = {};
581
- function getCanvasElementInstanceByClassName(canvasName) {
600
+ function getCanvasElementInstanceById(canvasId) {
582
601
  try {
583
- let eventType = registeredCanvasElement[canvasName];
602
+ let eventType = registeredCanvasElement[canvasId];
584
603
  if (!eventType) {
585
- if (canvasName === "CanvasContainer") {
604
+ if (canvasId === CANVAS_CONTAINER_ID) {
586
605
  eventType = CanvasContainer;
587
- } else if (canvasName === "CanvasImage") {
606
+ } else if (canvasId === CANVAS_IMAGE_ID) {
588
607
  eventType = CanvasImage;
589
- } else if (canvasName === "CanvasSprite") {
608
+ } else if (canvasId === CANVAS_SPRITE_ID) {
590
609
  eventType = CanvasSprite;
591
- } else if (canvasName === "CanvasText") {
610
+ } else if (canvasId === CANVAS_TEXT_ID) {
592
611
  eventType = CanvasText;
593
612
  }
594
613
  }
595
614
  if (!eventType) {
596
- console.error(`[Pixi'VN] CanvasElement ${canvasName} not found`);
615
+ console.error(`[Pixi'VN] CanvasElement ${canvasId} not found`);
597
616
  return;
598
617
  }
599
618
  let canvasElement = new eventType();
600
619
  return canvasElement;
601
620
  } catch (e) {
602
- console.error(`[Pixi'VN] Error while getting CanvasElement ${canvasName}`, e);
621
+ console.error(`[Pixi'VN] Error while getting CanvasElement ${canvasId}`, e);
603
622
  return;
604
623
  }
605
624
  }
@@ -612,30 +631,28 @@ function tickerDecorator(name) {
612
631
  name = target.name;
613
632
  }
614
633
  if (registeredTickers[name]) {
615
- console.warn(`[Pixi'VN] Ticker ${name} already exists, it will be overwritten`);
634
+ console.info(`[Pixi'VN] Ticker ${name} already exists, it will be overwritten`);
616
635
  }
636
+ target.prototype.id = name;
617
637
  registeredTickers[name] = target;
618
638
  };
619
639
  }
620
- function geTickerInstanceByClassName(tickerName, args, duration, priority) {
640
+ function geTickerInstanceById(tickerId, args, duration, priority) {
621
641
  try {
622
- let ticker = registeredTickers[tickerName];
642
+ let ticker = registeredTickers[tickerId];
623
643
  if (!ticker) {
624
- console.error(`[Pixi'VN] Ticker ${tickerName} not found`);
644
+ console.error(`[Pixi'VN] Ticker ${tickerId} not found`);
625
645
  return;
626
646
  }
627
647
  return new ticker(args, duration, priority);
628
648
  } catch (e) {
629
- console.error(`[Pixi'VN] Error while getting Ticker ${tickerName}`, e);
649
+ console.error(`[Pixi'VN] Error while getting Ticker ${tickerId}`, e);
630
650
  return;
631
651
  }
632
652
  }
633
653
 
634
- // src/types/PauseType.ts
635
- var PauseValueType = "pause";
636
-
637
- // src/types/RepeatType.ts
638
- var Repeat = "repeat";
654
+ // src/types/CloseType.ts
655
+ var Close = "close";
639
656
 
640
657
  // src/decorators/LabelDecorator.ts
641
658
  var registeredLabels = {};
@@ -652,44 +669,75 @@ function getLabelById(id) {
652
669
  function getDialogue() {
653
670
  return GameStorageManager.getVariable(GameStorageManager.keysSystem.CURRENT_DIALOGUE_MEMORY_KEY);
654
671
  }
672
+ function getChoiceMenuOptions() {
673
+ let d = GameStorageManager.getVariable(GameStorageManager.keysSystem.CURRENT_MENU_OPTIONS_MEMORY_KEY);
674
+ if (d) {
675
+ let options = [];
676
+ d.forEach((option, index) => {
677
+ if (option.type === Close) {
678
+ let itemLabel = newCloseLabel(index);
679
+ options.push({
680
+ text: option.text,
681
+ label: itemLabel,
682
+ type: Close,
683
+ closeCurrentLabel: option.closeCurrentLabel,
684
+ props: {}
685
+ });
686
+ return;
687
+ }
688
+ let label = getLabelById(option.label);
689
+ if (label) {
690
+ let itemLabel = new Label(label.id, label.steps, label.onStepRun, index);
691
+ options.push(__spreadProps(__spreadValues({}, option), {
692
+ label: itemLabel
693
+ }));
694
+ }
695
+ });
696
+ return options;
697
+ }
698
+ return void 0;
699
+ }
655
700
 
656
701
  // src/classes/ticker/TickerBase.ts
657
702
  var TickerBase = class {
658
703
  /**
659
704
  * @param args The arguments that you want to pass to the ticker.
660
- * @param duration The duration of the ticker. If is undefined, the ticker will be called every frame.
661
- * @param priority The priority of the ticker. If is undefined, the priority will be UPDATE_PRIORITY.NORMAL.
705
+ * @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
706
+ * @param priority The priority of the ticker. @default UPDATE_PRIORITY.NORMAL
662
707
  */
663
708
  constructor(args, duration, priority) {
709
+ /**
710
+ * Get the id of the ticker. This variable is used in the system to get the ticker by id, {@link geTickerInstanceById}
711
+ */
712
+ this.id = "ticker_id_not_set";
664
713
  this.args = args;
665
714
  this.duration = duration;
666
715
  this.priority = priority;
716
+ this.id = this.constructor.prototype.id;
667
717
  }
668
718
  /**
669
719
  * The method that will be called every frame.
670
720
  * This method should be overridden and you can use GameWindowManager.addCanvasElement() to get the canvas element of the canvas, and edit them.
671
- * @param t The ticker that is calling this method
672
- * @param args The arguments that you passed when you added the ticker
673
- * @param tags The tags of the canvas elements that are connected to this ticker
721
+ * @param _ticker The ticker that is calling this method
722
+ * @param _args The arguments that you passed when you added the ticker
723
+ * @param _tags The tags of the canvas elements that are connected to this ticker
724
+ * @param _tickerId The id of the ticker. You can use this to get the ticker from the {@link GameWindowManager.currentTickers}
674
725
  */
675
- fn(_t, _args, _tags) {
726
+ fn(_ticker, _args, _tags, _tickerId) {
676
727
  throw new Error("[Pixi'VN] The method TickerBase.fn() must be overridden");
677
728
  }
678
729
  };
679
- var TickerFadeAlpha = class extends TickerBase {
680
- /**
681
- * The method that will be called every frame to fade the alpha of the canvas element of the canvas.
682
- * @param delta The delta time
683
- * @param args The arguments that are passed to the ticker
684
- * @param tags The tags of the canvas element that are connected to this ticker
685
- */
686
- fn(t, args, tags) {
730
+
731
+ // src/classes/ticker/FadeAlphaTicker.ts
732
+ var FadeAlphaTicker = class extends TickerBase {
733
+ fn(ticker, args, tags, tickerId) {
687
734
  let type = args.type === void 0 ? "hide" : args.type;
688
- let speed = args.speed === void 0 ? 0.1 : args.speed;
735
+ let duration = args.duration === void 0 ? 1 : args.duration;
736
+ let speed = 1 / (duration * 60);
689
737
  let limit = args.limit === void 0 ? type === "hide" ? 0 : 1 : args.limit;
690
- let removeElementAfter = args.tagToRemoveAfter || [];
691
- if (typeof removeElementAfter === "string") {
692
- removeElementAfter = [removeElementAfter];
738
+ let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
739
+ if (typeof tagToRemoveAfter2 === "string") {
740
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
693
741
  }
694
742
  if (type === "hide" && limit < 0) {
695
743
  limit = 0;
@@ -710,61 +758,88 @@ var TickerFadeAlpha = class extends TickerBase {
710
758
  let element = GameWindowManager.getCanvasElement(tag);
711
759
  if (element && element instanceof pixi_js.Container) {
712
760
  if (type === "show" && element.alpha < limit) {
713
- element.alpha += speed * t.deltaTime;
761
+ element.alpha += speed * ticker.deltaTime;
714
762
  } else if (type === "hide" && element.alpha > limit) {
715
- element.alpha -= speed * t.deltaTime;
716
- } else {
763
+ element.alpha -= speed * ticker.deltaTime;
764
+ }
765
+ if (type === "show" && element.alpha >= limit) {
766
+ element.alpha = limit;
767
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
768
+ } else if (type === "hide" && element.alpha <= limit) {
717
769
  element.alpha = limit;
718
- GameWindowManager.removeAssociationBetweenTickerCanvasElement(tag, this);
719
- GameWindowManager.removeCanvasElement(removeElementAfter);
770
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
720
771
  }
721
772
  }
722
773
  });
723
774
  }
724
775
  };
725
- TickerFadeAlpha = __decorateClass([
776
+ FadeAlphaTicker = __decorateClass([
726
777
  tickerDecorator()
727
- ], TickerFadeAlpha);
778
+ ], FadeAlphaTicker);
728
779
 
729
780
  // src/functions/TickerUtility.ts
730
781
  function updateTickerProgression(args, propertyName, progression) {
731
- if (args.hasOwnProperty(propertyName) && typeof args[propertyName] !== "number") {
782
+ if (args[propertyName] === void 0 || !progression || args[propertyName] === progression.limit) {
732
783
  return;
733
784
  }
734
- if (args[propertyName] !== void 0 && progression && args[propertyName] !== progression.limit) {
785
+ if (typeof args[propertyName] === "number") {
735
786
  if (progression.type === "linear") {
736
- args[propertyName] += progression.amt;
737
- if (progression.limit !== void 0) {
738
- if (args[propertyName] > progression.limit && progression.amt > 0) {
739
- args[propertyName] = progression.limit;
740
- } else if (args[propertyName] < progression.limit && progression.amt < 0) {
741
- args[propertyName] = progression.limit;
742
- }
743
- }
787
+ args[propertyName] = getLinearProgression(args[propertyName], progression);
744
788
  } else if (progression.type === "exponential") {
745
- args[propertyName] += args[propertyName] * progression.percentage;
746
- if (progression.limit !== void 0) {
747
- if (args[propertyName] > progression.limit && progression.percentage > 0) {
748
- args[propertyName] = progression.limit;
749
- } else if (args[propertyName] < progression.limit && progression.percentage < 0) {
750
- args[propertyName] = progression.limit;
751
- }
752
- }
789
+ args[propertyName] = getExponentialProgression(args[propertyName], progression);
790
+ }
791
+ } 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") {
792
+ if (progression.type === "linear") {
793
+ args[propertyName].x = getLinearProgression(args[propertyName].x, progression);
794
+ args[propertyName].y = getLinearProgression(args[propertyName].y, progression);
795
+ } else if (progression.type === "exponential") {
796
+ args[propertyName].x = getExponentialProgression(args[propertyName].x, progression);
797
+ args[propertyName].y = getExponentialProgression(args[propertyName].y, progression);
798
+ }
799
+ }
800
+ }
801
+ function getLinearProgression(number, progression) {
802
+ if (progression.limit !== void 0) {
803
+ if (number > progression.limit && progression.amt > 0) {
804
+ return progression.limit;
805
+ } else if (number < progression.limit && progression.amt < 0) {
806
+ return progression.limit;
753
807
  }
754
808
  }
809
+ return number + progression.amt / 60;
810
+ }
811
+ function getExponentialProgression(number, progression) {
812
+ if (progression.limit !== void 0) {
813
+ if (number > progression.limit && progression.percentage > 0) {
814
+ return progression.limit;
815
+ } else if (number < progression.limit && progression.percentage < 0) {
816
+ return progression.limit;
817
+ }
818
+ }
819
+ return number + number * progression.percentage;
755
820
  }
756
821
 
757
- // src/classes/ticker/TickerMove.ts
758
- var TickerMove = class extends TickerBase {
759
- /**
760
- * The method that will be called every frame to move the canvas element of the canvas.
761
- * @param t The ticker that is calling this method
762
- * @param args The arguments that are passed to the ticker
763
- * @param tags The tags of the canvas element that are connected to this ticker
764
- */
765
- fn(t, args, tags) {
766
- let speed = args.speed === void 0 ? 0.1 : args.speed;
822
+ // src/classes/ticker/MoveTicker.ts
823
+ var MoveTicker = class extends TickerBase {
824
+ fn(ticker, args, tags, tickerId) {
825
+ let xSpeed = 1;
826
+ let ySpeed = 1;
827
+ if (args.speed) {
828
+ if (typeof args.speed === "number") {
829
+ xSpeed = args.speed;
830
+ ySpeed = args.speed;
831
+ } else {
832
+ xSpeed = args.speed.x;
833
+ ySpeed = args.speed.y;
834
+ }
835
+ }
836
+ xSpeed /= 60;
837
+ ySpeed /= 60;
767
838
  let destination = args.destination;
839
+ let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
840
+ if (typeof tagToRemoveAfter2 === "string") {
841
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
842
+ }
768
843
  tags.filter((tag) => {
769
844
  var _a;
770
845
  let element = GameWindowManager.getCanvasElement(tag);
@@ -777,41 +852,42 @@ var TickerMove = class extends TickerBase {
777
852
  }).forEach((tag) => {
778
853
  let element = GameWindowManager.getCanvasElement(tag);
779
854
  if (element && element instanceof pixi_js.Container) {
780
- let xDistance = destination.x - element.x;
855
+ let xDistance = destination.x - element.x > 0 ? 1 : -1;
781
856
  if (xDistance != 0) {
782
- element.x += xDistance / speed * t.deltaTime;
857
+ element.x += xDistance * xSpeed * ticker.deltaTime;
783
858
  let newDistance = destination.x - element.x;
784
859
  if (xDistance < 0 && newDistance > 0 || xDistance > 0 && newDistance < 0) {
785
860
  element.x = destination.x;
786
861
  }
787
862
  }
788
- let yDistance = destination.y - element.y;
863
+ let yDistance = destination.y - element.y > 0 ? 1 : -1;
789
864
  if (yDistance != 0) {
790
- element.y += yDistance / speed * t.deltaTime;
865
+ element.y += yDistance * ySpeed * ticker.deltaTime;
791
866
  let newDistance = destination.y - element.y;
792
867
  if (yDistance < 0 && newDistance > 0 || yDistance > 0 && newDistance < 0) {
793
868
  element.y = destination.y;
794
869
  }
795
870
  }
871
+ if (element.x == destination.x && element.y == destination.y) {
872
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
873
+ }
796
874
  }
797
875
  });
798
876
  if (args.speedProgression)
799
877
  updateTickerProgression(args, "speed", args.speedProgression);
800
878
  }
801
879
  };
802
- TickerMove = __decorateClass([
880
+ MoveTicker = __decorateClass([
803
881
  tickerDecorator()
804
- ], TickerMove);
805
- var TickerRotate = class extends TickerBase {
806
- /**
807
- * The method that will be called every frame to rotate the canvas element of the canvas.
808
- * @param delta The delta time
809
- * @param args The arguments that are passed to the ticker
810
- * @param tags The tags of the canvas element that are connected to this ticker
811
- */
812
- fn(t, args, tags) {
813
- let speed = args.speed === void 0 ? 0.1 : args.speed;
882
+ ], MoveTicker);
883
+ var RotateTicker = class extends TickerBase {
884
+ fn(ticker, args, tags, tickerId) {
885
+ let speed = (args.speed === void 0 ? 1 : args.speed) / 60;
814
886
  let clockwise = args.clockwise === void 0 ? true : args.clockwise;
887
+ let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
888
+ if (typeof tagToRemoveAfter2 === "string") {
889
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
890
+ }
815
891
  tags.filter((tag) => {
816
892
  var _a;
817
893
  let element = GameWindowManager.getCanvasElement(tag);
@@ -825,18 +901,111 @@ var TickerRotate = class extends TickerBase {
825
901
  let element = GameWindowManager.getCanvasElement(tag);
826
902
  if (element && element instanceof pixi_js.Container) {
827
903
  if (clockwise)
828
- element.rotation += speed * t.deltaTime;
904
+ element.rotation += speed * ticker.deltaTime;
829
905
  else
830
- element.rotation -= speed * t.deltaTime;
906
+ element.rotation -= speed * ticker.deltaTime;
907
+ if (speed < 1e-5 && !(args.speedProgression && args.speedProgression.type == "linear" && args.speedProgression.amt != 0)) {
908
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
909
+ }
831
910
  }
832
911
  });
833
912
  if (args.speedProgression)
834
913
  updateTickerProgression(args, "speed", args.speedProgression);
835
914
  }
836
915
  };
837
- TickerRotate = __decorateClass([
916
+ RotateTicker = __decorateClass([
838
917
  tickerDecorator()
839
- ], TickerRotate);
918
+ ], RotateTicker);
919
+ var ZoomTicker = class extends TickerBase {
920
+ fn(ticker, args, tags, tickerId) {
921
+ let xSpeed = 0.1;
922
+ let ySpeed = 0.1;
923
+ if (args.speed) {
924
+ if (typeof args.speed === "number") {
925
+ xSpeed = args.speed;
926
+ ySpeed = args.speed;
927
+ } else {
928
+ xSpeed = args.speed.x;
929
+ ySpeed = args.speed.y;
930
+ }
931
+ }
932
+ xSpeed /= 60;
933
+ ySpeed /= 60;
934
+ let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
935
+ if (typeof tagToRemoveAfter2 === "string") {
936
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
937
+ }
938
+ let type = args.type || "zoom";
939
+ let xLimit = type === "zoom" ? Infinity : 0;
940
+ let yLimit = type === "zoom" ? Infinity : 0;
941
+ if (args.limit) {
942
+ if (typeof args.limit === "number") {
943
+ xLimit = args.limit;
944
+ yLimit = args.limit;
945
+ } else {
946
+ xLimit = args.limit.x;
947
+ yLimit = args.limit.y;
948
+ }
949
+ }
950
+ tags.filter((tag) => {
951
+ var _a;
952
+ let element = GameWindowManager.getCanvasElement(tag);
953
+ if (args.startOnlyIfHaveTexture) {
954
+ if (element && element instanceof pixi_js.Sprite && ((_a = element.texture) == null ? void 0 : _a.label) == "EMPTY") {
955
+ return false;
956
+ }
957
+ }
958
+ return true;
959
+ }).forEach((tag) => {
960
+ let element = GameWindowManager.getCanvasElement(tag);
961
+ if (element && element instanceof pixi_js.Container) {
962
+ if (type === "zoom" && (element.scale.x < xLimit || element.scale.y < yLimit)) {
963
+ element.scale.x += xSpeed * ticker.deltaTime;
964
+ element.scale.y += ySpeed * ticker.deltaTime;
965
+ } else if (type === "unzoom" && (element.scale.x > xLimit || element.scale.y > yLimit)) {
966
+ element.scale.x -= xSpeed * ticker.deltaTime;
967
+ element.scale.y -= ySpeed * ticker.deltaTime;
968
+ }
969
+ if (type === "zoom") {
970
+ if (element.scale.x > xLimit) {
971
+ element.scale.x = xLimit;
972
+ }
973
+ if (element.scale.y > yLimit) {
974
+ element.scale.y = yLimit;
975
+ }
976
+ if (element.scale.x >= xLimit && element.scale.y >= yLimit) {
977
+ element.scale.x = xLimit;
978
+ element.scale.y = yLimit;
979
+ this.onEndOfTicker(tag, tickerId, element, tagToRemoveAfter2);
980
+ }
981
+ } else if (type === "unzoom") {
982
+ if (element.scale.x < xLimit) {
983
+ element.scale.x = xLimit;
984
+ }
985
+ if (element.scale.y < yLimit) {
986
+ element.scale.y = yLimit;
987
+ }
988
+ if (element.scale.x <= xLimit && element.scale.y <= yLimit) {
989
+ element.scale.x = xLimit;
990
+ element.scale.y = yLimit;
991
+ this.onEndOfTicker(tag, tickerId, element, tagToRemoveAfter2);
992
+ }
993
+ }
994
+ if (xSpeed < 1e-5 && ySpeed < 1e-5 && !(args.speedProgression && args.speedProgression.type == "linear" && args.speedProgression.amt != 0)) {
995
+ this.onEndOfTicker(tag, tickerId, element, tagToRemoveAfter2);
996
+ }
997
+ }
998
+ });
999
+ if (args.speedProgression)
1000
+ updateTickerProgression(args, "speed", args.speedProgression);
1001
+ }
1002
+ onEndOfTicker(tag, tickerId, _element, tagToRemoveAfter2) {
1003
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
1004
+ }
1005
+ };
1006
+ ZoomTicker = __decorateClass([
1007
+ tickerDecorator()
1008
+ ], ZoomTicker);
840
1009
 
841
1010
  // src/functions/ExportUtility.ts
842
1011
  function createExportableElement(element) {
@@ -986,6 +1155,9 @@ function asciiArtLog() {
986
1155
  `);
987
1156
  }
988
1157
 
1158
+ // src/types/ticker/TagToRemoveAfterType.ts
1159
+ var tagToRemoveAfter = "tagToRemoveAfter";
1160
+
989
1161
  // src/managers/WindowManager.ts
990
1162
  var _GameWindowManager = class _GameWindowManager {
991
1163
  constructor() {
@@ -1168,25 +1340,25 @@ var _GameWindowManager = class _GameWindowManager {
1168
1340
  /**
1169
1341
  * Remove a canvas element from the canvas.
1170
1342
  * And remove all tickers that are not connected to any canvas element.
1171
- * @param tag The tag of the canvas element to be removed.
1343
+ * @param tags The tag of the canvas element to be removed.
1172
1344
  * @returns
1173
1345
  * @example
1174
1346
  * ```typescript
1175
1347
  * GameWindowManager.removeCanvasElement("bunny");
1176
1348
  * ```
1177
1349
  */
1178
- static removeCanvasElement(tag) {
1179
- if (typeof tag === "string") {
1180
- tag = [tag];
1350
+ static removeCanvasElement(tags) {
1351
+ if (typeof tags === "string") {
1352
+ tags = [tags];
1181
1353
  }
1182
- tag.forEach((t) => {
1183
- if (_GameWindowManager._children[t]) {
1184
- _GameWindowManager.app.stage.removeChild(_GameWindowManager._children[t]);
1185
- delete _GameWindowManager._children[t];
1354
+ tags.forEach((tag) => {
1355
+ if (_GameWindowManager._children[tag]) {
1356
+ _GameWindowManager.app.stage.removeChild(_GameWindowManager._children[tag]);
1357
+ delete _GameWindowManager._children[tag];
1358
+ _GameWindowManager.removeTickerByCanvasElement(tag);
1186
1359
  }
1187
1360
  });
1188
- _GameWindowManager.removeTickersWithoutAssociatedCanvasElement();
1189
- _GameWindowManager.childrenTagsOrder = _GameWindowManager.childrenTagsOrder.filter((t) => !tag.includes(t));
1361
+ _GameWindowManager.childrenTagsOrder = _GameWindowManager.childrenTagsOrder.filter((t) => !tags.includes(t));
1190
1362
  }
1191
1363
  /**
1192
1364
  * Get a canvas element by the tag.
@@ -1216,18 +1388,43 @@ var _GameWindowManager = class _GameWindowManager {
1216
1388
  _GameWindowManager.app.stage.removeChildren();
1217
1389
  _GameWindowManager._children = {};
1218
1390
  _GameWindowManager.childrenTagsOrder = [];
1219
- _GameWindowManager.removeTickers();
1391
+ _GameWindowManager.removeAllTickers();
1220
1392
  }
1221
1393
  /**
1222
1394
  * Edit the tag of a canvas element.
1223
1395
  * @param oldTag The old tag of the canvas element.
1224
1396
  * @param newTag The new tag of the canvas element.
1225
1397
  */
1226
- static editTagCanvasElement(oldTag, newTag) {
1398
+ static editCanvasElementTag(oldTag, newTag) {
1227
1399
  if (_GameWindowManager._children[oldTag]) {
1228
1400
  _GameWindowManager._children[newTag] = _GameWindowManager._children[oldTag];
1229
1401
  delete _GameWindowManager._children[oldTag];
1230
1402
  }
1403
+ if (_GameWindowManager._currentTickersSteps[oldTag]) {
1404
+ _GameWindowManager._currentTickersSteps[newTag] = _GameWindowManager._currentTickersSteps[oldTag];
1405
+ delete _GameWindowManager._currentTickersSteps[oldTag];
1406
+ }
1407
+ for (let id in _GameWindowManager._currentTickers) {
1408
+ let ticker = _GameWindowManager._currentTickers[id];
1409
+ if (ticker.canvasElementTags.includes(oldTag)) {
1410
+ ticker.canvasElementTags = ticker.canvasElementTags.map((t) => t === oldTag ? newTag : t);
1411
+ if (ticker.args.hasOwnProperty(tagToRemoveAfter)) {
1412
+ let tagToRemoveAfter2 = ticker.args.tagToRemoveAfter;
1413
+ if (typeof tagToRemoveAfter2 === "string") {
1414
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
1415
+ }
1416
+ if (Array.isArray(tagToRemoveAfter2)) {
1417
+ ticker.args.tagToRemoveAfter = tagToRemoveAfter2.map((t) => t === oldTag ? newTag : t);
1418
+ }
1419
+ }
1420
+ }
1421
+ }
1422
+ for (let timeout in _GameWindowManager._currentTickersTimeouts) {
1423
+ let TickerTimeout = _GameWindowManager._currentTickersTimeouts[timeout];
1424
+ if (TickerTimeout.tags.includes(oldTag)) {
1425
+ TickerTimeout.tags = TickerTimeout.tags.map((t) => t === oldTag ? newTag : t);
1426
+ }
1427
+ }
1231
1428
  }
1232
1429
  /** Edit Tickers Methods */
1233
1430
  /**
@@ -1236,106 +1433,127 @@ var _GameWindowManager = class _GameWindowManager {
1236
1433
  static get currentTickers() {
1237
1434
  return _GameWindowManager._currentTickers;
1238
1435
  }
1436
+ static get currentTickersList() {
1437
+ return Object.values(_GameWindowManager._currentTickers);
1438
+ }
1439
+ static get currentTickersWithoutCreatedBySteps() {
1440
+ return Object.fromEntries(Object.entries(_GameWindowManager._currentTickers).filter(([_, ticker]) => !ticker.createdByTicketStepsId));
1441
+ }
1239
1442
  /**
1240
1443
  * The steps of the tickers
1241
1444
  */
1242
1445
  static get currentTickersSteps() {
1243
1446
  return _GameWindowManager._currentTickersSteps;
1244
1447
  }
1448
+ static generateTickerId(tickerData) {
1449
+ try {
1450
+ return sha1__default.default(JSON.stringify(tickerData)).toString() + "_" + Math.random().toString(36).substring(7);
1451
+ } catch (e) {
1452
+ throw new Error(`[Pixi'VN] Error to generate ticker id: ${e}`);
1453
+ }
1454
+ }
1245
1455
  /**
1246
- * Run a ticker.
1456
+ * Run a ticker. You can run multiple addTicker with the same tag and different tickerClasses.
1457
+ * If you run a ticker with the same tag and tickerClass, the old ticker will be removed.
1458
+ * If already exists a sequence of tickers with the same tag, it will be removed.
1247
1459
  * @param canvasEslementTag The tag of the canvas element that will use the ticker.
1248
1460
  * @param ticker The ticker class to be run.
1249
1461
  * @param args The arguments to be used in the ticker.
1250
- * @param duration The time to be used in the ticker. This number is in milliseconds. If it is undefined, the ticker will run forever.
1462
+ * @param duration The time to be used in the ticker. This number is in seconds. If it is undefined, the ticker will run forever.
1251
1463
  * @param priority The priority to be used in the ticker.
1252
1464
  * @returns
1253
1465
  * @example
1254
1466
  * ```typescript
1255
- * GameWindowManager.addTicker("alien", new TickerRotate({ speed: 0.2 }))
1467
+ * GameWindowManager.addTicker("alien", new RotateTicker({ speed: 0.2 }))
1256
1468
  * ```
1257
1469
  */
1258
1470
  static addTicker(canvasElementTag, ticker) {
1259
- let tickerName = ticker.constructor.name;
1471
+ let tickerId = ticker.id;
1260
1472
  if (typeof canvasElementTag === "string") {
1261
1473
  canvasElementTag = [canvasElementTag];
1262
1474
  }
1263
- let t = geTickerInstanceByClassName(tickerName, ticker.args, ticker.duration, ticker.priority);
1264
- if (!t) {
1265
- console.error(`[Pixi'VN] Ticker ${tickerName} not found`);
1475
+ if (!geTickerInstanceById(tickerId, ticker.args, ticker.duration, ticker.priority)) {
1476
+ console.error(`[Pixi'VN] Ticker ${tickerId} not found`);
1266
1477
  return;
1267
1478
  }
1268
- _GameWindowManager.removeAssociationBetweenTickerCanvasElement(canvasElementTag, ticker);
1269
1479
  let tickerHistory = {
1270
1480
  fn: () => {
1271
1481
  },
1272
- className: tickerName,
1273
- args: ticker.args,
1482
+ id: tickerId,
1483
+ args: createExportableElement(ticker.args),
1274
1484
  canvasElementTags: canvasElementTag,
1275
1485
  priority: ticker.priority,
1276
1486
  duration: ticker.duration
1277
1487
  };
1278
- _GameWindowManager.pushTicker(tickerHistory, t);
1279
- _GameWindowManager.removeTickersWithoutAssociatedCanvasElement();
1488
+ let id = _GameWindowManager.generateTickerId(tickerHistory);
1489
+ _GameWindowManager.pushTicker(id, tickerHistory, ticker);
1280
1490
  if (ticker.duration) {
1281
1491
  let timeout = setTimeout(() => {
1282
1492
  _GameWindowManager.removeTickerTimeoutInfo(timeout);
1283
- _GameWindowManager.nextTickerStep(canvasElementTag);
1284
- }, ticker.duration);
1285
- _GameWindowManager.addTickerTimeoutInfo(canvasElementTag, tickerName, timeout.toString());
1493
+ let tickerTimeoutInfo = _GameWindowManager._currentTickersTimeouts[timeout.toString()];
1494
+ if (tickerTimeoutInfo) {
1495
+ _GameWindowManager.removeTicker(id);
1496
+ }
1497
+ }, ticker.duration * 1e3);
1498
+ _GameWindowManager.addTickerTimeoutInfo(canvasElementTag, tickerId, timeout.toString(), true);
1286
1499
  }
1287
1500
  }
1288
- static pushTicker(tickerData, ticker) {
1289
- _GameWindowManager.removeAssociationBetweenTickerCanvasElement(tickerData.canvasElementTags, tickerData);
1290
- _GameWindowManager._currentTickers.push(tickerData);
1501
+ static pushTicker(id, tickerData, ticker) {
1502
+ _GameWindowManager.removeAssociationBetweenTickerCanvasElement(tickerData.canvasElementTags, ticker);
1503
+ _GameWindowManager._currentTickers[id] = tickerData;
1291
1504
  tickerData.fn = (t) => {
1292
- ticker == null ? void 0 : ticker.fn(t, tickerData.args, tickerData.canvasElementTags);
1505
+ let data = _GameWindowManager._currentTickers[id];
1506
+ if (data) {
1507
+ ticker == null ? void 0 : ticker.fn(t, data.args, data.canvasElementTags, id);
1508
+ }
1293
1509
  };
1294
1510
  _GameWindowManager.app.ticker.add(tickerData.fn, void 0, tickerData.priority);
1295
1511
  }
1296
1512
  /**
1297
- * Run a sequence of tickers.
1513
+ * Run a sequence of tickers. If exists a ticker steps with the same tag, it will be removed.
1298
1514
  * @param tag The tag of canvas element that will use the tickers.
1299
1515
  * @param steps The steps of the tickers.
1516
+ * @param currentStepNumber The current step number. It is used to continue the sequence of tickers.
1300
1517
  * @returns
1301
1518
  * @example
1302
1519
  * ```typescript
1303
1520
  * GameWindowManager.addTickersSteps("alien", [
1304
- * new TickerRotate({ speed: 0.1, clockwise: true }, 2000),
1305
- * Pause(500),
1306
- * new TickerRotate({ speed: 0.2, clockwise: false }, 2000),
1521
+ * new RotateTicker({ speed: 0.1, clockwise: true }, 2), // 2 seconds
1522
+ * Pause(1), // 1 second
1523
+ * new RotateTicker({ speed: 0.2, clockwise: false }, 2),
1307
1524
  * Repeat,
1308
1525
  * ])
1309
1526
  * ```
1310
1527
  */
1311
- static addTickersSteps(tag, steps) {
1528
+ static addTickersSteps(tag, steps, currentStepNumber = 0) {
1312
1529
  if (steps.length == 0) {
1313
1530
  console.warn("[Pixi'VN] The steps of the tickers is empty");
1314
1531
  return;
1315
1532
  }
1316
- let alredyExists = _GameWindowManager._currentTickersSteps[tag] !== void 0;
1533
+ _GameWindowManager.removeTickerStepByCanvasElement(tag);
1317
1534
  _GameWindowManager._currentTickersSteps[tag] = {
1318
- currentStepNumber: 0,
1319
- steps: steps.map((s) => {
1320
- if (s === Repeat) {
1321
- return s;
1322
- }
1323
- if (!s.duration) {
1324
- console.warn("[Pixi'VN] Duration is not defined, so it will be set to 1000");
1325
- s.duration = 1e3;
1535
+ currentStepNumber,
1536
+ steps: steps.map((step) => {
1537
+ if (step === Repeat) {
1538
+ return step;
1326
1539
  }
1327
- if (s.hasOwnProperty("type") && s.type === PauseValueType) {
1328
- return s;
1540
+ if (step.hasOwnProperty("type") && step.type === "pause") {
1541
+ return step;
1329
1542
  }
1330
- let tickerName = s.constructor.name;
1543
+ let tickerId = step.id;
1331
1544
  return {
1332
- ticker: tickerName,
1333
- args: s.args,
1334
- duration: s.duration
1545
+ ticker: tickerId,
1546
+ args: createExportableElement(step.args),
1547
+ duration: step.duration
1335
1548
  };
1336
1549
  })
1337
1550
  };
1338
- if (!alredyExists) {
1551
+ _GameWindowManager.runTickersSteps(tag);
1552
+ }
1553
+ static restoneTickersSteps(data) {
1554
+ for (let tag in data) {
1555
+ let steps = data[tag];
1556
+ _GameWindowManager._currentTickersSteps[tag] = steps;
1339
1557
  _GameWindowManager.runTickersSteps(tag);
1340
1558
  }
1341
1559
  }
@@ -1349,70 +1567,106 @@ var _GameWindowManager = class _GameWindowManager {
1349
1567
  return;
1350
1568
  }
1351
1569
  }
1352
- if (step.hasOwnProperty("type") && step.type === PauseValueType) {
1570
+ if (step.hasOwnProperty("type") && step.type === "pause") {
1353
1571
  let timeout = setTimeout(() => {
1572
+ let tickerTimeoutInfo = _GameWindowManager._currentTickersTimeouts[timeout.toString()];
1573
+ if (tickerTimeoutInfo) {
1574
+ tickerTimeoutInfo.tags.forEach((tag2) => {
1575
+ _GameWindowManager.nextTickerStep(tag2);
1576
+ });
1577
+ }
1354
1578
  _GameWindowManager.removeTickerTimeoutInfo(timeout);
1355
- _GameWindowManager.nextTickerStep(tag);
1356
- }, step.duration);
1357
- _GameWindowManager.addTickerTimeoutInfo(tag, "steps", timeout.toString());
1579
+ }, step.duration * 1e3);
1580
+ _GameWindowManager.addTickerTimeoutInfo(tag, "steps", timeout.toString(), false);
1358
1581
  return;
1359
1582
  }
1360
- let ticker = geTickerInstanceByClassName(step.ticker, step.args, step.duration, step.priority);
1583
+ let ticker = geTickerInstanceById(step.ticker, step.args, step.duration, step.priority);
1361
1584
  if (!ticker) {
1362
1585
  console.error(`[Pixi'VN] Ticker ${step.ticker} not found`);
1363
1586
  return;
1364
1587
  }
1365
- _GameWindowManager.addTicker(tag, ticker);
1588
+ let tickerName = ticker.id;
1589
+ let tickerHistory = {
1590
+ fn: () => {
1591
+ },
1592
+ id: tickerName,
1593
+ args: createExportableElement(ticker.args),
1594
+ canvasElementTags: [tag],
1595
+ priority: ticker.priority,
1596
+ duration: ticker.duration,
1597
+ createdByTicketStepsId: tag
1598
+ };
1599
+ let id = _GameWindowManager.generateTickerId(tickerHistory);
1600
+ _GameWindowManager.pushTicker(id, tickerHistory, ticker);
1601
+ if (ticker.duration) {
1602
+ let timeout = setTimeout(() => {
1603
+ let tickerTimeoutInfo = _GameWindowManager._currentTickersTimeouts[timeout.toString()];
1604
+ if (tickerTimeoutInfo) {
1605
+ _GameWindowManager.removeTicker(id);
1606
+ tickerTimeoutInfo.tags.forEach((tag2) => {
1607
+ _GameWindowManager.nextTickerStep(tag2);
1608
+ });
1609
+ }
1610
+ _GameWindowManager.removeTickerTimeoutInfo(timeout);
1611
+ }, ticker.duration * 1e3);
1612
+ _GameWindowManager.addTickerTimeoutInfo(tag, tickerName, timeout.toString(), false);
1613
+ }
1366
1614
  }
1367
1615
  static nextTickerStep(tag) {
1368
- if (typeof tag === "string") {
1369
- tag = [tag];
1616
+ if (_GameWindowManager._currentTickersSteps[tag]) {
1617
+ let steps = _GameWindowManager._currentTickersSteps[tag];
1618
+ if (steps.currentStepNumber + 1 < steps.steps.length) {
1619
+ steps.currentStepNumber++;
1620
+ _GameWindowManager._currentTickersSteps[tag] = steps;
1621
+ _GameWindowManager.runTickersSteps(tag);
1622
+ } else {
1623
+ _GameWindowManager.removeTickerStepByCanvasElement(tag);
1624
+ }
1370
1625
  }
1371
- tag.forEach((tag2) => {
1372
- if (_GameWindowManager._currentTickersSteps[tag2]) {
1373
- let steps = _GameWindowManager._currentTickersSteps[tag2];
1374
- if (steps.currentStepNumber + 1 < steps.steps.length) {
1375
- steps.currentStepNumber++;
1376
- _GameWindowManager._currentTickersSteps[tag2] = steps;
1377
- _GameWindowManager.runTickersSteps(tag2);
1378
- } else {
1379
- delete _GameWindowManager._currentTickersSteps[tag2];
1380
- }
1626
+ }
1627
+ static onEndOfTicker(canvasElementTags, ticker, canvasElementTagsToDelete, tickerId) {
1628
+ let tickerData = _GameWindowManager._currentTickers[tickerId];
1629
+ _GameWindowManager.removeAssociationBetweenTickerCanvasElement(canvasElementTags, ticker);
1630
+ _GameWindowManager.removeCanvasElement(canvasElementTagsToDelete);
1631
+ if (tickerData) {
1632
+ _GameWindowManager.removeTicker(tickerId);
1633
+ if (tickerData.duration == void 0 && tickerData.createdByTicketStepsId) {
1634
+ _GameWindowManager.nextTickerStep(tickerData.createdByTicketStepsId);
1381
1635
  }
1382
- });
1636
+ }
1383
1637
  }
1384
1638
  /**
1385
1639
  * Remove a connection between a canvas element and a ticker.
1386
1640
  * And remove the ticker if there is no canvas element connected to it.
1387
- * @param tag The tag of the canvas element that will use the ticker.
1641
+ * @param tags The tag of the canvas element that will use the ticker.
1388
1642
  * @param ticker The ticker class to be removed.
1389
1643
  * @example
1390
1644
  * ```typescript
1391
- * GameWindowManager.removeAssociationBetweenTickerCanvasElement("alien", TickerRotate)
1645
+ * GameWindowManager.removeAssociationBetweenTickerCanvasElement("alien", RotateTicker)
1392
1646
  * ```
1393
1647
  */
1394
- static removeAssociationBetweenTickerCanvasElement(tag, ticker) {
1395
- let tickerName;
1396
- if (ticker instanceof TickerBase) {
1397
- tickerName = ticker.constructor.name;
1648
+ static removeAssociationBetweenTickerCanvasElement(tags, ticker) {
1649
+ let tickerId;
1650
+ if (typeof ticker === "string") {
1651
+ tickerId = ticker;
1652
+ } else if (ticker instanceof TickerBase) {
1653
+ tickerId = ticker.id;
1398
1654
  } else {
1399
- tickerName = ticker.name;
1655
+ tickerId = ticker.prototype.id;
1400
1656
  }
1401
- if (typeof tag === "string") {
1402
- tag = [tag];
1657
+ if (typeof tags === "string") {
1658
+ tags = [tags];
1403
1659
  }
1404
- _GameWindowManager._currentTickers = _GameWindowManager._currentTickers.map((t) => {
1405
- if (t.className === tickerName) {
1406
- t.canvasElementTags = t.canvasElementTags.filter((e) => !tag.includes(e));
1660
+ for (let id in _GameWindowManager._currentTickers) {
1661
+ let ticker2 = _GameWindowManager._currentTickers[id];
1662
+ if (ticker2.id === tickerId) {
1663
+ _GameWindowManager._currentTickers[id].canvasElementTags = ticker2.canvasElementTags.filter((e) => !tags.includes(e));
1407
1664
  }
1408
- return t;
1409
- });
1410
- for (let timeout in _GameWindowManager.currentTickersTimeouts) {
1411
- let t = _GameWindowManager.currentTickersTimeouts[timeout].tags.filter((e) => !tag.includes(e));
1412
- if (t.length == 0) {
1413
- _GameWindowManager.removeTickerTimeoutInfo(timeout);
1414
- } else {
1415
- _GameWindowManager.currentTickersTimeouts[timeout].tags = t;
1665
+ }
1666
+ for (let timeout in _GameWindowManager._currentTickersTimeouts) {
1667
+ let TickerTimeout = _GameWindowManager._currentTickersTimeouts[timeout];
1668
+ if (TickerTimeout.ticker === tickerId && TickerTimeout.canBeDeletedBeforeEnd) {
1669
+ _GameWindowManager._currentTickersTimeouts[timeout].tags = TickerTimeout.tags.filter((t) => !tags.includes(t));
1416
1670
  }
1417
1671
  }
1418
1672
  _GameWindowManager.removeTickersWithoutAssociatedCanvasElement();
@@ -1421,49 +1675,117 @@ var _GameWindowManager = class _GameWindowManager {
1421
1675
  * Remove all tickers that are not connected to any existing canvas element.
1422
1676
  */
1423
1677
  static removeTickersWithoutAssociatedCanvasElement() {
1424
- let currentTickers = _GameWindowManager._currentTickers.map((t) => {
1425
- t.canvasElementTags = t.canvasElementTags.filter((e) => _GameWindowManager._children[e]);
1426
- return t;
1427
- });
1428
- currentTickers.filter((t) => t.canvasElementTags.length === 0).forEach((t) => {
1429
- _GameWindowManager.app.ticker.remove(t.fn);
1430
- });
1431
- currentTickers = currentTickers.filter((t) => t.canvasElementTags.length > 0);
1432
- _GameWindowManager._currentTickers = currentTickers;
1678
+ for (let id in _GameWindowManager._currentTickers) {
1679
+ let ticker = _GameWindowManager._currentTickers[id];
1680
+ ticker.canvasElementTags = ticker.canvasElementTags.filter((e) => _GameWindowManager._children[e]);
1681
+ if (ticker.canvasElementTags.length === 0) {
1682
+ _GameWindowManager.removeTicker(id);
1683
+ }
1684
+ }
1433
1685
  for (let tag in _GameWindowManager._currentTickersSteps) {
1434
1686
  if (_GameWindowManager._children[tag] === void 0) {
1435
1687
  delete _GameWindowManager._currentTickersSteps[tag];
1436
1688
  }
1437
1689
  }
1690
+ Object.entries(_GameWindowManager._currentTickersTimeouts).forEach(([timeout, { tags }]) => {
1691
+ if (tags.length === 0) {
1692
+ _GameWindowManager.removeTickerTimeout(timeout);
1693
+ }
1694
+ });
1438
1695
  }
1439
- static addTickerTimeoutInfo(tags, ticker, timeout) {
1696
+ static addTickerTimeoutInfo(tags, ticker, timeout, canBeDeletedBeforeEnd) {
1440
1697
  if (typeof tags === "string") {
1441
1698
  tags = [tags];
1442
1699
  }
1443
- _GameWindowManager.currentTickersTimeouts[timeout] = {
1700
+ _GameWindowManager._currentTickersTimeouts[timeout] = {
1444
1701
  tags,
1445
- ticker
1702
+ ticker,
1703
+ canBeDeletedBeforeEnd
1446
1704
  };
1447
1705
  }
1448
1706
  static removeTickerTimeoutInfo(timeout) {
1449
1707
  if (typeof timeout !== "string") {
1450
1708
  timeout = timeout.toString();
1451
1709
  }
1452
- if (_GameWindowManager.currentTickersTimeouts[timeout]) {
1453
- delete _GameWindowManager.currentTickersTimeouts[timeout];
1710
+ if (_GameWindowManager._currentTickersTimeouts[timeout]) {
1711
+ delete _GameWindowManager._currentTickersTimeouts[timeout];
1712
+ }
1713
+ }
1714
+ static removeTickerTimeout(timeout) {
1715
+ if (typeof timeout !== "string") {
1716
+ timeout = timeout.toString();
1717
+ }
1718
+ clearTimeout(Number(timeout));
1719
+ _GameWindowManager.removeTickerTimeoutInfo(timeout);
1720
+ }
1721
+ static removeTickerTimeoutsByTag(tag, checkCanBeDeletedBeforeEnd) {
1722
+ for (let timeout in _GameWindowManager._currentTickersTimeouts) {
1723
+ let tagsWithoutTagToRemove = _GameWindowManager._currentTickersTimeouts[timeout].tags.filter((t) => t !== tag);
1724
+ if (tagsWithoutTagToRemove.length === 0) {
1725
+ let canBeDeletedBeforeEnd = _GameWindowManager._currentTickersTimeouts[timeout].canBeDeletedBeforeEnd;
1726
+ if (!checkCanBeDeletedBeforeEnd || canBeDeletedBeforeEnd) {
1727
+ _GameWindowManager.removeTickerTimeout(timeout);
1728
+ }
1729
+ } else {
1730
+ _GameWindowManager._currentTickersTimeouts[timeout].tags = tagsWithoutTagToRemove;
1731
+ }
1454
1732
  }
1455
1733
  }
1456
1734
  /**
1457
1735
  * Remove all tickers from the canvas.
1458
1736
  */
1459
- static removeTickers() {
1737
+ static removeAllTickers() {
1460
1738
  _GameWindowManager._currentTickersSteps = {};
1461
- _GameWindowManager._currentTickers.forEach((t) => {
1462
- _GameWindowManager.app.ticker.remove(t.fn);
1739
+ Object.keys(_GameWindowManager._currentTickers).forEach((id) => {
1740
+ _GameWindowManager.removeTicker(id);
1463
1741
  });
1464
- _GameWindowManager._currentTickers = [];
1465
- for (let timeout in _GameWindowManager.currentTickersTimeouts) {
1466
- _GameWindowManager.removeTickerTimeoutInfo(timeout);
1742
+ _GameWindowManager._currentTickers = {};
1743
+ for (let timeout in _GameWindowManager._currentTickersTimeouts) {
1744
+ _GameWindowManager.removeTickerTimeout(timeout);
1745
+ }
1746
+ }
1747
+ /**
1748
+ * Remove all tickers from a canvas element.
1749
+ * @param tag The tag of the canvas element that will use the ticker.
1750
+ */
1751
+ static removeTickerByCanvasElement(tag) {
1752
+ if (typeof tag === "string") {
1753
+ tag = [tag];
1754
+ }
1755
+ tag.forEach((tag2) => {
1756
+ for (let id in _GameWindowManager._currentTickers) {
1757
+ let ticker = _GameWindowManager._currentTickers[id];
1758
+ if (ticker.canvasElementTags.includes(tag2)) {
1759
+ _GameWindowManager.removeTicker(id);
1760
+ }
1761
+ }
1762
+ if (_GameWindowManager._currentTickersSteps[tag2]) {
1763
+ delete _GameWindowManager._currentTickersSteps[tag2];
1764
+ }
1765
+ _GameWindowManager.removeTickerTimeoutsByTag(tag2, false);
1766
+ delete _GameWindowManager._currentTickersSteps[tag2];
1767
+ });
1768
+ }
1769
+ static removeTickerStepByCanvasElement(tag) {
1770
+ if (_GameWindowManager._currentTickersSteps[tag]) {
1771
+ delete _GameWindowManager._currentTickersSteps[tag];
1772
+ }
1773
+ for (let id in _GameWindowManager._currentTickers) {
1774
+ let ticker = _GameWindowManager._currentTickers[id];
1775
+ if (ticker.createdByTicketStepsId === tag) {
1776
+ _GameWindowManager.removeTicker(id);
1777
+ }
1778
+ }
1779
+ }
1780
+ static removeTicker(tickerId) {
1781
+ let ticker = _GameWindowManager._currentTickers[tickerId];
1782
+ if (ticker) {
1783
+ if (ticker.args.hasOwnProperty(tagToRemoveAfter)) {
1784
+ let tagToRemoveAfter2 = ticker.args.tagToRemoveAfter;
1785
+ _GameWindowManager.removeCanvasElement(tagToRemoveAfter2);
1786
+ }
1787
+ _GameWindowManager.app.ticker.remove(ticker.fn);
1788
+ delete _GameWindowManager._currentTickers[tickerId];
1467
1789
  }
1468
1790
  }
1469
1791
  /**
@@ -1490,7 +1812,8 @@ var _GameWindowManager = class _GameWindowManager {
1490
1812
  currentElements[tag] = exportCanvasElement(_GameWindowManager._children[tag]);
1491
1813
  }
1492
1814
  return {
1493
- currentTickers: createExportableElement(_GameWindowManager._currentTickers),
1815
+ currentTickers: createExportableElement(_GameWindowManager.currentTickersWithoutCreatedBySteps),
1816
+ currentTickersSteps: createExportableElement(_GameWindowManager._currentTickersSteps),
1494
1817
  currentElements: createExportableElement(currentElements),
1495
1818
  childrenTagsOrder: createExportableElement(_GameWindowManager.childrenTagsOrder)
1496
1819
  };
@@ -1525,15 +1848,20 @@ var _GameWindowManager = class _GameWindowManager {
1525
1848
  }
1526
1849
  if (data.hasOwnProperty("currentTickers")) {
1527
1850
  let currentTickers = data["currentTickers"];
1528
- currentTickers.forEach((t) => {
1851
+ for (let id in currentTickers) {
1852
+ let t = currentTickers[id];
1529
1853
  let tags = t.canvasElementTags;
1530
- let ticker = geTickerInstanceByClassName(t.className, t.args, t.duration, t.priority);
1854
+ let ticker = geTickerInstanceById(t.id, t.args, t.duration, t.priority);
1531
1855
  if (ticker) {
1532
1856
  _GameWindowManager.addTicker(tags, ticker);
1533
1857
  } else {
1534
- console.error(`[Pixi'VN] Ticker ${t.className} not found`);
1858
+ console.error(`[Pixi'VN] Ticker ${t.id} not found`);
1535
1859
  }
1536
- });
1860
+ }
1861
+ }
1862
+ if (data.hasOwnProperty("currentTickersSteps")) {
1863
+ let currentTickersSteps = data["currentTickersSteps"];
1864
+ _GameWindowManager.restoneTickersSteps(currentTickersSteps);
1537
1865
  }
1538
1866
  } catch (e) {
1539
1867
  console.error("[Pixi'VN] Error importing data", e);
@@ -1547,9 +1875,9 @@ _GameWindowManager._children = {};
1547
1875
  * The order of the children tags.
1548
1876
  */
1549
1877
  _GameWindowManager.childrenTagsOrder = [];
1550
- _GameWindowManager._currentTickers = [];
1878
+ _GameWindowManager._currentTickers = {};
1551
1879
  _GameWindowManager._currentTickersSteps = {};
1552
- _GameWindowManager.currentTickersTimeouts = {};
1880
+ _GameWindowManager._currentTickersTimeouts = {};
1553
1881
  var GameWindowManager = _GameWindowManager;
1554
1882
 
1555
1883
  // src/managers/StepManager.ts
@@ -1616,7 +1944,8 @@ var _GameStepManager = class _GameStepManager {
1616
1944
  canvas: {
1617
1945
  childrenTagsOrder: [],
1618
1946
  currentElements: {},
1619
- currentTickers: []
1947
+ currentTickers: {},
1948
+ currentTickersSteps: {}
1620
1949
  },
1621
1950
  labelIndex: -1,
1622
1951
  openedLabels: []
@@ -1727,6 +2056,13 @@ var _GameStepManager = class _GameStepManager {
1727
2056
  _GameStepManager._openedLabels = _GameStepManager.originalStepData.openedLabels;
1728
2057
  }
1729
2058
  /* Run Methods */
2059
+ static get canGoNext() {
2060
+ let options = getChoiceMenuOptions();
2061
+ if (options && options.length > 0) {
2062
+ return false;
2063
+ }
2064
+ return true;
2065
+ }
1730
2066
  /**
1731
2067
  * Execute the next step and add it to the history.
1732
2068
  * @param props The props to pass to the step.
@@ -1736,7 +2072,7 @@ var _GameStepManager = class _GameStepManager {
1736
2072
  * ```typescript
1737
2073
  * function nextOnClick() {
1738
2074
  * setLoading(true)
1739
- * GameStepManager.runNextStep(yourParams)
2075
+ * GameStepManager.goNext(yourParams)
1740
2076
  * .then((result) => {
1741
2077
  * setUpdate((p) => p + 1)
1742
2078
  * setLoading(false)
@@ -1751,8 +2087,12 @@ var _GameStepManager = class _GameStepManager {
1751
2087
  * }
1752
2088
  * ```
1753
2089
  */
1754
- static runNextStep(props, choiseMade) {
2090
+ static goNext(props, choiseMade) {
1755
2091
  return __async(this, null, function* () {
2092
+ if (!_GameStepManager.canGoNext) {
2093
+ console.warn("[Pixi'VN] The player must make a choice");
2094
+ return;
2095
+ }
1756
2096
  _GameStepManager.increaseCurrentStepIndex();
1757
2097
  return yield _GameStepManager.runCurrentStep(props, choiseMade);
1758
2098
  });
@@ -1783,7 +2123,7 @@ var _GameStepManager = class _GameStepManager {
1783
2123
  return result;
1784
2124
  } else if (_GameStepManager.openedLabels.length > 1) {
1785
2125
  _GameStepManager.closeCurrentLabel();
1786
- return yield _GameStepManager.runNextStep(props, choiseMade);
2126
+ return yield _GameStepManager.goNext(props, choiseMade);
1787
2127
  } else {
1788
2128
  _GameStepManager.restorLastLabelList();
1789
2129
  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");
@@ -1827,8 +2167,15 @@ var _GameStepManager = class _GameStepManager {
1827
2167
  }
1828
2168
  try {
1829
2169
  if (labelId === CLOSE_LABEL_ID) {
1830
- let closeLabel = newCloseLabel(choiseMade);
1831
- return _GameStepManager.closeChoiceMenu(closeLabel, props);
2170
+ let closeCurrentLabel = newCloseLabel(choiseMade);
2171
+ let choice = {
2172
+ label: closeCurrentLabel,
2173
+ text: "",
2174
+ closeCurrentLabel: false,
2175
+ type: "close",
2176
+ props: {}
2177
+ };
2178
+ return _GameStepManager.closeChoiceMenu(choice, props);
1832
2179
  }
1833
2180
  let tempLabel = getLabelById(labelId);
1834
2181
  if (!tempLabel) {
@@ -1878,8 +2225,15 @@ var _GameStepManager = class _GameStepManager {
1878
2225
  }
1879
2226
  try {
1880
2227
  if (labelId === CLOSE_LABEL_ID) {
1881
- let closeLabel = newCloseLabel(choiseMade);
1882
- return _GameStepManager.closeChoiceMenu(closeLabel, props);
2228
+ let closeCurrentLabel = newCloseLabel(choiseMade);
2229
+ let choice = {
2230
+ label: closeCurrentLabel,
2231
+ text: "",
2232
+ closeCurrentLabel: false,
2233
+ type: "close",
2234
+ props: {}
2235
+ };
2236
+ return _GameStepManager.closeChoiceMenu(choice, props);
1883
2237
  }
1884
2238
  let tempLabel = getLabelById(labelId);
1885
2239
  if (!tempLabel) {
@@ -1895,7 +2249,8 @@ var _GameStepManager = class _GameStepManager {
1895
2249
  }
1896
2250
  /**
1897
2251
  * When the player is in a choice menu, can use this function to exit to the choice menu.
1898
- * @param props The props to pass to the step.
2252
+ * @param choice
2253
+ * @param props
1899
2254
  * @returns StepLabelResultType or undefined.
1900
2255
  * @example
1901
2256
  * ```typescript
@@ -1906,13 +2261,17 @@ var _GameStepManager = class _GameStepManager {
1906
2261
  * })
1907
2262
  * ```
1908
2263
  */
1909
- static closeChoiceMenu(label, props) {
2264
+ static closeChoiceMenu(choice, props) {
1910
2265
  return __async(this, null, function* () {
2266
+ let label = choice.label;
1911
2267
  let choiseMade = void 0;
1912
2268
  if (typeof label.choiseIndex === "number") {
1913
2269
  choiseMade = label.choiseIndex;
1914
2270
  }
1915
- return _GameStepManager.runNextStep(props, choiseMade);
2271
+ if (choice.closeCurrentLabel) {
2272
+ _GameStepManager.closeCurrentLabel();
2273
+ }
2274
+ return _GameStepManager.goNext(props, choiseMade);
1916
2275
  });
1917
2276
  }
1918
2277
  /* After Update Methods */