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