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