@drincs/pixi-vn 0.6.0 → 0.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (415) hide show
  1. package/dist/{TickerBase-RQDWNI4K.d.ts → TickerBase-3rLpDpmb.d.ts} +27 -13
  2. package/dist/{TickerBase-B5CQCJs8.d.mts → TickerBase-DKYzbzro.d.mts} +27 -13
  3. package/dist/classes/CanvasEvent.d.mts +7 -1
  4. package/dist/classes/CanvasEvent.d.ts +7 -1
  5. package/dist/classes/CanvasEvent.js +7 -0
  6. package/dist/classes/CanvasEvent.js.map +1 -1
  7. package/dist/classes/CanvasEvent.mjs +7 -0
  8. package/dist/classes/CanvasEvent.mjs.map +1 -1
  9. package/dist/classes/CharacterBaseModel.d.mts +2 -26
  10. package/dist/classes/CharacterBaseModel.d.ts +2 -26
  11. package/dist/classes/CharacterBaseModel.js +544 -241
  12. package/dist/classes/CharacterBaseModel.js.map +1 -1
  13. package/dist/classes/CharacterBaseModel.mjs +540 -241
  14. package/dist/classes/CharacterBaseModel.mjs.map +1 -1
  15. package/dist/classes/ChoiceMenuOption.d.mts +27 -17
  16. package/dist/classes/ChoiceMenuOption.d.ts +27 -17
  17. package/dist/classes/ChoiceMenuOption.js +548 -243
  18. package/dist/classes/ChoiceMenuOption.js.map +1 -1
  19. package/dist/classes/ChoiceMenuOption.mjs +544 -243
  20. package/dist/classes/ChoiceMenuOption.mjs.map +1 -1
  21. package/dist/classes/CloseLabel.d.mts +1 -1
  22. package/dist/classes/CloseLabel.d.ts +1 -1
  23. package/dist/classes/CloseLabel.js +1 -1
  24. package/dist/classes/CloseLabel.js.map +1 -1
  25. package/dist/classes/CloseLabel.mjs +1 -1
  26. package/dist/classes/CloseLabel.mjs.map +1 -1
  27. package/dist/classes/DialogueBaseModel.d.mts +3 -2
  28. package/dist/classes/DialogueBaseModel.d.ts +3 -2
  29. package/dist/classes/DialogueBaseModel.js +5 -5
  30. package/dist/classes/DialogueBaseModel.js.map +1 -1
  31. package/dist/classes/DialogueBaseModel.mjs +5 -5
  32. package/dist/classes/DialogueBaseModel.mjs.map +1 -1
  33. package/dist/classes/Label.d.mts +1 -1
  34. package/dist/classes/Label.d.ts +1 -1
  35. package/dist/classes/Label.js +1 -1
  36. package/dist/classes/Label.js.map +1 -1
  37. package/dist/classes/Label.mjs +1 -1
  38. package/dist/classes/Label.mjs.map +1 -1
  39. package/dist/classes/StoredClassModel.d.mts +2 -2
  40. package/dist/classes/StoredClassModel.d.ts +2 -2
  41. package/dist/classes/StoredClassModel.js +544 -241
  42. package/dist/classes/StoredClassModel.js.map +1 -1
  43. package/dist/classes/StoredClassModel.mjs +540 -241
  44. package/dist/classes/StoredClassModel.mjs.map +1 -1
  45. package/dist/classes/canvas/CanvasBase.d.mts +5 -1
  46. package/dist/classes/canvas/CanvasBase.d.ts +5 -1
  47. package/dist/classes/canvas/CanvasBase.js +7 -0
  48. package/dist/classes/canvas/CanvasBase.js.map +1 -1
  49. package/dist/classes/canvas/CanvasBase.mjs +7 -0
  50. package/dist/classes/canvas/CanvasBase.mjs.map +1 -1
  51. package/dist/classes/canvas/CanvasContainer.d.mts +4 -1
  52. package/dist/classes/canvas/CanvasContainer.d.ts +4 -1
  53. package/dist/classes/canvas/CanvasContainer.js +57 -37
  54. package/dist/classes/canvas/CanvasContainer.js.map +1 -1
  55. package/dist/classes/canvas/CanvasContainer.mjs +57 -38
  56. package/dist/classes/canvas/CanvasContainer.mjs.map +1 -1
  57. package/dist/classes/canvas/CanvasImage.d.mts +4 -2
  58. package/dist/classes/canvas/CanvasImage.d.ts +4 -2
  59. package/dist/classes/canvas/CanvasImage.js +33 -20
  60. package/dist/classes/canvas/CanvasImage.js.map +1 -1
  61. package/dist/classes/canvas/CanvasImage.mjs +30 -20
  62. package/dist/classes/canvas/CanvasImage.mjs.map +1 -1
  63. package/dist/classes/canvas/CanvasSprite.d.mts +6 -3
  64. package/dist/classes/canvas/CanvasSprite.d.ts +6 -3
  65. package/dist/classes/canvas/CanvasSprite.js +25 -17
  66. package/dist/classes/canvas/CanvasSprite.js.map +1 -1
  67. package/dist/classes/canvas/CanvasSprite.mjs +25 -18
  68. package/dist/classes/canvas/CanvasSprite.mjs.map +1 -1
  69. package/dist/classes/canvas/CanvasText.d.mts +6 -3
  70. package/dist/classes/canvas/CanvasText.d.ts +6 -3
  71. package/dist/classes/canvas/CanvasText.js +25 -17
  72. package/dist/classes/canvas/CanvasText.js.map +1 -1
  73. package/dist/classes/canvas/CanvasText.mjs +25 -18
  74. package/dist/classes/canvas/CanvasText.mjs.map +1 -1
  75. package/dist/classes/canvas/index.js +184 -158
  76. package/dist/classes/canvas/index.js.map +1 -1
  77. package/dist/classes/canvas/index.mjs +184 -158
  78. package/dist/classes/canvas/index.mjs.map +1 -1
  79. package/dist/classes/index.d.mts +6 -4
  80. package/dist/classes/index.d.ts +6 -4
  81. package/dist/classes/index.js +560 -248
  82. package/dist/classes/index.js.map +1 -1
  83. package/dist/classes/index.mjs +556 -248
  84. package/dist/classes/index.mjs.map +1 -1
  85. package/dist/classes/ticker/FadeAlphaTicker.d.mts +27 -0
  86. package/dist/classes/ticker/FadeAlphaTicker.d.ts +27 -0
  87. package/dist/classes/ticker/{TickerFadeAlpha.js → FadeAlphaTicker.js} +549 -248
  88. package/dist/classes/ticker/FadeAlphaTicker.js.map +1 -0
  89. package/dist/classes/ticker/{TickerRotate.mjs → FadeAlphaTicker.mjs} +571 -274
  90. package/dist/classes/ticker/FadeAlphaTicker.mjs.map +1 -0
  91. package/dist/classes/ticker/MoveTicker.d.mts +25 -0
  92. package/dist/classes/ticker/MoveTicker.d.ts +25 -0
  93. package/dist/classes/ticker/{TickerMove.js → MoveTicker.js} +544 -241
  94. package/dist/classes/ticker/MoveTicker.js.map +1 -0
  95. package/dist/classes/ticker/{TickerFadeAlpha.mjs → MoveTicker.mjs} +568 -269
  96. package/dist/classes/ticker/MoveTicker.mjs.map +1 -0
  97. package/dist/classes/ticker/RotateTicker.d.mts +27 -0
  98. package/dist/classes/ticker/RotateTicker.d.ts +27 -0
  99. package/dist/classes/ticker/{TickerRotate.js → RotateTicker.js} +544 -241
  100. package/dist/classes/ticker/RotateTicker.js.map +1 -0
  101. package/dist/classes/ticker/{TickerMove.mjs → RotateTicker.mjs} +558 -259
  102. package/dist/classes/ticker/RotateTicker.mjs.map +1 -0
  103. package/dist/classes/ticker/TickerBase.d.mts +2 -1
  104. package/dist/classes/ticker/TickerBase.d.ts +2 -1
  105. package/dist/classes/ticker/TickerBase.js +12 -6
  106. package/dist/classes/ticker/TickerBase.js.map +1 -1
  107. package/dist/classes/ticker/TickerBase.mjs +12 -6
  108. package/dist/classes/ticker/TickerBase.mjs.map +1 -1
  109. package/dist/classes/ticker/ZoomTicker.d.mts +31 -0
  110. package/dist/classes/ticker/ZoomTicker.d.ts +31 -0
  111. package/dist/classes/ticker/ZoomTicker.js +1647 -0
  112. package/dist/classes/ticker/ZoomTicker.js.map +1 -0
  113. package/dist/classes/ticker/ZoomTicker.mjs +1639 -0
  114. package/dist/classes/ticker/ZoomTicker.mjs.map +1 -0
  115. package/dist/classes/ticker/index.d.mts +11 -8
  116. package/dist/classes/ticker/index.d.ts +11 -8
  117. package/dist/classes/ticker/index.js +567 -266
  118. package/dist/classes/ticker/index.js.map +1 -1
  119. package/dist/classes/ticker/index.mjs +564 -267
  120. package/dist/classes/ticker/index.mjs.map +1 -1
  121. package/dist/constants.d.mts +12 -2
  122. package/dist/constants.d.ts +12 -2
  123. package/dist/constants.js +10 -1
  124. package/dist/constants.js.map +1 -1
  125. package/dist/constants.mjs +9 -2
  126. package/dist/constants.mjs.map +1 -1
  127. package/dist/decorators/CanvasElementDecorator.d.mts +3 -3
  128. package/dist/decorators/CanvasElementDecorator.d.ts +3 -3
  129. package/dist/decorators/CanvasElementDecorator.js +63 -43
  130. package/dist/decorators/CanvasElementDecorator.js.map +1 -1
  131. package/dist/decorators/CanvasElementDecorator.mjs +62 -42
  132. package/dist/decorators/CanvasElementDecorator.mjs.map +1 -1
  133. package/dist/decorators/CharacterDecorator.d.mts +1 -0
  134. package/dist/decorators/CharacterDecorator.d.ts +1 -0
  135. package/dist/decorators/CharacterDecorator.js +1 -1
  136. package/dist/decorators/CharacterDecorator.js.map +1 -1
  137. package/dist/decorators/CharacterDecorator.mjs +1 -1
  138. package/dist/decorators/CharacterDecorator.mjs.map +1 -1
  139. package/dist/decorators/EventDecorator.d.mts +7 -7
  140. package/dist/decorators/EventDecorator.d.ts +7 -7
  141. package/dist/decorators/EventDecorator.js +12 -11
  142. package/dist/decorators/EventDecorator.js.map +1 -1
  143. package/dist/decorators/EventDecorator.mjs +11 -10
  144. package/dist/decorators/EventDecorator.mjs.map +1 -1
  145. package/dist/decorators/LabelDecorator.d.mts +4 -3
  146. package/dist/decorators/LabelDecorator.d.ts +4 -3
  147. package/dist/decorators/LabelDecorator.js +546 -243
  148. package/dist/decorators/LabelDecorator.js.map +1 -1
  149. package/dist/decorators/LabelDecorator.mjs +542 -243
  150. package/dist/decorators/LabelDecorator.mjs.map +1 -1
  151. package/dist/decorators/TickerDecorator.d.mts +9 -6
  152. package/dist/decorators/TickerDecorator.d.ts +9 -6
  153. package/dist/decorators/TickerDecorator.js +7 -6
  154. package/dist/decorators/TickerDecorator.js.map +1 -1
  155. package/dist/decorators/TickerDecorator.mjs +7 -6
  156. package/dist/decorators/TickerDecorator.mjs.map +1 -1
  157. package/dist/decorators/index.d.mts +4 -3
  158. package/dist/decorators/index.d.ts +4 -3
  159. package/dist/decorators/index.js +550 -245
  160. package/dist/decorators/index.js.map +1 -1
  161. package/dist/decorators/index.mjs +546 -245
  162. package/dist/decorators/index.mjs.map +1 -1
  163. package/dist/functions/CanvasUtility.js +56 -37
  164. package/dist/functions/CanvasUtility.js.map +1 -1
  165. package/dist/functions/CanvasUtility.mjs +56 -37
  166. package/dist/functions/CanvasUtility.mjs.map +1 -1
  167. package/dist/functions/DialogueUtility.d.mts +7 -5
  168. package/dist/functions/DialogueUtility.d.ts +7 -5
  169. package/dist/functions/DialogueUtility.js +729 -397
  170. package/dist/functions/DialogueUtility.js.map +1 -1
  171. package/dist/functions/DialogueUtility.mjs +729 -397
  172. package/dist/functions/DialogueUtility.mjs.map +1 -1
  173. package/dist/functions/FlagsUtility.js +544 -241
  174. package/dist/functions/FlagsUtility.js.map +1 -1
  175. package/dist/functions/FlagsUtility.mjs +540 -241
  176. package/dist/functions/FlagsUtility.mjs.map +1 -1
  177. package/dist/functions/GameUtility.js +544 -241
  178. package/dist/functions/GameUtility.js.map +1 -1
  179. package/dist/functions/GameUtility.mjs +540 -241
  180. package/dist/functions/GameUtility.mjs.map +1 -1
  181. package/dist/functions/ImageUtility.d.mts +81 -8
  182. package/dist/functions/ImageUtility.d.ts +81 -8
  183. package/dist/functions/ImageUtility.js +911 -387
  184. package/dist/functions/ImageUtility.js.map +1 -1
  185. package/dist/functions/ImageUtility.mjs +899 -387
  186. package/dist/functions/ImageUtility.mjs.map +1 -1
  187. package/dist/functions/SavesUtility.d.mts +9 -5
  188. package/dist/functions/SavesUtility.d.ts +9 -5
  189. package/dist/functions/SavesUtility.js +611 -252
  190. package/dist/functions/SavesUtility.js.map +1 -1
  191. package/dist/functions/SavesUtility.mjs +611 -252
  192. package/dist/functions/SavesUtility.mjs.map +1 -1
  193. package/dist/functions/TickerUtility.d.mts +1 -1
  194. package/dist/functions/TickerUtility.d.ts +1 -1
  195. package/dist/functions/TickerUtility.js +32 -18
  196. package/dist/functions/TickerUtility.js.map +1 -1
  197. package/dist/functions/TickerUtility.mjs +32 -18
  198. package/dist/functions/TickerUtility.mjs.map +1 -1
  199. package/dist/functions/index.d.mts +18 -8
  200. package/dist/functions/index.d.ts +18 -8
  201. package/dist/functions/index.js +832 -279
  202. package/dist/functions/index.js.map +1 -1
  203. package/dist/functions/index.mjs +825 -280
  204. package/dist/functions/index.mjs.map +1 -1
  205. package/dist/index.d.mts +25 -16
  206. package/dist/index.d.ts +25 -16
  207. package/dist/index.js +1547 -290
  208. package/dist/index.js.map +1 -1
  209. package/dist/index.mjs +1538 -290
  210. package/dist/index.mjs.map +1 -1
  211. package/dist/interface/CharacterBaseModelProps.d.mts +27 -0
  212. package/dist/interface/CharacterBaseModelProps.d.ts +27 -0
  213. package/dist/interface/CharacterBaseModelProps.js +4 -0
  214. package/dist/interface/CharacterBaseModelProps.mjs +3 -0
  215. package/dist/interface/DialogueHistory.d.mts +3 -7
  216. package/dist/interface/DialogueHistory.d.ts +3 -7
  217. package/dist/interface/IHistoryStep.d.mts +12 -8
  218. package/dist/interface/IHistoryStep.d.ts +12 -8
  219. package/dist/interface/ISaveData.d.mts +8 -4
  220. package/dist/interface/ISaveData.d.ts +8 -4
  221. package/dist/interface/ITicker.d.mts +2 -1
  222. package/dist/interface/ITicker.d.ts +2 -1
  223. package/dist/interface/ITickersSteps.d.mts +14 -5
  224. package/dist/interface/ITickersSteps.d.ts +14 -5
  225. package/dist/interface/TickerHistory.d.mts +29 -0
  226. package/dist/interface/TickerHistory.d.ts +29 -0
  227. package/dist/{types/ticker/TickerMoveProps.js → interface/TickerHistory.js} +1 -1
  228. package/dist/interface/TickerHistory.mjs +3 -0
  229. package/dist/interface/TickerProgrationType.d.mts +13 -1
  230. package/dist/interface/TickerProgrationType.d.ts +13 -1
  231. package/dist/interface/TickerTimeoutHistory.d.mts +7 -0
  232. package/dist/interface/TickerTimeoutHistory.d.ts +7 -0
  233. package/dist/interface/TickerTimeoutHistory.js +4 -0
  234. package/dist/interface/TickerTimeoutHistory.mjs +3 -0
  235. package/dist/interface/canvas/ICanvasBaseMemory.d.mts +1 -1
  236. package/dist/interface/canvas/ICanvasBaseMemory.d.ts +1 -1
  237. package/dist/interface/canvas/ICanvasImageMemory.d.mts +1 -1
  238. package/dist/interface/canvas/ICanvasImageMemory.d.ts +1 -1
  239. package/dist/interface/canvas/ICanvasSpriteMemory.d.mts +0 -1
  240. package/dist/interface/canvas/ICanvasSpriteMemory.d.ts +0 -1
  241. package/dist/interface/canvas/ICanvasTextTextMemory.d.mts +0 -1
  242. package/dist/interface/canvas/ICanvasTextTextMemory.d.ts +0 -1
  243. package/dist/interface/export/ExportedCanvas.d.mts +11 -3
  244. package/dist/interface/export/ExportedCanvas.d.ts +11 -3
  245. package/dist/interface/export/ExportedStep.d.mts +7 -3
  246. package/dist/interface/export/ExportedStep.d.ts +7 -3
  247. package/dist/interface/export/index.d.mts +8 -4
  248. package/dist/interface/export/index.d.ts +8 -4
  249. package/dist/interface/index.d.mts +14 -11
  250. package/dist/interface/index.d.ts +14 -11
  251. package/dist/labels/BaseCanvasElementTestLabel.d.mts +9 -0
  252. package/dist/labels/BaseCanvasElementTestLabel.d.ts +9 -0
  253. package/dist/labels/BaseCanvasElementTestLabel.js +1888 -0
  254. package/dist/labels/BaseCanvasElementTestLabel.js.map +1 -0
  255. package/dist/labels/BaseCanvasElementTestLabel.mjs +1882 -0
  256. package/dist/labels/BaseCanvasElementTestLabel.mjs.map +1 -0
  257. package/dist/labels/CanvasEventsTestLabel.d.mts +27 -0
  258. package/dist/labels/CanvasEventsTestLabel.d.ts +27 -0
  259. package/dist/labels/CanvasEventsTestLabel.js +2822 -0
  260. package/dist/labels/CanvasEventsTestLabel.js.map +1 -0
  261. package/dist/labels/CanvasEventsTestLabel.mjs +2816 -0
  262. package/dist/labels/CanvasEventsTestLabel.mjs.map +1 -0
  263. package/dist/labels/CustomTickerCanvasElementTestLabel.d.mts +20 -0
  264. package/dist/labels/CustomTickerCanvasElementTestLabel.d.ts +20 -0
  265. package/dist/labels/CustomTickerCanvasElementTestLabel.js +2792 -0
  266. package/dist/labels/CustomTickerCanvasElementTestLabel.js.map +1 -0
  267. package/dist/labels/CustomTickerCanvasElementTestLabel.mjs +2786 -0
  268. package/dist/labels/CustomTickerCanvasElementTestLabel.mjs.map +1 -0
  269. package/dist/labels/ImagesAnimationsTestLabel.d.mts +9 -0
  270. package/dist/labels/ImagesAnimationsTestLabel.d.ts +9 -0
  271. package/dist/labels/ImagesAnimationsTestLabel.js +3378 -0
  272. package/dist/labels/ImagesAnimationsTestLabel.js.map +1 -0
  273. package/dist/labels/ImagesAnimationsTestLabel.mjs +3372 -0
  274. package/dist/labels/ImagesAnimationsTestLabel.mjs.map +1 -0
  275. package/dist/labels/MarkdownTest.d.mts +9 -0
  276. package/dist/labels/MarkdownTest.d.ts +9 -0
  277. package/dist/labels/MarkdownTest.js +2756 -0
  278. package/dist/labels/MarkdownTest.js.map +1 -0
  279. package/dist/labels/MarkdownTest.mjs +2750 -0
  280. package/dist/labels/MarkdownTest.mjs.map +1 -0
  281. package/dist/labels/StartLabel.d.mts +10 -0
  282. package/dist/labels/StartLabel.d.ts +10 -0
  283. package/dist/labels/StartLabel.js +3736 -0
  284. package/dist/labels/StartLabel.js.map +1 -0
  285. package/dist/labels/StartLabel.mjs +3729 -0
  286. package/dist/labels/StartLabel.mjs.map +1 -0
  287. package/dist/labels/TestConstant.d.mts +17 -0
  288. package/dist/labels/TestConstant.d.ts +17 -0
  289. package/dist/labels/TestConstant.js +1872 -0
  290. package/dist/labels/TestConstant.js.map +1 -0
  291. package/dist/labels/TestConstant.mjs +1856 -0
  292. package/dist/labels/TestConstant.mjs.map +1 -0
  293. package/dist/labels/TickerTestLabel.d.mts +9 -0
  294. package/dist/labels/TickerTestLabel.d.ts +9 -0
  295. package/dist/labels/TickerTestLabel.js +2675 -0
  296. package/dist/labels/TickerTestLabel.js.map +1 -0
  297. package/dist/labels/TickerTestLabel.mjs +2669 -0
  298. package/dist/labels/TickerTestLabel.mjs.map +1 -0
  299. package/dist/labels/index.d.mts +10 -0
  300. package/dist/labels/index.d.ts +10 -0
  301. package/dist/labels/index.js +3736 -0
  302. package/dist/labels/index.js.map +1 -0
  303. package/dist/labels/index.mjs +3729 -0
  304. package/dist/labels/index.mjs.map +1 -0
  305. package/dist/managers/StepManager.d.mts +21 -15
  306. package/dist/managers/StepManager.d.ts +21 -15
  307. package/dist/managers/StepManager.js +610 -251
  308. package/dist/managers/StepManager.js.map +1 -1
  309. package/dist/managers/StepManager.mjs +610 -251
  310. package/dist/managers/StepManager.mjs.map +1 -1
  311. package/dist/managers/WindowManager.d.mts +38 -24
  312. package/dist/managers/WindowManager.d.ts +38 -24
  313. package/dist/managers/WindowManager.js +356 -170
  314. package/dist/managers/WindowManager.js.map +1 -1
  315. package/dist/managers/WindowManager.mjs +352 -170
  316. package/dist/managers/WindowManager.mjs.map +1 -1
  317. package/dist/managers/index.d.mts +15 -14
  318. package/dist/managers/index.d.ts +15 -14
  319. package/dist/managers/index.js +612 -251
  320. package/dist/managers/index.js.map +1 -1
  321. package/dist/managers/index.mjs +612 -251
  322. package/dist/managers/index.mjs.map +1 -1
  323. package/dist/types/CanvasEventNamesType.d.mts +1 -1
  324. package/dist/types/CanvasEventNamesType.d.ts +1 -1
  325. package/dist/types/ChoiceMenuOptionsType.d.mts +2 -2
  326. package/dist/types/ChoiceMenuOptionsType.d.ts +2 -2
  327. package/dist/types/HistoryChoiceMenuOption.d.mts +22 -0
  328. package/dist/types/HistoryChoiceMenuOption.d.ts +22 -0
  329. package/dist/types/HistoryChoiceMenuOption.js +4 -0
  330. package/dist/types/HistoryChoiceMenuOption.mjs +3 -0
  331. package/dist/types/PauseType.d.mts +8 -4
  332. package/dist/types/PauseType.d.ts +8 -4
  333. package/dist/types/PauseType.js +0 -11
  334. package/dist/types/PauseType.js.map +1 -1
  335. package/dist/types/PauseType.mjs +0 -9
  336. package/dist/types/PauseType.mjs.map +1 -1
  337. package/dist/types/RepeatType.d.mts +1 -2
  338. package/dist/types/RepeatType.d.ts +1 -2
  339. package/dist/types/RepeatType.js +0 -4
  340. package/dist/types/RepeatType.js.map +1 -1
  341. package/dist/types/RepeatType.mjs +0 -3
  342. package/dist/types/RepeatType.mjs.map +1 -1
  343. package/dist/types/index.d.mts +5 -4
  344. package/dist/types/index.d.ts +5 -4
  345. package/dist/types/index.js +0 -15
  346. package/dist/types/index.js.map +1 -1
  347. package/dist/types/index.mjs +1 -13
  348. package/dist/types/index.mjs.map +1 -1
  349. package/dist/types/ticker/{TickerFadeAlphaProps.d.mts → FadeAlphaTickerProps.d.mts} +9 -5
  350. package/dist/types/ticker/{TickerFadeAlphaProps.d.ts → FadeAlphaTickerProps.d.ts} +9 -5
  351. package/dist/types/ticker/FadeAlphaTickerProps.js +4 -0
  352. package/dist/types/ticker/FadeAlphaTickerProps.js.map +1 -0
  353. package/dist/types/ticker/FadeAlphaTickerProps.mjs +3 -0
  354. package/dist/types/ticker/FadeAlphaTickerProps.mjs.map +1 -0
  355. package/dist/types/ticker/{TickerMoveProps.d.mts → MoveTickerProps.d.mts} +14 -5
  356. package/dist/types/ticker/{TickerMoveProps.d.ts → MoveTickerProps.d.ts} +14 -5
  357. package/dist/types/ticker/{TickerRotateProps.js → MoveTickerProps.js} +1 -1
  358. package/dist/types/ticker/MoveTickerProps.js.map +1 -0
  359. package/dist/types/ticker/MoveTickerProps.mjs +3 -0
  360. package/dist/types/ticker/MoveTickerProps.mjs.map +1 -0
  361. package/dist/types/ticker/{TickerRotateProps.d.mts → RotateTickerProps.d.mts} +10 -4
  362. package/dist/types/ticker/{TickerRotateProps.d.ts → RotateTickerProps.d.ts} +10 -4
  363. package/dist/types/ticker/RotateTickerProps.js +4 -0
  364. package/dist/types/ticker/RotateTickerProps.js.map +1 -0
  365. package/dist/types/ticker/RotateTickerProps.mjs +3 -0
  366. package/dist/types/ticker/RotateTickerProps.mjs.map +1 -0
  367. package/dist/types/ticker/TagToRemoveAfterType.d.mts +4 -0
  368. package/dist/types/ticker/TagToRemoveAfterType.d.ts +4 -0
  369. package/dist/types/ticker/TagToRemoveAfterType.js +8 -0
  370. package/dist/types/ticker/TagToRemoveAfterType.js.map +1 -0
  371. package/dist/types/ticker/TagToRemoveAfterType.mjs +6 -0
  372. package/dist/types/ticker/TagToRemoveAfterType.mjs.map +1 -0
  373. package/dist/types/ticker/ZoomTickerProps.d.mts +45 -0
  374. package/dist/types/ticker/ZoomTickerProps.d.ts +45 -0
  375. package/dist/types/ticker/ZoomTickerProps.js +4 -0
  376. package/dist/types/ticker/ZoomTickerProps.js.map +1 -0
  377. package/dist/types/ticker/ZoomTickerProps.mjs +3 -0
  378. package/dist/types/ticker/ZoomTickerProps.mjs.map +1 -0
  379. package/dist/types/ticker/index.d.mts +4 -2
  380. package/dist/types/ticker/index.d.ts +4 -2
  381. package/package.json +7 -7
  382. package/dist/classes/ticker/TickerFadeAlpha.d.mts +0 -31
  383. package/dist/classes/ticker/TickerFadeAlpha.d.ts +0 -31
  384. package/dist/classes/ticker/TickerFadeAlpha.js.map +0 -1
  385. package/dist/classes/ticker/TickerFadeAlpha.mjs.map +0 -1
  386. package/dist/classes/ticker/TickerMove.d.mts +0 -29
  387. package/dist/classes/ticker/TickerMove.d.ts +0 -29
  388. package/dist/classes/ticker/TickerMove.js.map +0 -1
  389. package/dist/classes/ticker/TickerMove.mjs.map +0 -1
  390. package/dist/classes/ticker/TickerRotate.d.mts +0 -30
  391. package/dist/classes/ticker/TickerRotate.d.ts +0 -30
  392. package/dist/classes/ticker/TickerRotate.js.map +0 -1
  393. package/dist/classes/ticker/TickerRotate.mjs.map +0 -1
  394. package/dist/functions/ErrorUtility.d.mts +0 -24
  395. package/dist/functions/ErrorUtility.d.ts +0 -24
  396. package/dist/functions/ErrorUtility.js +0 -261
  397. package/dist/functions/ErrorUtility.js.map +0 -1
  398. package/dist/functions/ErrorUtility.mjs +0 -258
  399. package/dist/functions/ErrorUtility.mjs.map +0 -1
  400. package/dist/interface/IClassWithArgsHistory.d.mts +0 -25
  401. package/dist/interface/IClassWithArgsHistory.d.ts +0 -25
  402. package/dist/interface/IClassWithArgsHistory.js +0 -4
  403. package/dist/interface/IClassWithArgsHistory.mjs +0 -3
  404. package/dist/types/ticker/TickerFadeAlphaProps.js +0 -4
  405. package/dist/types/ticker/TickerFadeAlphaProps.mjs +0 -3
  406. package/dist/types/ticker/TickerMoveProps.mjs +0 -3
  407. package/dist/types/ticker/TickerRotateProps.mjs +0 -3
  408. /package/dist/interface/{IClassWithArgsHistory.js.map → CharacterBaseModelProps.js.map} +0 -0
  409. /package/dist/interface/{IClassWithArgsHistory.mjs.map → CharacterBaseModelProps.mjs.map} +0 -0
  410. /package/dist/{types/ticker/TickerFadeAlphaProps.js.map → interface/TickerHistory.js.map} +0 -0
  411. /package/dist/{types/ticker/TickerFadeAlphaProps.mjs.map → interface/TickerHistory.mjs.map} +0 -0
  412. /package/dist/{types/ticker/TickerMoveProps.js.map → interface/TickerTimeoutHistory.js.map} +0 -0
  413. /package/dist/{types/ticker/TickerMoveProps.mjs.map → interface/TickerTimeoutHistory.mjs.map} +0 -0
  414. /package/dist/types/{ticker/TickerRotateProps.js.map → HistoryChoiceMenuOption.js.map} +0 -0
  415. /package/dist/types/{ticker/TickerRotateProps.mjs.map → HistoryChoiceMenuOption.mjs.map} +0 -0
