@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;
@@ -290,26 +289,42 @@ var GameStorageManager = _GameStorageManager;
290
289
  var TickerBase = class {
291
290
  /**
292
291
  * @param args The arguments that you want to pass to the ticker.
293
- * @param duration The duration of the ticker. If is undefined, the ticker will be called every frame.
294
- * @param priority The priority of the ticker. If is undefined, the priority will be UPDATE_PRIORITY.NORMAL.
292
+ * @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
293
+ * @param priority The priority of the ticker. @default UPDATE_PRIORITY.NORMAL
295
294
  */
296
295
  constructor(args, duration, priority) {
296
+ /**
297
+ * Get the id of the ticker. This variable is used in the system to get the ticker by id, {@link geTickerInstanceById}
298
+ */
299
+ this.id = "ticker_id_not_set";
297
300
  this.args = args;
298
301
  this.duration = duration;
299
302
  this.priority = priority;
303
+ this.id = this.constructor.prototype.id;
300
304
  }
301
305
  /**
302
306
  * The method that will be called every frame.
303
307
  * This method should be overridden and you can use GameWindowManager.addCanvasElement() to get the canvas element of the canvas, and edit them.
304
- * @param t The ticker that is calling this method
305
- * @param args The arguments that you passed when you added the ticker
306
- * @param tags The tags of the canvas elements that are connected to this ticker
308
+ * @param _ticker The ticker that is calling this method
309
+ * @param _args The arguments that you passed when you added the ticker
310
+ * @param _tags The tags of the canvas elements that are connected to this ticker
311
+ * @param _tickerId The id of the ticker. You can use this to get the ticker from the {@link GameWindowManager.currentTickers}
307
312
  */
308
- fn(_t, _args, _tags) {
313
+ fn(_ticker, _args, _tags, _tickerId) {
309
314
  throw new Error("[Pixi'VN] The method TickerBase.fn() must be overridden");
310
315
  }
311
316
  };
312
317
 
318
+ // src/constants.ts
319
+ var PIXIVN_VERSION = "0.6.2";
320
+ var Repeat = "repeat";
321
+ function Pause(duration) {
322
+ return {
323
+ type: "pause",
324
+ duration
325
+ };
326
+ }
327
+
313
328
  // src/decorators/TickerDecorator.ts
314
329
  var registeredTickers = {};
315
330
  function tickerDecorator(name) {
@@ -318,25 +333,32 @@ function tickerDecorator(name) {
318
333
  name = target.name;
319
334
  }
320
335
  if (registeredTickers[name]) {
321
- console.warn(`[Pixi'VN] Ticker ${name} already exists, it will be overwritten`);
336
+ console.info(`[Pixi'VN] Ticker ${name} already exists, it will be overwritten`);
322
337
  }
338
+ target.prototype.id = name;
323
339
  registeredTickers[name] = target;
324
340
  };
325
341
  }
