@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) => {
@@ -80,7 +79,7 @@ var Label = class {
80
79
  this._choiseIndex = choiseIndex;
81
80
  }
82
81
  /**
83
- * Get the id of the label
82
+ * Get the id of the label. This variable is used in the system to get the label by id, {@link getLabelById}
84
83
  */
85
84
  get id() {
86
85
  return this._id;
@@ -238,26 +237,35 @@ var GameStorageManager = _GameStorageManager;
238
237
  var TickerBase = class {
239
238
  /**
240
239
  * @param args The arguments that you want to pass to the ticker.
241
- * @param duration The duration of the ticker. If is undefined, the ticker will be called every frame.
242
- * @param priority The priority of the ticker. If is undefined, the priority will be UPDATE_PRIORITY.NORMAL.
240
+ * @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
241
+ * @param priority The priority of the ticker. @default UPDATE_PRIORITY.NORMAL
243
242
  */
244
243
  constructor(args, duration, priority) {
244
+ /**
245
+ * Get the id of the ticker. This variable is used in the system to get the ticker by id, {@link geTickerInstanceById}
246
+ */
247
+ this.id = "ticker_id_not_set";
245
248
  this.args = args;
246
249
  this.duration = duration;
247
250
  this.priority = priority;
251
+ this.id = this.constructor.prototype.id;
248
252
  }
249
253
  /**
250
254
  * The method that will be called every frame.
251
255
  * This method should be overridden and you can use GameWindowManager.addCanvasElement() to get the canvas element of the canvas, and edit them.
252
- * @param t The ticker that is calling this method
253
- * @param args The arguments that you passed when you added the ticker
254
- * @param tags The tags of the canvas elements that are connected to this ticker
256
+ * @param _ticker The ticker that is calling this method
257
+ * @param _args The arguments that you passed when you added the ticker
258
+ * @param _tags The tags of the canvas elements that are connected to this ticker
259
+ * @param _tickerId The id of the ticker. You can use this to get the ticker from the {@link GameWindowManager.currentTickers}
255
260
  */
256
- fn(_t, _args, _tags) {
261
+ fn(_ticker, _args, _tags, _tickerId) {
257
262
  throw new Error("[Pixi'VN] The method TickerBase.fn() must be overridden");
258
263
  }
259
264
  };
260
265
 
266
+ // src/constants.ts
267
+ var Repeat = "repeat";
268
+
261
269
  // src/decorators/TickerDecorator.ts
262
270
  var registeredTickers = {};
263
271
  function tickerDecorator(name) {
@@ -266,25 +274,32 @@ function tickerDecorator(name) {
266
274
  name = target.name;
267
275
  }
268
276
  if (registeredTickers[name]) {
269
- console.warn(`[Pixi'VN] Ticker ${name} already exists, it will be overwritten`);
277
+ console.info(`[Pixi'VN] Ticker ${name} already exists, it will be overwritten`);
270
278
  }
279
+ target.prototype.id = name;
271
280
  registeredTickers[name] = target;
272
281
  };
273
282
  }
274
- function geTickerInstanceByClassName(tickerName, args, duration, priority) {
283
+ function geTickerInstanceById(tickerId, args, duration, priority) {
275
284
  try {
276
- let ticker = registeredTickers[tickerName];
285
+ let ticker = registeredTickers[tickerId];
277
286
  if (!ticker) {
278
- console.error(`[Pixi'VN] Ticker ${tickerName} not found`);
287
+ console.error(`[Pixi'VN] Ticker ${tickerId} not found`);
279
288
  return;
280
289
  }
281
290
  return new ticker(args, duration, priority);
282
291
  } catch (e) {
283
- console.error(`[Pixi'VN] Error while getting Ticker ${tickerName}`, e);
292
+ console.error(`[Pixi'VN] Error while getting Ticker ${tickerId}`, e);
284
293
  return;
285
294
  }
286
295
  }
296
+ var CANVAS_CONTAINER_ID = "CanvasContainer";
287
297
  var CanvasContainer = class extends pixi_js.Container {
298
+ constructor(options) {
299
+ super(options);
300
+ this.pixivnId = CANVAS_CONTAINER_ID;
301
+ this.pixivnId = this.constructor.prototype.pixivnId;
302
+ }
288
303
  get memory() {
289
304
  let memory = getMemoryContainer(this);
290
305
  this.children.forEach((child) => {
@@ -300,8 +315,12 @@ var CanvasContainer = class extends pixi_js.Container {
300
315
  }
301
316
  };
302
317
  function getMemoryContainer(element) {
318
+ let className = "CanvasContainer";
319
+ if (element.hasOwnProperty("pixivnId")) {
320
+ className = element.pixivnId;
321
+ }
303
322
  return {
304
- className: "CanvasContainer",
323
+ pixivnId: className,
305
324
  elements: [],
306
325
  width: element.width,
307
326
  height: element.height,
@@ -417,40 +436,43 @@ function getTextStyle(style) {
417
436
 
418
437
  // src/decorators/EventDecorator.ts
419
438
  var registeredEvents = {};
420
- function getEventTypeByClassName(eventName) {
439
+ function getEventTypeById(eventId) {
421
440
  try {
422
- let eventType = registeredEvents[eventName];
441
+ let eventType = registeredEvents[eventId];
423
442
  if (!eventType) {
424
- console.error(`[Pixi'VN] Event ${eventName} not found`);
443
+ console.error(`[Pixi'VN] Event ${eventId} not found`);
425
444
  return;
426
445
  }
427
446
  new eventType();
428
447
  return eventType;
429
448
  } catch (e) {
430
- console.error(`[Pixi'VN] Error while getting Event ${eventName}`, e);
449
+ console.error(`[Pixi'VN] Error while getting Event ${eventId}`, e);
431
450
  return;
432
451
  }
433
452
  }
434
- function getEventInstanceByClassName(eventName) {
453
+ function getEventInstanceById(eventId) {
435
454
  try {
436
- let eventType = registeredEvents[eventName];
455
+ let eventType = registeredEvents[eventId];
437
456
  if (!eventType) {
438
- console.error(`[Pixi'VN] Event ${eventName} not found`);
457
+ console.error(`[Pixi'VN] Event ${eventId} not found`);
439
458
  return;
440
459
  }
441
460
  let event = new eventType();
442
461
  return event;
443
462
  } catch (e) {
444
- console.error(`[Pixi'VN] Error while getting Event ${eventName}`, e);
463
+ console.error(`[Pixi'VN] Error while getting Event ${eventId}`, e);
445
464
  return;
446
465
  }
447
466
  }
448
467
 
449
468
  // src/classes/canvas/CanvasSprite.ts
469
+ var CANVAS_SPRITE_ID = "CanvasSprite";
450
470
  var CanvasSprite = class _CanvasSprite extends pixi_js.Sprite {
451
- constructor() {
452
- super(...arguments);
471
+ constructor(options) {
472
+ super(options);
473
+ this.pixivnId = CANVAS_SPRITE_ID;
453
474
  this._onEvents = {};
475
+ this.pixivnId = this.constructor.prototype.pixivnId;
454
476
  }
455
477
  get memory() {
456
478
  return getMemorySprite(this);
@@ -491,9 +513,9 @@ var CanvasSprite = class _CanvasSprite extends pixi_js.Sprite {
491
513
  * ```
492
514
  */
493
515
  onEvent(event, eventClass) {
494
- let className = eventClass.name;
495
- let instance = getEventInstanceByClassName(className);
496
- this._onEvents[event] = className;
516
+ let id = eventClass.prototype.id;
517
+ let instance = getEventInstanceById(id);
518
+ this._onEvents[event] = id;
497
519
  if (instance) {
498
520
  super.on(event, () => {
499
521
  instance.fn(event, this);
@@ -522,7 +544,7 @@ var CanvasSprite = class _CanvasSprite extends pixi_js.Sprite {
522
544
  function getMemorySprite(element) {
523
545
  let temp = getMemoryContainer(element);
524
546
  return __spreadProps(__spreadValues({}, temp), {
525
- className: "CanvasSprite",
547
+ pixivnId: element.pixivnId,
526
548
  textureImage: getTextureMemory(element.texture),
527
549
  anchor: { x: element.anchor.x, y: element.anchor.y },
528
550
  roundPixels: element.roundPixels,
@@ -545,8 +567,8 @@ function setMemorySprite(element, memory) {
545
567
  }
546
568
  memory.roundPixels && (element.roundPixels = memory.roundPixels);
547
569
  for (let event in memory.onEvents) {
548
- let className = memory.onEvents[event];
549
- let instance = getEventTypeByClassName(className);
570
+ let id = memory.onEvents[event];
571
+ let instance = getEventTypeById(id);
550
572
  if (instance) {
551
573
  element.onEvent(event, instance);
552
574
  }
@@ -554,9 +576,11 @@ function setMemorySprite(element, memory) {
554
576
  }
555
577
 
556
578
  // src/classes/canvas/CanvasImage.ts
579
+ var CANVAS_IMAGE_ID = "CanvasImage";
557
580
  var CanvasImage = class _CanvasImage extends CanvasSprite {
558
581
  constructor(options, imageLink) {
559
582
  super(options);
583
+ this.pixivnId = CANVAS_IMAGE_ID;
560
584
  this.imageLink = "";
561
585
  if (imageLink) {
562
586
  this.imageLink = imageLink;
@@ -564,12 +588,13 @@ var CanvasImage = class _CanvasImage extends CanvasSprite {
564
588
  }
565
589
  get memory() {
566
590
  return __spreadProps(__spreadValues({}, getMemorySprite(this)), {
567
- className: "CanvasImage",
568
- textureImage: { image: this.imageLink }
591
+ pixivnId: this.pixivnId,
592
+ imageLink: this.imageLink
569
593
  });
570
594
  }
571
595
  set memory(memory) {
572
596
  setMemorySprite(this, memory);
597
+ this.imageLink = memory.imageLink;
573
598
  }
574
599
  static from(source, skipCache) {
575
600
  let sprite = pixi_js.Sprite.from(source, skipCache);
@@ -597,10 +622,13 @@ var CanvasImage = class _CanvasImage extends CanvasSprite {
597
622
  });
598
623
  }
599
624
  };
625
+ var CANVAS_TEXT_ID = "CanvasText";
600
626
  var CanvasText = class extends pixi_js.Text {
601
- constructor() {
602
- super(...arguments);
627
+ constructor(options) {
628
+ super(options);
629
+ this.pixivnId = CANVAS_TEXT_ID;
603
630
  this._onEvents = {};
631
+ this.pixivnId = this.constructor.prototype.pixivnId;
604
632
  }
605
633
  get memory() {
606
634
  return getMemoryText(this);
@@ -641,9 +669,9 @@ var CanvasText = class extends pixi_js.Text {
641
669
  * ```
642
670
  */
643
671
  onEvent(event, eventClass) {
644
- let className = eventClass.name;
645
- let instance = getEventInstanceByClassName(className);
646
- this._onEvents[event] = className;
672
+ let id = eventClass.prototype.id;
673
+ let instance = getEventInstanceById(id);
674
+ this._onEvents[event] = id;
647
675
  if (instance) {
648
676
  super.on(event, () => {
649
677
  instance.fn(event, this);
@@ -666,7 +694,7 @@ var CanvasText = class extends pixi_js.Text {
666
694
  function getMemoryText(element) {
667
695
  let temp = getMemoryContainer(element);
668
696
  return __spreadProps(__spreadValues({}, temp), {
669
- className: "CanvasText",
697
+ pixivnId: element.pixivnId,
670
698
  anchor: { x: element.anchor.x, y: element.anchor.y },
671
699
  text: element.text,
672
700
  resolution: element.resolution,
@@ -689,8 +717,8 @@ function setMemoryText(element, memory) {
689
717
  memory.style && (element.style = memory.style);
690
718
  memory.roundPixels && (element.roundPixels = memory.roundPixels);
691
719
  for (let event in memory.onEvents) {
692
- let className = memory.onEvents[event];
693
- let instance = getEventTypeByClassName(className);
720
+ let id = memory.onEvents[event];
721
+ let instance = getEventTypeById(id);
694
722
  if (instance) {
695
723
  element.onEvent(event, instance);
696
724
  }
@@ -699,28 +727,28 @@ function setMemoryText(element, memory) {
699
727
 
700
728
  // src/decorators/CanvasElementDecorator.ts
701
729
  var registeredCanvasElement = {};
702
- function getCanvasElementInstanceByClassName(canvasName) {
730
+ function getCanvasElementInstanceById(canvasId) {
703
731
  try {
704
- let eventType = registeredCanvasElement[canvasName];
732
+ let eventType = registeredCanvasElement[canvasId];
705
733
  if (!eventType) {
706
- if (canvasName === "CanvasContainer") {
734
+ if (canvasId === CANVAS_CONTAINER_ID) {
707
735
  eventType = CanvasContainer;
708
- } else if (canvasName === "CanvasImage") {
736
+ } else if (canvasId === CANVAS_IMAGE_ID) {
709
737
  eventType = CanvasImage;
710
- } else if (canvasName === "CanvasSprite") {
738
+ } else if (canvasId === CANVAS_SPRITE_ID) {
711
739
  eventType = CanvasSprite;
712
- } else if (canvasName === "CanvasText") {
740
+ } else if (canvasId === CANVAS_TEXT_ID) {
713
741
  eventType = CanvasText;
714
742
  }
715
743
  }
716
744
  if (!eventType) {
717
- console.error(`[Pixi'VN] CanvasElement ${canvasName} not found`);
745
+ console.error(`[Pixi'VN] CanvasElement ${canvasId} not found`);
718
746
  return;
719
747
  }
720
748
  let canvasElement = new eventType();
721
749
  return canvasElement;
722
750
  } catch (e) {
723
- console.error(`[Pixi'VN] Error while getting CanvasElement ${canvasName}`, e);
751
+ console.error(`[Pixi'VN] Error while getting CanvasElement ${canvasId}`, e);
724
752
  return;
725
753
  }
726
754
  }
@@ -737,11 +765,11 @@ function exportCanvasElement(element) {
737
765
  return element.memory;
738
766
  }
739
767
  function importCanvasElement(memory) {
740
- let element = getCanvasElementInstanceByClassName(memory.className);
768
+ let element = getCanvasElementInstanceById(memory.pixivnId);
741
769
  if (element) {
742
770
  element.memory = memory;
743
771
  } else {
744
- throw new Error("[Pixi'VN] The element " + memory.className + " could not be created");
772
+ throw new Error("[Pixi'VN] The element " + memory.pixivnId + " could not be created");
745
773
  }
746
774
  return element;
747
775
  }
@@ -757,11 +785,8 @@ function asciiArtLog() {
757
785
  `);
758
786
  }
759
787
 
760
- // src/types/PauseType.ts
761
- var PauseValueType = "pause";
762
-
763
- // src/types/RepeatType.ts
764
- var Repeat = "repeat";
788
+ // src/types/ticker/TagToRemoveAfterType.ts
789
+ var tagToRemoveAfter = "tagToRemoveAfter";
765
790
 
766
791
  // src/managers/WindowManager.ts
767
792
  var _GameWindowManager = class _GameWindowManager {
@@ -945,25 +970,25 @@ var _GameWindowManager = class _GameWindowManager {
945
970
  /**
946
971
  * Remove a canvas element from the canvas.
947
972
  * And remove all tickers that are not connected to any canvas element.
948
- * @param tag The tag of the canvas element to be removed.
973
+ * @param tags The tag of the canvas element to be removed.
949
974
  * @returns
950
975
  * @example
951
976
  * ```typescript
952
977
  * GameWindowManager.removeCanvasElement("bunny");
953
978
  * ```
954
979
  */
955
- static removeCanvasElement(tag) {
956
- if (typeof tag === "string") {
957
- tag = [tag];
980
+ static removeCanvasElement(tags) {
981
+ if (typeof tags === "string") {
982
+ tags = [tags];
958
983
  }
959
- tag.forEach((t) => {
960
- if (_GameWindowManager._children[t]) {
961
- _GameWindowManager.app.stage.removeChild(_GameWindowManager._children[t]);
962
- delete _GameWindowManager._children[t];
984
+ tags.forEach((tag) => {
985
+ if (_GameWindowManager._children[tag]) {
986
+ _GameWindowManager.app.stage.removeChild(_GameWindowManager._children[tag]);
987
+ delete _GameWindowManager._children[tag];
988
+ _GameWindowManager.removeTickerByCanvasElement(tag);
963
989
  }
964
990
  });
965
- _GameWindowManager.removeTickersWithoutAssociatedCanvasElement();
966
- _GameWindowManager.childrenTagsOrder = _GameWindowManager.childrenTagsOrder.filter((t) => !tag.includes(t));
991
+ _GameWindowManager.childrenTagsOrder = _GameWindowManager.childrenTagsOrder.filter((t) => !tags.includes(t));
967
992
  }
968
993
  /**
969
994
  * Get a canvas element by the tag.
@@ -993,18 +1018,43 @@ var _GameWindowManager = class _GameWindowManager {
993
1018
  _GameWindowManager.app.stage.removeChildren();
994
1019
  _GameWindowManager._children = {};
995
1020
  _GameWindowManager.childrenTagsOrder = [];
996
- _GameWindowManager.removeTickers();
1021
+ _GameWindowManager.removeAllTickers();
997
1022
  }
998
1023
  /**
999
1024
  * Edit the tag of a canvas element.
1000
1025
  * @param oldTag The old tag of the canvas element.
1001
1026
  * @param newTag The new tag of the canvas element.
1002
1027
  */
1003
- static editTagCanvasElement(oldTag, newTag) {
1028
+ static editCanvasElementTag(oldTag, newTag) {
1004
1029
  if (_GameWindowManager._children[oldTag]) {
1005
1030
  _GameWindowManager._children[newTag] = _GameWindowManager._children[oldTag];
1006
1031
  delete _GameWindowManager._children[oldTag];
1007
1032
  }
1033
+ if (_GameWindowManager._currentTickersSteps[oldTag]) {
1034
+ _GameWindowManager._currentTickersSteps[newTag] = _GameWindowManager._currentTickersSteps[oldTag];
1035
+ delete _GameWindowManager._currentTickersSteps[oldTag];
1036
+ }
1037
+ for (let id in _GameWindowManager._currentTickers) {
1038
+ let ticker = _GameWindowManager._currentTickers[id];
1039
+ if (ticker.canvasElementTags.includes(oldTag)) {
1040
+ ticker.canvasElementTags = ticker.canvasElementTags.map((t) => t === oldTag ? newTag : t);
1041
+ if (ticker.args.hasOwnProperty(tagToRemoveAfter)) {
1042
+ let tagToRemoveAfter2 = ticker.args.tagToRemoveAfter;
1043
+ if (typeof tagToRemoveAfter2 === "string") {
1044
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
1045
+ }
1046
+ if (Array.isArray(tagToRemoveAfter2)) {
1047
+ ticker.args.tagToRemoveAfter = tagToRemoveAfter2.map((t) => t === oldTag ? newTag : t);
1048
+ }
1049
+ }
1050
+ }
1051
+ }
1052
+ for (let timeout in _GameWindowManager._currentTickersTimeouts) {
1053
+ let TickerTimeout = _GameWindowManager._currentTickersTimeouts[timeout];
1054
+ if (TickerTimeout.tags.includes(oldTag)) {
1055
+ TickerTimeout.tags = TickerTimeout.tags.map((t) => t === oldTag ? newTag : t);
1056
+ }
1057
+ }
1008
1058
  }
1009
1059
  /** Edit Tickers Methods */
1010
1060
  /**
@@ -1013,106 +1063,127 @@ var _GameWindowManager = class _GameWindowManager {
1013
1063
  static get currentTickers() {
1014
1064
  return _GameWindowManager._currentTickers;
1015
1065
  }
1066
+ static get currentTickersList() {
1067
+ return Object.values(_GameWindowManager._currentTickers);
1068
+ }
1069
+ static get currentTickersWithoutCreatedBySteps() {
1070
+ return Object.fromEntries(Object.entries(_GameWindowManager._currentTickers).filter(([_, ticker]) => !ticker.createdByTicketStepsId));
1071
+ }
1016
1072
  /**
1017
1073
  * The steps of the tickers
1018
1074
  */
1019
1075
  static get currentTickersSteps() {
1020
1076
  return _GameWindowManager._currentTickersSteps;
1021
1077
  }
1078
+ static generateTickerId(tickerData) {
1079
+ try {
1080
+ return sha1__default.default(JSON.stringify(tickerData)).toString() + "_" + Math.random().toString(36).substring(7);
1081
+ } catch (e) {
1082
+ throw new Error(`[Pixi'VN] Error to generate ticker id: ${e}`);
1083
+ }
1084
+ }
1022
1085
  /**
1023
- * Run a ticker.
1086
+ * Run a ticker. You can run multiple addTicker with the same tag and different tickerClasses.
1087
+ * If you run a ticker with the same tag and tickerClass, the old ticker will be removed.
1088
+ * If already exists a sequence of tickers with the same tag, it will be removed.
1024
1089
  * @param canvasEslementTag The tag of the canvas element that will use the ticker.
1025
1090
  * @param ticker The ticker class to be run.
1026
1091
  * @param args The arguments to be used in the ticker.
1027
- * @param duration The time to be used in the ticker. This number is in milliseconds. If it is undefined, the ticker will run forever.
1092
+ * @param duration The time to be used in the ticker. This number is in seconds. If it is undefined, the ticker will run forever.
1028
1093
  * @param priority The priority to be used in the ticker.
1029
1094
  * @returns
1030
1095
  * @example
1031
1096
  * ```typescript
1032
- * GameWindowManager.addTicker("alien", new TickerRotate({ speed: 0.2 }))
1097
+ * GameWindowManager.addTicker("alien", new RotateTicker({ speed: 0.2 }))
1033
1098
  * ```
1034
1099
  */
1035
1100
  static addTicker(canvasElementTag, ticker) {
1036
- let tickerName = ticker.constructor.name;
1101
+ let tickerId = ticker.id;
1037
1102
  if (typeof canvasElementTag === "string") {
1038
1103
  canvasElementTag = [canvasElementTag];
1039
1104
  }
1040
- let t = geTickerInstanceByClassName(tickerName, ticker.args, ticker.duration, ticker.priority);
1041
- if (!t) {
1042
- console.error(`[Pixi'VN] Ticker ${tickerName} not found`);
1105
+ if (!geTickerInstanceById(tickerId, ticker.args, ticker.duration, ticker.priority)) {
1106
+ console.error(`[Pixi'VN] Ticker ${tickerId} not found`);
1043
1107
  return;
1044
1108
  }
1045
- _GameWindowManager.removeAssociationBetweenTickerCanvasElement(canvasElementTag, ticker);
1046
1109
  let tickerHistory = {
1047
1110
  fn: () => {
1048
1111
  },
1049
- className: tickerName,
1050
- args: ticker.args,
1112
+ id: tickerId,
1113
+ args: createExportableElement(ticker.args),
1051
1114
  canvasElementTags: canvasElementTag,
1052
1115
  priority: ticker.priority,
1053
1116
  duration: ticker.duration
1054
1117
  };
1055
- _GameWindowManager.pushTicker(tickerHistory, t);
1056
- _GameWindowManager.removeTickersWithoutAssociatedCanvasElement();
1118
+ let id = _GameWindowManager.generateTickerId(tickerHistory);
1119
+ _GameWindowManager.pushTicker(id, tickerHistory, ticker);
1057
1120
  if (ticker.duration) {
1058
1121
  let timeout = setTimeout(() => {
1059
1122
  _GameWindowManager.removeTickerTimeoutInfo(timeout);
1060
- _GameWindowManager.nextTickerStep(canvasElementTag);
1061
- }, ticker.duration);
1062
- _GameWindowManager.addTickerTimeoutInfo(canvasElementTag, tickerName, timeout.toString());
1123
+ let tickerTimeoutInfo = _GameWindowManager._currentTickersTimeouts[timeout.toString()];
1124
+ if (tickerTimeoutInfo) {
1125
+ _GameWindowManager.removeTicker(id);
1126
+ }
1127
+ }, ticker.duration * 1e3);
1128
+ _GameWindowManager.addTickerTimeoutInfo(canvasElementTag, tickerId, timeout.toString(), true);
1063
1129
  }
1064
1130
  }
1065
- static pushTicker(tickerData, ticker) {
1066
- _GameWindowManager.removeAssociationBetweenTickerCanvasElement(tickerData.canvasElementTags, tickerData);
1067
- _GameWindowManager._currentTickers.push(tickerData);
1131
+ static pushTicker(id, tickerData, ticker) {
1132
+ _GameWindowManager.removeAssociationBetweenTickerCanvasElement(tickerData.canvasElementTags, ticker);
1133
+ _GameWindowManager._currentTickers[id] = tickerData;
1068
1134
  tickerData.fn = (t) => {
1069
- ticker == null ? void 0 : ticker.fn(t, tickerData.args, tickerData.canvasElementTags);
1135
+ let data = _GameWindowManager._currentTickers[id];
1136
+ if (data) {
1137
+ ticker == null ? void 0 : ticker.fn(t, data.args, data.canvasElementTags, id);
1138
+ }
1070
1139
  };
1071
1140
  _GameWindowManager.app.ticker.add(tickerData.fn, void 0, tickerData.priority);
1072
1141
  }
1073
1142
  /**
1074
- * Run a sequence of tickers.
1143
+ * Run a sequence of tickers. If exists a ticker steps with the same tag, it will be removed.
1075
1144
  * @param tag The tag of canvas element that will use the tickers.
1076
1145
  * @param steps The steps of the tickers.
1146
+ * @param currentStepNumber The current step number. It is used to continue the sequence of tickers.
1077
1147
  * @returns
1078
1148
  * @example
1079
1149
  * ```typescript
1080
1150
  * GameWindowManager.addTickersSteps("alien", [
1081
- * new TickerRotate({ speed: 0.1, clockwise: true }, 2000),
1082
- * Pause(500),
1083
- * new TickerRotate({ speed: 0.2, clockwise: false }, 2000),
1151
+ * new RotateTicker({ speed: 0.1, clockwise: true }, 2), // 2 seconds
1152
+ * Pause(1), // 1 second
1153
+ * new RotateTicker({ speed: 0.2, clockwise: false }, 2),
1084
1154
  * Repeat,
1085
1155
  * ])
1086
1156
  * ```
1087
1157
  */
1088
- static addTickersSteps(tag, steps) {
1158
+ static addTickersSteps(tag, steps, currentStepNumber = 0) {
1089
1159
  if (steps.length == 0) {
1090
1160
  console.warn("[Pixi'VN] The steps of the tickers is empty");
1091
1161
  return;
1092
1162
  }
1093
- let alredyExists = _GameWindowManager._currentTickersSteps[tag] !== void 0;
1163
+ _GameWindowManager.removeTickerStepByCanvasElement(tag);
1094
1164
  _GameWindowManager._currentTickersSteps[tag] = {
1095
- currentStepNumber: 0,
1096
- steps: steps.map((s) => {
1097
- if (s === Repeat) {
1098
- return s;
1099
- }
1100
- if (!s.duration) {
1101
- console.warn("[Pixi'VN] Duration is not defined, so it will be set to 1000");
1102
- s.duration = 1e3;
1165
+ currentStepNumber,
1166
+ steps: steps.map((step) => {
1167
+ if (step === Repeat) {
1168
+ return step;
1103
1169
  }
1104
- if (s.hasOwnProperty("type") && s.type === PauseValueType) {
1105
- return s;
1170
+ if (step.hasOwnProperty("type") && step.type === "pause") {
1171
+ return step;
1106
1172
  }
1107
- let tickerName = s.constructor.name;
1173
+ let tickerId = step.id;
1108
1174
  return {
1109
- ticker: tickerName,
1110
- args: s.args,
1111
- duration: s.duration
1175
+ ticker: tickerId,
1176
+ args: createExportableElement(step.args),
1177
+ duration: step.duration
1112
1178
  };
1113
1179
  })
1114
1180
  };
1115
- if (!alredyExists) {
1181
+ _GameWindowManager.runTickersSteps(tag);
1182
+ }
1183
+ static restoneTickersSteps(data) {
1184
+ for (let tag in data) {
1185
+ let steps = data[tag];
1186
+ _GameWindowManager._currentTickersSteps[tag] = steps;
1116
1187
  _GameWindowManager.runTickersSteps(tag);
1117
1188
  }
1118
1189
  }
@@ -1126,70 +1197,106 @@ var _GameWindowManager = class _GameWindowManager {
1126
1197
  return;
1127
1198
  }
1128
1199
  }
1129
- if (step.hasOwnProperty("type") && step.type === PauseValueType) {
1200
+ if (step.hasOwnProperty("type") && step.type === "pause") {
1130
1201
  let timeout = setTimeout(() => {
1202
+ let tickerTimeoutInfo = _GameWindowManager._currentTickersTimeouts[timeout.toString()];
1203
+ if (tickerTimeoutInfo) {
1204
+ tickerTimeoutInfo.tags.forEach((tag2) => {
1205
+ _GameWindowManager.nextTickerStep(tag2);
1206
+ });
1207
+ }
1131
1208
  _GameWindowManager.removeTickerTimeoutInfo(timeout);
1132
- _GameWindowManager.nextTickerStep(tag);
1133
- }, step.duration);
1134
- _GameWindowManager.addTickerTimeoutInfo(tag, "steps", timeout.toString());
1209
+ }, step.duration * 1e3);
1210
+ _GameWindowManager.addTickerTimeoutInfo(tag, "steps", timeout.toString(), false);
1135
1211
  return;
1136
1212
  }
1137
- let ticker = geTickerInstanceByClassName(step.ticker, step.args, step.duration, step.priority);
1213
+ let ticker = geTickerInstanceById(step.ticker, step.args, step.duration, step.priority);
1138
1214
  if (!ticker) {
1139
1215
  console.error(`[Pixi'VN] Ticker ${step.ticker} not found`);
1140
1216
  return;
1141
1217
  }
1142
- _GameWindowManager.addTicker(tag, ticker);
1218
+ let tickerName = ticker.id;
1219
+ let tickerHistory = {
1220
+ fn: () => {
1221
+ },
1222
+ id: tickerName,
1223
+ args: createExportableElement(ticker.args),
1224
+ canvasElementTags: [tag],
1225
+ priority: ticker.priority,
1226
+ duration: ticker.duration,
1227
+ createdByTicketStepsId: tag
1228
+ };
1229
+ let id = _GameWindowManager.generateTickerId(tickerHistory);
1230
+ _GameWindowManager.pushTicker(id, tickerHistory, ticker);
1231
+ if (ticker.duration) {
1232
+ let timeout = setTimeout(() => {
1233
+ let tickerTimeoutInfo = _GameWindowManager._currentTickersTimeouts[timeout.toString()];
1234
+ if (tickerTimeoutInfo) {
1235
+ _GameWindowManager.removeTicker(id);
1236
+ tickerTimeoutInfo.tags.forEach((tag2) => {
1237
+ _GameWindowManager.nextTickerStep(tag2);
1238
+ });
1239
+ }
1240
+ _GameWindowManager.removeTickerTimeoutInfo(timeout);
1241
+ }, ticker.duration * 1e3);
1242
+ _GameWindowManager.addTickerTimeoutInfo(tag, tickerName, timeout.toString(), false);
1243
+ }
1143
1244
  }
1144
1245
  static nextTickerStep(tag) {
1145
- if (typeof tag === "string") {
1146
- tag = [tag];
1246
+ if (_GameWindowManager._currentTickersSteps[tag]) {
1247
+ let steps = _GameWindowManager._currentTickersSteps[tag];
1248
+ if (steps.currentStepNumber + 1 < steps.steps.length) {
1249
+ steps.currentStepNumber++;
1250
+ _GameWindowManager._currentTickersSteps[tag] = steps;
1251
+ _GameWindowManager.runTickersSteps(tag);
1252
+ } else {
1253
+ _GameWindowManager.removeTickerStepByCanvasElement(tag);
1254
+ }
1147
1255
  }
1148
- tag.forEach((tag2) => {
1149
- if (_GameWindowManager._currentTickersSteps[tag2]) {
1150
- let steps = _GameWindowManager._currentTickersSteps[tag2];
1151
- if (steps.currentStepNumber + 1 < steps.steps.length) {
1152
- steps.currentStepNumber++;
1153
- _GameWindowManager._currentTickersSteps[tag2] = steps;
1154
- _GameWindowManager.runTickersSteps(tag2);
1155
- } else {
1156
- delete _GameWindowManager._currentTickersSteps[tag2];
1157
- }
1256
+ }
1257
+ static onEndOfTicker(canvasElementTags, ticker, canvasElementTagsToDelete, tickerId) {
1258
+ let tickerData = _GameWindowManager._currentTickers[tickerId];
1259
+ _GameWindowManager.removeAssociationBetweenTickerCanvasElement(canvasElementTags, ticker);
1260
+ _GameWindowManager.removeCanvasElement(canvasElementTagsToDelete);
1261
+ if (tickerData) {
1262
+ _GameWindowManager.removeTicker(tickerId);
1263
+ if (tickerData.duration == void 0 && tickerData.createdByTicketStepsId) {
1264
+ _GameWindowManager.nextTickerStep(tickerData.createdByTicketStepsId);
1158
1265
  }
1159
- });
1266
+ }
1160
1267
  }
1161
1268
  /**
1162
1269
  * Remove a connection between a canvas element and a ticker.
1163
1270
  * And remove the ticker if there is no canvas element connected to it.
1164
- * @param tag The tag of the canvas element that will use the ticker.
1271
+ * @param tags The tag of the canvas element that will use the ticker.
1165
1272
  * @param ticker The ticker class to be removed.
1166
1273
  * @example
1167
1274
  * ```typescript
1168
- * GameWindowManager.removeAssociationBetweenTickerCanvasElement("alien", TickerRotate)
1275
+ * GameWindowManager.removeAssociationBetweenTickerCanvasElement("alien", RotateTicker)
1169
1276
  * ```
1170
1277
  */
1171
- static removeAssociationBetweenTickerCanvasElement(tag, ticker) {
1172
- let tickerName;
1173
- if (ticker instanceof TickerBase) {
1174
- tickerName = ticker.constructor.name;
1278
+ static removeAssociationBetweenTickerCanvasElement(tags, ticker) {
1279
+ let tickerId;
1280
+ if (typeof ticker === "string") {
1281
+ tickerId = ticker;
1282
+ } else if (ticker instanceof TickerBase) {
1283
+ tickerId = ticker.id;
1175
1284
  } else {
1176
- tickerName = ticker.name;
1285
+ tickerId = ticker.prototype.id;
1177
1286
  }
1178
- if (typeof tag === "string") {
1179
- tag = [tag];
1287
+ if (typeof tags === "string") {
1288
+ tags = [tags];
1180
1289
  }
1181
- _GameWindowManager._currentTickers = _GameWindowManager._currentTickers.map((t) => {
1182
- if (t.className === tickerName) {
1183
- t.canvasElementTags = t.canvasElementTags.filter((e) => !tag.includes(e));
1290
+ for (let id in _GameWindowManager._currentTickers) {
1291
+ let ticker2 = _GameWindowManager._currentTickers[id];
1292
+ if (ticker2.id === tickerId) {
1293
+ _GameWindowManager._currentTickers[id].canvasElementTags = ticker2.canvasElementTags.filter((e) => !tags.includes(e));
1184
1294
  }
1185
- return t;
1186
- });
1187
- for (let timeout in _GameWindowManager.currentTickersTimeouts) {
1188
- let t = _GameWindowManager.currentTickersTimeouts[timeout].tags.filter((e) => !tag.includes(e));
1189
- if (t.length == 0) {
1190
- _GameWindowManager.removeTickerTimeoutInfo(timeout);
1191
- } else {
1192
- _GameWindowManager.currentTickersTimeouts[timeout].tags = t;
1295
+ }
1296
+ for (let timeout in _GameWindowManager._currentTickersTimeouts) {
1297
+ let TickerTimeout = _GameWindowManager._currentTickersTimeouts[timeout];
1298
+ if (TickerTimeout.ticker === tickerId && TickerTimeout.canBeDeletedBeforeEnd) {
1299
+ _GameWindowManager._currentTickersTimeouts[timeout].tags = TickerTimeout.tags.filter((t) => !tags.includes(t));
1193
1300
  }
1194
1301
  }
1195
1302
  _GameWindowManager.removeTickersWithoutAssociatedCanvasElement();
@@ -1198,49 +1305,117 @@ var _GameWindowManager = class _GameWindowManager {
1198
1305
  * Remove all tickers that are not connected to any existing canvas element.
1199
1306
  */
1200
1307
  static removeTickersWithoutAssociatedCanvasElement() {
1201
- let currentTickers = _GameWindowManager._currentTickers.map((t) => {
1202
- t.canvasElementTags = t.canvasElementTags.filter((e) => _GameWindowManager._children[e]);
1203
- return t;
1204
- });
1205
- currentTickers.filter((t) => t.canvasElementTags.length === 0).forEach((t) => {
1206
- _GameWindowManager.app.ticker.remove(t.fn);
1207
- });
1208
- currentTickers = currentTickers.filter((t) => t.canvasElementTags.length > 0);
1209
- _GameWindowManager._currentTickers = currentTickers;
1308
+ for (let id in _GameWindowManager._currentTickers) {
1309
+ let ticker = _GameWindowManager._currentTickers[id];
1310
+ ticker.canvasElementTags = ticker.canvasElementTags.filter((e) => _GameWindowManager._children[e]);
1311
+ if (ticker.canvasElementTags.length === 0) {
1312
+ _GameWindowManager.removeTicker(id);
1313
+ }
1314
+ }
1210
1315
  for (let tag in _GameWindowManager._currentTickersSteps) {
1211
1316
  if (_GameWindowManager._children[tag] === void 0) {
1212
1317
  delete _GameWindowManager._currentTickersSteps[tag];
1213
1318
  }
1214
1319
  }
1320
+ Object.entries(_GameWindowManager._currentTickersTimeouts).forEach(([timeout, { tags }]) => {
1321
+ if (tags.length === 0) {
1322
+ _GameWindowManager.removeTickerTimeout(timeout);
1323
+ }
1324
+ });
1215
1325
  }
1216
- static addTickerTimeoutInfo(tags, ticker, timeout) {
1326
+ static addTickerTimeoutInfo(tags, ticker, timeout, canBeDeletedBeforeEnd) {
1217
1327
  if (typeof tags === "string") {
1218
1328
  tags = [tags];
1219
1329
  }
1220
- _GameWindowManager.currentTickersTimeouts[timeout] = {
1330
+ _GameWindowManager._currentTickersTimeouts[timeout] = {
1221
1331
  tags,
1222
- ticker
1332
+ ticker,
1333
+ canBeDeletedBeforeEnd
1223
1334
  };
1224
1335
  }
1225
1336
  static removeTickerTimeoutInfo(timeout) {
1226
1337
  if (typeof timeout !== "string") {
1227
1338
  timeout = timeout.toString();
1228
1339
  }
1229
- if (_GameWindowManager.currentTickersTimeouts[timeout]) {
1230
- delete _GameWindowManager.currentTickersTimeouts[timeout];
1340
+ if (_GameWindowManager._currentTickersTimeouts[timeout]) {
1341
+ delete _GameWindowManager._currentTickersTimeouts[timeout];
1342
+ }
1343
+ }
1344
+ static removeTickerTimeout(timeout) {
1345
+ if (typeof timeout !== "string") {
1346
+ timeout = timeout.toString();
1347
+ }
1348
+ clearTimeout(Number(timeout));
1349
+ _GameWindowManager.removeTickerTimeoutInfo(timeout);
1350
+ }
1351
+ static removeTickerTimeoutsByTag(tag, checkCanBeDeletedBeforeEnd) {
1352
+ for (let timeout in _GameWindowManager._currentTickersTimeouts) {
1353
+ let tagsWithoutTagToRemove = _GameWindowManager._currentTickersTimeouts[timeout].tags.filter((t) => t !== tag);
1354
+ if (tagsWithoutTagToRemove.length === 0) {
1355
+ let canBeDeletedBeforeEnd = _GameWindowManager._currentTickersTimeouts[timeout].canBeDeletedBeforeEnd;
1356
+ if (!checkCanBeDeletedBeforeEnd || canBeDeletedBeforeEnd) {
1357
+ _GameWindowManager.removeTickerTimeout(timeout);
1358
+ }
1359
+ } else {
1360
+ _GameWindowManager._currentTickersTimeouts[timeout].tags = tagsWithoutTagToRemove;
1361
+ }
1231
1362
  }
1232
1363
  }
1233
1364
  /**
1234
1365
  * Remove all tickers from the canvas.
1235
1366
  */
1236
- static removeTickers() {
1367
+ static removeAllTickers() {
1237
1368
  _GameWindowManager._currentTickersSteps = {};
1238
- _GameWindowManager._currentTickers.forEach((t) => {
1239
- _GameWindowManager.app.ticker.remove(t.fn);
1369
+ Object.keys(_GameWindowManager._currentTickers).forEach((id) => {
1370
+ _GameWindowManager.removeTicker(id);
1371
+ });
1372
+ _GameWindowManager._currentTickers = {};
1373
+ for (let timeout in _GameWindowManager._currentTickersTimeouts) {
1374
+ _GameWindowManager.removeTickerTimeout(timeout);
1375
+ }
1376
+ }
1377
+ /**
1378
+ * Remove all tickers from a canvas element.
1379
+ * @param tag The tag of the canvas element that will use the ticker.
1380
+ */
1381
+ static removeTickerByCanvasElement(tag) {
1382
+ if (typeof tag === "string") {
1383
+ tag = [tag];
1384
+ }
1385
+ tag.forEach((tag2) => {
1386
+ for (let id in _GameWindowManager._currentTickers) {
1387
+ let ticker = _GameWindowManager._currentTickers[id];
1388
+ if (ticker.canvasElementTags.includes(tag2)) {
1389
+ _GameWindowManager.removeTicker(id);
1390
+ }
1391
+ }
1392
+ if (_GameWindowManager._currentTickersSteps[tag2]) {
1393
+ delete _GameWindowManager._currentTickersSteps[tag2];
1394
+ }
1395
+ _GameWindowManager.removeTickerTimeoutsByTag(tag2, false);
1396
+ delete _GameWindowManager._currentTickersSteps[tag2];
1240
1397
  });
1241
- _GameWindowManager._currentTickers = [];
1242
- for (let timeout in _GameWindowManager.currentTickersTimeouts) {
1243
- _GameWindowManager.removeTickerTimeoutInfo(timeout);
1398
+ }
1399
+ static removeTickerStepByCanvasElement(tag) {
1400
+ if (_GameWindowManager._currentTickersSteps[tag]) {
1401
+ delete _GameWindowManager._currentTickersSteps[tag];
1402
+ }
1403
+ for (let id in _GameWindowManager._currentTickers) {
1404
+ let ticker = _GameWindowManager._currentTickers[id];
1405
+ if (ticker.createdByTicketStepsId === tag) {
1406
+ _GameWindowManager.removeTicker(id);
1407
+ }
1408
+ }
1409
+ }
1410
+ static removeTicker(tickerId) {
1411
+ let ticker = _GameWindowManager._currentTickers[tickerId];
1412
+ if (ticker) {
1413
+ if (ticker.args.hasOwnProperty(tagToRemoveAfter)) {
1414
+ let tagToRemoveAfter2 = ticker.args.tagToRemoveAfter;
1415
+ _GameWindowManager.removeCanvasElement(tagToRemoveAfter2);
1416
+ }
1417
+ _GameWindowManager.app.ticker.remove(ticker.fn);
1418
+ delete _GameWindowManager._currentTickers[tickerId];
1244
1419
  }
1245
1420
  }
1246
1421
  /**
@@ -1267,7 +1442,8 @@ var _GameWindowManager = class _GameWindowManager {
1267
1442
  currentElements[tag] = exportCanvasElement(_GameWindowManager._children[tag]);
1268
1443
  }
1269
1444
  return {
1270
- currentTickers: createExportableElement(_GameWindowManager._currentTickers),
1445
+ currentTickers: createExportableElement(_GameWindowManager.currentTickersWithoutCreatedBySteps),
1446
+ currentTickersSteps: createExportableElement(_GameWindowManager._currentTickersSteps),
1271
1447
  currentElements: createExportableElement(currentElements),
1272
1448
  childrenTagsOrder: createExportableElement(_GameWindowManager.childrenTagsOrder)
1273
1449
  };
@@ -1302,15 +1478,20 @@ var _GameWindowManager = class _GameWindowManager {
1302
1478
  }
1303
1479
  if (data.hasOwnProperty("currentTickers")) {
1304
1480
  let currentTickers = data["currentTickers"];
1305
- currentTickers.forEach((t) => {
1481
+ for (let id in currentTickers) {
1482
+ let t = currentTickers[id];
1306
1483
  let tags = t.canvasElementTags;
1307
- let ticker = geTickerInstanceByClassName(t.className, t.args, t.duration, t.priority);
1484
+ let ticker = geTickerInstanceById(t.id, t.args, t.duration, t.priority);
1308
1485
  if (ticker) {
1309
1486
  _GameWindowManager.addTicker(tags, ticker);
1310
1487
  } else {
1311
- console.error(`[Pixi'VN] Ticker ${t.className} not found`);
1488
+ console.error(`[Pixi'VN] Ticker ${t.id} not found`);
1312
1489
  }
1313
- });
1490
+ }
1491
+ }
1492
+ if (data.hasOwnProperty("currentTickersSteps")) {
1493
+ let currentTickersSteps = data["currentTickersSteps"];
1494
+ _GameWindowManager.restoneTickersSteps(currentTickersSteps);
1314
1495
  }
1315
1496
  } catch (e) {
1316
1497
  console.error("[Pixi'VN] Error importing data", e);
@@ -1324,11 +1505,14 @@ _GameWindowManager._children = {};
1324
1505
  * The order of the children tags.
1325
1506
  */
1326
1507
  _GameWindowManager.childrenTagsOrder = [];
1327
- _GameWindowManager._currentTickers = [];
1508
+ _GameWindowManager._currentTickers = {};
1328
1509
  _GameWindowManager._currentTickersSteps = {};
1329
- _GameWindowManager.currentTickersTimeouts = {};
1510
+ _GameWindowManager._currentTickersTimeouts = {};
1330
1511
  var GameWindowManager = _GameWindowManager;
1331
1512
 
1513
+ // src/types/CloseType.ts
1514
+ var Close = "close";
1515
+
1332
1516
  // src/decorators/LabelDecorator.ts
1333
1517
  var registeredLabels = {};
1334
1518
  function getLabelById(id) {
@@ -1344,20 +1528,43 @@ function getLabelById(id) {
1344
1528
  function getDialogue() {
1345
1529
  return GameStorageManager.getVariable(GameStorageManager.keysSystem.CURRENT_DIALOGUE_MEMORY_KEY);
1346
1530
  }
1347
- var TickerFadeAlpha = class extends TickerBase {
1348
- /**
1349
- * The method that will be called every frame to fade the alpha of the canvas element of the canvas.
1350
- * @param delta The delta time
1351
- * @param args The arguments that are passed to the ticker
1352
- * @param tags The tags of the canvas element that are connected to this ticker
1353
- */
1354
- fn(t, args, tags) {
1531
+ function getChoiceMenuOptions() {
1532
+ let d = GameStorageManager.getVariable(GameStorageManager.keysSystem.CURRENT_MENU_OPTIONS_MEMORY_KEY);
1533
+ if (d) {
1534
+ let options = [];
1535
+ d.forEach((option, index) => {
1536
+ if (option.type === Close) {
1537
+ let itemLabel = newCloseLabel(index);
1538
+ options.push({
1539
+ text: option.text,
1540
+ label: itemLabel,
1541
+ type: Close,
1542
+ closeCurrentLabel: option.closeCurrentLabel,
1543
+ props: {}
1544
+ });
1545
+ return;
1546
+ }
1547
+ let label = getLabelById(option.label);
1548
+ if (label) {
1549
+ let itemLabel = new Label(label.id, label.steps, label.onStepRun, index);
1550
+ options.push(__spreadProps(__spreadValues({}, option), {
1551
+ label: itemLabel
1552
+ }));
1553
+ }
1554
+ });
1555
+ return options;
1556
+ }
1557
+ return void 0;
1558
+ }
1559
+ var FadeAlphaTicker = class extends TickerBase {
1560
+ fn(ticker, args, tags, tickerId) {
1355
1561
  let type = args.type === void 0 ? "hide" : args.type;
1356
- let speed = args.speed === void 0 ? 0.1 : args.speed;
1562
+ let duration = args.duration === void 0 ? 1 : args.duration;
1563
+ let speed = 1 / (duration * 60);
1357
1564
  let limit = args.limit === void 0 ? type === "hide" ? 0 : 1 : args.limit;
1358
- let removeElementAfter = args.tagToRemoveAfter || [];
1359
- if (typeof removeElementAfter === "string") {
1360
- removeElementAfter = [removeElementAfter];
1565
+ let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
1566
+ if (typeof tagToRemoveAfter2 === "string") {
1567
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
1361
1568
  }
1362
1569
  if (type === "hide" && limit < 0) {
1363
1570
  limit = 0;
@@ -1378,61 +1585,88 @@ var TickerFadeAlpha = class extends TickerBase {
1378
1585
  let element = GameWindowManager.getCanvasElement(tag);
1379
1586
  if (element && element instanceof pixi_js.Container) {
1380
1587
  if (type === "show" && element.alpha < limit) {
1381
- element.alpha += speed * t.deltaTime;
1588
+ element.alpha += speed * ticker.deltaTime;
1382
1589
  } else if (type === "hide" && element.alpha > limit) {
1383
- element.alpha -= speed * t.deltaTime;
1384
- } else {
1590
+ element.alpha -= speed * ticker.deltaTime;
1591
+ }
1592
+ if (type === "show" && element.alpha >= limit) {
1593
+ element.alpha = limit;
1594
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
1595
+ } else if (type === "hide" && element.alpha <= limit) {
1385
1596
  element.alpha = limit;
1386
- GameWindowManager.removeAssociationBetweenTickerCanvasElement(tag, this);
1387
- GameWindowManager.removeCanvasElement(removeElementAfter);
1597
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
1388
1598
  }
1389
1599
  }
1390
1600
  });
1391
1601
  }
1392
1602
  };
1393
- TickerFadeAlpha = __decorateClass([
1603
+ FadeAlphaTicker = __decorateClass([
1394
1604
  tickerDecorator()
1395
- ], TickerFadeAlpha);
1605
+ ], FadeAlphaTicker);
1396
1606
 
1397
1607
  // src/functions/TickerUtility.ts
1398
1608
  function updateTickerProgression(args, propertyName, progression) {
1399
- if (args.hasOwnProperty(propertyName) && typeof args[propertyName] !== "number") {
1609
+ if (args[propertyName] === void 0 || !progression || args[propertyName] === progression.limit) {
1400
1610
  return;
1401
1611
  }
1402
- if (args[propertyName] !== void 0 && progression && args[propertyName] !== progression.limit) {
1612
+ if (typeof args[propertyName] === "number") {
1403
1613
  if (progression.type === "linear") {
1404
- args[propertyName] += progression.amt;
1405
- if (progression.limit !== void 0) {
1406
- if (args[propertyName] > progression.limit && progression.amt > 0) {
1407
- args[propertyName] = progression.limit;
1408
- } else if (args[propertyName] < progression.limit && progression.amt < 0) {
1409
- args[propertyName] = progression.limit;
1410
- }
1411
- }
1614
+ args[propertyName] = getLinearProgression(args[propertyName], progression);
1412
1615
  } else if (progression.type === "exponential") {
1413
- args[propertyName] += args[propertyName] * progression.percentage;
1414
- if (progression.limit !== void 0) {
1415
- if (args[propertyName] > progression.limit && progression.percentage > 0) {
1416
- args[propertyName] = progression.limit;
1417
- } else if (args[propertyName] < progression.limit && progression.percentage < 0) {
1418
- args[propertyName] = progression.limit;
1419
- }
1420
- }
1616
+ args[propertyName] = getExponentialProgression(args[propertyName], progression);
1617
+ }
1618
+ } 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") {
1619
+ if (progression.type === "linear") {
1620
+ args[propertyName].x = getLinearProgression(args[propertyName].x, progression);
1621
+ args[propertyName].y = getLinearProgression(args[propertyName].y, progression);
1622
+ } else if (progression.type === "exponential") {
1623
+ args[propertyName].x = getExponentialProgression(args[propertyName].x, progression);
1624
+ args[propertyName].y = getExponentialProgression(args[propertyName].y, progression);
1421
1625
  }
1422
1626
  }
1423
1627
  }
1628
+ function getLinearProgression(number, progression) {
1629
+ if (progression.limit !== void 0) {
1630
+ if (number > progression.limit && progression.amt > 0) {
1631
+ return progression.limit;
1632
+ } else if (number < progression.limit && progression.amt < 0) {
1633
+ return progression.limit;
1634
+ }
1635
+ }
1636
+ return number + progression.amt / 60;
1637
+ }
1638
+ function getExponentialProgression(number, progression) {
1639
+ if (progression.limit !== void 0) {
1640
+ if (number > progression.limit && progression.percentage > 0) {
1641
+ return progression.limit;
1642
+ } else if (number < progression.limit && progression.percentage < 0) {
1643
+ return progression.limit;
1644
+ }
1645
+ }
1646
+ return number + number * progression.percentage;
1647
+ }
1424
1648
 
1425
- // src/classes/ticker/TickerMove.ts
1426
- var TickerMove = class extends TickerBase {
1427
- /**
1428
- * The method that will be called every frame to move the canvas element of the canvas.
1429
- * @param t The ticker that is calling this method
1430
- * @param args The arguments that are passed to the ticker
1431
- * @param tags The tags of the canvas element that are connected to this ticker
1432
- */
1433
- fn(t, args, tags) {
1434
- let speed = args.speed === void 0 ? 0.1 : args.speed;
1649
+ // src/classes/ticker/MoveTicker.ts
1650
+ var MoveTicker = class extends TickerBase {
1651
+ fn(ticker, args, tags, tickerId) {
1652
+ let xSpeed = 1;
1653
+ let ySpeed = 1;
1654
+ if (args.speed) {
1655
+ if (typeof args.speed === "number") {
1656
+ xSpeed = args.speed;
1657
+ ySpeed = args.speed;
1658
+ } else {
1659
+ xSpeed = args.speed.x;
1660
+ ySpeed = args.speed.y;
1661
+ }
1662
+ }
1663
+ xSpeed /= 60;
1664
+ ySpeed /= 60;
1435
1665
  let destination = args.destination;
1666
+ let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
1667
+ if (typeof tagToRemoveAfter2 === "string") {
1668
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
1669
+ }
1436
1670
  tags.filter((tag) => {
1437
1671
  var _a;
1438
1672
  let element = GameWindowManager.getCanvasElement(tag);
@@ -1445,41 +1679,42 @@ var TickerMove = class extends TickerBase {
1445
1679
  }).forEach((tag) => {
1446
1680
  let element = GameWindowManager.getCanvasElement(tag);
1447
1681
  if (element && element instanceof pixi_js.Container) {
1448
- let xDistance = destination.x - element.x;
1682
+ let xDistance = destination.x - element.x > 0 ? 1 : -1;
1449
1683
  if (xDistance != 0) {
1450
- element.x += xDistance / speed * t.deltaTime;
1684
+ element.x += xDistance * xSpeed * ticker.deltaTime;
1451
1685
  let newDistance = destination.x - element.x;
1452
1686
  if (xDistance < 0 && newDistance > 0 || xDistance > 0 && newDistance < 0) {
1453
1687
  element.x = destination.x;
1454
1688
  }
1455
1689
  }
1456
- let yDistance = destination.y - element.y;
1690
+ let yDistance = destination.y - element.y > 0 ? 1 : -1;
1457
1691
  if (yDistance != 0) {
1458
- element.y += yDistance / speed * t.deltaTime;
1692
+ element.y += yDistance * ySpeed * ticker.deltaTime;
1459
1693
  let newDistance = destination.y - element.y;
1460
1694
  if (yDistance < 0 && newDistance > 0 || yDistance > 0 && newDistance < 0) {
1461
1695
  element.y = destination.y;
1462
1696
  }
1463
1697
  }
1698
+ if (element.x == destination.x && element.y == destination.y) {
1699
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
1700
+ }
1464
1701
  }
1465
1702
  });
1466
1703
  if (args.speedProgression)
1467
1704
  updateTickerProgression(args, "speed", args.speedProgression);
1468
1705
  }
1469
1706
  };
1470
- TickerMove = __decorateClass([
1707
+ MoveTicker = __decorateClass([
1471
1708
  tickerDecorator()
1472
- ], TickerMove);
1473
- var TickerRotate = class extends TickerBase {
1474
- /**
1475
- * The method that will be called every frame to rotate the canvas element of the canvas.
1476
- * @param delta The delta time
1477
- * @param args The arguments that are passed to the ticker
1478
- * @param tags The tags of the canvas element that are connected to this ticker
1479
- */
1480
- fn(t, args, tags) {
1481
- let speed = args.speed === void 0 ? 0.1 : args.speed;
1709
+ ], MoveTicker);
1710
+ var RotateTicker = class extends TickerBase {
1711
+ fn(ticker, args, tags, tickerId) {
1712
+ let speed = (args.speed === void 0 ? 1 : args.speed) / 60;
1482
1713
  let clockwise = args.clockwise === void 0 ? true : args.clockwise;
1714
+ let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
1715
+ if (typeof tagToRemoveAfter2 === "string") {
1716
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
1717
+ }
1483
1718
  tags.filter((tag) => {
1484
1719
  var _a;
1485
1720
  let element = GameWindowManager.getCanvasElement(tag);
@@ -1493,18 +1728,111 @@ var TickerRotate = class extends TickerBase {
1493
1728
  let element = GameWindowManager.getCanvasElement(tag);
1494
1729
  if (element && element instanceof pixi_js.Container) {
1495
1730
  if (clockwise)
1496
- element.rotation += speed * t.deltaTime;
1731
+ element.rotation += speed * ticker.deltaTime;
1497
1732
  else
1498
- element.rotation -= speed * t.deltaTime;
1733
+ element.rotation -= speed * ticker.deltaTime;
1734
+ if (speed < 1e-5 && !(args.speedProgression && args.speedProgression.type == "linear" && args.speedProgression.amt != 0)) {
1735
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
1736
+ }
1499
1737
  }
1500
1738
  });
1501
1739
  if (args.speedProgression)
1502
1740
  updateTickerProgression(args, "speed", args.speedProgression);
1503
1741
  }
1504
1742
  };
1505
- TickerRotate = __decorateClass([
1743
+ RotateTicker = __decorateClass([
1506
1744
  tickerDecorator()
1507
- ], TickerRotate);
1745
+ ], RotateTicker);
1746
+ var ZoomTicker = class extends TickerBase {
1747
+ fn(ticker, args, tags, tickerId) {
1748
+ let xSpeed = 0.1;
1749
+ let ySpeed = 0.1;
1750
+ if (args.speed) {
1751
+ if (typeof args.speed === "number") {
1752
+ xSpeed = args.speed;
1753
+ ySpeed = args.speed;
1754
+ } else {
1755
+ xSpeed = args.speed.x;
1756
+ ySpeed = args.speed.y;
1757
+ }
1758
+ }
1759
+ xSpeed /= 60;
1760
+ ySpeed /= 60;
1761
+ let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
1762
+ if (typeof tagToRemoveAfter2 === "string") {
1763
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
1764
+ }
1765
+ let type = args.type || "zoom";
1766
+ let xLimit = type === "zoom" ? Infinity : 0;
1767
+ let yLimit = type === "zoom" ? Infinity : 0;
1768
+ if (args.limit) {
1769
+ if (typeof args.limit === "number") {
1770
+ xLimit = args.limit;
1771
+ yLimit = args.limit;
1772
+ } else {
1773
+ xLimit = args.limit.x;
1774
+ yLimit = args.limit.y;
1775
+ }
1776
+ }
1777
+ tags.filter((tag) => {
1778
+ var _a;
1779
+ let element = GameWindowManager.getCanvasElement(tag);
1780
+ if (args.startOnlyIfHaveTexture) {
1781
+ if (element && element instanceof pixi_js.Sprite && ((_a = element.texture) == null ? void 0 : _a.label) == "EMPTY") {
1782
+ return false;
1783
+ }
1784
+ }
1785
+ return true;
1786
+ }).forEach((tag) => {
1787
+ let element = GameWindowManager.getCanvasElement(tag);
1788
+ if (element && element instanceof pixi_js.Container) {
1789
+ if (type === "zoom" && (element.scale.x < xLimit || element.scale.y < yLimit)) {
1790
+ element.scale.x += xSpeed * ticker.deltaTime;
1791
+ element.scale.y += ySpeed * ticker.deltaTime;
1792
+ } else if (type === "unzoom" && (element.scale.x > xLimit || element.scale.y > yLimit)) {
1793
+ element.scale.x -= xSpeed * ticker.deltaTime;
1794
+ element.scale.y -= ySpeed * ticker.deltaTime;
1795
+ }
1796
+ if (type === "zoom") {
1797
+ if (element.scale.x > xLimit) {
1798
+ element.scale.x = xLimit;
1799
+ }
1800
+ if (element.scale.y > yLimit) {
1801
+ element.scale.y = yLimit;
1802
+ }
1803
+ if (element.scale.x >= xLimit && element.scale.y >= yLimit) {
1804
+ element.scale.x = xLimit;
1805
+ element.scale.y = yLimit;
1806
+ this.onEndOfTicker(tag, tickerId, element, tagToRemoveAfter2);
1807
+ }
1808
+ } else if (type === "unzoom") {
1809
+ if (element.scale.x < xLimit) {
1810
+ element.scale.x = xLimit;
1811
+ }
1812
+ if (element.scale.y < yLimit) {
1813
+ element.scale.y = yLimit;
1814
+ }
1815
+ if (element.scale.x <= xLimit && element.scale.y <= yLimit) {
1816
+ element.scale.x = xLimit;
1817
+ element.scale.y = yLimit;
1818
+ this.onEndOfTicker(tag, tickerId, element, tagToRemoveAfter2);
1819
+ }
1820
+ }
1821
+ if (xSpeed < 1e-5 && ySpeed < 1e-5 && !(args.speedProgression && args.speedProgression.type == "linear" && args.speedProgression.amt != 0)) {
1822
+ this.onEndOfTicker(tag, tickerId, element, tagToRemoveAfter2);
1823
+ }
1824
+ }
1825
+ });
1826
+ if (args.speedProgression)
1827
+ updateTickerProgression(args, "speed", args.speedProgression);
1828
+ }
1829
+ onEndOfTicker(tag, tickerId, _element, tagToRemoveAfter2) {
1830
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
1831
+ }
1832
+ };
1833
+ ZoomTicker = __decorateClass([
1834
+ tickerDecorator()
1835
+ ], ZoomTicker);
1508
1836
 
1509
1837
  // src/functions/DiffUtility.ts
1510
1838
  function restoreDeepDiffChanges(data, differences) {
@@ -1611,7 +1939,8 @@ var _GameStepManager = class _GameStepManager {
1611
1939
  canvas: {
1612
1940
  childrenTagsOrder: [],
1613
1941
  currentElements: {},
1614
- currentTickers: []
1942
+ currentTickers: {},
1943
+ currentTickersSteps: {}
1615
1944
  },
1616
1945
  labelIndex: -1,
1617
1946
  openedLabels: []
@@ -1722,6 +2051,13 @@ var _GameStepManager = class _GameStepManager {
1722
2051
  _GameStepManager._openedLabels = _GameStepManager.originalStepData.openedLabels;
1723
2052
  }
1724
2053
  /* Run Methods */
2054
+ static get canGoNext() {
2055
+ let options = getChoiceMenuOptions();
2056
+ if (options && options.length > 0) {
2057
+ return false;
2058
+ }
2059
+ return true;
2060
+ }
1725
2061
  /**
1726
2062
  * Execute the next step and add it to the history.
1727
2063
  * @param props The props to pass to the step.
@@ -1731,7 +2067,7 @@ var _GameStepManager = class _GameStepManager {
1731
2067
  * ```typescript
1732
2068
  * function nextOnClick() {
1733
2069
  * setLoading(true)
1734
- * GameStepManager.runNextStep(yourParams)
2070
+ * GameStepManager.goNext(yourParams)
1735
2071
  * .then((result) => {
1736
2072
  * setUpdate((p) => p + 1)
1737
2073
  * setLoading(false)
@@ -1746,8 +2082,12 @@ var _GameStepManager = class _GameStepManager {
1746
2082
  * }
1747
2083
  * ```
1748
2084
  */
1749
- static runNextStep(props, choiseMade) {
2085
+ static goNext(props, choiseMade) {
1750
2086
  return __async(this, null, function* () {
2087
+ if (!_GameStepManager.canGoNext) {
2088
+ console.warn("[Pixi'VN] The player must make a choice");
2089
+ return;
2090
+ }
1751
2091
  _GameStepManager.increaseCurrentStepIndex();
1752
2092
  return yield _GameStepManager.runCurrentStep(props, choiseMade);
1753
2093
  });
@@ -1778,7 +2118,7 @@ var _GameStepManager = class _GameStepManager {
1778
2118
  return result;
1779
2119
  } else if (_GameStepManager.openedLabels.length > 1) {
1780
2120
  _GameStepManager.closeCurrentLabel();
1781
- return yield _GameStepManager.runNextStep(props, choiseMade);
2121
+ return yield _GameStepManager.goNext(props, choiseMade);
1782
2122
  } else {
1783
2123
  _GameStepManager.restorLastLabelList();
1784
2124
  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");
@@ -1822,8 +2162,15 @@ var _GameStepManager = class _GameStepManager {
1822
2162
  }
1823
2163
  try {
1824
2164
  if (labelId === CLOSE_LABEL_ID) {
1825
- let closeLabel = newCloseLabel(choiseMade);
1826
- return _GameStepManager.closeChoiceMenu(closeLabel, props);
2165
+ let closeCurrentLabel = newCloseLabel(choiseMade);
2166
+ let choice = {
2167
+ label: closeCurrentLabel,
2168
+ text: "",
2169
+ closeCurrentLabel: false,
2170
+ type: "close",
2171
+ props: {}
2172
+ };
2173
+ return _GameStepManager.closeChoiceMenu(choice, props);
1827
2174
  }
1828
2175
  let tempLabel = getLabelById(labelId);
1829
2176
  if (!tempLabel) {
@@ -1873,8 +2220,15 @@ var _GameStepManager = class _GameStepManager {
1873
2220
  }
1874
2221
  try {
1875
2222
  if (labelId === CLOSE_LABEL_ID) {
1876
- let closeLabel = newCloseLabel(choiseMade);
1877
- return _GameStepManager.closeChoiceMenu(closeLabel, props);
2223
+ let closeCurrentLabel = newCloseLabel(choiseMade);
2224
+ let choice = {
2225
+ label: closeCurrentLabel,
2226
+ text: "",
2227
+ closeCurrentLabel: false,
2228
+ type: "close",
2229
+ props: {}
2230
+ };
2231
+ return _GameStepManager.closeChoiceMenu(choice, props);
1878
2232
  }
1879
2233
  let tempLabel = getLabelById(labelId);
1880
2234
  if (!tempLabel) {
@@ -1890,7 +2244,8 @@ var _GameStepManager = class _GameStepManager {
1890
2244
  }
1891
2245
  /**
1892
2246
  * When the player is in a choice menu, can use this function to exit to the choice menu.
1893
- * @param props The props to pass to the step.
2247
+ * @param choice
2248
+ * @param props
1894
2249
  * @returns StepLabelResultType or undefined.
1895
2250
  * @example
1896
2251
  * ```typescript
@@ -1901,13 +2256,17 @@ var _GameStepManager = class _GameStepManager {
1901
2256
  * })
1902
2257
  * ```
1903
2258
  */
1904
- static closeChoiceMenu(label, props) {
2259
+ static closeChoiceMenu(choice, props) {
1905
2260
  return __async(this, null, function* () {
2261
+ let label = choice.label;
1906
2262
  let choiseMade = void 0;
1907
2263
  if (typeof label.choiseIndex === "number") {
1908
2264
  choiseMade = label.choiseIndex;
1909
2265
  }
1910
- return _GameStepManager.runNextStep(props, choiseMade);
2266
+ if (choice.closeCurrentLabel) {
2267
+ _GameStepManager.closeCurrentLabel();
2268
+ }
2269
+ return _GameStepManager.goNext(props, choiseMade);
1911
2270
  });
1912
2271
  }
1913
2272
  /* After Update Methods */