@@ -27,8 +27,7 @@ var __decorateClass = (decorators, target, key, kind) => {
27
27
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
28
28
  if (decorator = decorators[i])
29
29
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
30
- if (kind && result)
31
- __defProp(target, key, result);
30
+ if (kind && result) __defProp(target, key, result);
32
31
  return result;
33
32
  };
34
33
  var __async = (__this, __arguments, generator) => {
@@ -74,7 +73,7 @@ var Label = class {
74
73
  this._choiseIndex = choiseIndex;
75
74
  }
76
75
  /**
77
- * Get the id of the label
76
+ * Get the id of the label. This variable is used in the system to get the label by id, {@link getLabelById}
78
77
  */
79
78
  get id() {
80
79
  return this._id;
@@ -232,26 +231,35 @@ var GameStorageManager = _GameStorageManager;
232
231
  var TickerBase = class {
233
232
  /**
234
233
  * @param args The arguments that you want to pass to the ticker.
235
- * @param duration The duration of the ticker. If is undefined, the ticker will be called every frame.
236
- * @param priority The priority of the ticker. If is undefined, the priority will be UPDATE_PRIORITY.NORMAL.
234
+ * @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
235
+ * @param priority The priority of the ticker. @default UPDATE_PRIORITY.NORMAL
237
236
  */
238
237
  constructor(args, duration, priority) {
238
+ /**
239
+ * Get the id of the ticker. This variable is used in the system to get the ticker by id, {@link geTickerInstanceById}
240
+ */
241
+ this.id = "ticker_id_not_set";
239
242
  this.args = args;
240
243
  this.duration = duration;
241
244
  this.priority = priority;
245
+ this.id = this.constructor.prototype.id;
242
246
  }
243
247
  /**
244
248
  * The method that will be called every frame.
245
249
  * This method should be overridden and you can use GameWindowManager.addCanvasElement() to get the canvas element of the canvas, and edit them.
246
- * @param t The ticker that is calling this method
247
- * @param args The arguments that you passed when you added the ticker
248
- * @param tags The tags of the canvas elements that are connected to this ticker
250
+ * @param _ticker The ticker that is calling this method
251
+ * @param _args The arguments that you passed when you added the ticker
252
+ * @param _tags The tags of the canvas elements that are connected to this ticker
253
+ * @param _tickerId The id of the ticker. You can use this to get the ticker from the {@link GameWindowManager.currentTickers}
249
254
  */
250
- fn(_t, _args, _tags) {
255
+ fn(_ticker, _args, _tags, _tickerId) {
251
256
  throw new Error("[Pixi'VN] The method TickerBase.fn() must be overridden");
252
257
  }
253
258
  };
254
259
 
260
+ // src/constants.ts
261
+ var Repeat = "repeat";
262
+
255
263
  // src/decorators/TickerDecorator.ts
256
264
  var registeredTickers = {};
257
265
  function tickerDecorator(name) {
@@ -260,25 +268,32 @@ function tickerDecorator(name) {
260
268
  name = target.name;
261
269
  }
262
270
  if (registeredTickers[name]) {
263
- console.warn(`[Pixi'VN] Ticker ${name} already exists, it will be overwritten`);
271
+ console.info(`[Pixi'VN] Ticker ${name} already exists, it will be overwritten`);
264
272
  }
273
+ target.prototype.id = name;
265
274
  registeredTickers[name] = target;
266
275
  };
267
276
  }
268
- function geTickerInstanceByClassName(tickerName, args, duration, priority) {
277
+ function geTickerInstanceById(tickerId, args, duration, priority) {
269
278
  try {
270
- let ticker = registeredTickers[tickerName];
279
+ let ticker = registeredTickers[tickerId];
271
280
  if (!ticker) {
272
- console.error(`[Pixi'VN] Ticker ${tickerName} not found`);
281
+ console.error(`[Pixi'VN] Ticker ${tickerId} not found`);
273
282
  return;
274
283
  }
275
284
  return new ticker(args, duration, priority);
276
285
  } catch (e) {
277
- console.error(`[Pixi'VN] Error while getting Ticker ${tickerName}`, e);
286
+ console.error(`[Pixi'VN] Error while getting Ticker ${tickerId}`, e);
278
287
  return;
279
288
  }
280
289
  }
290
+ var CANVAS_CONTAINER_ID = "CanvasContainer";
281
291
  var CanvasContainer = class extends Container {
292
+ constructor(options) {
293
+ super(options);
294
+ this.pixivnId = CANVAS_CONTAINER_ID;
295
+ this.pixivnId = this.constructor.prototype.pixivnId;
296
+ }
282
297
  get memory() {
283
298
  let memory = getMemoryContainer(this);
284
299
  this.children.forEach((child) => {
@@ -294,8 +309,12 @@ var CanvasContainer = class extends Container {
294
309
  }
295
310
  };
296
311
  function getMemoryContainer(element) {
312
+ let className = "CanvasContainer";
313
+ if (element.hasOwnProperty("pixivnId")) {
314
+ className = element.pixivnId;
315
+ }
297
316
  return {
298
- className: "CanvasContainer",
317
+ pixivnId: className,
299
318
  elements: [],
300
319
  width: element.width,
301
320
  height: element.height,
@@ -411,40 +430,43 @@ function getTextStyle(style) {
411
430
 
412
431
  // src/decorators/EventDecorator.ts
413
432
  var registeredEvents = {};
414
- function getEventTypeByClassName(eventName) {
433
+ function getEventTypeById(eventId) {
415
434
  try {
416
- let eventType = registeredEvents[eventName];
435
+ let eventType = registeredEvents[eventId];
417
436
  if (!eventType) {
418
- console.error(`[Pixi'VN] Event ${eventName} not found`);
437
+ console.error(`[Pixi'VN] Event ${eventId} not found`);
419
438
  return;
420
439
  }
421
440
  new eventType();
422
441
  return eventType;
423
442
  } catch (e) {
424
- console.error(`[Pixi'VN] Error while getting Event ${eventName}`, e);
443
+ console.error(`[Pixi'VN] Error while getting Event ${eventId}`, e);
425
444
  return;
426
445
  }
427
446
  }
428
- function getEventInstanceByClassName(eventName) {
447
+ function getEventInstanceById(eventId) {
429
448
  try {
430
- let eventType = registeredEvents[eventName];
449
+ let eventType = registeredEvents[eventId];
431
450
  if (!eventType) {
432
- console.error(`[Pixi'VN] Event ${eventName} not found`);
451
+ console.error(`[Pixi'VN] Event ${eventId} not found`);
433
452
  return;
434
453
  }
435
454
  let event = new eventType();
436
455
  return event;
437
456
  } catch (e) {
438
- console.error(`[Pixi'VN] Error while getting Event ${eventName}`, e);
457
+ console.error(`[Pixi'VN] Error while getting Event ${eventId}`, e);
439
458
  return;
440
459
  }
441
460
  }
442
461
 
443
462
  // src/classes/canvas/CanvasSprite.ts
463
+ var CANVAS_SPRITE_ID = "CanvasSprite";
444
464
  var CanvasSprite = class _CanvasSprite extends Sprite {
445
- constructor() {
446
- super(...arguments);
465
+ constructor(options) {
466
+ super(options);
467
+ this.pixivnId = CANVAS_SPRITE_ID;
447
468
  this._onEvents = {};
469
+ this.pixivnId = this.constructor.prototype.pixivnId;
448
470
  }
449
471
  get memory() {
450
472
  return getMemorySprite(this);
@@ -485,9 +507,9 @@ var CanvasSprite = class _CanvasSprite extends Sprite {
485
507
  * ```
486
508
  */
487
509
  onEvent(event, eventClass) {
488
- let className = eventClass.name;
489
- let instance = getEventInstanceByClassName(className);
490
- this._onEvents[event] = className;
510
+ let id = eventClass.prototype.id;
511
+ let instance = getEventInstanceById(id);
512
+ this._onEvents[event] = id;
491
513
  if (instance) {
492
514
  super.on(event, () => {
493
515
  instance.fn(event, this);
@@ -516,7 +538,7 @@ var CanvasSprite = class _CanvasSprite extends Sprite {
516
538
  function getMemorySprite(element) {
517
539
  let temp = getMemoryContainer(element);
518
540
  return __spreadProps(__spreadValues({}, temp), {
519
- className: "CanvasSprite",
541
+ pixivnId: element.pixivnId,
520
542
  textureImage: getTextureMemory(element.texture),
521
543
  anchor: { x: element.anchor.x, y: element.anchor.y },
522
544
  roundPixels: element.roundPixels,
@@ -539,8 +561,8 @@ function setMemorySprite(element, memory) {
539
561
  }
540
562
  memory.roundPixels && (element.roundPixels = memory.roundPixels);
541
563
  for (let event in memory.onEvents) {
542
- let className = memory.onEvents[event];
543
- let instance = getEventTypeByClassName(className);
564
+ let id = memory.onEvents[event];
565
+ let instance = getEventTypeById(id);
544
566
  if (instance) {
545
567
  element.onEvent(event, instance);
546
568
  }
@@ -548,9 +570,11 @@ function setMemorySprite(element, memory) {
548
570
  }
549
571
 
550
572
  // src/classes/canvas/CanvasImage.ts
573
+ var CANVAS_IMAGE_ID = "CanvasImage";
551
574
  var CanvasImage = class _CanvasImage extends CanvasSprite {
552
575
  constructor(options, imageLink) {
553
576
  super(options);
577
+ this.pixivnId = CANVAS_IMAGE_ID;
554
578
  this.imageLink = "";
555
579
  if (imageLink) {
556
580
  this.imageLink = imageLink;
@@ -558,12 +582,13 @@ var CanvasImage = class _CanvasImage extends CanvasSprite {
558
582
  }
559
583
  get memory() {
560
584
  return __spreadProps(__spreadValues({}, getMemorySprite(this)), {
561
- className: "CanvasImage",
562
- textureImage: { image: this.imageLink }
585
+ pixivnId: this.pixivnId,
586
+ imageLink: this.imageLink
563
587
  });
564
588
  }
565
589
  set memory(memory) {
566
590
  setMemorySprite(this, memory);
591
+ this.imageLink = memory.imageLink;
567
592
  }
568
593
  static from(source, skipCache) {
569
594
  let sprite = Sprite.from(source, skipCache);
@@ -591,10 +616,13 @@ var CanvasImage = class _CanvasImage extends CanvasSprite {
591
616
  });
592
617
  }
593
618
  };
619
+ var CANVAS_TEXT_ID = "CanvasText";
594
620
  var CanvasText = class extends Text {
595
- constructor() {
596
- super(...arguments);
621
+ constructor(options) {
622
+ super(options);
623
+ this.pixivnId = CANVAS_TEXT_ID;
597
624
  this._onEvents = {};
625
+ this.pixivnId = this.constructor.prototype.pixivnId;
598
626
  }
599
627
  get memory() {
600
628
  return getMemoryText(this);
@@ -635,9 +663,9 @@ var CanvasText = class extends Text {
635
663
  * ```
636
664
  */
637
665
  onEvent(event, eventClass) {
638
- let className = eventClass.name;
639
- let instance = getEventInstanceByClassName(className);
640
- this._onEvents[event] = className;
666
+ let id = eventClass.prototype.id;
667
+ let instance = getEventInstanceById(id);
668
+ this._onEvents[event] = id;
641
669
  if (instance) {
642
670
  super.on(event, () => {
643
671
  instance.fn(event, this);
@@ -660,7 +688,7 @@ var CanvasText = class extends Text {
660
688
  function getMemoryText(element) {
661
689
  let temp = getMemoryContainer(element);
662
690
  return __spreadProps(__spreadValues({}, temp), {
663
- className: "CanvasText",
691
+ pixivnId: element.pixivnId,
664
692
  anchor: { x: element.anchor.x, y: element.anchor.y },
665
693
  text: element.text,
666
694
  resolution: element.resolution,
@@ -683,8 +711,8 @@ function setMemoryText(element, memory) {
683
711
  memory.style && (element.style = memory.style);
684
712
  memory.roundPixels && (element.roundPixels = memory.roundPixels);
685
713
  for (let event in memory.onEvents) {
686
- let className = memory.onEvents[event];
687
- let instance = getEventTypeByClassName(className);
714
+ let id = memory.onEvents[event];
715
+ let instance = getEventTypeById(id);
688
716
  if (instance) {
689
717
  element.onEvent(event, instance);
690
718
  }
@@ -693,28 +721,28 @@ function setMemoryText(element, memory) {
693
721
 
694
722
  // src/decorators/CanvasElementDecorator.ts
695
723
  var registeredCanvasElement = {};
696
- function getCanvasElementInstanceByClassName(canvasName) {
724
+ function getCanvasElementInstanceById(canvasId) {
697
725
  try {
698
- let eventType = registeredCanvasElement[canvasName];
726
+ let eventType = registeredCanvasElement[canvasId];
699
727
  if (!eventType) {
700
- if (canvasName === "CanvasContainer") {
728
+ if (canvasId === CANVAS_CONTAINER_ID) {
701
729
  eventType = CanvasContainer;
702
- } else if (canvasName === "CanvasImage") {
730
+ } else if (canvasId === CANVAS_IMAGE_ID) {
703
731
  eventType = CanvasImage;
704
- } else if (canvasName === "CanvasSprite") {
732
+ } else if (canvasId === CANVAS_SPRITE_ID) {
705
733
  eventType = CanvasSprite;
706
- } else if (canvasName === "CanvasText") {
734
+ } else if (canvasId === CANVAS_TEXT_ID) {
707
735
  eventType = CanvasText;
708
736
  }
709
737
  }
710
738
  if (!eventType) {
711
- console.error(`[Pixi'VN] CanvasElement ${canvasName} not found`);
739
+ console.error(`[Pixi'VN] CanvasElement ${canvasId} not found`);
712
740
  return;
713
741
  }
714
742
  let canvasElement = new eventType();
715
743
  return canvasElement;
716
744
  } catch (e) {
717
- console.error(`[Pixi'VN] Error while getting CanvasElement ${canvasName}`, e);
745
+ console.error(`[Pixi'VN] Error while getting CanvasElement ${canvasId}`, e);
718
746
  return;
719
747
  }
720
748
  }
@@ -731,11 +759,11 @@ function exportCanvasElement(element) {
731
759
  return element.memory;
732
760
  }
733
761
  function importCanvasElement(memory) {
734
- let element = getCanvasElementInstanceByClassName(memory.className);
762
+ let element = getCanvasElementInstanceById(memory.pixivnId);
735
763
  if (element) {
736
764
  element.memory = memory;
737
765
  } else {
738
- throw new Error("[Pixi'VN] The element " + memory.className + " could not be created");
766
+ throw new Error("[Pixi'VN] The element " + memory.pixivnId + " could not be created");
739
767
  }
740
768
  return element;
741
769
  }
@@ -751,11 +779,8 @@ function asciiArtLog() {
751
779
  `);
752
780
  }
753
781
 
754
- // src/types/PauseType.ts
755
- var PauseValueType = "pause";
756
-
757
- // src/types/RepeatType.ts
758
- var Repeat = "repeat";
782
+ // src/types/ticker/TagToRemoveAfterType.ts
783
+ var tagToRemoveAfter = "tagToRemoveAfter";
759
784
 
760
785
  // src/managers/WindowManager.ts
761
786
  var _GameWindowManager = class _GameWindowManager {
@@ -939,25 +964,25 @@ var _GameWindowManager = class _GameWindowManager {
939
964
  /**
940
965
  * Remove a canvas element from the canvas.
941
966
  * And remove all tickers that are not connected to any canvas element.
942
- * @param tag The tag of the canvas element to be removed.
967
+ * @param tags The tag of the canvas element to be removed.
943
968
  * @returns
944
969
  * @example
945
970
  * ```typescript
946
971
  * GameWindowManager.removeCanvasElement("bunny");
947
972
  * ```
948
973
  */
949
- static removeCanvasElement(tag) {
950
- if (typeof tag === "string") {
951
- tag = [tag];
974
+ static removeCanvasElement(tags) {
975
+ if (typeof tags === "string") {
976
+ tags = [tags];
952
977
  }
953
- tag.forEach((t) => {
954
- if (_GameWindowManager._children[t]) {
955
- _GameWindowManager.app.stage.removeChild(_GameWindowManager._children[t]);
956
- delete _GameWindowManager._children[t];
978
+ tags.forEach((tag) => {
979
+ if (_GameWindowManager._children[tag]) {
980
+ _GameWindowManager.app.stage.removeChild(_GameWindowManager._children[tag]);
981
+ delete _GameWindowManager._children[tag];
982
+ _GameWindowManager.removeTickerByCanvasElement(tag);
957
983
  }
958
984
  });
959
- _GameWindowManager.removeTickersWithoutAssociatedCanvasElement();
960
- _GameWindowManager.childrenTagsOrder = _GameWindowManager.childrenTagsOrder.filter((t) => !tag.includes(t));
985
+ _GameWindowManager.childrenTagsOrder = _GameWindowManager.childrenTagsOrder.filter((t) => !tags.includes(t));
961
986
  }
962
987
  /**
963
988
  * Get a canvas element by the tag.
@@ -987,18 +1012,43 @@ var _GameWindowManager = class _GameWindowManager {
987
1012
  _GameWindowManager.app.stage.removeChildren();
988
1013
  _GameWindowManager._children = {};
989
1014
  _GameWindowManager.childrenTagsOrder = [];
990
- _GameWindowManager.removeTickers();
1015
+ _GameWindowManager.removeAllTickers();
991
1016
  }
992
1017
  /**
993
1018
  * Edit the tag of a canvas element.
994
1019
  * @param oldTag The old tag of the canvas element.
995
1020
  * @param newTag The new tag of the canvas element.
996
1021
  */
997
- static editTagCanvasElement(oldTag, newTag) {
1022
+ static editCanvasElementTag(oldTag, newTag) {
998
1023
  if (_GameWindowManager._children[oldTag]) {
999
1024
  _GameWindowManager._children[newTag] = _GameWindowManager._children[oldTag];
1000
1025
  delete _GameWindowManager._children[oldTag];
1001
1026
  }
1027
+ if (_GameWindowManager._currentTickersSteps[oldTag]) {
1028
+ _GameWindowManager._currentTickersSteps[newTag] = _GameWindowManager._currentTickersSteps[oldTag];
1029
+ delete _GameWindowManager._currentTickersSteps[oldTag];
1030
+ }
1031
+ for (let id in _GameWindowManager._currentTickers) {
1032
+ let ticker = _GameWindowManager._currentTickers[id];
1033
+ if (ticker.canvasElementTags.includes(oldTag)) {
1034
+ ticker.canvasElementTags = ticker.canvasElementTags.map((t) => t === oldTag ? newTag : t);
1035
+ if (ticker.args.hasOwnProperty(tagToRemoveAfter)) {
1036
+ let tagToRemoveAfter2 = ticker.args.tagToRemoveAfter;
1037
+ if (typeof tagToRemoveAfter2 === "string") {
1038
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
1039
+ }
1040
+ if (Array.isArray(tagToRemoveAfter2)) {
1041
+ ticker.args.tagToRemoveAfter = tagToRemoveAfter2.map((t) => t === oldTag ? newTag : t);
1042
+ }
1043
+ }
1044
+ }
1045
+ }
1046
+ for (let timeout in _GameWindowManager._currentTickersTimeouts) {
1047
+ let TickerTimeout = _GameWindowManager._currentTickersTimeouts[timeout];
1048
+ if (TickerTimeout.tags.includes(oldTag)) {
1049
+ TickerTimeout.tags = TickerTimeout.tags.map((t) => t === oldTag ? newTag : t);
1050
+ }
1051
+ }
1002
1052
  }
1003
1053
  /** Edit Tickers Methods */
1004
1054
  /**
@@ -1007,106 +1057,127 @@ var _GameWindowManager = class _GameWindowManager {
1007
1057
  static get currentTickers() {
1008
1058
  return _GameWindowManager._currentTickers;
1009
1059
  }
1060
+ static get currentTickersList() {
1061
+ return Object.values(_GameWindowManager._currentTickers);
1062
+ }
1063
+ static get currentTickersWithoutCreatedBySteps() {
1064
+ return Object.fromEntries(Object.entries(_GameWindowManager._currentTickers).filter(([_, ticker]) => !ticker.createdByTicketStepsId));
1065
+ }
1010
1066
  /**
1011
1067
  * The steps of the tickers
1012
1068
  */
1013
1069
  static get currentTickersSteps() {
1014
1070
  return _GameWindowManager._currentTickersSteps;
1015
1071
  }
1072
+ static generateTickerId(tickerData) {
1073
+ try {
1074
+ return sha1(JSON.stringify(tickerData)).toString() + "_" + Math.random().toString(36).substring(7);
1075
+ } catch (e) {
1076
+ throw new Error(`[Pixi'VN] Error to generate ticker id: ${e}`);
1077
+ }
1078
+ }
1016
1079
  /**
1017
- * Run a ticker.
1080
+ * Run a ticker. You can run multiple addTicker with the same tag and different tickerClasses.
1081
+ * If you run a ticker with the same tag and tickerClass, the old ticker will be removed.
1082
+ * If already exists a sequence of tickers with the same tag, it will be removed.
1018
1083
  * @param canvasEslementTag The tag of the canvas element that will use the ticker.
1019
1084
  * @param ticker The ticker class to be run.
1020
1085
  * @param args The arguments to be used in the ticker.
1021
- * @param duration The time to be used in the ticker. This number is in milliseconds. If it is undefined, the ticker will run forever.
1086
+ * @param duration The time to be used in the ticker. This number is in seconds. If it is undefined, the ticker will run forever.
1022
1087
  * @param priority The priority to be used in the ticker.
1023
1088
  * @returns
1024
1089
  * @example
1025
1090
  * ```typescript
1026
- * GameWindowManager.addTicker("alien", new TickerRotate({ speed: 0.2 }))
1091
+ * GameWindowManager.addTicker("alien", new RotateTicker({ speed: 0.2 }))
1027
1092
  * ```
1028
1093
  */
1029
1094
  static addTicker(canvasElementTag, ticker) {
1030
- let tickerName = ticker.constructor.name;
1095
+ let tickerId = ticker.id;
1031
1096
  if (typeof canvasElementTag === "string") {
1032
1097
  canvasElementTag = [canvasElementTag];
1033
1098
  }
1034
- let t = geTickerInstanceByClassName(tickerName, ticker.args, ticker.duration, ticker.priority);
1035
- if (!t) {
1036
- console.error(`[Pixi'VN] Ticker ${tickerName} not found`);
1099
+ if (!geTickerInstanceById(tickerId, ticker.args, ticker.duration, ticker.priority)) {
1100
+ console.error(`[Pixi'VN] Ticker ${tickerId} not found`);
1037
1101
  return;
1038
1102
  }
1039
- _GameWindowManager.removeAssociationBetweenTickerCanvasElement(canvasElementTag, ticker);
1040
1103
  let tickerHistory = {
1041
1104
  fn: () => {
1042
1105
  },
1043
- className: tickerName,
1044
- args: ticker.args,
1106
+ id: tickerId,
1107
+ args: createExportableElement(ticker.args),
1045
1108
  canvasElementTags: canvasElementTag,
1046
1109
  priority: ticker.priority,
1047
1110
  duration: ticker.duration
1048
1111
  };
1049
- _GameWindowManager.pushTicker(tickerHistory, t);
1050
- _GameWindowManager.removeTickersWithoutAssociatedCanvasElement();
1112
+ let id = _GameWindowManager.generateTickerId(tickerHistory);
1113
+ _GameWindowManager.pushTicker(id, tickerHistory, ticker);
1051
1114
  if (ticker.duration) {
1052
1115
  let timeout = setTimeout(() => {
1053
1116
  _GameWindowManager.removeTickerTimeoutInfo(timeout);
1054
- _GameWindowManager.nextTickerStep(canvasElementTag);
1055
- }, ticker.duration);
1056
- _GameWindowManager.addTickerTimeoutInfo(canvasElementTag, tickerName, timeout.toString());
1117
+ let tickerTimeoutInfo = _GameWindowManager._currentTickersTimeouts[timeout.toString()];
1118
+ if (tickerTimeoutInfo) {
1119
+ _GameWindowManager.removeTicker(id);
1120
+ }
1121
+ }, ticker.duration * 1e3);
1122
+ _GameWindowManager.addTickerTimeoutInfo(canvasElementTag, tickerId, timeout.toString(), true);
1057
1123
  }
1058
1124
  }
1059
- static pushTicker(tickerData, ticker) {
1060
- _GameWindowManager.removeAssociationBetweenTickerCanvasElement(tickerData.canvasElementTags, tickerData);
1061
- _GameWindowManager._currentTickers.push(tickerData);
1125
+ static pushTicker(id, tickerData, ticker) {
1126
+ _GameWindowManager.removeAssociationBetweenTickerCanvasElement(tickerData.canvasElementTags, ticker);
1127
+ _GameWindowManager._currentTickers[id] = tickerData;
1062
1128
  tickerData.fn = (t) => {
1063
- ticker == null ? void 0 : ticker.fn(t, tickerData.args, tickerData.canvasElementTags);
1129
+ let data = _GameWindowManager._currentTickers[id];
1130
+ if (data) {
1131
+ ticker == null ? void 0 : ticker.fn(t, data.args, data.canvasElementTags, id);
1132
+ }
1064
1133
  };
1065
1134
  _GameWindowManager.app.ticker.add(tickerData.fn, void 0, tickerData.priority);
1066
1135
  }
1067
1136
  /**
1068
- * Run a sequence of tickers.
1137
+ * Run a sequence of tickers. If exists a ticker steps with the same tag, it will be removed.
1069
1138
  * @param tag The tag of canvas element that will use the tickers.
1070
1139
  * @param steps The steps of the tickers.
1140
+ * @param currentStepNumber The current step number. It is used to continue the sequence of tickers.
1071
1141
  * @returns
1072
1142
  * @example
1073
1143
  * ```typescript
1074
1144
  * GameWindowManager.addTickersSteps("alien", [
1075
- * new TickerRotate({ speed: 0.1, clockwise: true }, 2000),
1076
- * Pause(500),
1077
- * new TickerRotate({ speed: 0.2, clockwise: false }, 2000),
1145
+ * new RotateTicker({ speed: 0.1, clockwise: true }, 2), // 2 seconds
1146
+ * Pause(1), // 1 second
1147
+ * new RotateTicker({ speed: 0.2, clockwise: false }, 2),
1078
1148
  * Repeat,
1079
1149
  * ])
1080
1150
  * ```
1081
1151
  */
1082
- static addTickersSteps(tag, steps) {
1152
+ static addTickersSteps(tag, steps, currentStepNumber = 0) {
1083
1153
  if (steps.length == 0) {
1084
1154
  console.warn("[Pixi'VN] The steps of the tickers is empty");
1085
1155
  return;
1086
1156
  }
1087
- let alredyExists = _GameWindowManager._currentTickersSteps[tag] !== void 0;
1157
+ _GameWindowManager.removeTickerStepByCanvasElement(tag);
1088
1158
  _GameWindowManager._currentTickersSteps[tag] = {
1089
- currentStepNumber: 0,
1090
- steps: steps.map((s) => {
1091
- if (s === Repeat) {
1092
- return s;
1093
- }
1094
- if (!s.duration) {
1095
- console.warn("[Pixi'VN] Duration is not defined, so it will be set to 1000");
1096
- s.duration = 1e3;
1159
+ currentStepNumber,
1160
+ steps: steps.map((step) => {
1161
+ if (step === Repeat) {
1162
+ return step;
1097
1163
  }
1098
- if (s.hasOwnProperty("type") && s.type === PauseValueType) {
1099
- return s;
1164
+ if (step.hasOwnProperty("type") && step.type === "pause") {
1165
+ return step;
1100
1166
  }
1101
- let tickerName = s.constructor.name;
1167
+ let tickerId = step.id;
1102
1168
  return {
1103
- ticker: tickerName,
1104
- args: s.args,
1105
- duration: s.duration
1169
+ ticker: tickerId,
1170
+ args: createExportableElement(step.args),
1171
+ duration: step.duration
1106
1172
  };
1107
1173
  })
1108
1174
  };
1109
- if (!alredyExists) {
1175
+ _GameWindowManager.runTickersSteps(tag);
1176
+ }
1177
+ static restoneTickersSteps(data) {
1178
+ for (let tag in data) {
1179
+ let steps = data[tag];
1180
+ _GameWindowManager._currentTickersSteps[tag] = steps;
1110
1181
  _GameWindowManager.runTickersSteps(tag);
1111
1182
  }
1112
1183
  }
@@ -1120,70 +1191,106 @@ var _GameWindowManager = class _GameWindowManager {
1120
1191
  return;
1121
1192
  }
1122
1193
  }
1123
- if (step.hasOwnProperty("type") && step.type === PauseValueType) {
1194
+ if (step.hasOwnProperty("type") && step.type === "pause") {
1124
1195
  let timeout = setTimeout(() => {
1196
+ let tickerTimeoutInfo = _GameWindowManager._currentTickersTimeouts[timeout.toString()];
1197
+ if (tickerTimeoutInfo) {
1198
+ tickerTimeoutInfo.tags.forEach((tag2) => {
1199
+ _GameWindowManager.nextTickerStep(tag2);
1200
+ });
1201
+ }
1125
1202
  _GameWindowManager.removeTickerTimeoutInfo(timeout);
1126
- _GameWindowManager.nextTickerStep(tag);
1127
- }, step.duration);
1128
- _GameWindowManager.addTickerTimeoutInfo(tag, "steps", timeout.toString());
1203
+ }, step.duration * 1e3);
1204
+ _GameWindowManager.addTickerTimeoutInfo(tag, "steps", timeout.toString(), false);
1129
1205
  return;
1130
1206
  }
1131
- let ticker = geTickerInstanceByClassName(step.ticker, step.args, step.duration, step.priority);
1207
+ let ticker = geTickerInstanceById(step.ticker, step.args, step.duration, step.priority);
1132
1208
  if (!ticker) {
1133
1209
  console.error(`[Pixi'VN] Ticker ${step.ticker} not found`);
1134
1210
  return;
1135
1211
  }
1136
- _GameWindowManager.addTicker(tag, ticker);
1212
+ let tickerName = ticker.id;
1213
+ let tickerHistory = {
1214
+ fn: () => {
1215
+ },
1216
+ id: tickerName,
1217
+ args: createExportableElement(ticker.args),
1218
+ canvasElementTags: [tag],
1219
+ priority: ticker.priority,
1220
+ duration: ticker.duration,
1221
+ createdByTicketStepsId: tag
1222
+ };
1223
+ let id = _GameWindowManager.generateTickerId(tickerHistory);
1224
+ _GameWindowManager.pushTicker(id, tickerHistory, ticker);
1225
+ if (ticker.duration) {
1226
+ let timeout = setTimeout(() => {
1227
+ let tickerTimeoutInfo = _GameWindowManager._currentTickersTimeouts[timeout.toString()];
1228
+ if (tickerTimeoutInfo) {
1229
+ _GameWindowManager.removeTicker(id);
1230
+ tickerTimeoutInfo.tags.forEach((tag2) => {
1231
+ _GameWindowManager.nextTickerStep(tag2);
1232
+ });
1233
+ }
1234
+ _GameWindowManager.removeTickerTimeoutInfo(timeout);
1235
+ }, ticker.duration * 1e3);
1236
+ _GameWindowManager.addTickerTimeoutInfo(tag, tickerName, timeout.toString(), false);
1237
+ }
1137
1238
  }
1138
1239
  static nextTickerStep(tag) {
1139
- if (typeof tag === "string") {
1140
- tag = [tag];
1240
+ if (_GameWindowManager._currentTickersSteps[tag]) {
1241
+ let steps = _GameWindowManager._currentTickersSteps[tag];
1242
+ if (steps.currentStepNumber + 1 < steps.steps.length) {
1243
+ steps.currentStepNumber++;
1244
+ _GameWindowManager._currentTickersSteps[tag] = steps;
1245
+ _GameWindowManager.runTickersSteps(tag);
1246
+ } else {
1247
+ _GameWindowManager.removeTickerStepByCanvasElement(tag);
1248
+ }
1141
1249
  }
1142
- tag.forEach((tag2) => {
1143
- if (_GameWindowManager._currentTickersSteps[tag2]) {
1144
- let steps = _GameWindowManager._currentTickersSteps[tag2];
1145
- if (steps.currentStepNumber + 1 < steps.steps.length) {
1146
- steps.currentStepNumber++;
1147
- _GameWindowManager._currentTickersSteps[tag2] = steps;
1148
- _GameWindowManager.runTickersSteps(tag2);
1149
- } else {
1150
- delete _GameWindowManager._currentTickersSteps[tag2];
1151
- }
1250
+ }
1251
+ static onEndOfTicker(canvasElementTags, ticker, canvasElementTagsToDelete, tickerId) {
1252
+ let tickerData = _GameWindowManager._currentTickers[tickerId];
1253
+ _GameWindowManager.removeAssociationBetweenTickerCanvasElement(canvasElementTags, ticker);
1254
+ _GameWindowManager.removeCanvasElement(canvasElementTagsToDelete);
1255
+ if (tickerData) {
1256
+ _GameWindowManager.removeTicker(tickerId);
1257
+ if (tickerData.duration == void 0 && tickerData.createdByTicketStepsId) {
1258
+ _GameWindowManager.nextTickerStep(tickerData.createdByTicketStepsId);
1152
1259
  }
1153
- });
1260
+ }
1154
1261
  }
1155
1262
  /**
1156
1263
  * Remove a connection between a canvas element and a ticker.
1157
1264
  * And remove the ticker if there is no canvas element connected to it.
1158
- * @param tag The tag of the canvas element that will use the ticker.
1265
+ * @param tags The tag of the canvas element that will use the ticker.
1159
1266
  * @param ticker The ticker class to be removed.
1160
1267
  * @example
1161
1268
  * ```typescript
1162
- * GameWindowManager.removeAssociationBetweenTickerCanvasElement("alien", TickerRotate)
1269
+ * GameWindowManager.removeAssociationBetweenTickerCanvasElement("alien", RotateTicker)
1163
1270
  * ```
1164
1271
  */
1165
- static removeAssociationBetweenTickerCanvasElement(tag, ticker) {
1166
- let tickerName;
1167
- if (ticker instanceof TickerBase) {
1168
- tickerName = ticker.constructor.name;
1272
+ static removeAssociationBetweenTickerCanvasElement(tags, ticker) {
1273
+ let tickerId;
1274
+ if (typeof ticker === "string") {
1275
+ tickerId = ticker;
1276
+ } else if (ticker instanceof TickerBase) {
1277
+ tickerId = ticker.id;
1169
1278
  } else {
1170
- tickerName = ticker.name;
1279
+ tickerId = ticker.prototype.id;
1171
1280
  }
1172
- if (typeof tag === "string") {
1173
- tag = [tag];
1281
+ if (typeof tags === "string") {
1282
+ tags = [tags];
1174
1283
  }
1175
- _GameWindowManager._currentTickers = _GameWindowManager._currentTickers.map((t) => {
1176
- if (t.className === tickerName) {
1177
- t.canvasElementTags = t.canvasElementTags.filter((e) => !tag.includes(e));
1284
+ for (let id in _GameWindowManager._currentTickers) {
1285
+ let ticker2 = _GameWindowManager._currentTickers[id];
1286
+ if (ticker2.id === tickerId) {
1287
+ _GameWindowManager._currentTickers[id].canvasElementTags = ticker2.canvasElementTags.filter((e) => !tags.includes(e));
1178
1288
  }
1179
- return t;
1180
- });
1181
- for (let timeout in _GameWindowManager.currentTickersTimeouts) {
1182
- let t = _GameWindowManager.currentTickersTimeouts[timeout].tags.filter((e) => !tag.includes(e));
1183
- if (t.length == 0) {
1184
- _GameWindowManager.removeTickerTimeoutInfo(timeout);
1185
- } else {
1186
- _GameWindowManager.currentTickersTimeouts[timeout].tags = t;
1289
+ }
1290
+ for (let timeout in _GameWindowManager._currentTickersTimeouts) {
1291
+ let TickerTimeout = _GameWindowManager._currentTickersTimeouts[timeout];
1292
+ if (TickerTimeout.ticker === tickerId && TickerTimeout.canBeDeletedBeforeEnd) {
1293
+ _GameWindowManager._currentTickersTimeouts[timeout].tags = TickerTimeout.tags.filter((t) => !tags.includes(t));
1187
1294
  }
1188
1295
  }
1189
1296
  _GameWindowManager.removeTickersWithoutAssociatedCanvasElement();
@@ -1192,49 +1299,117 @@ var _GameWindowManager = class _GameWindowManager {
1192
1299
  * Remove all tickers that are not connected to any existing canvas element.
1193
1300
  */
1194
1301
  static removeTickersWithoutAssociatedCanvasElement() {
1195
- let currentTickers = _GameWindowManager._currentTickers.map((t) => {
1196
- t.canvasElementTags = t.canvasElementTags.filter((e) => _GameWindowManager._children[e]);
1197
- return t;
1198
- });
1199
- currentTickers.filter((t) => t.canvasElementTags.length === 0).forEach((t) => {
1200
- _GameWindowManager.app.ticker.remove(t.fn);
1201
- });
1202
- currentTickers = currentTickers.filter((t) => t.canvasElementTags.length > 0);
1203
- _GameWindowManager._currentTickers = currentTickers;
1302
+ for (let id in _GameWindowManager._currentTickers) {
1303
+ let ticker = _GameWindowManager._currentTickers[id];
1304
+ ticker.canvasElementTags = ticker.canvasElementTags.filter((e) => _GameWindowManager._children[e]);
1305
+ if (ticker.canvasElementTags.length === 0) {
1306
+ _GameWindowManager.removeTicker(id);
1307
+ }
1308
+ }
1204
1309
  for (let tag in _GameWindowManager._currentTickersSteps) {
1205
1310
  if (_GameWindowManager._children[tag] === void 0) {
1206
1311
  delete _GameWindowManager._currentTickersSteps[tag];
1207
1312
  }
1208
1313
  }
1314
+ Object.entries(_GameWindowManager._currentTickersTimeouts).forEach(([timeout, { tags }]) => {
1315
+ if (tags.length === 0) {
1316
+ _GameWindowManager.removeTickerTimeout(timeout);
1317
+ }
1318
+ });
1209
1319
  }
1210
- static addTickerTimeoutInfo(tags, ticker, timeout) {
1320
+ static addTickerTimeoutInfo(tags, ticker, timeout, canBeDeletedBeforeEnd) {
1211
1321
  if (typeof tags === "string") {
1212
1322
  tags = [tags];
1213
1323
  }
1214
- _GameWindowManager.currentTickersTimeouts[timeout] = {
1324
+ _GameWindowManager._currentTickersTimeouts[timeout] = {
1215
1325
  tags,
1216
- ticker
1326
+ ticker,
1327
+ canBeDeletedBeforeEnd
1217
1328
  };
1218
1329
  }
1219
1330
  static removeTickerTimeoutInfo(timeout) {
1220
1331
  if (typeof timeout !== "string") {
1221
1332
  timeout = timeout.toString();
1222
1333
  }
1223
- if (_GameWindowManager.currentTickersTimeouts[timeout]) {
1224
- delete _GameWindowManager.currentTickersTimeouts[timeout];
1334
+ if (_GameWindowManager._currentTickersTimeouts[timeout]) {
1335
+ delete _GameWindowManager._currentTickersTimeouts[timeout];
1336
+ }
1337
+ }
1338
+ static removeTickerTimeout(timeout) {
1339
+ if (typeof timeout !== "string") {
1340
+ timeout = timeout.toString();
1341
+ }
1342
+ clearTimeout(Number(timeout));
1343
+ _GameWindowManager.removeTickerTimeoutInfo(timeout);
1344
+ }
1345
+ static removeTickerTimeoutsByTag(tag, checkCanBeDeletedBeforeEnd) {
1346
+ for (let timeout in _GameWindowManager._currentTickersTimeouts) {
1347
+ let tagsWithoutTagToRemove = _GameWindowManager._currentTickersTimeouts[timeout].tags.filter((t) => t !== tag);
1348
+ if (tagsWithoutTagToRemove.length === 0) {
1349
+ let canBeDeletedBeforeEnd = _GameWindowManager._currentTickersTimeouts[timeout].canBeDeletedBeforeEnd;
1350
+ if (!checkCanBeDeletedBeforeEnd || canBeDeletedBeforeEnd) {
1351
+ _GameWindowManager.removeTickerTimeout(timeout);
1352
+ }
1353
+ } else {
1354
+ _GameWindowManager._currentTickersTimeouts[timeout].tags = tagsWithoutTagToRemove;
1355
+ }
1225
1356
  }
1226
1357
  }
1227
1358
  /**
1228
1359
  * Remove all tickers from the canvas.
1229
1360
  */
1230
- static removeTickers() {
1361
+ static removeAllTickers() {
1231
1362
  _GameWindowManager._currentTickersSteps = {};
1232
- _GameWindowManager._currentTickers.forEach((t) => {
1233
- _GameWindowManager.app.ticker.remove(t.fn);
1363
+ Object.keys(_GameWindowManager._currentTickers).forEach((id) => {
1364
+ _GameWindowManager.removeTicker(id);
1365
+ });
1366
+ _GameWindowManager._currentTickers = {};
1367
+ for (let timeout in _GameWindowManager._currentTickersTimeouts) {
1368
+ _GameWindowManager.removeTickerTimeout(timeout);
1369
+ }
1370
+ }
1371
+ /**
1372
+ * Remove all tickers from a canvas element.
1373
+ * @param tag The tag of the canvas element that will use the ticker.
1374
+ */
1375
+ static removeTickerByCanvasElement(tag) {
1376
+ if (typeof tag === "string") {
1377
+ tag = [tag];
1378
+ }
1379
+ tag.forEach((tag2) => {
1380
+ for (let id in _GameWindowManager._currentTickers) {
1381
+ let ticker = _GameWindowManager._currentTickers[id];
1382
+ if (ticker.canvasElementTags.includes(tag2)) {
1383
+ _GameWindowManager.removeTicker(id);
1384
+ }
1385
+ }
1386
+ if (_GameWindowManager._currentTickersSteps[tag2]) {
1387
+ delete _GameWindowManager._currentTickersSteps[tag2];
1388
+ }
1389
+ _GameWindowManager.removeTickerTimeoutsByTag(tag2, false);
1390
+ delete _GameWindowManager._currentTickersSteps[tag2];
1234
1391
  });
1235
- _GameWindowManager._currentTickers = [];
1236
- for (let timeout in _GameWindowManager.currentTickersTimeouts) {
1237
- _GameWindowManager.removeTickerTimeoutInfo(timeout);
1392
+ }
1393
+ static removeTickerStepByCanvasElement(tag) {
1394
+ if (_GameWindowManager._currentTickersSteps[tag]) {
1395
+ delete _GameWindowManager._currentTickersSteps[tag];
1396
+ }
1397
+ for (let id in _GameWindowManager._currentTickers) {
1398
+ let ticker = _GameWindowManager._currentTickers[id];
1399
+ if (ticker.createdByTicketStepsId === tag) {
1400
+ _GameWindowManager.removeTicker(id);
1401
+ }
1402
+ }
1403
+ }
1404
+ static removeTicker(tickerId) {
1405
+ let ticker = _GameWindowManager._currentTickers[tickerId];
1406
+ if (ticker) {
1407
+ if (ticker.args.hasOwnProperty(tagToRemoveAfter)) {
1408
+ let tagToRemoveAfter2 = ticker.args.tagToRemoveAfter;
1409
+ _GameWindowManager.removeCanvasElement(tagToRemoveAfter2);
1410
+ }
1411
+ _GameWindowManager.app.ticker.remove(ticker.fn);
1412
+ delete _GameWindowManager._currentTickers[tickerId];
1238
1413
  }
1239
1414
  }
1240
1415
  /**
@@ -1261,7 +1436,8 @@ var _GameWindowManager = class _GameWindowManager {
1261
1436
  currentElements[tag] = exportCanvasElement(_GameWindowManager._children[tag]);
1262
1437
  }
1263
1438
  return {
1264
- currentTickers: createExportableElement(_GameWindowManager._currentTickers),
1439
+ currentTickers: createExportableElement(_GameWindowManager.currentTickersWithoutCreatedBySteps),
1440
+ currentTickersSteps: createExportableElement(_GameWindowManager._currentTickersSteps),
1265
1441
  currentElements: createExportableElement(currentElements),
1266
1442
  childrenTagsOrder: createExportableElement(_GameWindowManager.childrenTagsOrder)
1267
1443
  };
@@ -1296,15 +1472,20 @@ var _GameWindowManager = class _GameWindowManager {
1296
1472
  }
1297
1473
  if (data.hasOwnProperty("currentTickers")) {
1298
1474
  let currentTickers = data["currentTickers"];
1299
- currentTickers.forEach((t) => {
1475
+ for (let id in currentTickers) {
1476
+ let t = currentTickers[id];
1300
1477
  let tags = t.canvasElementTags;
1301
- let ticker = geTickerInstanceByClassName(t.className, t.args, t.duration, t.priority);
1478
+ let ticker = geTickerInstanceById(t.id, t.args, t.duration, t.priority);
1302
1479
  if (ticker) {
1303
1480
  _GameWindowManager.addTicker(tags, ticker);
1304
1481
  } else {
1305
- console.error(`[Pixi'VN] Ticker ${t.className} not found`);
1482
+ console.error(`[Pixi'VN] Ticker ${t.id} not found`);
1306
1483
  }
1307
- });
1484
+ }
1485
+ }
1486
+ if (data.hasOwnProperty("currentTickersSteps")) {
1487
+ let currentTickersSteps = data["currentTickersSteps"];
1488
+ _GameWindowManager.restoneTickersSteps(currentTickersSteps);
1308
1489
  }
1309
1490
  } catch (e) {
1310
1491
  console.error("[Pixi'VN] Error importing data", e);
@@ -1318,11 +1499,14 @@ _GameWindowManager._children = {};
1318
1499
  * The order of the children tags.
1319
1500
  */
1320
1501
  _GameWindowManager.childrenTagsOrder = [];
1321
- _GameWindowManager._currentTickers = [];
1502
+ _GameWindowManager._currentTickers = {};
1322
1503
  _GameWindowManager._currentTickersSteps = {};
1323
- _GameWindowManager.currentTickersTimeouts = {};
1504
+ _GameWindowManager._currentTickersTimeouts = {};
1324
1505
  var GameWindowManager = _GameWindowManager;
1325
1506
 
1507
+ // src/types/CloseType.ts
1508
+ var Close = "close";
1509
+
1326
1510
  // src/decorators/LabelDecorator.ts
1327
1511
  var registeredLabels = {};
1328
1512
  function getLabelById(id) {
@@ -1338,20 +1522,43 @@ function getLabelById(id) {
1338
1522
  function getDialogue() {
1339
1523
  return GameStorageManager.getVariable(GameStorageManager.keysSystem.CURRENT_DIALOGUE_MEMORY_KEY);
1340
1524
  }
1341
- var TickerFadeAlpha = class extends TickerBase {
1342
- /**
1343
- * The method that will be called every frame to fade the alpha of the canvas element of the canvas.
1344
- * @param delta The delta time
1345
- * @param args The arguments that are passed to the ticker
1346
- * @param tags The tags of the canvas element that are connected to this ticker
1347
- */
1348
- fn(t, args, tags) {
1525
+ function getChoiceMenuOptions() {
1526
+ let d = GameStorageManager.getVariable(GameStorageManager.keysSystem.CURRENT_MENU_OPTIONS_MEMORY_KEY);
1527
+ if (d) {
1528
+ let options = [];
1529
+ d.forEach((option, index) => {
1530
+ if (option.type === Close) {
1531
+ let itemLabel = newCloseLabel(index);
1532
+ options.push({
1533
+ text: option.text,
1534
+ label: itemLabel,
1535
+ type: Close,
1536
+ closeCurrentLabel: option.closeCurrentLabel,
1537
+ props: {}
1538
+ });
1539
+ return;
1540
+ }
1541
+ let label = getLabelById(option.label);
1542
+ if (label) {
1543
+ let itemLabel = new Label(label.id, label.steps, label.onStepRun, index);
1544
+ options.push(__spreadProps(__spreadValues({}, option), {
1545
+ label: itemLabel
1546
+ }));
1547
+ }
1548
+ });
1549
+ return options;
1550
+ }
1551
+ return void 0;
1552
+ }
1553
+ var FadeAlphaTicker = class extends TickerBase {
1554
+ fn(ticker, args, tags, tickerId) {
1349
1555
  let type = args.type === void 0 ? "hide" : args.type;
1350
- let speed = args.speed === void 0 ? 0.1 : args.speed;
1556
+ let duration = args.duration === void 0 ? 1 : args.duration;
1557
+ let speed = 1 / (duration * 60);
1351
1558
  let limit = args.limit === void 0 ? type === "hide" ? 0 : 1 : args.limit;
1352
- let removeElementAfter = args.tagToRemoveAfter || [];
1353
- if (typeof removeElementAfter === "string") {
1354
- removeElementAfter = [removeElementAfter];
1559
+ let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
1560
+ if (typeof tagToRemoveAfter2 === "string") {
1561
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
1355
1562
  }
1356
1563
  if (type === "hide" && limit < 0) {
1357
1564
  limit = 0;
@@ -1372,61 +1579,88 @@ var TickerFadeAlpha = class extends TickerBase {
1372
1579
  let element = GameWindowManager.getCanvasElement(tag);
1373
1580
  if (element && element instanceof Container) {
1374
1581
  if (type === "show" && element.alpha < limit) {
1375
- element.alpha += speed * t.deltaTime;
1582
+ element.alpha += speed * ticker.deltaTime;
1376
1583
  } else if (type === "hide" && element.alpha > limit) {
1377
- element.alpha -= speed * t.deltaTime;
1378
- } else {
1584
+ element.alpha -= speed * ticker.deltaTime;
1585
+ }
1586
+ if (type === "show" && element.alpha >= limit) {
1587
+ element.alpha = limit;
1588
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
1589
+ } else if (type === "hide" && element.alpha <= limit) {
1379
1590
  element.alpha = limit;
1380
- GameWindowManager.removeAssociationBetweenTickerCanvasElement(tag, this);
1381
- GameWindowManager.removeCanvasElement(removeElementAfter);
1591
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
1382
1592
  }
1383
1593
  }
1384
1594
  });
1385
1595
  }
1386
1596
  };
1387
- TickerFadeAlpha = __decorateClass([
1597
+ FadeAlphaTicker = __decorateClass([
1388
1598
  tickerDecorator()
1389
- ], TickerFadeAlpha);
1599
+ ], FadeAlphaTicker);
1390
1600
 
1391
1601
  // src/functions/TickerUtility.ts
1392
1602
  function updateTickerProgression(args, propertyName, progression) {
1393
- if (args.hasOwnProperty(propertyName) && typeof args[propertyName] !== "number") {
1603
+ if (args[propertyName] === void 0 || !progression || args[propertyName] === progression.limit) {
1394
1604
  return;
1395
1605
  }
1396
- if (args[propertyName] !== void 0 && progression && args[propertyName] !== progression.limit) {
1606
+ if (typeof args[propertyName] === "number") {
1397
1607
  if (progression.type === "linear") {
1398
- args[propertyName] += progression.amt;
1399
- if (progression.limit !== void 0) {
1400
- if (args[propertyName] > progression.limit && progression.amt > 0) {
1401
- args[propertyName] = progression.limit;
1402
- } else if (args[propertyName] < progression.limit && progression.amt < 0) {
1403
- args[propertyName] = progression.limit;
1404
- }
1405
- }
1608
+ args[propertyName] = getLinearProgression(args[propertyName], progression);
1406
1609
  } else if (progression.type === "exponential") {
1407
- args[propertyName] += args[propertyName] * progression.percentage;
1408
- if (progression.limit !== void 0) {
1409
- if (args[propertyName] > progression.limit && progression.percentage > 0) {
1410
- args[propertyName] = progression.limit;
1411
- } else if (args[propertyName] < progression.limit && progression.percentage < 0) {
1412
- args[propertyName] = progression.limit;
1413
- }
1414
- }
1610
+ args[propertyName] = getExponentialProgression(args[propertyName], progression);
1611
+ }
1612
+ } 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") {
1613
+ if (progression.type === "linear") {
1614
+ args[propertyName].x = getLinearProgression(args[propertyName].x, progression);
1615
+ args[propertyName].y = getLinearProgression(args[propertyName].y, progression);
1616
+ } else if (progression.type === "exponential") {
1617
+ args[propertyName].x = getExponentialProgression(args[propertyName].x, progression);
1618
+ args[propertyName].y = getExponentialProgression(args[propertyName].y, progression);
1415
1619
  }
1416
1620
  }
1417
1621
  }
1622
+ function getLinearProgression(number, progression) {
1623
+ if (progression.limit !== void 0) {
1624
+ if (number > progression.limit && progression.amt > 0) {
1625
+ return progression.limit;
1626
+ } else if (number < progression.limit && progression.amt < 0) {
1627
+ return progression.limit;
1628
+ }
1629
+ }
1630
+ return number + progression.amt / 60;
1631
+ }
1632
+ function getExponentialProgression(number, progression) {
1633
+ if (progression.limit !== void 0) {
1634
+ if (number > progression.limit && progression.percentage > 0) {
1635
+ return progression.limit;
1636
+ } else if (number < progression.limit && progression.percentage < 0) {
1637
+ return progression.limit;
1638
+ }
1639
+ }
1640
+ return number + number * progression.percentage;
1641
+ }
1418
1642
 
1419
- // src/classes/ticker/TickerMove.ts
1420
- var TickerMove = class extends TickerBase {
1421
- /**
1422
- * The method that will be called every frame to move the canvas element of the canvas.
1423
- * @param t The ticker that is calling this method
1424
- * @param args The arguments that are passed to the ticker
1425
- * @param tags The tags of the canvas element that are connected to this ticker
1426
- */
1427
- fn(t, args, tags) {
1428
- let speed = args.speed === void 0 ? 0.1 : args.speed;
1643
+ // src/classes/ticker/MoveTicker.ts
1644
+ var MoveTicker = class extends TickerBase {
1645
+ fn(ticker, args, tags, tickerId) {
1646
+ let xSpeed = 1;
1647
+ let ySpeed = 1;
1648
+ if (args.speed) {
1649
+ if (typeof args.speed === "number") {
1650
+ xSpeed = args.speed;
1651
+ ySpeed = args.speed;
1652
+ } else {
1653
+ xSpeed = args.speed.x;
1654
+ ySpeed = args.speed.y;
1655
+ }
1656
+ }
1657
+ xSpeed /= 60;
1658
+ ySpeed /= 60;
1429
1659
  let destination = args.destination;
1660
+ let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
1661
+ if (typeof tagToRemoveAfter2 === "string") {
1662
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
1663
+ }
1430
1664
  tags.filter((tag) => {
1431
1665
  var _a;
1432
1666
  let element = GameWindowManager.getCanvasElement(tag);
@@ -1439,41 +1673,42 @@ var TickerMove = class extends TickerBase {
1439
1673
  }).forEach((tag) => {
1440
1674
  let element = GameWindowManager.getCanvasElement(tag);
1441
1675
  if (element && element instanceof Container) {
1442
- let xDistance = destination.x - element.x;
1676
+ let xDistance = destination.x - element.x > 0 ? 1 : -1;
1443
1677
  if (xDistance != 0) {
1444
- element.x += xDistance / speed * t.deltaTime;
1678
+ element.x += xDistance * xSpeed * ticker.deltaTime;
1445
1679
  let newDistance = destination.x - element.x;
1446
1680
  if (xDistance < 0 && newDistance > 0 || xDistance > 0 && newDistance < 0) {
1447
1681
  element.x = destination.x;
1448
1682
  }
1449
1683
  }
1450
- let yDistance = destination.y - element.y;
1684
+ let yDistance = destination.y - element.y > 0 ? 1 : -1;
1451
1685
  if (yDistance != 0) {
1452
- element.y += yDistance / speed * t.deltaTime;
1686
+ element.y += yDistance * ySpeed * ticker.deltaTime;
1453
1687
  let newDistance = destination.y - element.y;
1454
1688
  if (yDistance < 0 && newDistance > 0 || yDistance > 0 && newDistance < 0) {
1455
1689
  element.y = destination.y;
1456
1690
  }
1457
1691
  }
1692
+ if (element.x == destination.x && element.y == destination.y) {
1693
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
1694
+ }
1458
1695
  }
1459
1696
  });
1460
1697
  if (args.speedProgression)
1461
1698
  updateTickerProgression(args, "speed", args.speedProgression);
1462
1699
  }
1463
1700
  };
1464
- TickerMove = __decorateClass([
1701
+ MoveTicker = __decorateClass([
1465
1702
  tickerDecorator()
1466
- ], TickerMove);
1467
- var TickerRotate = class extends TickerBase {
1468
- /**
1469
- * The method that will be called every frame to rotate the canvas element of the canvas.
1470
- * @param delta The delta time
1471
- * @param args The arguments that are passed to the ticker
1472
- * @param tags The tags of the canvas element that are connected to this ticker
1473
- */
1474
- fn(t, args, tags) {
1475
- let speed = args.speed === void 0 ? 0.1 : args.speed;
1703
+ ], MoveTicker);
1704
+ var RotateTicker = class extends TickerBase {
1705
+ fn(ticker, args, tags, tickerId) {
1706
+ let speed = (args.speed === void 0 ? 1 : args.speed) / 60;
1476
1707
  let clockwise = args.clockwise === void 0 ? true : args.clockwise;
1708
+ let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
1709
+ if (typeof tagToRemoveAfter2 === "string") {
1710
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
1711
+ }
1477
1712
  tags.filter((tag) => {
1478
1713
  var _a;
1479
1714
  let element = GameWindowManager.getCanvasElement(tag);
@@ -1487,18 +1722,111 @@ var TickerRotate = class extends TickerBase {
1487
1722
  let element = GameWindowManager.getCanvasElement(tag);
1488
1723
  if (element && element instanceof Container) {
1489
1724
  if (clockwise)
1490
- element.rotation += speed * t.deltaTime;
1725
+ element.rotation += speed * ticker.deltaTime;
1491
1726
  else
1492
- element.rotation -= speed * t.deltaTime;
1727
+ element.rotation -= speed * ticker.deltaTime;
1728
+ if (speed < 1e-5 && !(args.speedProgression && args.speedProgression.type == "linear" && args.speedProgression.amt != 0)) {
1729
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
1730
+ }
1493
1731
  }
1494
1732
  });
1495
1733
  if (args.speedProgression)
1496
1734
  updateTickerProgression(args, "speed", args.speedProgression);
1497
1735
  }
1498
1736
  };
1499
- TickerRotate = __decorateClass([
1737
+ RotateTicker = __decorateClass([
1500
1738
  tickerDecorator()
1501
- ], TickerRotate);
1739
+ ], RotateTicker);
1740
+ var ZoomTicker = class extends TickerBase {
1741
+ fn(ticker, args, tags, tickerId) {
1742
+ let xSpeed = 0.1;
1743
+ let ySpeed = 0.1;
1744
+ if (args.speed) {
1745
+ if (typeof args.speed === "number") {
1746
+ xSpeed = args.speed;
1747
+ ySpeed = args.speed;
1748
+ } else {
1749
+ xSpeed = args.speed.x;
1750
+ ySpeed = args.speed.y;
1751
+ }
1752
+ }
1753
+ xSpeed /= 60;
1754
+ ySpeed /= 60;
1755
+ let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
1756
+ if (typeof tagToRemoveAfter2 === "string") {
1757
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
1758
+ }
1759
+ let type = args.type || "zoom";
1760
+ let xLimit = type === "zoom" ? Infinity : 0;
1761
+ let yLimit = type === "zoom" ? Infinity : 0;
1762
+ if (args.limit) {
1763
+ if (typeof args.limit === "number") {
1764
+ xLimit = args.limit;
1765
+ yLimit = args.limit;
1766
+ } else {
1767
+ xLimit = args.limit.x;
1768
+ yLimit = args.limit.y;
1769
+ }
1770
+ }
1771
+ tags.filter((tag) => {
1772
+ var _a;
1773
+ let element = GameWindowManager.getCanvasElement(tag);
1774
+ if (args.startOnlyIfHaveTexture) {
1775
+ if (element && element instanceof Sprite && ((_a = element.texture) == null ? void 0 : _a.label) == "EMPTY") {
1776
+ return false;
1777
+ }
1778
+ }
1779
+ return true;
1780
+ }).forEach((tag) => {
1781
+ let element = GameWindowManager.getCanvasElement(tag);
1782
+ if (element && element instanceof Container) {
1783
+ if (type === "zoom" && (element.scale.x < xLimit || element.scale.y < yLimit)) {
1784
+ element.scale.x += xSpeed * ticker.deltaTime;
1785
+ element.scale.y += ySpeed * ticker.deltaTime;
1786
+ } else if (type === "unzoom" && (element.scale.x > xLimit || element.scale.y > yLimit)) {
1787
+ element.scale.x -= xSpeed * ticker.deltaTime;
1788
+ element.scale.y -= ySpeed * ticker.deltaTime;
1789
+ }
1790
+ if (type === "zoom") {
1791
+ if (element.scale.x > xLimit) {
1792
+ element.scale.x = xLimit;
1793
+ }
1794
+ if (element.scale.y > yLimit) {
1795
+ element.scale.y = yLimit;
1796
+ }
1797
+ if (element.scale.x >= xLimit && element.scale.y >= yLimit) {
1798
+ element.scale.x = xLimit;
1799
+ element.scale.y = yLimit;
1800
+ this.onEndOfTicker(tag, tickerId, element, tagToRemoveAfter2);
1801
+ }
1802
+ } else if (type === "unzoom") {
1803
+ if (element.scale.x < xLimit) {
1804
+ element.scale.x = xLimit;
1805
+ }
1806
+ if (element.scale.y < yLimit) {
1807
+ element.scale.y = yLimit;
1808
+ }
1809
+ if (element.scale.x <= xLimit && element.scale.y <= yLimit) {
1810
+ element.scale.x = xLimit;
1811
+ element.scale.y = yLimit;
1812
+ this.onEndOfTicker(tag, tickerId, element, tagToRemoveAfter2);
1813
+ }
1814
+ }
1815
+ if (xSpeed < 1e-5 && ySpeed < 1e-5 && !(args.speedProgression && args.speedProgression.type == "linear" && args.speedProgression.amt != 0)) {
1816
+ this.onEndOfTicker(tag, tickerId, element, tagToRemoveAfter2);
1817
+ }
1818
+ }
1819
+ });
1820
+ if (args.speedProgression)
1821
+ updateTickerProgression(args, "speed", args.speedProgression);
1822
+ }
1823
+ onEndOfTicker(tag, tickerId, _element, tagToRemoveAfter2) {
1824
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
1825
+ }
1826
+ };
1827
+ ZoomTicker = __decorateClass([
1828
+ tickerDecorator()
1829
+ ], ZoomTicker);
1502
1830
 
1503
1831
  // src/functions/DiffUtility.ts
1504
1832
  function restoreDeepDiffChanges(data, differences) {
@@ -1605,7 +1933,8 @@ var _GameStepManager = class _GameStepManager {
1605
1933
  canvas: {
1606
1934
  childrenTagsOrder: [],
1607
1935
  currentElements: {},
1608
- currentTickers: []
1936
+ currentTickers: {},
1937
+ currentTickersSteps: {}
1609
1938
  },
1610
1939
  labelIndex: -1,
1611
1940
  openedLabels: []
@@ -1716,6 +2045,13 @@ var _GameStepManager = class _GameStepManager {
1716
2045
  _GameStepManager._openedLabels = _GameStepManager.originalStepData.openedLabels;
1717
2046
  }
1718
2047
  /* Run Methods */
2048
+ static get canGoNext() {
2049
+ let options = getChoiceMenuOptions();
2050
+ if (options && options.length > 0) {
2051
+ return false;
2052
+ }
2053
+ return true;
2054
+ }
1719
2055
  /**
1720
2056
  * Execute the next step and add it to the history.
1721
2057
  * @param props The props to pass to the step.
@@ -1725,7 +2061,7 @@ var _GameStepManager = class _GameStepManager {
1725
2061
  * ```typescript
1726
2062
  * function nextOnClick() {
1727
2063
  * setLoading(true)
1728
- * GameStepManager.runNextStep(yourParams)
2064
+ * GameStepManager.goNext(yourParams)
1729
2065
  * .then((result) => {
1730
2066
  * setUpdate((p) => p + 1)
1731
2067
  * setLoading(false)
@@ -1740,8 +2076,12 @@ var _GameStepManager = class _GameStepManager {
1740
2076
  * }
1741
2077
  * ```
1742
2078
  */
1743
- static runNextStep(props, choiseMade) {
2079
+ static goNext(props, choiseMade) {
1744
2080
  return __async(this, null, function* () {
2081
+ if (!_GameStepManager.canGoNext) {
2082
+ console.warn("[Pixi'VN] The player must make a choice");
2083
+ return;
2084
+ }
1745
2085
  _GameStepManager.increaseCurrentStepIndex();
1746
2086
  return yield _GameStepManager.runCurrentStep(props, choiseMade);
1747
2087
  });
@@ -1772,7 +2112,7 @@ var _GameStepManager = class _GameStepManager {
1772
2112
  return result;
1773
2113
  } else if (_GameStepManager.openedLabels.length > 1) {
1774
2114
  _GameStepManager.closeCurrentLabel();
1775
- return yield _GameStepManager.runNextStep(props, choiseMade);
2115
+ return yield _GameStepManager.goNext(props, choiseMade);
1776
2116
  } else {
1777
2117
  _GameStepManager.restorLastLabelList();
1778
2118
  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");
@@ -1816,8 +2156,15 @@ var _GameStepManager = class _GameStepManager {
1816
2156
  }
1817
2157
  try {
1818
2158
  if (labelId === CLOSE_LABEL_ID) {
1819
- let closeLabel = newCloseLabel(choiseMade);
1820
- return _GameStepManager.closeChoiceMenu(closeLabel, props);
2159
+ let closeCurrentLabel = newCloseLabel(choiseMade);
2160
+ let choice = {
2161
+ label: closeCurrentLabel,
2162
+ text: "",
2163
+ closeCurrentLabel: false,
2164
+ type: "close",
2165
+ props: {}
2166
+ };
2167
+ return _GameStepManager.closeChoiceMenu(choice, props);
1821
2168
  }
1822
2169
  let tempLabel = getLabelById(labelId);
1823
2170
  if (!tempLabel) {
@@ -1867,8 +2214,15 @@ var _GameStepManager = class _GameStepManager {
1867
2214
  }
1868
2215
  try {
1869
2216
  if (labelId === CLOSE_LABEL_ID) {
1870
- let closeLabel = newCloseLabel(choiseMade);
1871
- return _GameStepManager.closeChoiceMenu(closeLabel, props);
2217
+ let closeCurrentLabel = newCloseLabel(choiseMade);
2218
+ let choice = {
2219
+ label: closeCurrentLabel,
2220
+ text: "",
2221
+ closeCurrentLabel: false,
2222
+ type: "close",
2223
+ props: {}
2224
+ };
2225
+ return _GameStepManager.closeChoiceMenu(choice, props);
1872
2226
  }
1873
2227
  let tempLabel = getLabelById(labelId);
1874
2228
  if (!tempLabel) {
@@ -1884,7 +2238,8 @@ var _GameStepManager = class _GameStepManager {
1884
2238
  }
1885
2239
  /**
1886
2240
  * When the player is in a choice menu, can use this function to exit to the choice menu.
1887
- * @param props The props to pass to the step.
2241
+ * @param choice
2242
+ * @param props
1888
2243
  * @returns StepLabelResultType or undefined.
1889
2244
  * @example
1890
2245
  * ```typescript
@@ -1895,13 +2250,17 @@ var _GameStepManager = class _GameStepManager {
1895
2250
  * })
1896
2251
  * ```
1897
2252
  */
1898
- static closeChoiceMenu(label, props) {
2253
+ static closeChoiceMenu(choice, props) {
1899
2254
  return __async(this, null, function* () {
2255
+ let label = choice.label;
1900
2256
  let choiseMade = void 0;
1901
2257
  if (typeof label.choiseIndex === "number") {
1902
2258
  choiseMade = label.choiseIndex;
1903
2259
  }
1904
- return _GameStepManager.runNextStep(props, choiseMade);
2260
+ if (choice.closeCurrentLabel) {
2261
+ _GameStepManager.closeCurrentLabel();
2262
+ }
2263
+ return _GameStepManager.goNext(props, choiseMade);
1905
2264
  });
1906
2265
  }
1907
2266
  /* After Update Methods */