326
- function geTickerInstanceByClassName(tickerName, args, duration, priority) {
342
+ function geTickerInstanceById(tickerId, args, duration, priority) {
327
343
  try {
328
- let ticker = registeredTickers[tickerName];
344
+ let ticker = registeredTickers[tickerId];
329
345
  if (!ticker) {
330
- console.error(`[Pixi'VN] Ticker ${tickerName} not found`);
346
+ console.error(`[Pixi'VN] Ticker ${tickerId} not found`);
331
347
  return;
332
348
  }
333
349
  return new ticker(args, duration, priority);
334
350
  } catch (e) {
335
- console.error(`[Pixi'VN] Error while getting Ticker ${tickerName}`, e);
351
+ console.error(`[Pixi'VN] Error while getting Ticker ${tickerId}`, e);
336
352
  return;
337
353
  }
338
354
  }
355
+ var CANVAS_CONTAINER_ID = "CanvasContainer";
339
356
  var CanvasContainer = class extends pixi_js.Container {
357
+ constructor(options) {
358
+ super(options);
359
+ this.pixivnId = CANVAS_CONTAINER_ID;
360
+ this.pixivnId = this.constructor.prototype.pixivnId;
361
+ }
340
362
  get memory() {
341
363
  let memory = getMemoryContainer(this);
342
364
  this.children.forEach((child) => {
@@ -352,8 +374,12 @@ var CanvasContainer = class extends pixi_js.Container {
352
374
  }
353
375
  };
354
376
  function getMemoryContainer(element) {
377
+ let className = "CanvasContainer";
378
+ if (element.hasOwnProperty("pixivnId")) {
379
+ className = element.pixivnId;
380
+ }
355
381
  return {
356
- className: "CanvasContainer",
382
+ pixivnId: className,
357
383
  elements: [],
358
384
  width: element.width,
359
385
  height: element.height,
@@ -469,40 +495,43 @@ function getTextStyle(style) {
469
495
 
470
496
  // src/decorators/EventDecorator.ts
471
497
  var registeredEvents = {};
472
- function getEventTypeByClassName(eventName) {
498
+ function getEventTypeById(eventId) {
473
499
  try {
474
- let eventType = registeredEvents[eventName];
500
+ let eventType = registeredEvents[eventId];
475
501
  if (!eventType) {
476
- console.error(`[Pixi'VN] Event ${eventName} not found`);
502
+ console.error(`[Pixi'VN] Event ${eventId} not found`);
477
503
  return;
478
504
  }
479
505
  new eventType();
480
506
  return eventType;
481
507
  } catch (e) {
482
- console.error(`[Pixi'VN] Error while getting Event ${eventName}`, e);
508
+ console.error(`[Pixi'VN] Error while getting Event ${eventId}`, e);
483
509
  return;
484
510
  }
485
511
  }
486
- function getEventInstanceByClassName(eventName) {
512
+ function getEventInstanceById(eventId) {
487
513
  try {
488
- let eventType = registeredEvents[eventName];
514
+ let eventType = registeredEvents[eventId];
489
515
  if (!eventType) {
490
- console.error(`[Pixi'VN] Event ${eventName} not found`);
516
+ console.error(`[Pixi'VN] Event ${eventId} not found`);
491
517
  return;
492
518
  }
493
519
  let event = new eventType();
494
520
  return event;
495
521
  } catch (e) {
496
- console.error(`[Pixi'VN] Error while getting Event ${eventName}`, e);
522
+ console.error(`[Pixi'VN] Error while getting Event ${eventId}`, e);
497
523
  return;
498
524
  }
499
525
  }
500
526
 
501
527
  // src/classes/canvas/CanvasSprite.ts
528
+ var CANVAS_SPRITE_ID = "CanvasSprite";
502
529
  var CanvasSprite = class _CanvasSprite extends pixi_js.Sprite {
503
- constructor() {
504
- super(...arguments);
530
+ constructor(options) {
531
+ super(options);
532
+ this.pixivnId = CANVAS_SPRITE_ID;
505
533
  this._onEvents = {};
534
+ this.pixivnId = this.constructor.prototype.pixivnId;
506
535
  }
507
536
  get memory() {
508
537
  return getMemorySprite(this);
@@ -543,9 +572,9 @@ var CanvasSprite = class _CanvasSprite extends pixi_js.Sprite {
543
572
  * ```
544
573
  */
545
574
  onEvent(event, eventClass) {
546
- let className = eventClass.name;
547
- let instance = getEventInstanceByClassName(className);
548
- this._onEvents[event] = className;
575
+ let id = eventClass.prototype.id;
576
+ let instance = getEventInstanceById(id);
577
+ this._onEvents[event] = id;
549
578
  if (instance) {
550
579
  super.on(event, () => {
551
580
  instance.fn(event, this);
@@ -574,7 +603,7 @@ var CanvasSprite = class _CanvasSprite extends pixi_js.Sprite {
574
603
  function getMemorySprite(element) {
575
604
  let temp = getMemoryContainer(element);
576
605
  return __spreadProps(__spreadValues({}, temp), {
577
- className: "CanvasSprite",
606
+ pixivnId: element.pixivnId,
578
607
  textureImage: getTextureMemory(element.texture),
579
608
  anchor: { x: element.anchor.x, y: element.anchor.y },
580
609
  roundPixels: element.roundPixels,
@@ -597,8 +626,8 @@ function setMemorySprite(element, memory) {
597
626
  }
598
627
  memory.roundPixels && (element.roundPixels = memory.roundPixels);
599
628
  for (let event in memory.onEvents) {
600
- let className = memory.onEvents[event];
601
- let instance = getEventTypeByClassName(className);
629
+ let id = memory.onEvents[event];
630
+ let instance = getEventTypeById(id);
602
631
  if (instance) {
603
632
  element.onEvent(event, instance);
604
633
  }
@@ -606,9 +635,11 @@ function setMemorySprite(element, memory) {
606
635
  }
607
636
 
608
637
  // src/classes/canvas/CanvasImage.ts
638
+ var CANVAS_IMAGE_ID = "CanvasImage";
609
639
  var CanvasImage = class _CanvasImage extends CanvasSprite {
610
640
  constructor(options, imageLink) {
611
641
  super(options);
642
+ this.pixivnId = CANVAS_IMAGE_ID;
612
643
  this.imageLink = "";
613
644
  if (imageLink) {
614
645
  this.imageLink = imageLink;
@@ -616,12 +647,13 @@ var CanvasImage = class _CanvasImage extends CanvasSprite {
616
647
  }
617
648
  get memory() {
618
649
  return __spreadProps(__spreadValues({}, getMemorySprite(this)), {
619
- className: "CanvasImage",
620
- textureImage: { image: this.imageLink }
650
+ pixivnId: this.pixivnId,
651
+ imageLink: this.imageLink
621
652
  });
622
653
  }
623
654
  set memory(memory) {
624
655
  setMemorySprite(this, memory);
656
+ this.imageLink = memory.imageLink;
625
657
  }
626
658
  static from(source, skipCache) {
627
659
  let sprite = pixi_js.Sprite.from(source, skipCache);
@@ -649,10 +681,13 @@ var CanvasImage = class _CanvasImage extends CanvasSprite {
649
681
  });
650
682
  }
651
683
  };
684
+ var CANVAS_TEXT_ID = "CanvasText";
652
685
  var CanvasText = class extends pixi_js.Text {
653
- constructor() {
654
- super(...arguments);
686
+ constructor(options) {
687
+ super(options);
688
+ this.pixivnId = CANVAS_TEXT_ID;
655
689
  this._onEvents = {};
690
+ this.pixivnId = this.constructor.prototype.pixivnId;
656
691
  }
657
692
  get memory() {
658
693
  return getMemoryText(this);
@@ -693,9 +728,9 @@ var CanvasText = class extends pixi_js.Text {
693
728
  * ```
694
729
  */
695
730
  onEvent(event, eventClass) {
696
- let className = eventClass.name;
697
- let instance = getEventInstanceByClassName(className);
698
- this._onEvents[event] = className;
731
+ let id = eventClass.prototype.id;
732
+ let instance = getEventInstanceById(id);
733
+ this._onEvents[event] = id;
699
734
  if (instance) {
700
735
  super.on(event, () => {
701
736
  instance.fn(event, this);
@@ -718,7 +753,7 @@ var CanvasText = class extends pixi_js.Text {
718
753
  function getMemoryText(element) {
719
754
  let temp = getMemoryContainer(element);
720
755
  return __spreadProps(__spreadValues({}, temp), {
721
- className: "CanvasText",
756
+ pixivnId: element.pixivnId,
722
757
  anchor: { x: element.anchor.x, y: element.anchor.y },
723
758
  text: element.text,
724
759
  resolution: element.resolution,
@@ -741,8 +776,8 @@ function setMemoryText(element, memory) {
741
776
  memory.style && (element.style = memory.style);
742
777
  memory.roundPixels && (element.roundPixels = memory.roundPixels);
743
778
  for (let event in memory.onEvents) {
744
- let className = memory.onEvents[event];
745
- let instance = getEventTypeByClassName(className);
779
+ let id = memory.onEvents[event];
780
+ let instance = getEventTypeById(id);
746
781
  if (instance) {
747
782
  element.onEvent(event, instance);
748
783
  }
@@ -751,28 +786,28 @@ function setMemoryText(element, memory) {
751
786
 
752
787
  // src/decorators/CanvasElementDecorator.ts
753
788
  var registeredCanvasElement = {};
754
- function getCanvasElementInstanceByClassName(canvasName) {
789
+ function getCanvasElementInstanceById(canvasId) {
755
790
  try {
756
- let eventType = registeredCanvasElement[canvasName];
791
+ let eventType = registeredCanvasElement[canvasId];
757
792
  if (!eventType) {
758
- if (canvasName === "CanvasContainer") {
793
+ if (canvasId === CANVAS_CONTAINER_ID) {
759
794
  eventType = CanvasContainer;
760
- } else if (canvasName === "CanvasImage") {
795
+ } else if (canvasId === CANVAS_IMAGE_ID) {
761
796
  eventType = CanvasImage;
762
- } else if (canvasName === "CanvasSprite") {
797
+ } else if (canvasId === CANVAS_SPRITE_ID) {
763
798
  eventType = CanvasSprite;
764
- } else if (canvasName === "CanvasText") {
799
+ } else if (canvasId === CANVAS_TEXT_ID) {
765
800
  eventType = CanvasText;
766
801
  }
767
802
  }
768
803
  if (!eventType) {
769
- console.error(`[Pixi'VN] CanvasElement ${canvasName} not found`);
804
+ console.error(`[Pixi'VN] CanvasElement ${canvasId} not found`);
770
805
  return;
771
806
  }
772
807
  let canvasElement = new eventType();
773
808
  return canvasElement;
774
809
  } catch (e) {
775
- console.error(`[Pixi'VN] Error while getting CanvasElement ${canvasName}`, e);
810
+ console.error(`[Pixi'VN] Error while getting CanvasElement ${canvasId}`, e);
776
811
  return;
777
812
  }
778
813
  }
@@ -789,11 +824,11 @@ function exportCanvasElement(element) {
789
824
  return element.memory;
790
825
  }
791
826
  function importCanvasElement(memory) {
792
- let element = getCanvasElementInstanceByClassName(memory.className);
827
+ let element = getCanvasElementInstanceById(memory.pixivnId);
793
828
  if (element) {
794
829
  element.memory = memory;
795
830
  } else {
796
- throw new Error("[Pixi'VN] The element " + memory.className + " could not be created");
831
+ throw new Error("[Pixi'VN] The element " + memory.pixivnId + " could not be created");
797
832
  }
798
833
  return element;
799
834
  }
@@ -809,11 +844,8 @@ function asciiArtLog() {
809
844
  `);
810
845
  }
811
846
 
812
- // src/types/PauseType.ts
813
- var PauseValueType = "pause";
814
-
815
- // src/types/RepeatType.ts
816
- var Repeat = "repeat";
847
+ // src/types/ticker/TagToRemoveAfterType.ts
848
+ var tagToRemoveAfter = "tagToRemoveAfter";
817
849
 
818
850
  // src/managers/WindowManager.ts
819
851
  var _GameWindowManager = class _GameWindowManager {
@@ -997,25 +1029,25 @@ var _GameWindowManager = class _GameWindowManager {
997
1029
  /**
998
1030
  * Remove a canvas element from the canvas.
999
1031
  * And remove all tickers that are not connected to any canvas element.
1000
- * @param tag The tag of the canvas element to be removed.
1032
+ * @param tags The tag of the canvas element to be removed.
1001
1033
  * @returns
1002
1034
  * @example
1003
1035
  * ```typescript
1004
1036
  * GameWindowManager.removeCanvasElement("bunny");
1005
1037
  * ```
1006
1038
  */
1007
- static removeCanvasElement(tag) {
1008
- if (typeof tag === "string") {
1009
- tag = [tag];
1039
+ static removeCanvasElement(tags) {
1040
+ if (typeof tags === "string") {
1041
+ tags = [tags];
1010
1042
  }
1011
- tag.forEach((t) => {
1012
- if (_GameWindowManager._children[t]) {
1013
- _GameWindowManager.app.stage.removeChild(_GameWindowManager._children[t]);
1014
- delete _GameWindowManager._children[t];
1043
+ tags.forEach((tag) => {
1044
+ if (_GameWindowManager._children[tag]) {
1045
+ _GameWindowManager.app.stage.removeChild(_GameWindowManager._children[tag]);
1046
+ delete _GameWindowManager._children[tag];
1047
+ _GameWindowManager.removeTickerByCanvasElement(tag);
1015
1048
  }
1016
1049
  });
1017
- _GameWindowManager.removeTickersWithoutAssociatedCanvasElement();
1018
- _GameWindowManager.childrenTagsOrder = _GameWindowManager.childrenTagsOrder.filter((t) => !tag.includes(t));
1050
+ _GameWindowManager.childrenTagsOrder = _GameWindowManager.childrenTagsOrder.filter((t) => !tags.includes(t));
1019
1051
  }
1020
1052
  /**
1021
1053
  * Get a canvas element by the tag.
@@ -1045,18 +1077,43 @@ var _GameWindowManager = class _GameWindowManager {
1045
1077
  _GameWindowManager.app.stage.removeChildren();
1046
1078
  _GameWindowManager._children = {};
1047
1079
  _GameWindowManager.childrenTagsOrder = [];
1048
- _GameWindowManager.removeTickers();
1080
+ _GameWindowManager.removeAllTickers();
1049
1081
  }
1050
1082
  /**
1051
1083
  * Edit the tag of a canvas element.
1052
1084
  * @param oldTag The old tag of the canvas element.
1053
1085
  * @param newTag The new tag of the canvas element.
1054
1086
  */
1055
- static editTagCanvasElement(oldTag, newTag) {
1087
+ static editCanvasElementTag(oldTag, newTag) {
1056
1088
  if (_GameWindowManager._children[oldTag]) {
1057
1089
  _GameWindowManager._children[newTag] = _GameWindowManager._children[oldTag];
1058
1090
  delete _GameWindowManager._children[oldTag];
1059
1091
  }
1092
+ if (_GameWindowManager._currentTickersSteps[oldTag]) {
1093
+ _GameWindowManager._currentTickersSteps[newTag] = _GameWindowManager._currentTickersSteps[oldTag];
1094
+ delete _GameWindowManager._currentTickersSteps[oldTag];
1095
+ }
1096
+ for (let id in _GameWindowManager._currentTickers) {
1097
+ let ticker = _GameWindowManager._currentTickers[id];
1098
+ if (ticker.canvasElementTags.includes(oldTag)) {
1099
+ ticker.canvasElementTags = ticker.canvasElementTags.map((t) => t === oldTag ? newTag : t);
1100
+ if (ticker.args.hasOwnProperty(tagToRemoveAfter)) {
1101
+ let tagToRemoveAfter2 = ticker.args.tagToRemoveAfter;
1102
+ if (typeof tagToRemoveAfter2 === "string") {
1103
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
1104
+ }
1105
+ if (Array.isArray(tagToRemoveAfter2)) {
1106
+ ticker.args.tagToRemoveAfter = tagToRemoveAfter2.map((t) => t === oldTag ? newTag : t);
1107
+ }
1108
+ }
1109
+ }
1110
+ }
1111
+ for (let timeout in _GameWindowManager._currentTickersTimeouts) {
1112
+ let TickerTimeout = _GameWindowManager._currentTickersTimeouts[timeout];
1113
+ if (TickerTimeout.tags.includes(oldTag)) {
1114
+ TickerTimeout.tags = TickerTimeout.tags.map((t) => t === oldTag ? newTag : t);
1115
+ }
1116
+ }
1060
1117
  }
1061
1118
  /** Edit Tickers Methods */
1062
1119
  /**
@@ -1065,106 +1122,127 @@ var _GameWindowManager = class _GameWindowManager {
1065
1122
  static get currentTickers() {
1066
1123
  return _GameWindowManager._currentTickers;
1067
1124
  }
1125
+ static get currentTickersList() {
1126
+ return Object.values(_GameWindowManager._currentTickers);
1127
+ }
1128
+ static get currentTickersWithoutCreatedBySteps() {
1129
+ return Object.fromEntries(Object.entries(_GameWindowManager._currentTickers).filter(([_, ticker]) => !ticker.createdByTicketStepsId));
1130
+ }
1068
1131
  /**
1069
1132
  * The steps of the tickers
1070
1133
  */
1071
1134
  static get currentTickersSteps() {
1072
1135
  return _GameWindowManager._currentTickersSteps;
1073
1136
  }
1137
+ static generateTickerId(tickerData) {
1138
+ try {
1139
+ return sha1__default.default(JSON.stringify(tickerData)).toString() + "_" + Math.random().toString(36).substring(7);
1140
+ } catch (e) {
1141
+ throw new Error(`[Pixi'VN] Error to generate ticker id: ${e}`);
1142
+ }
1143
+ }
1074
1144
  /**
1075
- * Run a ticker.
1145
+ * Run a ticker. You can run multiple addTicker with the same tag and different tickerClasses.
1146
+ * If you run a ticker with the same tag and tickerClass, the old ticker will be removed.
1147
+ * If already exists a sequence of tickers with the same tag, it will be removed.
1076
1148
  * @param canvasEslementTag The tag of the canvas element that will use the ticker.
1077
1149
  * @param ticker The ticker class to be run.
1078
1150
  * @param args The arguments to be used in the ticker.
1079
- * @param duration The time to be used in the ticker. This number is in milliseconds. If it is undefined, the ticker will run forever.
1151
+ * @param duration The time to be used in the ticker. This number is in seconds. If it is undefined, the ticker will run forever.
1080
1152
  * @param priority The priority to be used in the ticker.
1081
1153
  * @returns
1082
1154
  * @example
1083
1155
  * ```typescript
1084
- * GameWindowManager.addTicker("alien", new TickerRotate({ speed: 0.2 }))
1156
+ * GameWindowManager.addTicker("alien", new RotateTicker({ speed: 0.2 }))
1085
1157
  * ```
1086
1158
  */
1087
1159
  static addTicker(canvasElementTag, ticker) {
1088
- let tickerName = ticker.constructor.name;
1160
+ let tickerId = ticker.id;
1089
1161
  if (typeof canvasElementTag === "string") {
1090
1162
  canvasElementTag = [canvasElementTag];
1091
1163
  }
1092
- let t = geTickerInstanceByClassName(tickerName, ticker.args, ticker.duration, ticker.priority);
1093
- if (!t) {
1094
- console.error(`[Pixi'VN] Ticker ${tickerName} not found`);
1164
+ if (!geTickerInstanceById(tickerId, ticker.args, ticker.duration, ticker.priority)) {
1165
+ console.error(`[Pixi'VN] Ticker ${tickerId} not found`);
1095
1166
  return;
1096
1167
  }
1097
- _GameWindowManager.removeAssociationBetweenTickerCanvasElement(canvasElementTag, ticker);
1098
1168
  let tickerHistory = {
1099
1169
  fn: () => {
1100
1170
  },
1101
- className: tickerName,
1102
- args: ticker.args,
1171
+ id: tickerId,
1172
+ args: createExportableElement(ticker.args),
1103
1173
  canvasElementTags: canvasElementTag,
1104
1174
  priority: ticker.priority,
1105
1175
  duration: ticker.duration
1106
1176
  };
1107
- _GameWindowManager.pushTicker(tickerHistory, t);
1108
- _GameWindowManager.removeTickersWithoutAssociatedCanvasElement();
1177
+ let id = _GameWindowManager.generateTickerId(tickerHistory);
1178
+ _GameWindowManager.pushTicker(id, tickerHistory, ticker);
1109
1179
  if (ticker.duration) {
1110
1180
  let timeout = setTimeout(() => {
1111
1181
  _GameWindowManager.removeTickerTimeoutInfo(timeout);
1112
- _GameWindowManager.nextTickerStep(canvasElementTag);
1113
- }, ticker.duration);
1114
- _GameWindowManager.addTickerTimeoutInfo(canvasElementTag, tickerName, timeout.toString());
1182
+ let tickerTimeoutInfo = _GameWindowManager._currentTickersTimeouts[timeout.toString()];
1183
+ if (tickerTimeoutInfo) {
1184
+ _GameWindowManager.removeTicker(id);
1185
+ }
1186
+ }, ticker.duration * 1e3);
1187
+ _GameWindowManager.addTickerTimeoutInfo(canvasElementTag, tickerId, timeout.toString(), true);
1115
1188
  }
1116
1189
  }
1117
- static pushTicker(tickerData, ticker) {
1118
- _GameWindowManager.removeAssociationBetweenTickerCanvasElement(tickerData.canvasElementTags, tickerData);
1119
- _GameWindowManager._currentTickers.push(tickerData);
1190
+ static pushTicker(id, tickerData, ticker) {
1191
+ _GameWindowManager.removeAssociationBetweenTickerCanvasElement(tickerData.canvasElementTags, ticker);
1192
+ _GameWindowManager._currentTickers[id] = tickerData;
1120
1193
  tickerData.fn = (t) => {
1121
- ticker == null ? void 0 : ticker.fn(t, tickerData.args, tickerData.canvasElementTags);
1194
+ let data = _GameWindowManager._currentTickers[id];
1195
+ if (data) {
1196
+ ticker == null ? void 0 : ticker.fn(t, data.args, data.canvasElementTags, id);
1197
+ }
1122
1198
  };
1123
1199
  _GameWindowManager.app.ticker.add(tickerData.fn, void 0, tickerData.priority);
1124
1200
  }
1125
1201
  /**
1126
- * Run a sequence of tickers.
1202
+ * Run a sequence of tickers. If exists a ticker steps with the same tag, it will be removed.
1127
1203
  * @param tag The tag of canvas element that will use the tickers.
1128
1204
  * @param steps The steps of the tickers.
1205
+ * @param currentStepNumber The current step number. It is used to continue the sequence of tickers.
1129
1206
  * @returns
1130
1207
  * @example
1131
1208
  * ```typescript
1132
1209
  * GameWindowManager.addTickersSteps("alien", [
1133
- * new TickerRotate({ speed: 0.1, clockwise: true }, 2000),
1134
- * Pause(500),
1135
- * new TickerRotate({ speed: 0.2, clockwise: false }, 2000),
1210
+ * new RotateTicker({ speed: 0.1, clockwise: true }, 2), // 2 seconds
1211
+ * Pause(1), // 1 second
1212
+ * new RotateTicker({ speed: 0.2, clockwise: false }, 2),
1136
1213
  * Repeat,
1137
1214
  * ])
1138
1215
  * ```
1139
1216
  */
1140
- static addTickersSteps(tag, steps) {
1217
+ static addTickersSteps(tag, steps, currentStepNumber = 0) {
1141
1218
  if (steps.length == 0) {
1142
1219
  console.warn("[Pixi'VN] The steps of the tickers is empty");
1143
1220
  return;
1144
1221
  }
1145
- let alredyExists = _GameWindowManager._currentTickersSteps[tag] !== void 0;
1222
+ _GameWindowManager.removeTickerStepByCanvasElement(tag);
1146
1223
  _GameWindowManager._currentTickersSteps[tag] = {
1147
- currentStepNumber: 0,
1148
- steps: steps.map((s) => {
1149
- if (s === Repeat) {
1150
- return s;
1151
- }
1152
- if (!s.duration) {
1153
- console.warn("[Pixi'VN] Duration is not defined, so it will be set to 1000");
1154
- s.duration = 1e3;
1224
+ currentStepNumber,
1225
+ steps: steps.map((step) => {
1226
+ if (step === Repeat) {
1227
+ return step;
1155
1228
  }
1156
- if (s.hasOwnProperty("type") && s.type === PauseValueType) {
1157
- return s;
1229
+ if (step.hasOwnProperty("type") && step.type === "pause") {
1230
+ return step;
1158
1231
  }
1159
- let tickerName = s.constructor.name;
1232
+ let tickerId = step.id;
1160
1233
  return {
1161
- ticker: tickerName,
1162
- args: s.args,
1163
- duration: s.duration
1234
+ ticker: tickerId,
1235
+ args: createExportableElement(step.args),
1236
+ duration: step.duration
1164
1237
  };
1165
1238
  })
1166
1239
  };
1167
- if (!alredyExists) {
1240
+ _GameWindowManager.runTickersSteps(tag);
1241
+ }
1242
+ static restoneTickersSteps(data) {
1243
+ for (let tag in data) {
1244
+ let steps = data[tag];
1245
+ _GameWindowManager._currentTickersSteps[tag] = steps;
1168
1246
  _GameWindowManager.runTickersSteps(tag);
1169
1247
  }
1170
1248
  }
@@ -1178,70 +1256,106 @@ var _GameWindowManager = class _GameWindowManager {
1178
1256
  return;
1179
1257
  }
1180
1258
  }
1181
- if (step.hasOwnProperty("type") && step.type === PauseValueType) {
1259
+ if (step.hasOwnProperty("type") && step.type === "pause") {
1182
1260
  let timeout = setTimeout(() => {
1261
+ let tickerTimeoutInfo = _GameWindowManager._currentTickersTimeouts[timeout.toString()];
1262
+ if (tickerTimeoutInfo) {
1263
+ tickerTimeoutInfo.tags.forEach((tag2) => {
1264
+ _GameWindowManager.nextTickerStep(tag2);
1265
+ });
1266
+ }
1183
1267
  _GameWindowManager.removeTickerTimeoutInfo(timeout);
1184
- _GameWindowManager.nextTickerStep(tag);
1185
- }, step.duration);
1186
- _GameWindowManager.addTickerTimeoutInfo(tag, "steps", timeout.toString());
1268
+ }, step.duration * 1e3);
1269
+ _GameWindowManager.addTickerTimeoutInfo(tag, "steps", timeout.toString(), false);
1187
1270
  return;
1188
1271
  }
1189
- let ticker = geTickerInstanceByClassName(step.ticker, step.args, step.duration, step.priority);
1272
+ let ticker = geTickerInstanceById(step.ticker, step.args, step.duration, step.priority);
1190
1273
  if (!ticker) {
1191
1274
  console.error(`[Pixi'VN] Ticker ${step.ticker} not found`);
1192
1275
  return;
1193
1276
  }
1194
- _GameWindowManager.addTicker(tag, ticker);
1277
+ let tickerName = ticker.id;
1278
+ let tickerHistory = {
1279
+ fn: () => {
1280
+ },
1281
+ id: tickerName,
1282
+ args: createExportableElement(ticker.args),
1283
+ canvasElementTags: [tag],
1284
+ priority: ticker.priority,
1285
+ duration: ticker.duration,
1286
+ createdByTicketStepsId: tag
1287
+ };
1288
+ let id = _GameWindowManager.generateTickerId(tickerHistory);
1289
+ _GameWindowManager.pushTicker(id, tickerHistory, ticker);
1290
+ if (ticker.duration) {
1291
+ let timeout = setTimeout(() => {
1292
+ let tickerTimeoutInfo = _GameWindowManager._currentTickersTimeouts[timeout.toString()];
1293
+ if (tickerTimeoutInfo) {
1294
+ _GameWindowManager.removeTicker(id);
1295
+ tickerTimeoutInfo.tags.forEach((tag2) => {
1296
+ _GameWindowManager.nextTickerStep(tag2);
1297
+ });
1298
+ }
1299
+ _GameWindowManager.removeTickerTimeoutInfo(timeout);
1300
+ }, ticker.duration * 1e3);
1301
+ _GameWindowManager.addTickerTimeoutInfo(tag, tickerName, timeout.toString(), false);
1302
+ }
1195
1303
  }
1196
1304
  static nextTickerStep(tag) {
1197
- if (typeof tag === "string") {
1198
- tag = [tag];
1305
+ if (_GameWindowManager._currentTickersSteps[tag]) {
1306
+ let steps = _GameWindowManager._currentTickersSteps[tag];
1307
+ if (steps.currentStepNumber + 1 < steps.steps.length) {
1308
+ steps.currentStepNumber++;
1309
+ _GameWindowManager._currentTickersSteps[tag] = steps;
1310
+ _GameWindowManager.runTickersSteps(tag);
1311
+ } else {
1312
+ _GameWindowManager.removeTickerStepByCanvasElement(tag);
1313
+ }
1199
1314
  }
1200
- tag.forEach((tag2) => {
1201
- if (_GameWindowManager._currentTickersSteps[tag2]) {
1202
- let steps = _GameWindowManager._currentTickersSteps[tag2];
1203
- if (steps.currentStepNumber + 1 < steps.steps.length) {
1204
- steps.currentStepNumber++;
1205
- _GameWindowManager._currentTickersSteps[tag2] = steps;
1206
- _GameWindowManager.runTickersSteps(tag2);
1207
- } else {
1208
- delete _GameWindowManager._currentTickersSteps[tag2];
1209
- }
1315
+ }
1316
+ static onEndOfTicker(canvasElementTags, ticker, canvasElementTagsToDelete, tickerId) {
1317
+ let tickerData = _GameWindowManager._currentTickers[tickerId];
1318
+ _GameWindowManager.removeAssociationBetweenTickerCanvasElement(canvasElementTags, ticker);
1319
+ _GameWindowManager.removeCanvasElement(canvasElementTagsToDelete);
1320
+ if (tickerData) {
1321
+ _GameWindowManager.removeTicker(tickerId);
1322
+ if (tickerData.duration == void 0 && tickerData.createdByTicketStepsId) {
1323
+ _GameWindowManager.nextTickerStep(tickerData.createdByTicketStepsId);
1210
1324
  }
1211
- });
1325
+ }
1212
1326
  }
1213
1327
  /**
1214
1328
  * Remove a connection between a canvas element and a ticker.
1215
1329
  * And remove the ticker if there is no canvas element connected to it.
1216
- * @param tag The tag of the canvas element that will use the ticker.
1330
+ * @param tags The tag of the canvas element that will use the ticker.
1217
1331
  * @param ticker The ticker class to be removed.
1218
1332
  * @example
1219
1333
  * ```typescript
1220
- * GameWindowManager.removeAssociationBetweenTickerCanvasElement("alien", TickerRotate)
1334
+ * GameWindowManager.removeAssociationBetweenTickerCanvasElement("alien", RotateTicker)
1221
1335
  * ```
1222
1336
  */
1223
- static removeAssociationBetweenTickerCanvasElement(tag, ticker) {
1224
- let tickerName;
1225
- if (ticker instanceof TickerBase) {
1226
- tickerName = ticker.constructor.name;
1337
+ static removeAssociationBetweenTickerCanvasElement(tags, ticker) {
1338
+ let tickerId;
1339
+ if (typeof ticker === "string") {
1340
+ tickerId = ticker;
1341
+ } else if (ticker instanceof TickerBase) {
1342
+ tickerId = ticker.id;
1227
1343
  } else {
1228
- tickerName = ticker.name;
1344
+ tickerId = ticker.prototype.id;
1229
1345
  }
1230
- if (typeof tag === "string") {
1231
- tag = [tag];
1346
+ if (typeof tags === "string") {
1347
+ tags = [tags];
1232
1348
  }
1233
- _GameWindowManager._currentTickers = _GameWindowManager._currentTickers.map((t) => {
1234
- if (t.className === tickerName) {
1235
- t.canvasElementTags = t.canvasElementTags.filter((e) => !tag.includes(e));
1349
+ for (let id in _GameWindowManager._currentTickers) {
1350
+ let ticker2 = _GameWindowManager._currentTickers[id];
1351
+ if (ticker2.id === tickerId) {
1352
+ _GameWindowManager._currentTickers[id].canvasElementTags = ticker2.canvasElementTags.filter((e) => !tags.includes(e));
1236
1353
  }
1237
- return t;
1238
- });
1239
- for (let timeout in _GameWindowManager.currentTickersTimeouts) {
1240
- let t = _GameWindowManager.currentTickersTimeouts[timeout].tags.filter((e) => !tag.includes(e));
1241
- if (t.length == 0) {
1242
- _GameWindowManager.removeTickerTimeoutInfo(timeout);
1243
- } else {
1244
- _GameWindowManager.currentTickersTimeouts[timeout].tags = t;
1354
+ }
1355
+ for (let timeout in _GameWindowManager._currentTickersTimeouts) {
1356
+ let TickerTimeout = _GameWindowManager._currentTickersTimeouts[timeout];
1357
+ if (TickerTimeout.ticker === tickerId && TickerTimeout.canBeDeletedBeforeEnd) {
1358
+ _GameWindowManager._currentTickersTimeouts[timeout].tags = TickerTimeout.tags.filter((t) => !tags.includes(t));
1245
1359
  }
1246
1360
  }
1247
1361
  _GameWindowManager.removeTickersWithoutAssociatedCanvasElement();
@@ -1250,49 +1364,117 @@ var _GameWindowManager = class _GameWindowManager {
1250
1364
  * Remove all tickers that are not connected to any existing canvas element.
1251
1365
  */
1252
1366
  static removeTickersWithoutAssociatedCanvasElement() {
1253
- let currentTickers = _GameWindowManager._currentTickers.map((t) => {
1254
- t.canvasElementTags = t.canvasElementTags.filter((e) => _GameWindowManager._children[e]);
1255
- return t;
1256
- });
1257
- currentTickers.filter((t) => t.canvasElementTags.length === 0).forEach((t) => {
1258
- _GameWindowManager.app.ticker.remove(t.fn);
1259
- });
1260
- currentTickers = currentTickers.filter((t) => t.canvasElementTags.length > 0);
1261
- _GameWindowManager._currentTickers = currentTickers;
1367
+ for (let id in _GameWindowManager._currentTickers) {
1368
+ let ticker = _GameWindowManager._currentTickers[id];
1369
+ ticker.canvasElementTags = ticker.canvasElementTags.filter((e) => _GameWindowManager._children[e]);
1370
+ if (ticker.canvasElementTags.length === 0) {
1371
+ _GameWindowManager.removeTicker(id);
1372
+ }
1373
+ }
1262
1374
  for (let tag in _GameWindowManager._currentTickersSteps) {
1263
1375
  if (_GameWindowManager._children[tag] === void 0) {
1264
1376
  delete _GameWindowManager._currentTickersSteps[tag];
1265
1377
  }
1266
1378
  }
1379
+ Object.entries(_GameWindowManager._currentTickersTimeouts).forEach(([timeout, { tags }]) => {
1380
+ if (tags.length === 0) {
1381
+ _GameWindowManager.removeTickerTimeout(timeout);
1382
+ }
1383
+ });
1267
1384
  }
1268
- static addTickerTimeoutInfo(tags, ticker, timeout) {
1385
+ static addTickerTimeoutInfo(tags, ticker, timeout, canBeDeletedBeforeEnd) {
1269
1386
  if (typeof tags === "string") {
1270
1387
  tags = [tags];
1271
1388
  }
1272
- _GameWindowManager.currentTickersTimeouts[timeout] = {
1389
+ _GameWindowManager._currentTickersTimeouts[timeout] = {
1273
1390
  tags,
1274
- ticker
1391
+ ticker,
1392
+ canBeDeletedBeforeEnd
1275
1393
  };
1276
1394
  }
1277
1395
  static removeTickerTimeoutInfo(timeout) {
1278
1396
  if (typeof timeout !== "string") {
1279
1397
  timeout = timeout.toString();
1280
1398
  }
1281
- if (_GameWindowManager.currentTickersTimeouts[timeout]) {
1282
- delete _GameWindowManager.currentTickersTimeouts[timeout];
1399
+ if (_GameWindowManager._currentTickersTimeouts[timeout]) {
1400
+ delete _GameWindowManager._currentTickersTimeouts[timeout];
1401
+ }
1402
+ }
1403
+ static removeTickerTimeout(timeout) {
1404
+ if (typeof timeout !== "string") {
1405
+ timeout = timeout.toString();
1406
+ }
1407
+ clearTimeout(Number(timeout));
1408
+ _GameWindowManager.removeTickerTimeoutInfo(timeout);
1409
+ }
1410
+ static removeTickerTimeoutsByTag(tag, checkCanBeDeletedBeforeEnd) {
1411
+ for (let timeout in _GameWindowManager._currentTickersTimeouts) {
1412
+ let tagsWithoutTagToRemove = _GameWindowManager._currentTickersTimeouts[timeout].tags.filter((t) => t !== tag);
1413
+ if (tagsWithoutTagToRemove.length === 0) {
1414
+ let canBeDeletedBeforeEnd = _GameWindowManager._currentTickersTimeouts[timeout].canBeDeletedBeforeEnd;
1415
+ if (!checkCanBeDeletedBeforeEnd || canBeDeletedBeforeEnd) {
1416
+ _GameWindowManager.removeTickerTimeout(timeout);
1417
+ }
1418
+ } else {
1419
+ _GameWindowManager._currentTickersTimeouts[timeout].tags = tagsWithoutTagToRemove;
1420
+ }
1283
1421
  }
1284
1422
  }
1285
1423
  /**
1286
1424
  * Remove all tickers from the canvas.
1287
1425
  */
1288
- static removeTickers() {
1426
+ static removeAllTickers() {
1289
1427
  _GameWindowManager._currentTickersSteps = {};
1290
- _GameWindowManager._currentTickers.forEach((t) => {
1291
- _GameWindowManager.app.ticker.remove(t.fn);
1428
+ Object.keys(_GameWindowManager._currentTickers).forEach((id) => {
1429
+ _GameWindowManager.removeTicker(id);
1430
+ });
1431
+ _GameWindowManager._currentTickers = {};
1432
+ for (let timeout in _GameWindowManager._currentTickersTimeouts) {
1433
+ _GameWindowManager.removeTickerTimeout(timeout);
1434
+ }
1435
+ }
1436
+ /**
1437
+ * Remove all tickers from a canvas element.
1438
+ * @param tag The tag of the canvas element that will use the ticker.
1439
+ */
1440
+ static removeTickerByCanvasElement(tag) {
1441
+ if (typeof tag === "string") {
1442
+ tag = [tag];
1443
+ }
1444
+ tag.forEach((tag2) => {
1445
+ for (let id in _GameWindowManager._currentTickers) {
1446
+ let ticker = _GameWindowManager._currentTickers[id];
1447
+ if (ticker.canvasElementTags.includes(tag2)) {
1448
+ _GameWindowManager.removeTicker(id);
1449
+ }
1450
+ }
1451
+ if (_GameWindowManager._currentTickersSteps[tag2]) {
1452
+ delete _GameWindowManager._currentTickersSteps[tag2];
1453
+ }
1454
+ _GameWindowManager.removeTickerTimeoutsByTag(tag2, false);
1455
+ delete _GameWindowManager._currentTickersSteps[tag2];
1292
1456
  });
1293
- _GameWindowManager._currentTickers = [];
1294
- for (let timeout in _GameWindowManager.currentTickersTimeouts) {
1295
- _GameWindowManager.removeTickerTimeoutInfo(timeout);
1457
+ }
1458
+ static removeTickerStepByCanvasElement(tag) {
1459
+ if (_GameWindowManager._currentTickersSteps[tag]) {
1460
+ delete _GameWindowManager._currentTickersSteps[tag];
1461
+ }
1462
+ for (let id in _GameWindowManager._currentTickers) {
1463
+ let ticker = _GameWindowManager._currentTickers[id];
1464
+ if (ticker.createdByTicketStepsId === tag) {
1465
+ _GameWindowManager.removeTicker(id);
1466
+ }
1467
+ }
1468
+ }
1469
+ static removeTicker(tickerId) {
1470
+ let ticker = _GameWindowManager._currentTickers[tickerId];
1471
+ if (ticker) {
1472
+ if (ticker.args.hasOwnProperty(tagToRemoveAfter)) {
1473
+ let tagToRemoveAfter2 = ticker.args.tagToRemoveAfter;
1474
+ _GameWindowManager.removeCanvasElement(tagToRemoveAfter2);
1475
+ }
1476
+ _GameWindowManager.app.ticker.remove(ticker.fn);
1477
+ delete _GameWindowManager._currentTickers[tickerId];
1296
1478
  }
1297
1479
  }
1298
1480
  /**
@@ -1319,7 +1501,8 @@ var _GameWindowManager = class _GameWindowManager {
1319
1501
  currentElements[tag] = exportCanvasElement(_GameWindowManager._children[tag]);
1320
1502
  }
1321
1503
  return {
1322
- currentTickers: createExportableElement(_GameWindowManager._currentTickers),
1504
+ currentTickers: createExportableElement(_GameWindowManager.currentTickersWithoutCreatedBySteps),
1505
+ currentTickersSteps: createExportableElement(_GameWindowManager._currentTickersSteps),
1323
1506
  currentElements: createExportableElement(currentElements),
1324
1507
  childrenTagsOrder: createExportableElement(_GameWindowManager.childrenTagsOrder)
1325
1508
  };
@@ -1354,15 +1537,20 @@ var _GameWindowManager = class _GameWindowManager {
1354
1537
  }
1355
1538
  if (data.hasOwnProperty("currentTickers")) {
1356
1539
  let currentTickers = data["currentTickers"];
1357
- currentTickers.forEach((t) => {
1540
+ for (let id in currentTickers) {
1541
+ let t = currentTickers[id];
1358
1542
  let tags = t.canvasElementTags;
1359
- let ticker = geTickerInstanceByClassName(t.className, t.args, t.duration, t.priority);
1543
+ let ticker = geTickerInstanceById(t.id, t.args, t.duration, t.priority);
1360
1544
  if (ticker) {
1361
1545
  _GameWindowManager.addTicker(tags, ticker);
1362
1546
  } else {
1363
- console.error(`[Pixi'VN] Ticker ${t.className} not found`);
1547
+ console.error(`[Pixi'VN] Ticker ${t.id} not found`);
1364
1548
  }
1365
- });
1549
+ }
1550
+ }
1551
+ if (data.hasOwnProperty("currentTickersSteps")) {
1552
+ let currentTickersSteps = data["currentTickersSteps"];
1553
+ _GameWindowManager.restoneTickersSteps(currentTickersSteps);
1366
1554
  }
1367
1555
  } catch (e) {
1368
1556
  console.error("[Pixi'VN] Error importing data", e);
@@ -1376,9 +1564,9 @@ _GameWindowManager._children = {};
1376
1564
  * The order of the children tags.
1377
1565
  */
1378
1566
  _GameWindowManager.childrenTagsOrder = [];
1379
- _GameWindowManager._currentTickers = [];
1567
+ _GameWindowManager._currentTickers = {};
1380
1568
  _GameWindowManager._currentTickersSteps = {};
1381
- _GameWindowManager.currentTickersTimeouts = {};
1569
+ _GameWindowManager._currentTickersTimeouts = {};
1382
1570
  var GameWindowManager = _GameWindowManager;
1383
1571
 
1384
1572
  // src/managers/StepManager.ts
@@ -1445,7 +1633,8 @@ var _GameStepManager = class _GameStepManager {
1445
1633
  canvas: {
1446
1634
  childrenTagsOrder: [],
1447
1635
  currentElements: {},
1448
- currentTickers: []
1636
+ currentTickers: {},
1637
+ currentTickersSteps: {}
1449
1638
  },
1450
1639
  labelIndex: -1,
1451
1640
  openedLabels: []
@@ -1556,6 +1745,13 @@ var _GameStepManager = class _GameStepManager {
1556
1745
  _GameStepManager._openedLabels = _GameStepManager.originalStepData.openedLabels;
1557
1746
  }
1558
1747
  /* Run Methods */
1748
+ static get canGoNext() {
1749
+ let options = getChoiceMenuOptions();
1750
+ if (options && options.length > 0) {
1751
+ return false;
1752
+ }
1753
+ return true;
1754
+ }
1559
1755
  /**
1560
1756
  * Execute the next step and add it to the history.
1561
1757
  * @param props The props to pass to the step.
@@ -1565,7 +1761,7 @@ var _GameStepManager = class _GameStepManager {
1565
1761
  * ```typescript
1566
1762
  * function nextOnClick() {
1567
1763
  * setLoading(true)
1568
- * GameStepManager.runNextStep(yourParams)
1764
+ * GameStepManager.goNext(yourParams)
1569
1765
  * .then((result) => {
1570
1766
  * setUpdate((p) => p + 1)
1571
1767
  * setLoading(false)
@@ -1580,8 +1776,12 @@ var _GameStepManager = class _GameStepManager {
1580
1776
  * }
1581
1777
  * ```
1582
1778
  */
1583
- static runNextStep(props, choiseMade) {
1779
+ static goNext(props, choiseMade) {
1584
1780
  return __async(this, null, function* () {
1781
+ if (!_GameStepManager.canGoNext) {
1782
+ console.warn("[Pixi'VN] The player must make a choice");
1783
+ return;
1784
+ }
1585
1785
  _GameStepManager.increaseCurrentStepIndex();
1586
1786
  return yield _GameStepManager.runCurrentStep(props, choiseMade);
1587
1787
  });
@@ -1612,7 +1812,7 @@ var _GameStepManager = class _GameStepManager {
1612
1812
  return result;
1613
1813
  } else if (_GameStepManager.openedLabels.length > 1) {
1614
1814
  _GameStepManager.closeCurrentLabel();
1615
- return yield _GameStepManager.runNextStep(props, choiseMade);
1815
+ return yield _GameStepManager.goNext(props, choiseMade);
1616
1816
  } else {
1617
1817
  _GameStepManager.restorLastLabelList();
1618
1818
  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");
@@ -1656,8 +1856,15 @@ var _GameStepManager = class _GameStepManager {
1656
1856
  }
1657
1857
  try {
1658
1858
  if (labelId === CLOSE_LABEL_ID) {
1659
- let closeLabel = newCloseLabel(choiseMade);
1660
- return _GameStepManager.closeChoiceMenu(closeLabel, props);
1859
+ let closeCurrentLabel = newCloseLabel(choiseMade);
1860
+ let choice = {
1861
+ label: closeCurrentLabel,
1862
+ text: "",
1863
+ closeCurrentLabel: false,
1864
+ type: "close",
1865
+ props: {}
1866
+ };
1867
+ return _GameStepManager.closeChoiceMenu(choice, props);
1661
1868
  }
1662
1869
  let tempLabel = getLabelById(labelId);
1663
1870
  if (!tempLabel) {
@@ -1707,8 +1914,15 @@ var _GameStepManager = class _GameStepManager {
1707
1914
  }
1708
1915
  try {
1709
1916
  if (labelId === CLOSE_LABEL_ID) {
1710
- let closeLabel = newCloseLabel(choiseMade);
1711
- return _GameStepManager.closeChoiceMenu(closeLabel, props);
1917
+ let closeCurrentLabel = newCloseLabel(choiseMade);
1918
+ let choice = {
1919
+ label: closeCurrentLabel,
1920
+ text: "",
1921
+ closeCurrentLabel: false,
1922
+ type: "close",
1923
+ props: {}
1924
+ };
1925
+ return _GameStepManager.closeChoiceMenu(choice, props);
1712
1926
  }
1713
1927
  let tempLabel = getLabelById(labelId);
1714
1928
  if (!tempLabel) {
@@ -1724,7 +1938,8 @@ var _GameStepManager = class _GameStepManager {
1724
1938
  }
1725
1939
  /**
1726
1940
  * When the player is in a choice menu, can use this function to exit to the choice menu.
1727
- * @param props The props to pass to the step.
1941
+ * @param choice
1942
+ * @param props
1728
1943
  * @returns StepLabelResultType or undefined.
1729
1944
  * @example
1730
1945
  * ```typescript
@@ -1735,13 +1950,17 @@ var _GameStepManager = class _GameStepManager {
1735
1950
  * })
1736
1951
  * ```
1737
1952
  */
1738
- static closeChoiceMenu(label, props) {
1953
+ static closeChoiceMenu(choice, props) {
1739
1954
  return __async(this, null, function* () {
1955
+ let label = choice.label;
1740
1956
  let choiseMade = void 0;
1741
1957
  if (typeof label.choiseIndex === "number") {
1742
1958
  choiseMade = label.choiseIndex;
1743
1959
  }
1744
- return _GameStepManager.runNextStep(props, choiseMade);
1960
+ if (choice.closeCurrentLabel) {
1961
+ _GameStepManager.closeCurrentLabel();
1962
+ }
1963
+ return _GameStepManager.goNext(props, choiseMade);
1745
1964
  });
1746
1965
  }
1747
1966
  /* After Update Methods */
@@ -1943,8 +2162,9 @@ var Close = "close";
1943
2162
  var ChoiceMenuOptionClose = class {
1944
2163
  /**
1945
2164
  * @param text Text to be displayed in the menu
2165
+ * @param closeCurrentLabel If true, the current label will be closed. @default false
1946
2166
  */
1947
- constructor(text) {
2167
+ constructor(text, closeCurrentLabel = false) {
1948
2168
  /**
1949
2169
  * Label to be opened when the option is selected
1950
2170
  */
@@ -1958,6 +2178,7 @@ var ChoiceMenuOptionClose = class {
1958
2178
  */
1959
2179
  this.props = {};
1960
2180
  this.text = text;
2181
+ this.closeCurrentLabel = closeCurrentLabel;
1961
2182
  }
1962
2183
  };
1963
2184
 
@@ -1980,15 +2201,15 @@ var DialogueBaseModel = class {
1980
2201
  if (typeof text === "string") {
1981
2202
  this.text = text;
1982
2203
  if (typeof character === "string") {
1983
- this.characterId = character;
2204
+ this.character = character;
1984
2205
  } else {
1985
- this.characterId = character == null ? void 0 : character.id;
2206
+ this.character = character == null ? void 0 : character.id;
1986
2207
  }
1987
2208
  this.oltherParams = oltherParams;
1988
2209
  } else {
1989
2210
  this.text = text.text;
1990
- if (text.characterId) {
1991
- this.characterId = text.characterId;
2211
+ if (text.character) {
2212
+ this.character = text.character;
1992
2213
  }
1993
2214
  this.oltherParams = text.oltherParams || {};
1994
2215
  }
@@ -2001,7 +2222,7 @@ var DialogueBaseModel = class {
2001
2222
  export() {
2002
2223
  return {
2003
2224
  text: this.text,
2004
- characterId: this.characterId,
2225
+ character: this.character,
2005
2226
  oltherParams: this.oltherParams
2006
2227
  };
2007
2228
  }
@@ -2010,21 +2231,21 @@ var DialogueBaseModel = class {
2010
2231
  // src/functions/DialogueUtility.ts
2011
2232
  function setDialogue(props) {
2012
2233
  let text = "";
2013
- let characterId = void 0;
2234
+ let character = void 0;
2014
2235
  let dialogue;
2015
2236
  if (typeof props === "string") {
2016
2237
  text = props;
2017
- dialogue = new DialogueBaseModel(text, characterId);
2238
+ dialogue = new DialogueBaseModel(text, character);
2018
2239
  } else if (!(props instanceof DialogueBaseModel)) {
2019
2240
  text = props.text;
2020
2241
  if (props.character) {
2021
2242
  if (typeof props.character === "string") {
2022
- characterId = props.character;
2243
+ character = props.character;
2023
2244
  } else {
2024
- characterId = props.character.id;
2245
+ character = props.character.id;
2025
2246
  }
2026
2247
  }
2027
- dialogue = new DialogueBaseModel(text, characterId);
2248
+ dialogue = new DialogueBaseModel(text, character);
2028
2249
  } else {
2029
2250
  dialogue = props;
2030
2251
  }
@@ -2042,7 +2263,8 @@ function setChoiceMenuOptions(options) {
2042
2263
  if (option instanceof ChoiceMenuOptionClose) {
2043
2264
  return {
2044
2265
  text: option.text,
2045
- type: Close
2266
+ type: Close,
2267
+ closeCurrentLabel: option.closeCurrentLabel
2046
2268
  };
2047
2269
  }
2048
2270
  return __spreadProps(__spreadValues({}, option), {
@@ -2063,6 +2285,7 @@ function getChoiceMenuOptions() {
2063
2285
  text: option.text,
2064
2286
  label: itemLabel,
2065
2287
  type: Close,
2288
+ closeCurrentLabel: option.closeCurrentLabel,
2066
2289
  props: {}
2067
2290
  });
2068
2291
  return;
@@ -2144,20 +2367,15 @@ function clearAllGameDatas() {
2144
2367
  GameWindowManager.clear();
2145
2368
  GameStepManager.clear();
2146
2369
  }
2147
- var TickerFadeAlpha = class extends TickerBase {
2148
- /**
2149
- * The method that will be called every frame to fade the alpha of the canvas element of the canvas.
2150
- * @param delta The delta time
2151
- * @param args The arguments that are passed to the ticker
2152
- * @param tags The tags of the canvas element that are connected to this ticker
2153
- */
2154
- fn(t, args, tags) {
2370
+ var FadeAlphaTicker = class extends TickerBase {
2371
+ fn(ticker, args, tags, tickerId) {
2155
2372
  let type = args.type === void 0 ? "hide" : args.type;
2156
- let speed = args.speed === void 0 ? 0.1 : args.speed;
2373
+ let duration = args.duration === void 0 ? 1 : args.duration;
2374
+ let speed = 1 / (duration * 60);
2157
2375
  let limit = args.limit === void 0 ? type === "hide" ? 0 : 1 : args.limit;
2158
- let removeElementAfter = args.tagToRemoveAfter || [];
2159
- if (typeof removeElementAfter === "string") {
2160
- removeElementAfter = [removeElementAfter];
2376
+ let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
2377
+ if (typeof tagToRemoveAfter2 === "string") {
2378
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
2161
2379
  }
2162
2380
  if (type === "hide" && limit < 0) {
2163
2381
  limit = 0;
@@ -2178,61 +2396,88 @@ var TickerFadeAlpha = class extends TickerBase {
2178
2396
  let element = GameWindowManager.getCanvasElement(tag);
2179
2397
  if (element && element instanceof pixi_js.Container) {
2180
2398
  if (type === "show" && element.alpha < limit) {
2181
- element.alpha += speed * t.deltaTime;
2399
+ element.alpha += speed * ticker.deltaTime;
2182
2400
  } else if (type === "hide" && element.alpha > limit) {
2183
- element.alpha -= speed * t.deltaTime;
2184
- } else {
2401
+ element.alpha -= speed * ticker.deltaTime;
2402
+ }
2403
+ if (type === "show" && element.alpha >= limit) {
2185
2404
  element.alpha = limit;
2186
- GameWindowManager.removeAssociationBetweenTickerCanvasElement(tag, this);
2187
- GameWindowManager.removeCanvasElement(removeElementAfter);
2405
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
2406
+ } else if (type === "hide" && element.alpha <= limit) {
2407
+ element.alpha = limit;
2408
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
2188
2409
  }
2189
2410
  }
2190
2411
  });
2191
2412
  }
2192
2413
  };
2193
- TickerFadeAlpha = __decorateClass([
2414
+ FadeAlphaTicker = __decorateClass([
2194
2415
  tickerDecorator()
2195
- ], TickerFadeAlpha);
2416
+ ], FadeAlphaTicker);
2196
2417
 
2197
2418
  // src/functions/TickerUtility.ts
2198
2419
  function updateTickerProgression(args, propertyName, progression) {
2199
- if (args.hasOwnProperty(propertyName) && typeof args[propertyName] !== "number") {
2420
+ if (args[propertyName] === void 0 || !progression || args[propertyName] === progression.limit) {
2200
2421
  return;
2201
2422
  }
2202
- if (args[propertyName] !== void 0 && progression && args[propertyName] !== progression.limit) {
2423
+ if (typeof args[propertyName] === "number") {
2203
2424
  if (progression.type === "linear") {
2204
- args[propertyName] += progression.amt;
2205
- if (progression.limit !== void 0) {
2206
- if (args[propertyName] > progression.limit && progression.amt > 0) {
2207
- args[propertyName] = progression.limit;
2208
- } else if (args[propertyName] < progression.limit && progression.amt < 0) {
2209
- args[propertyName] = progression.limit;
2210
- }
2211
- }
2425
+ args[propertyName] = getLinearProgression(args[propertyName], progression);
2212
2426
  } else if (progression.type === "exponential") {
2213
- args[propertyName] += args[propertyName] * progression.percentage;
2214
- if (progression.limit !== void 0) {
2215
- if (args[propertyName] > progression.limit && progression.percentage > 0) {
2216
- args[propertyName] = progression.limit;
2217
- } else if (args[propertyName] < progression.limit && progression.percentage < 0) {
2218
- args[propertyName] = progression.limit;
2219
- }
2220
- }
2427
+ args[propertyName] = getExponentialProgression(args[propertyName], progression);
2428
+ }
2429
+ } 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") {
2430
+ if (progression.type === "linear") {
2431
+ args[propertyName].x = getLinearProgression(args[propertyName].x, progression);
2432
+ args[propertyName].y = getLinearProgression(args[propertyName].y, progression);
2433
+ } else if (progression.type === "exponential") {
2434
+ args[propertyName].x = getExponentialProgression(args[propertyName].x, progression);
2435
+ args[propertyName].y = getExponentialProgression(args[propertyName].y, progression);
2436
+ }
2437
+ }
2438
+ }
2439
+ function getLinearProgression(number, progression) {
2440
+ if (progression.limit !== void 0) {
2441
+ if (number > progression.limit && progression.amt > 0) {
2442
+ return progression.limit;
2443
+ } else if (number < progression.limit && progression.amt < 0) {
2444
+ return progression.limit;
2445
+ }
2446
+ }
2447
+ return number + progression.amt / 60;
2448
+ }
2449
+ function getExponentialProgression(number, progression) {
2450
+ if (progression.limit !== void 0) {
2451
+ if (number > progression.limit && progression.percentage > 0) {
2452
+ return progression.limit;
2453
+ } else if (number < progression.limit && progression.percentage < 0) {
2454
+ return progression.limit;
2221
2455
  }
2222
2456
  }
2457
+ return number + number * progression.percentage;
2223
2458
  }
2224
2459
 
2225
- // src/classes/ticker/TickerMove.ts
2226
- var TickerMove = class extends TickerBase {
2227
- /**
2228
- * The method that will be called every frame to move the canvas element of the canvas.
2229
- * @param t The ticker that is calling this method
2230
- * @param args The arguments that are passed to the ticker
2231
- * @param tags The tags of the canvas element that are connected to this ticker
2232
- */
2233
- fn(t, args, tags) {
2234
- let speed = args.speed === void 0 ? 0.1 : args.speed;
2460
+ // src/classes/ticker/MoveTicker.ts
2461
+ var MoveTicker = class extends TickerBase {
2462
+ fn(ticker, args, tags, tickerId) {
2463
+ let xSpeed = 1;
2464
+ let ySpeed = 1;
2465
+ if (args.speed) {
2466
+ if (typeof args.speed === "number") {
2467
+ xSpeed = args.speed;
2468
+ ySpeed = args.speed;
2469
+ } else {
2470
+ xSpeed = args.speed.x;
2471
+ ySpeed = args.speed.y;
2472
+ }
2473
+ }
2474
+ xSpeed /= 60;
2475
+ ySpeed /= 60;
2235
2476
  let destination = args.destination;
2477
+ let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
2478
+ if (typeof tagToRemoveAfter2 === "string") {
2479
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
2480
+ }
2236
2481
  tags.filter((tag) => {
2237
2482
  var _a;
2238
2483
  let element = GameWindowManager.getCanvasElement(tag);
@@ -2245,41 +2490,42 @@ var TickerMove = class extends TickerBase {
2245
2490
  }).forEach((tag) => {
2246
2491
  let element = GameWindowManager.getCanvasElement(tag);
2247
2492
  if (element && element instanceof pixi_js.Container) {
2248
- let xDistance = destination.x - element.x;
2493
+ let xDistance = destination.x - element.x > 0 ? 1 : -1;
2249
2494
  if (xDistance != 0) {
2250
- element.x += xDistance / speed * t.deltaTime;
2495
+ element.x += xDistance * xSpeed * ticker.deltaTime;
2251
2496
  let newDistance = destination.x - element.x;
2252
2497
  if (xDistance < 0 && newDistance > 0 || xDistance > 0 && newDistance < 0) {
2253
2498
  element.x = destination.x;
2254
2499
  }
2255
2500
  }
2256
- let yDistance = destination.y - element.y;
2501
+ let yDistance = destination.y - element.y > 0 ? 1 : -1;
2257
2502
  if (yDistance != 0) {
2258
- element.y += yDistance / speed * t.deltaTime;
2503
+ element.y += yDistance * ySpeed * ticker.deltaTime;
2259
2504
  let newDistance = destination.y - element.y;
2260
2505
  if (yDistance < 0 && newDistance > 0 || yDistance > 0 && newDistance < 0) {
2261
2506
  element.y = destination.y;
2262
2507
  }
2263
2508
  }
2509
+ if (element.x == destination.x && element.y == destination.y) {
2510
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
2511
+ }
2264
2512
  }
2265
2513
  });
2266
2514
  if (args.speedProgression)
2267
2515
  updateTickerProgression(args, "speed", args.speedProgression);
2268
2516
  }
2269
2517
  };
2270
- TickerMove = __decorateClass([
2518
+ MoveTicker = __decorateClass([
2271
2519
  tickerDecorator()
2272
- ], TickerMove);
2273
- var TickerRotate = class extends TickerBase {
2274
- /**
2275
- * The method that will be called every frame to rotate the canvas element of the canvas.
2276
- * @param delta The delta time
2277
- * @param args The arguments that are passed to the ticker
2278
- * @param tags The tags of the canvas element that are connected to this ticker
2279
- */
2280
- fn(t, args, tags) {
2281
- let speed = args.speed === void 0 ? 0.1 : args.speed;
2520
+ ], MoveTicker);
2521
+ var RotateTicker = class extends TickerBase {
2522
+ fn(ticker, args, tags, tickerId) {
2523
+ let speed = (args.speed === void 0 ? 1 : args.speed) / 60;
2282
2524
  let clockwise = args.clockwise === void 0 ? true : args.clockwise;
2525
+ let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
2526
+ if (typeof tagToRemoveAfter2 === "string") {
2527
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
2528
+ }
2283
2529
  tags.filter((tag) => {
2284
2530
  var _a;
2285
2531
  let element = GameWindowManager.getCanvasElement(tag);
@@ -2293,18 +2539,123 @@ var TickerRotate = class extends TickerBase {
2293
2539
  let element = GameWindowManager.getCanvasElement(tag);
2294
2540
  if (element && element instanceof pixi_js.Container) {
2295
2541
  if (clockwise)
2296
- element.rotation += speed * t.deltaTime;
2542
+ element.rotation += speed * ticker.deltaTime;
2297
2543
  else
2298
- element.rotation -= speed * t.deltaTime;
2544
+ element.rotation -= speed * ticker.deltaTime;
2545
+ if (speed < 1e-5 && !(args.speedProgression && args.speedProgression.type == "linear" && args.speedProgression.amt != 0)) {
2546
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
2547
+ }
2548
+ }
2549
+ });
2550
+ if (args.speedProgression)
2551
+ updateTickerProgression(args, "speed", args.speedProgression);
2552
+ }
2553
+ };
2554
+ RotateTicker = __decorateClass([
2555
+ tickerDecorator()
2556
+ ], RotateTicker);
2557
+ var ZoomTicker = class extends TickerBase {
2558
+ fn(ticker, args, tags, tickerId) {
2559
+ let xSpeed = 0.1;
2560
+ let ySpeed = 0.1;
2561
+ if (args.speed) {
2562
+ if (typeof args.speed === "number") {
2563
+ xSpeed = args.speed;
2564
+ ySpeed = args.speed;
2565
+ } else {
2566
+ xSpeed = args.speed.x;
2567
+ ySpeed = args.speed.y;
2568
+ }
2569
+ }
2570
+ xSpeed /= 60;
2571
+ ySpeed /= 60;
2572
+ let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
2573
+ if (typeof tagToRemoveAfter2 === "string") {
2574
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
2575
+ }
2576
+ let type = args.type || "zoom";
2577
+ let xLimit = type === "zoom" ? Infinity : 0;
2578
+ let yLimit = type === "zoom" ? Infinity : 0;
2579
+ if (args.limit) {
2580
+ if (typeof args.limit === "number") {
2581
+ xLimit = args.limit;
2582
+ yLimit = args.limit;
2583
+ } else {
2584
+ xLimit = args.limit.x;
2585
+ yLimit = args.limit.y;
2586
+ }
2587
+ }
2588
+ tags.filter((tag) => {
2589
+ var _a;
2590
+ let element = GameWindowManager.getCanvasElement(tag);
2591
+ if (args.startOnlyIfHaveTexture) {
2592
+ if (element && element instanceof pixi_js.Sprite && ((_a = element.texture) == null ? void 0 : _a.label) == "EMPTY") {
2593
+ return false;
2594
+ }
2595
+ }
2596
+ return true;
2597
+ }).forEach((tag) => {
2598
+ let element = GameWindowManager.getCanvasElement(tag);
2599
+ if (element && element instanceof pixi_js.Container) {
2600
+ if (type === "zoom" && (element.scale.x < xLimit || element.scale.y < yLimit)) {
2601
+ element.scale.x += xSpeed * ticker.deltaTime;
2602
+ element.scale.y += ySpeed * ticker.deltaTime;
2603
+ } else if (type === "unzoom" && (element.scale.x > xLimit || element.scale.y > yLimit)) {
2604
+ element.scale.x -= xSpeed * ticker.deltaTime;
2605
+ element.scale.y -= ySpeed * ticker.deltaTime;
2606
+ }
2607
+ if (type === "zoom") {
2608
+ if (element.scale.x > xLimit) {
2609
+ element.scale.x = xLimit;
2610
+ }
2611
+ if (element.scale.y > yLimit) {
2612
+ element.scale.y = yLimit;
2613
+ }
2614
+ if (element.scale.x >= xLimit && element.scale.y >= yLimit) {
2615
+ element.scale.x = xLimit;
2616
+ element.scale.y = yLimit;
2617
+ this.onEndOfTicker(tag, tickerId, element, tagToRemoveAfter2);
2618
+ }
2619
+ } else if (type === "unzoom") {
2620
+ if (element.scale.x < xLimit) {
2621
+ element.scale.x = xLimit;
2622
+ }
2623
+ if (element.scale.y < yLimit) {
2624
+ element.scale.y = yLimit;
2625
+ }
2626
+ if (element.scale.x <= xLimit && element.scale.y <= yLimit) {
2627
+ element.scale.x = xLimit;
2628
+ element.scale.y = yLimit;
2629
+ this.onEndOfTicker(tag, tickerId, element, tagToRemoveAfter2);
2630
+ }
2631
+ }
2632
+ if (xSpeed < 1e-5 && ySpeed < 1e-5 && !(args.speedProgression && args.speedProgression.type == "linear" && args.speedProgression.amt != 0)) {
2633
+ this.onEndOfTicker(tag, tickerId, element, tagToRemoveAfter2);
2634
+ }
2299
2635
  }
2300
2636
  });
2301
2637
  if (args.speedProgression)
2302
2638
  updateTickerProgression(args, "speed", args.speedProgression);
2303
2639
  }
2640
+ onEndOfTicker(tag, tickerId, _element, tagToRemoveAfter2) {
2641
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
2642
+ }
2304
2643
  };
2305
- TickerRotate = __decorateClass([
2644
+ ZoomTicker = __decorateClass([
2306
2645
  tickerDecorator()
2307
- ], TickerRotate);
2646
+ ], ZoomTicker);
2647
+ var ZoomInOutTicker = class extends ZoomTicker {
2648
+ constructor(props, duration, priority) {
2649
+ super(props, duration, priority);
2650
+ }
2651
+ onEndOfTicker(tag, tickerId, element, tagToRemoveAfter2) {
2652
+ if (element.children.length > 0) {
2653
+ let elementChild = element.children[0];
2654
+ GameWindowManager.addCanvasElement(tag, elementChild);
2655
+ }
2656
+ super.onEndOfTicker(tag, tickerId, element, tagToRemoveAfter2);
2657
+ }
2658
+ };
2308
2659
 
2309
2660
  // src/functions/ImageUtility.ts
2310
2661
  function addImage(tag, imageUrl) {
@@ -2313,7 +2664,7 @@ function addImage(tag, imageUrl) {
2313
2664
  GameWindowManager.addCanvasElement(tag, image);
2314
2665
  return image;
2315
2666
  }
2316
- function loadImages(canvasImages) {
2667
+ function loadImage(canvasImages) {
2317
2668
  return __async(this, null, function* () {
2318
2669
  if (!Array.isArray(canvasImages)) {
2319
2670
  return [canvasImages];
@@ -2334,39 +2685,233 @@ function loadImages(canvasImages) {
2334
2685
  });
2335
2686
  });
2336
2687
  }
2688
+ function showImage(tag, imageUrl) {
2689
+ return __async(this, null, function* () {
2690
+ let image = addImage(tag, imageUrl);
2691
+ yield image.load();
2692
+ return image;
2693
+ });
2694
+ }
2337
2695
  function removeCanvasElement(tag) {
2338
2696
  GameWindowManager.removeCanvasElement(tag);
2339
2697
  }
2340
- function showWithDissolveTransition(tag, image, speed, priority) {
2341
- return __async(this, null, function* () {
2342
- let specialTag = void 0;
2698
+ function showWithDissolveTransition(_0, _1) {
2699
+ return __async(this, arguments, function* (tag, image, props = {}, priority) {
2700
+ var _a;
2701
+ let oldCanvasTag = void 0;
2343
2702
  if (GameWindowManager.getCanvasElement(tag)) {
2344
- specialTag = tag + "_temp_disolve";
2345
- GameWindowManager.editTagCanvasElement(tag, specialTag);
2703
+ oldCanvasTag = tag + "_temp_disolve";
2704
+ GameWindowManager.editCanvasElementTag(tag, oldCanvasTag);
2346
2705
  }
2347
2706
  let canvasElement;
2348
2707
  if (typeof image === "string") {
2349
2708
  canvasElement = addImage(tag, image);
2350
2709
  } else {
2351
2710
  canvasElement = image;
2711
+ GameWindowManager.addCanvasElement(tag, canvasElement);
2712
+ }
2713
+ if (canvasElement instanceof CanvasImage && ((_a = canvasElement.texture) == null ? void 0 : _a.label) == "EMPTY") {
2714
+ yield canvasElement.load();
2352
2715
  }
2353
2716
  canvasElement.alpha = 0;
2354
- let effect = new TickerFadeAlpha({
2355
- speed,
2717
+ let effect = new FadeAlphaTicker(__spreadProps(__spreadValues({}, props), {
2356
2718
  type: "show",
2357
- tagToRemoveAfter: specialTag,
2719
+ tagToRemoveAfter: oldCanvasTag,
2358
2720
  startOnlyIfHaveTexture: true
2359
- }, 1e4, priority);
2721
+ }), 10, priority);
2360
2722
  GameWindowManager.addTicker(tag, effect);
2361
- if (canvasElement instanceof CanvasImage) {
2362
- return canvasElement.load();
2723
+ return;
2724
+ });
2725
+ }
2726
+ function removeWithDissolveTransition(tag, props = {}, priority) {
2727
+ if (typeof tag === "string") {
2728
+ tag = [tag];
2729
+ }
2730
+ let effect = new FadeAlphaTicker(__spreadProps(__spreadValues({}, props), {
2731
+ type: "hide",
2732
+ tagToRemoveAfter: tag,
2733
+ startOnlyIfHaveTexture: true
2734
+ }), 10, priority);
2735
+ GameWindowManager.addTicker(tag, effect);
2736
+ }
2737
+ function showWithFadeTransition(_0, _1) {
2738
+ return __async(this, arguments, function* (tag, image, props = {}, priority) {
2739
+ var _a;
2740
+ if (!GameWindowManager.getCanvasElement(tag)) {
2741
+ return showWithDissolveTransition(tag, image, props, priority);
2742
+ }
2743
+ let oldCanvasTag = tag + "_temp_fade";
2744
+ GameWindowManager.editCanvasElementTag(tag, oldCanvasTag);
2745
+ let canvasElement;
2746
+ if (typeof image === "string") {
2747
+ canvasElement = addImage(tag, image);
2748
+ } else {
2749
+ canvasElement = image;
2750
+ GameWindowManager.addCanvasElement(tag, canvasElement);
2751
+ }
2752
+ if (canvasElement instanceof CanvasImage && ((_a = canvasElement.texture) == null ? void 0 : _a.label) == "EMPTY") {
2753
+ yield canvasElement.load();
2363
2754
  }
2755
+ canvasElement.alpha = 0;
2756
+ GameWindowManager.addTickersSteps(oldCanvasTag, [
2757
+ new FadeAlphaTicker(__spreadProps(__spreadValues({}, props), {
2758
+ type: "hide",
2759
+ startOnlyIfHaveTexture: true
2760
+ }))
2761
+ ]);
2762
+ GameWindowManager.addTickersSteps(tag, [
2763
+ Pause(props.duration || 1),
2764
+ new FadeAlphaTicker(__spreadProps(__spreadValues({}, props), {
2765
+ type: "show",
2766
+ startOnlyIfHaveTexture: true
2767
+ }))
2768
+ ]);
2769
+ });
2770
+ }
2771
+ function removeWithFadeTransition(tag, props = {}, priority) {
2772
+ return removeWithDissolveTransition(tag, props, priority);
2773
+ }
2774
+ function moveIn(_0, _1) {
2775
+ return __async(this, arguments, function* (tag, image, props = { direction: "right" }, priority) {
2776
+ var _a;
2777
+ let canvasElement;
2778
+ if (typeof image === "string") {
2779
+ canvasElement = addImage(tag, image);
2780
+ } else {
2781
+ canvasElement = image;
2782
+ GameWindowManager.addCanvasElement(tag, canvasElement);
2783
+ }
2784
+ if (canvasElement instanceof CanvasImage && ((_a = canvasElement.texture) == null ? void 0 : _a.label) == "EMPTY") {
2785
+ yield canvasElement.load();
2786
+ }
2787
+ let destination = { x: canvasElement.x, y: canvasElement.y };
2788
+ if (props.direction == "up") {
2789
+ canvasElement.y = GameWindowManager.canvasHeight + canvasElement.height;
2790
+ } else if (props.direction == "down") {
2791
+ canvasElement.y = -canvasElement.height;
2792
+ } else if (props.direction == "left") {
2793
+ canvasElement.x = GameWindowManager.canvasWidth + canvasElement.width;
2794
+ } else if (props.direction == "right") {
2795
+ canvasElement.x = -canvasElement.width;
2796
+ }
2797
+ let effect = new MoveTicker(__spreadProps(__spreadValues({}, props), {
2798
+ destination,
2799
+ startOnlyIfHaveTexture: true
2800
+ }), priority);
2801
+ GameWindowManager.addTicker(tag, effect);
2802
+ });
2803
+ }
2804
+ function moveOut(tag, props = { direction: "right" }, priority) {
2805
+ let canvasElement = GameWindowManager.getCanvasElement(tag);
2806
+ if (!canvasElement) {
2807
+ console.warn("[Pixi'VN] The canvas element is not found.");
2364
2808
  return;
2809
+ }
2810
+ let destination = { x: canvasElement.x, y: canvasElement.y };
2811
+ if (props.direction == "up") {
2812
+ destination.y = -canvasElement.height;
2813
+ } else if (props.direction == "down") {
2814
+ destination.y = GameWindowManager.canvasHeight + canvasElement.height;
2815
+ } else if (props.direction == "left") {
2816
+ destination.x = -canvasElement.width;
2817
+ } else if (props.direction == "right") {
2818
+ destination.x = GameWindowManager.canvasWidth + canvasElement.width;
2819
+ }
2820
+ let effect = new MoveTicker(__spreadProps(__spreadValues({}, props), {
2821
+ destination,
2822
+ startOnlyIfHaveTexture: true,
2823
+ tagToRemoveAfter: tag
2824
+ }), priority);
2825
+ GameWindowManager.addTicker(tag, effect);
2826
+ }
2827
+ function zoomIn(_0, _1) {
2828
+ return __async(this, arguments, function* (tag, image, props = { direction: "right" }, priority) {
2829
+ var _a;
2830
+ let canvasElement;
2831
+ if (typeof image === "string") {
2832
+ canvasElement = new CanvasImage({}, image);
2833
+ } else {
2834
+ canvasElement = image;
2835
+ }
2836
+ if (canvasElement instanceof CanvasImage && ((_a = canvasElement.texture) == null ? void 0 : _a.label) == "EMPTY") {
2837
+ yield canvasElement.load();
2838
+ }
2839
+ let container = new CanvasContainer();
2840
+ container.addChild(canvasElement);
2841
+ container.height = GameWindowManager.canvasHeight;
2842
+ container.width = GameWindowManager.canvasWidth;
2843
+ GameWindowManager.addCanvasElement(tag, container);
2844
+ if (props.direction == "up") {
2845
+ container.pivot.y = GameWindowManager.canvasHeight;
2846
+ container.pivot.x = GameWindowManager.canvasWidth / 2;
2847
+ container.y = GameWindowManager.canvasHeight;
2848
+ container.x = GameWindowManager.canvasWidth / 2;
2849
+ } else if (props.direction == "down") {
2850
+ container.pivot.y = 0;
2851
+ container.pivot.x = GameWindowManager.canvasWidth / 2;
2852
+ container.y = 0;
2853
+ container.x = GameWindowManager.canvasWidth / 2;
2854
+ } else if (props.direction == "left") {
2855
+ container.pivot.x = GameWindowManager.canvasWidth;
2856
+ container.pivot.y = GameWindowManager.canvasHeight / 2;
2857
+ container.x = GameWindowManager.canvasWidth;
2858
+ container.y = GameWindowManager.canvasHeight / 2;
2859
+ } else if (props.direction == "right") {
2860
+ container.pivot.x = 0;
2861
+ container.pivot.y = GameWindowManager.canvasHeight / 2;
2862
+ container.x = 0;
2863
+ container.y = GameWindowManager.canvasHeight / 2;
2864
+ }
2865
+ container.scale.set(0);
2866
+ let effect = new ZoomInOutTicker(__spreadProps(__spreadValues({}, props), {
2867
+ startOnlyIfHaveTexture: true,
2868
+ type: "zoom",
2869
+ limit: 1
2870
+ }), priority);
2871
+ GameWindowManager.addTicker(tag, effect);
2365
2872
  });
2366
2873
  }
2367
-
2368
- // src/constants.ts
2369
- var PIXIVN_VERSION = "0.6.0";
2874
+ function zoomOut(tag, props = { direction: "right" }, priority) {
2875
+ let canvasElement = GameWindowManager.getCanvasElement(tag);
2876
+ if (!canvasElement) {
2877
+ console.warn("[Pixi'VN] The canvas element is not found.");
2878
+ return;
2879
+ }
2880
+ let container = new CanvasContainer();
2881
+ container.addChild(canvasElement);
2882
+ container.height = GameWindowManager.canvasHeight;
2883
+ container.width = GameWindowManager.canvasWidth;
2884
+ GameWindowManager.addCanvasElement(tag, container);
2885
+ if (props.direction == "up") {
2886
+ container.pivot.y = GameWindowManager.canvasHeight;
2887
+ container.pivot.x = GameWindowManager.canvasWidth / 2;
2888
+ container.y = GameWindowManager.canvasHeight;
2889
+ container.x = GameWindowManager.canvasWidth / 2;
2890
+ } else if (props.direction == "down") {
2891
+ container.pivot.y = 0;
2892
+ container.pivot.x = GameWindowManager.canvasWidth / 2;
2893
+ container.y = 0;
2894
+ container.x = GameWindowManager.canvasWidth / 2;
2895
+ } else if (props.direction == "left") {
2896
+ container.pivot.x = GameWindowManager.canvasWidth;
2897
+ container.pivot.y = GameWindowManager.canvasHeight / 2;
2898
+ container.x = GameWindowManager.canvasWidth;
2899
+ container.y = GameWindowManager.canvasHeight / 2;
2900
+ } else if (props.direction == "right") {
2901
+ container.pivot.x = 0;
2902
+ container.pivot.y = GameWindowManager.canvasHeight / 2;
2903
+ container.x = 0;
2904
+ container.y = GameWindowManager.canvasHeight / 2;
2905
+ }
2906
+ container.scale.set(1);
2907
+ let effect = new ZoomInOutTicker(__spreadProps(__spreadValues({}, props), {
2908
+ startOnlyIfHaveTexture: true,
2909
+ type: "unzoom",
2910
+ limit: 0,
2911
+ tagToRemoveAfter: tag
2912
+ }), priority);
2913
+ GameWindowManager.addTicker(tag, effect);
2914
+ }
2370
2915
 
2371
2916
  // src/functions/SavesUtility.ts
2372
2917
  function getSaveData() {
@@ -2406,13 +2951,21 @@ exports.getFlag = getFlag;
2406
2951
  exports.getSaveData = getSaveData;
2407
2952
  exports.getSaveJson = getSaveJson;
2408
2953
  exports.getTexture = getTexture;
2409
- exports.loadImages = loadImages;
2954
+ exports.loadImage = loadImage;
2410
2955
  exports.loadSaveData = loadSaveData;
2411
2956
  exports.loadSaveJson = loadSaveJson;
2957
+ exports.moveIn = moveIn;
2958
+ exports.moveOut = moveOut;
2412
2959
  exports.removeCanvasElement = removeCanvasElement;
2960
+ exports.removeWithDissolveTransition = removeWithDissolveTransition;
2961
+ exports.removeWithFadeTransition = removeWithFadeTransition;
2413
2962
  exports.setChoiceMenuOptions = setChoiceMenuOptions;
2414
2963
  exports.setDialogue = setDialogue;
2415
2964
  exports.setFlag = setFlag;
2965
+ exports.showImage = showImage;
2416
2966
  exports.showWithDissolveTransition = showWithDissolveTransition;
2967
+ exports.showWithFadeTransition = showWithFadeTransition;
2968
+ exports.zoomIn = zoomIn;
2969
+ exports.zoomOut = zoomOut;
2417
2970
  //# sourceMappingURL=out.js.map
2418
2971
  //# sourceMappingURL=index.js.map