@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
@@ -1,6 +1,6 @@
1
1
  import { Sprite, Container, Application, Text, Assets, Texture } from 'pixi.js';
2
2
  import 'deep-diff';
3
- import 'crypto-js/sha1';
3
+ import sha1 from 'crypto-js/sha1';
4
4
 
5
5
  var __defProp = Object.defineProperty;
6
6
  var __defProps = Object.defineProperties;
@@ -27,8 +27,7 @@ var __decorateClass = (decorators, target, key, kind) => {
27
27
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
28
28
  if (decorator = decorators[i])
29
29
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
30
- if (kind && result)
31
- __defProp(target, key, result);
30
+ if (kind && result) __defProp(target, key, result);
32
31
  return result;
33
32
  };
34
33
  var __async = (__this, __arguments, generator) => {
@@ -64,17 +63,23 @@ function exportCanvasElement(element) {
64
63
  return element.memory;
65
64
  }
66
65
  function importCanvasElement(memory) {
67
- let element = getCanvasElementInstanceByClassName(memory.className);
66
+ let element = getCanvasElementInstanceById(memory.pixivnId);
68
67
  if (element) {
69
68
  element.memory = memory;
70
69
  } else {
71
- throw new Error("[Pixi'VN] The element " + memory.className + " could not be created");
70
+ throw new Error("[Pixi'VN] The element " + memory.pixivnId + " could not be created");
72
71
  }
73
72
  return element;
74
73
  }
75
74
 
76
75
  // src/classes/canvas/CanvasContainer.ts
76
+ var CANVAS_CONTAINER_ID = "CanvasContainer";
77
77
  var CanvasContainer = class extends Container {
78
+ constructor(options) {
79
+ super(options);
80
+ this.pixivnId = CANVAS_CONTAINER_ID;
81
+ this.pixivnId = this.constructor.prototype.pixivnId;
82
+ }
78
83
  get memory() {
79
84
  let memory = getMemoryContainer(this);
80
85
  this.children.forEach((child) => {
@@ -90,8 +95,12 @@ var CanvasContainer = class extends Container {
90
95
  }
91
96
  };
92
97
  function getMemoryContainer(element) {
98
+ let className = "CanvasContainer";
99
+ if (element.hasOwnProperty("pixivnId")) {
100
+ className = element.pixivnId;
101
+ }
93
102
  return {
94
- className: "CanvasContainer",
103
+ pixivnId: className,
95
104
  elements: [],
96
105
  width: element.width,
97
106
  height: element.height,
@@ -213,45 +222,49 @@ function eventDecorator(name) {
213
222
  name = target.name;
214
223
  }
215
224
  if (registeredEvents[name]) {
216
- console.warn(`[Pixi'VN] Event ${name} already exists, it will be overwritten`);
225
+ console.info(`[Pixi'VN] Event ${name} already exists, it will be overwritten`);
217
226
  }
227
+ target.prototype.id = name;
218
228
  registeredEvents[name] = target;
219
229
  };
220
230
  }
221
- function getEventTypeByClassName(eventName) {
231
+ function getEventTypeById(eventId) {
222
232
  try {
223
- let eventType = registeredEvents[eventName];
233
+ let eventType = registeredEvents[eventId];
224
234
  if (!eventType) {
225
- console.error(`[Pixi'VN] Event ${eventName} not found`);
235
+ console.error(`[Pixi'VN] Event ${eventId} not found`);
226
236
  return;
227
237
  }
228
238
  new eventType();
229
239
  return eventType;
230
240
  } catch (e) {
231
- console.error(`[Pixi'VN] Error while getting Event ${eventName}`, e);
241
+ console.error(`[Pixi'VN] Error while getting Event ${eventId}`, e);
232
242
  return;
233
243
  }
234
244
  }
235
- function getEventInstanceByClassName(eventName) {
245
+ function getEventInstanceById(eventId) {
236
246
  try {
237
- let eventType = registeredEvents[eventName];
247
+ let eventType = registeredEvents[eventId];
238
248
  if (!eventType) {
239
- console.error(`[Pixi'VN] Event ${eventName} not found`);
249
+ console.error(`[Pixi'VN] Event ${eventId} not found`);
240
250
  return;
241
251
  }
242
252
  let event = new eventType();
243
253
  return event;
244
254
  } catch (e) {
245
- console.error(`[Pixi'VN] Error while getting Event ${eventName}`, e);
255
+ console.error(`[Pixi'VN] Error while getting Event ${eventId}`, e);
246
256
  return;
247
257
  }
248
258
  }
249
259
 
250
260
  // src/classes/canvas/CanvasSprite.ts
261
+ var CANVAS_SPRITE_ID = "CanvasSprite";
251
262
  var CanvasSprite = class _CanvasSprite extends Sprite {
252
- constructor() {
253
- super(...arguments);
263
+ constructor(options) {
264
+ super(options);
265
+ this.pixivnId = CANVAS_SPRITE_ID;
254
266
  this._onEvents = {};
267
+ this.pixivnId = this.constructor.prototype.pixivnId;
255
268
  }
256
269
  get memory() {
257
270
  return getMemorySprite(this);
@@ -292,9 +305,9 @@ var CanvasSprite = class _CanvasSprite extends Sprite {
292
305
  * ```
293
306
  */
294
307
  onEvent(event, eventClass) {
295
- let className = eventClass.name;
296
- let instance = getEventInstanceByClassName(className);
297
- this._onEvents[event] = className;
308
+ let id = eventClass.prototype.id;
309
+ let instance = getEventInstanceById(id);
310
+ this._onEvents[event] = id;
298
311
  if (instance) {
299
312
  super.on(event, () => {
300
313
  instance.fn(event, this);
@@ -323,7 +336,7 @@ var CanvasSprite = class _CanvasSprite extends Sprite {
323
336
  function getMemorySprite(element) {
324
337
  let temp = getMemoryContainer(element);
325
338
  return __spreadProps(__spreadValues({}, temp), {
326
- className: "CanvasSprite",
339
+ pixivnId: element.pixivnId,
327
340
  textureImage: getTextureMemory(element.texture),
328
341
  anchor: { x: element.anchor.x, y: element.anchor.y },
329
342
  roundPixels: element.roundPixels,
@@ -346,8 +359,8 @@ function setMemorySprite(element, memory) {
346
359
  }
347
360
  memory.roundPixels && (element.roundPixels = memory.roundPixels);
348
361
  for (let event in memory.onEvents) {
349
- let className = memory.onEvents[event];
350
- let instance = getEventTypeByClassName(className);
362
+ let id = memory.onEvents[event];
363
+ let instance = getEventTypeById(id);
351
364
  if (instance) {
352
365
  element.onEvent(event, instance);
353
366
  }
@@ -355,9 +368,11 @@ function setMemorySprite(element, memory) {
355
368
  }
356
369
 
357
370
  // src/classes/canvas/CanvasImage.ts
371
+ var CANVAS_IMAGE_ID = "CanvasImage";
358
372
  var CanvasImage = class _CanvasImage extends CanvasSprite {
359
373
  constructor(options, imageLink) {
360
374
  super(options);
375
+ this.pixivnId = CANVAS_IMAGE_ID;
361
376
  this.imageLink = "";
362
377
  if (imageLink) {
363
378
  this.imageLink = imageLink;
@@ -365,12 +380,13 @@ var CanvasImage = class _CanvasImage extends CanvasSprite {
365
380
  }
366
381
  get memory() {
367
382
  return __spreadProps(__spreadValues({}, getMemorySprite(this)), {
368
- className: "CanvasImage",
369
- textureImage: { image: this.imageLink }
383
+ pixivnId: this.pixivnId,
384
+ imageLink: this.imageLink
370
385
  });
371
386
  }
372
387
  set memory(memory) {
373
388
  setMemorySprite(this, memory);
389
+ this.imageLink = memory.imageLink;
374
390
  }
375
391
  static from(source, skipCache) {
376
392
  let sprite = Sprite.from(source, skipCache);
@@ -398,10 +414,13 @@ var CanvasImage = class _CanvasImage extends CanvasSprite {
398
414
  });
399
415
  }
400
416
  };
417
+ var CANVAS_TEXT_ID = "CanvasText";
401
418
  var CanvasText = class extends Text {
402
- constructor() {
403
- super(...arguments);
419
+ constructor(options) {
420
+ super(options);
421
+ this.pixivnId = CANVAS_TEXT_ID;
404
422
  this._onEvents = {};
423
+ this.pixivnId = this.constructor.prototype.pixivnId;
405
424
  }
406
425
  get memory() {
407
426
  return getMemoryText(this);
@@ -442,9 +461,9 @@ var CanvasText = class extends Text {
442
461
  * ```
443
462
  */
444
463
  onEvent(event, eventClass) {
445
- let className = eventClass.name;
446
- let instance = getEventInstanceByClassName(className);
447
- this._onEvents[event] = className;
464
+ let id = eventClass.prototype.id;
465
+ let instance = getEventInstanceById(id);
466
+ this._onEvents[event] = id;
448
467
  if (instance) {
449
468
  super.on(event, () => {
450
469
  instance.fn(event, this);
@@ -467,7 +486,7 @@ var CanvasText = class extends Text {
467
486
  function getMemoryText(element) {
468
487
  let temp = getMemoryContainer(element);
469
488
  return __spreadProps(__spreadValues({}, temp), {
470
- className: "CanvasText",
489
+ pixivnId: element.pixivnId,
471
490
  anchor: { x: element.anchor.x, y: element.anchor.y },
472
491
  text: element.text,
473
492
  resolution: element.resolution,
@@ -490,8 +509,8 @@ function setMemoryText(element, memory) {
490
509
  memory.style && (element.style = memory.style);
491
510
  memory.roundPixels && (element.roundPixels = memory.roundPixels);
492
511
  for (let event in memory.onEvents) {
493
- let className = memory.onEvents[event];
494
- let instance = getEventTypeByClassName(className);
512
+ let id = memory.onEvents[event];
513
+ let instance = getEventTypeById(id);
495
514
  if (instance) {
496
515
  element.onEvent(event, instance);
497
516
  }
@@ -508,31 +527,32 @@ function canvasElementDecorator(name) {
508
527
  if (registeredCanvasElement[name]) {
509
528
  console.warn(`[Pixi'VN] CanvasElement ${name} already registered`);
510
529
  }
530
+ target.prototype.pixivnId = name;
511
531
  registeredCanvasElement[name] = target;
512
532
  };
513
533
  }
514
- function getCanvasElementInstanceByClassName(canvasName) {
534
+ function getCanvasElementInstanceById(canvasId) {
515
535
  try {
516
- let eventType = registeredCanvasElement[canvasName];
536
+ let eventType = registeredCanvasElement[canvasId];
517
537
  if (!eventType) {
518
- if (canvasName === "CanvasContainer") {
538
+ if (canvasId === CANVAS_CONTAINER_ID) {
519
539
  eventType = CanvasContainer;
520
- } else if (canvasName === "CanvasImage") {
540
+ } else if (canvasId === CANVAS_IMAGE_ID) {
521
541
  eventType = CanvasImage;
522
- } else if (canvasName === "CanvasSprite") {
542
+ } else if (canvasId === CANVAS_SPRITE_ID) {
523
543
  eventType = CanvasSprite;
524
- } else if (canvasName === "CanvasText") {
544
+ } else if (canvasId === CANVAS_TEXT_ID) {
525
545
  eventType = CanvasText;
526
546
  }
527
547
  }
528
548
  if (!eventType) {
529
- console.error(`[Pixi'VN] CanvasElement ${canvasName} not found`);
549
+ console.error(`[Pixi'VN] CanvasElement ${canvasId} not found`);
530
550
  return;
531
551
  }
532
552
  let canvasElement = new eventType();
533
553
  return canvasElement;
534
554
  } catch (e) {
535
- console.error(`[Pixi'VN] Error while getting CanvasElement ${canvasName}`, e);
555
+ console.error(`[Pixi'VN] Error while getting CanvasElement ${canvasId}`, e);
536
556
  return;
537
557
  }
538
558
  }
@@ -545,7 +565,7 @@ function saveCharacter(character) {
545
565
  return;
546
566
  }
547
567
  if (registeredCharacters[character.id]) {
548
- console.warn(`[Pixi'VN] Character id ${character.id} already exists, it will be overwritten`);
568
+ console.info(`[Pixi'VN] Character id ${character.id} already exists, it will be overwritten`);
549
569
  }
550
570
  registeredCharacters[character.id] = character;
551
571
  }
@@ -584,7 +604,7 @@ var Label = class {
584
604
  this._choiseIndex = choiseIndex;
585
605
  }
586
606
  /**
587
- * Get the id of the label
607
+ * Get the id of the label. This variable is used in the system to get the label by id, {@link getLabelById}
588
608
  */
589
609
  get id() {
590
610
  return this._id;
@@ -636,49 +656,46 @@ var Label = class {
636
656
  }
637
657
  };
638
658
 
639
- // src/types/PauseType.ts
640
- var PauseValueType = "pause";
641
-
642
- // src/types/RepeatType.ts
643
- var Repeat = "repeat";
644
-
645
659
  // src/classes/ticker/TickerBase.ts
646
660
  var TickerBase = class {
647
661
  /**
648
662
  * @param args The arguments that you want to pass to the ticker.
649
- * @param duration The duration of the ticker. If is undefined, the ticker will be called every frame.
650
- * @param priority The priority of the ticker. If is undefined, the priority will be UPDATE_PRIORITY.NORMAL.
663
+ * @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
664
+ * @param priority The priority of the ticker. @default UPDATE_PRIORITY.NORMAL
651
665
  */
652
666
  constructor(args, duration, priority) {
667
+ /**
668
+ * Get the id of the ticker. This variable is used in the system to get the ticker by id, {@link geTickerInstanceById}
669
+ */
670
+ this.id = "ticker_id_not_set";
653
671
  this.args = args;
654
672
  this.duration = duration;
655
673
  this.priority = priority;
674
+ this.id = this.constructor.prototype.id;
656
675
  }
657
676
  /**
658
677
  * The method that will be called every frame.
659
678
  * This method should be overridden and you can use GameWindowManager.addCanvasElement() to get the canvas element of the canvas, and edit them.
660
- * @param t The ticker that is calling this method
661
- * @param args The arguments that you passed when you added the ticker
662
- * @param tags The tags of the canvas elements that are connected to this ticker
679
+ * @param _ticker The ticker that is calling this method
680
+ * @param _args The arguments that you passed when you added the ticker
681
+ * @param _tags The tags of the canvas elements that are connected to this ticker
682
+ * @param _tickerId The id of the ticker. You can use this to get the ticker from the {@link GameWindowManager.currentTickers}
663
683
  */
664
- fn(_t, _args, _tags) {
684
+ fn(_ticker, _args, _tags, _tickerId) {
665
685
  throw new Error("[Pixi'VN] The method TickerBase.fn() must be overridden");
666
686
  }
667
687
  };
668
- var TickerFadeAlpha = class extends TickerBase {
669
- /**
670
- * The method that will be called every frame to fade the alpha of the canvas element of the canvas.
671
- * @param delta The delta time
672
- * @param args The arguments that are passed to the ticker
673
- * @param tags The tags of the canvas element that are connected to this ticker
674
- */
675
- fn(t, args, tags) {
688
+
689
+ // src/classes/ticker/FadeAlphaTicker.ts
690
+ var FadeAlphaTicker = class extends TickerBase {
691
+ fn(ticker, args, tags, tickerId) {
676
692
  let type = args.type === void 0 ? "hide" : args.type;
677
- let speed = args.speed === void 0 ? 0.1 : args.speed;
693
+ let duration = args.duration === void 0 ? 1 : args.duration;
694
+ let speed = 1 / (duration * 60);
678
695
  let limit = args.limit === void 0 ? type === "hide" ? 0 : 1 : args.limit;
679
- let removeElementAfter = args.tagToRemoveAfter || [];
680
- if (typeof removeElementAfter === "string") {
681
- removeElementAfter = [removeElementAfter];
696
+ let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
697
+ if (typeof tagToRemoveAfter2 === "string") {
698
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
682
699
  }
683
700
  if (type === "hide" && limit < 0) {
684
701
  limit = 0;
@@ -699,61 +716,88 @@ var TickerFadeAlpha = class extends TickerBase {
699
716
  let element = GameWindowManager.getCanvasElement(tag);
700
717
  if (element && element instanceof Container) {
701
718
  if (type === "show" && element.alpha < limit) {
702
- element.alpha += speed * t.deltaTime;
719
+ element.alpha += speed * ticker.deltaTime;
703
720
  } else if (type === "hide" && element.alpha > limit) {
704
- element.alpha -= speed * t.deltaTime;
705
- } else {
721
+ element.alpha -= speed * ticker.deltaTime;
722
+ }
723
+ if (type === "show" && element.alpha >= limit) {
706
724
  element.alpha = limit;
707
- GameWindowManager.removeAssociationBetweenTickerCanvasElement(tag, this);
708
- GameWindowManager.removeCanvasElement(removeElementAfter);
725
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
726
+ } else if (type === "hide" && element.alpha <= limit) {
727
+ element.alpha = limit;
728
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
709
729
  }
710
730
  }
711
731
  });
712
732
  }
713
733
  };
714
- TickerFadeAlpha = __decorateClass([
734
+ FadeAlphaTicker = __decorateClass([
715
735
  tickerDecorator()
716
- ], TickerFadeAlpha);
736
+ ], FadeAlphaTicker);
717
737
 
718
738
  // src/functions/TickerUtility.ts
719
739
  function updateTickerProgression(args, propertyName, progression) {
720
- if (args.hasOwnProperty(propertyName) && typeof args[propertyName] !== "number") {
740
+ if (args[propertyName] === void 0 || !progression || args[propertyName] === progression.limit) {
721
741
  return;
722
742
  }
723
- if (args[propertyName] !== void 0 && progression && args[propertyName] !== progression.limit) {
743
+ if (typeof args[propertyName] === "number") {
724
744
  if (progression.type === "linear") {
725
- args[propertyName] += progression.amt;
726
- if (progression.limit !== void 0) {
727
- if (args[propertyName] > progression.limit && progression.amt > 0) {
728
- args[propertyName] = progression.limit;
729
- } else if (args[propertyName] < progression.limit && progression.amt < 0) {
730
- args[propertyName] = progression.limit;
731
- }
732
- }
745
+ args[propertyName] = getLinearProgression(args[propertyName], progression);
733
746
  } else if (progression.type === "exponential") {
734
- args[propertyName] += args[propertyName] * progression.percentage;
735
- if (progression.limit !== void 0) {
736
- if (args[propertyName] > progression.limit && progression.percentage > 0) {
737
- args[propertyName] = progression.limit;
738
- } else if (args[propertyName] < progression.limit && progression.percentage < 0) {
739
- args[propertyName] = progression.limit;
740
- }
741
- }
747
+ args[propertyName] = getExponentialProgression(args[propertyName], progression);
748
+ }
749
+ } 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") {
750
+ if (progression.type === "linear") {
751
+ args[propertyName].x = getLinearProgression(args[propertyName].x, progression);
752
+ args[propertyName].y = getLinearProgression(args[propertyName].y, progression);
753
+ } else if (progression.type === "exponential") {
754
+ args[propertyName].x = getExponentialProgression(args[propertyName].x, progression);
755
+ args[propertyName].y = getExponentialProgression(args[propertyName].y, progression);
742
756
  }
743
757
  }
744
758
  }
759
+ function getLinearProgression(number, progression) {
760
+ if (progression.limit !== void 0) {
761
+ if (number > progression.limit && progression.amt > 0) {
762
+ return progression.limit;
763
+ } else if (number < progression.limit && progression.amt < 0) {
764
+ return progression.limit;
765
+ }
766
+ }
767
+ return number + progression.amt / 60;
768
+ }
769
+ function getExponentialProgression(number, progression) {
770
+ if (progression.limit !== void 0) {
771
+ if (number > progression.limit && progression.percentage > 0) {
772
+ return progression.limit;
773
+ } else if (number < progression.limit && progression.percentage < 0) {
774
+ return progression.limit;
775
+ }
776
+ }
777
+ return number + number * progression.percentage;
778
+ }
745
779
 
746
- // src/classes/ticker/TickerMove.ts
747
- var TickerMove = class extends TickerBase {
748
- /**
749
- * The method that will be called every frame to move the canvas element of the canvas.
750
- * @param t The ticker that is calling this method
751
- * @param args The arguments that are passed to the ticker
752
- * @param tags The tags of the canvas element that are connected to this ticker
753
- */
754
- fn(t, args, tags) {
755
- let speed = args.speed === void 0 ? 0.1 : args.speed;
780
+ // src/classes/ticker/MoveTicker.ts
781
+ var MoveTicker = class extends TickerBase {
782
+ fn(ticker, args, tags, tickerId) {
783
+ let xSpeed = 1;
784
+ let ySpeed = 1;
785
+ if (args.speed) {
786
+ if (typeof args.speed === "number") {
787
+ xSpeed = args.speed;
788
+ ySpeed = args.speed;
789
+ } else {
790
+ xSpeed = args.speed.x;
791
+ ySpeed = args.speed.y;
792
+ }
793
+ }
794
+ xSpeed /= 60;
795
+ ySpeed /= 60;
756
796
  let destination = args.destination;
797
+ let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
798
+ if (typeof tagToRemoveAfter2 === "string") {
799
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
800
+ }
757
801
  tags.filter((tag) => {
758
802
  var _a;
759
803
  let element = GameWindowManager.getCanvasElement(tag);
@@ -766,41 +810,42 @@ var TickerMove = class extends TickerBase {
766
810
  }).forEach((tag) => {
767
811
  let element = GameWindowManager.getCanvasElement(tag);
768
812
  if (element && element instanceof Container) {
769
- let xDistance = destination.x - element.x;
813
+ let xDistance = destination.x - element.x > 0 ? 1 : -1;
770
814
  if (xDistance != 0) {
771
- element.x += xDistance / speed * t.deltaTime;
815
+ element.x += xDistance * xSpeed * ticker.deltaTime;
772
816
  let newDistance = destination.x - element.x;
773
817
  if (xDistance < 0 && newDistance > 0 || xDistance > 0 && newDistance < 0) {
774
818
  element.x = destination.x;
775
819
  }
776
820
  }
777
- let yDistance = destination.y - element.y;
821
+ let yDistance = destination.y - element.y > 0 ? 1 : -1;
778
822
  if (yDistance != 0) {
779
- element.y += yDistance / speed * t.deltaTime;
823
+ element.y += yDistance * ySpeed * ticker.deltaTime;
780
824
  let newDistance = destination.y - element.y;
781
825
  if (yDistance < 0 && newDistance > 0 || yDistance > 0 && newDistance < 0) {
782
826
  element.y = destination.y;
783
827
  }
784
828
  }
829
+ if (element.x == destination.x && element.y == destination.y) {
830
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
831
+ }
785
832
  }
786
833
  });
787
834
  if (args.speedProgression)
788
835
  updateTickerProgression(args, "speed", args.speedProgression);
789
836
  }
790
837
  };
791
- TickerMove = __decorateClass([
838
+ MoveTicker = __decorateClass([
792
839
  tickerDecorator()
793
- ], TickerMove);
794
- var TickerRotate = class extends TickerBase {
795
- /**
796
- * The method that will be called every frame to rotate the canvas element of the canvas.
797
- * @param delta The delta time
798
- * @param args The arguments that are passed to the ticker
799
- * @param tags The tags of the canvas element that are connected to this ticker
800
- */
801
- fn(t, args, tags) {
802
- let speed = args.speed === void 0 ? 0.1 : args.speed;
840
+ ], MoveTicker);
841
+ var RotateTicker = class extends TickerBase {
842
+ fn(ticker, args, tags, tickerId) {
843
+ let speed = (args.speed === void 0 ? 1 : args.speed) / 60;
803
844
  let clockwise = args.clockwise === void 0 ? true : args.clockwise;
845
+ let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
846
+ if (typeof tagToRemoveAfter2 === "string") {
847
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
848
+ }
804
849
  tags.filter((tag) => {
805
850
  var _a;
806
851
  let element = GameWindowManager.getCanvasElement(tag);
@@ -814,18 +859,114 @@ var TickerRotate = class extends TickerBase {
814
859
  let element = GameWindowManager.getCanvasElement(tag);
815
860
  if (element && element instanceof Container) {
816
861
  if (clockwise)
817
- element.rotation += speed * t.deltaTime;
862
+ element.rotation += speed * ticker.deltaTime;
818
863
  else
819
- element.rotation -= speed * t.deltaTime;
864
+ element.rotation -= speed * ticker.deltaTime;
865
+ if (speed < 1e-5 && !(args.speedProgression && args.speedProgression.type == "linear" && args.speedProgression.amt != 0)) {
866
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
867
+ }
820
868
  }
821
869
  });
822
870
  if (args.speedProgression)
823
871
  updateTickerProgression(args, "speed", args.speedProgression);
824
872
  }
825
873
  };
826
- TickerRotate = __decorateClass([
874
+ RotateTicker = __decorateClass([
827
875
  tickerDecorator()
828
- ], TickerRotate);
876
+ ], RotateTicker);
877
+ var ZoomTicker = class extends TickerBase {
878
+ fn(ticker, args, tags, tickerId) {
879
+ let xSpeed = 0.1;
880
+ let ySpeed = 0.1;
881
+ if (args.speed) {
882
+ if (typeof args.speed === "number") {
883
+ xSpeed = args.speed;
884
+ ySpeed = args.speed;
885
+ } else {
886
+ xSpeed = args.speed.x;
887
+ ySpeed = args.speed.y;
888
+ }
889
+ }
890
+ xSpeed /= 60;
891
+ ySpeed /= 60;
892
+ let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
893
+ if (typeof tagToRemoveAfter2 === "string") {
894
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
895
+ }
896
+ let type = args.type || "zoom";
897
+ let xLimit = type === "zoom" ? Infinity : 0;
898
+ let yLimit = type === "zoom" ? Infinity : 0;
899
+ if (args.limit) {
900
+ if (typeof args.limit === "number") {
901
+ xLimit = args.limit;
902
+ yLimit = args.limit;
903
+ } else {
904
+ xLimit = args.limit.x;
905
+ yLimit = args.limit.y;
906
+ }
907
+ }
908
+ tags.filter((tag) => {
909
+ var _a;
910
+ let element = GameWindowManager.getCanvasElement(tag);
911
+ if (args.startOnlyIfHaveTexture) {
912
+ if (element && element instanceof Sprite && ((_a = element.texture) == null ? void 0 : _a.label) == "EMPTY") {
913
+ return false;
914
+ }
915
+ }
916
+ return true;
917
+ }).forEach((tag) => {
918
+ let element = GameWindowManager.getCanvasElement(tag);
919
+ if (element && element instanceof Container) {
920
+ if (type === "zoom" && (element.scale.x < xLimit || element.scale.y < yLimit)) {
921
+ element.scale.x += xSpeed * ticker.deltaTime;
922
+ element.scale.y += ySpeed * ticker.deltaTime;
923
+ } else if (type === "unzoom" && (element.scale.x > xLimit || element.scale.y > yLimit)) {
924
+ element.scale.x -= xSpeed * ticker.deltaTime;
925
+ element.scale.y -= ySpeed * ticker.deltaTime;
926
+ }
927
+ if (type === "zoom") {
928
+ if (element.scale.x > xLimit) {
929
+ element.scale.x = xLimit;
930
+ }
931
+ if (element.scale.y > yLimit) {
932
+ element.scale.y = yLimit;
933
+ }
934
+ if (element.scale.x >= xLimit && element.scale.y >= yLimit) {
935
+ element.scale.x = xLimit;
936
+ element.scale.y = yLimit;
937
+ this.onEndOfTicker(tag, tickerId, element, tagToRemoveAfter2);
938
+ }
939
+ } else if (type === "unzoom") {
940
+ if (element.scale.x < xLimit) {
941
+ element.scale.x = xLimit;
942
+ }
943
+ if (element.scale.y < yLimit) {
944
+ element.scale.y = yLimit;
945
+ }
946
+ if (element.scale.x <= xLimit && element.scale.y <= yLimit) {
947
+ element.scale.x = xLimit;
948
+ element.scale.y = yLimit;
949
+ this.onEndOfTicker(tag, tickerId, element, tagToRemoveAfter2);
950
+ }
951
+ }
952
+ if (xSpeed < 1e-5 && ySpeed < 1e-5 && !(args.speedProgression && args.speedProgression.type == "linear" && args.speedProgression.amt != 0)) {
953
+ this.onEndOfTicker(tag, tickerId, element, tagToRemoveAfter2);
954
+ }
955
+ }
956
+ });
957
+ if (args.speedProgression)
958
+ updateTickerProgression(args, "speed", args.speedProgression);
959
+ }
960
+ onEndOfTicker(tag, tickerId, _element, tagToRemoveAfter2) {
961
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
962
+ }
963
+ };
964
+ ZoomTicker = __decorateClass([
965
+ tickerDecorator()
966
+ ], ZoomTicker);
967
+
968
+ // src/constants.ts
969
+ var Repeat = "repeat";
829
970
 
830
971
  // src/functions/ExportUtility.ts
831
972
  function createExportableElement(element) {
@@ -846,21 +987,22 @@ function tickerDecorator(name) {
846
987
  name = target.name;
847
988
  }
848
989
  if (registeredTickers[name]) {
849
- console.warn(`[Pixi'VN] Ticker ${name} already exists, it will be overwritten`);
990
+ console.info(`[Pixi'VN] Ticker ${name} already exists, it will be overwritten`);
850
991
  }
992
+ target.prototype.id = name;
851
993
  registeredTickers[name] = target;
852
994
  };
853
995
  }
854
- function geTickerInstanceByClassName(tickerName, args, duration, priority) {
996
+ function geTickerInstanceById(tickerId, args, duration, priority) {
855
997
  try {
856
- let ticker = registeredTickers[tickerName];
998
+ let ticker = registeredTickers[tickerId];
857
999
  if (!ticker) {
858
- console.error(`[Pixi'VN] Ticker ${tickerName} not found`);
1000
+ console.error(`[Pixi'VN] Ticker ${tickerId} not found`);
859
1001
  return;
860
1002
  }
861
1003
  return new ticker(args, duration, priority);
862
1004
  } catch (e) {
863
- console.error(`[Pixi'VN] Error while getting Ticker ${tickerName}`, e);
1005
+ console.error(`[Pixi'VN] Error while getting Ticker ${tickerId}`, e);
864
1006
  return;
865
1007
  }
866
1008
  }
@@ -876,6 +1018,9 @@ function asciiArtLog() {
876
1018
  `);
877
1019
  }
878
1020
 
1021
+ // src/types/ticker/TagToRemoveAfterType.ts
1022
+ var tagToRemoveAfter = "tagToRemoveAfter";
1023
+
879
1024
  // src/managers/WindowManager.ts
880
1025
  var _GameWindowManager = class _GameWindowManager {
881
1026
  constructor() {
@@ -1058,25 +1203,25 @@ var _GameWindowManager = class _GameWindowManager {
1058
1203
  /**
1059
1204
  * Remove a canvas element from the canvas.
1060
1205
  * And remove all tickers that are not connected to any canvas element.
1061
- * @param tag The tag of the canvas element to be removed.
1206
+ * @param tags The tag of the canvas element to be removed.
1062
1207
  * @returns
1063
1208
  * @example
1064
1209
  * ```typescript
1065
1210
  * GameWindowManager.removeCanvasElement("bunny");
1066
1211
  * ```
1067
1212
  */
1068
- static removeCanvasElement(tag) {
1069
- if (typeof tag === "string") {
1070
- tag = [tag];
1213
+ static removeCanvasElement(tags) {
1214
+ if (typeof tags === "string") {
1215
+ tags = [tags];
1071
1216
  }
1072
- tag.forEach((t) => {
1073
- if (_GameWindowManager._children[t]) {
1074
- _GameWindowManager.app.stage.removeChild(_GameWindowManager._children[t]);
1075
- delete _GameWindowManager._children[t];
1217
+ tags.forEach((tag) => {
1218
+ if (_GameWindowManager._children[tag]) {
1219
+ _GameWindowManager.app.stage.removeChild(_GameWindowManager._children[tag]);
1220
+ delete _GameWindowManager._children[tag];
1221
+ _GameWindowManager.removeTickerByCanvasElement(tag);
1076
1222
  }
1077
1223
  });
1078
- _GameWindowManager.removeTickersWithoutAssociatedCanvasElement();
1079
- _GameWindowManager.childrenTagsOrder = _GameWindowManager.childrenTagsOrder.filter((t) => !tag.includes(t));
1224
+ _GameWindowManager.childrenTagsOrder = _GameWindowManager.childrenTagsOrder.filter((t) => !tags.includes(t));
1080
1225
  }
1081
1226
  /**
1082
1227
  * Get a canvas element by the tag.
@@ -1106,18 +1251,43 @@ var _GameWindowManager = class _GameWindowManager {
1106
1251
  _GameWindowManager.app.stage.removeChildren();
1107
1252
  _GameWindowManager._children = {};
1108
1253
  _GameWindowManager.childrenTagsOrder = [];
1109
- _GameWindowManager.removeTickers();
1254
+ _GameWindowManager.removeAllTickers();
1110
1255
  }
1111
1256
  /**
1112
1257
  * Edit the tag of a canvas element.
1113
1258
  * @param oldTag The old tag of the canvas element.
1114
1259
  * @param newTag The new tag of the canvas element.
1115
1260
  */
1116
- static editTagCanvasElement(oldTag, newTag) {
1261
+ static editCanvasElementTag(oldTag, newTag) {
1117
1262
  if (_GameWindowManager._children[oldTag]) {
1118
1263
  _GameWindowManager._children[newTag] = _GameWindowManager._children[oldTag];
1119
1264
  delete _GameWindowManager._children[oldTag];
1120
1265
  }
1266
+ if (_GameWindowManager._currentTickersSteps[oldTag]) {
1267
+ _GameWindowManager._currentTickersSteps[newTag] = _GameWindowManager._currentTickersSteps[oldTag];
1268
+ delete _GameWindowManager._currentTickersSteps[oldTag];
1269
+ }
1270
+ for (let id in _GameWindowManager._currentTickers) {
1271
+ let ticker = _GameWindowManager._currentTickers[id];
1272
+ if (ticker.canvasElementTags.includes(oldTag)) {
1273
+ ticker.canvasElementTags = ticker.canvasElementTags.map((t) => t === oldTag ? newTag : t);
1274
+ if (ticker.args.hasOwnProperty(tagToRemoveAfter)) {
1275
+ let tagToRemoveAfter2 = ticker.args.tagToRemoveAfter;
1276
+ if (typeof tagToRemoveAfter2 === "string") {
1277
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
1278
+ }
1279
+ if (Array.isArray(tagToRemoveAfter2)) {
1280
+ ticker.args.tagToRemoveAfter = tagToRemoveAfter2.map((t) => t === oldTag ? newTag : t);
1281
+ }
1282
+ }
1283
+ }
1284
+ }
1285
+ for (let timeout in _GameWindowManager._currentTickersTimeouts) {
1286
+ let TickerTimeout = _GameWindowManager._currentTickersTimeouts[timeout];
1287
+ if (TickerTimeout.tags.includes(oldTag)) {
1288
+ TickerTimeout.tags = TickerTimeout.tags.map((t) => t === oldTag ? newTag : t);
1289
+ }
1290
+ }
1121
1291
  }
1122
1292
  /** Edit Tickers Methods */
1123
1293
  /**
@@ -1126,106 +1296,127 @@ var _GameWindowManager = class _GameWindowManager {
1126
1296
  static get currentTickers() {
1127
1297
  return _GameWindowManager._currentTickers;
1128
1298
  }
1299
+ static get currentTickersList() {
1300
+ return Object.values(_GameWindowManager._currentTickers);
1301
+ }
1302
+ static get currentTickersWithoutCreatedBySteps() {
1303
+ return Object.fromEntries(Object.entries(_GameWindowManager._currentTickers).filter(([_, ticker]) => !ticker.createdByTicketStepsId));
1304
+ }
1129
1305
  /**
1130
1306
  * The steps of the tickers
1131
1307
  */
1132
1308
  static get currentTickersSteps() {
1133
1309
  return _GameWindowManager._currentTickersSteps;
1134
1310
  }
1311
+ static generateTickerId(tickerData) {
1312
+ try {
1313
+ return sha1(JSON.stringify(tickerData)).toString() + "_" + Math.random().toString(36).substring(7);
1314
+ } catch (e) {
1315
+ throw new Error(`[Pixi'VN] Error to generate ticker id: ${e}`);
1316
+ }
1317
+ }
1135
1318
  /**
1136
- * Run a ticker.
1319
+ * Run a ticker. You can run multiple addTicker with the same tag and different tickerClasses.
1320
+ * If you run a ticker with the same tag and tickerClass, the old ticker will be removed.
1321
+ * If already exists a sequence of tickers with the same tag, it will be removed.
1137
1322
  * @param canvasEslementTag The tag of the canvas element that will use the ticker.
1138
1323
  * @param ticker The ticker class to be run.
1139
1324
  * @param args The arguments to be used in the ticker.
1140
- * @param duration The time to be used in the ticker. This number is in milliseconds. If it is undefined, the ticker will run forever.
1325
+ * @param duration The time to be used in the ticker. This number is in seconds. If it is undefined, the ticker will run forever.
1141
1326
  * @param priority The priority to be used in the ticker.
1142
1327
  * @returns
1143
1328
  * @example
1144
1329
  * ```typescript
1145
- * GameWindowManager.addTicker("alien", new TickerRotate({ speed: 0.2 }))
1330
+ * GameWindowManager.addTicker("alien", new RotateTicker({ speed: 0.2 }))
1146
1331
  * ```
1147
1332
  */
1148
1333
  static addTicker(canvasElementTag, ticker) {
1149
- let tickerName = ticker.constructor.name;
1334
+ let tickerId = ticker.id;
1150
1335
  if (typeof canvasElementTag === "string") {
1151
1336
  canvasElementTag = [canvasElementTag];
1152
1337
  }
1153
- let t = geTickerInstanceByClassName(tickerName, ticker.args, ticker.duration, ticker.priority);
1154
- if (!t) {
1155
- console.error(`[Pixi'VN] Ticker ${tickerName} not found`);
1338
+ if (!geTickerInstanceById(tickerId, ticker.args, ticker.duration, ticker.priority)) {
1339
+ console.error(`[Pixi'VN] Ticker ${tickerId} not found`);
1156
1340
  return;
1157
1341
  }
1158
- _GameWindowManager.removeAssociationBetweenTickerCanvasElement(canvasElementTag, ticker);
1159
1342
  let tickerHistory = {
1160
1343
  fn: () => {
1161
1344
  },
1162
- className: tickerName,
1163
- args: ticker.args,
1345
+ id: tickerId,
1346
+ args: createExportableElement(ticker.args),
1164
1347
  canvasElementTags: canvasElementTag,
1165
1348
  priority: ticker.priority,
1166
1349
  duration: ticker.duration
1167
1350
  };
1168
- _GameWindowManager.pushTicker(tickerHistory, t);
1169
- _GameWindowManager.removeTickersWithoutAssociatedCanvasElement();
1351
+ let id = _GameWindowManager.generateTickerId(tickerHistory);
1352
+ _GameWindowManager.pushTicker(id, tickerHistory, ticker);
1170
1353
  if (ticker.duration) {
1171
1354
  let timeout = setTimeout(() => {
1172
1355
  _GameWindowManager.removeTickerTimeoutInfo(timeout);
1173
- _GameWindowManager.nextTickerStep(canvasElementTag);
1174
- }, ticker.duration);
1175
- _GameWindowManager.addTickerTimeoutInfo(canvasElementTag, tickerName, timeout.toString());
1356
+ let tickerTimeoutInfo = _GameWindowManager._currentTickersTimeouts[timeout.toString()];
1357
+ if (tickerTimeoutInfo) {
1358
+ _GameWindowManager.removeTicker(id);
1359
+ }
1360
+ }, ticker.duration * 1e3);
1361
+ _GameWindowManager.addTickerTimeoutInfo(canvasElementTag, tickerId, timeout.toString(), true);
1176
1362
  }
1177
1363
  }
1178
- static pushTicker(tickerData, ticker) {
1179
- _GameWindowManager.removeAssociationBetweenTickerCanvasElement(tickerData.canvasElementTags, tickerData);
1180
- _GameWindowManager._currentTickers.push(tickerData);
1364
+ static pushTicker(id, tickerData, ticker) {
1365
+ _GameWindowManager.removeAssociationBetweenTickerCanvasElement(tickerData.canvasElementTags, ticker);
1366
+ _GameWindowManager._currentTickers[id] = tickerData;
1181
1367
  tickerData.fn = (t) => {
1182
- ticker == null ? void 0 : ticker.fn(t, tickerData.args, tickerData.canvasElementTags);
1368
+ let data = _GameWindowManager._currentTickers[id];
1369
+ if (data) {
1370
+ ticker == null ? void 0 : ticker.fn(t, data.args, data.canvasElementTags, id);
1371
+ }
1183
1372
  };
1184
1373
  _GameWindowManager.app.ticker.add(tickerData.fn, void 0, tickerData.priority);
1185
1374
  }
1186
1375
  /**
1187
- * Run a sequence of tickers.
1376
+ * Run a sequence of tickers. If exists a ticker steps with the same tag, it will be removed.
1188
1377
  * @param tag The tag of canvas element that will use the tickers.
1189
1378
  * @param steps The steps of the tickers.
1379
+ * @param currentStepNumber The current step number. It is used to continue the sequence of tickers.
1190
1380
  * @returns
1191
1381
  * @example
1192
1382
  * ```typescript
1193
1383
  * GameWindowManager.addTickersSteps("alien", [
1194
- * new TickerRotate({ speed: 0.1, clockwise: true }, 2000),
1195
- * Pause(500),
1196
- * new TickerRotate({ speed: 0.2, clockwise: false }, 2000),
1384
+ * new RotateTicker({ speed: 0.1, clockwise: true }, 2), // 2 seconds
1385
+ * Pause(1), // 1 second
1386
+ * new RotateTicker({ speed: 0.2, clockwise: false }, 2),
1197
1387
  * Repeat,
1198
1388
  * ])
1199
1389
  * ```
1200
1390
  */
1201
- static addTickersSteps(tag, steps) {
1391
+ static addTickersSteps(tag, steps, currentStepNumber = 0) {
1202
1392
  if (steps.length == 0) {
1203
1393
  console.warn("[Pixi'VN] The steps of the tickers is empty");
1204
1394
  return;
1205
1395
  }
1206
- let alredyExists = _GameWindowManager._currentTickersSteps[tag] !== void 0;
1396
+ _GameWindowManager.removeTickerStepByCanvasElement(tag);
1207
1397
  _GameWindowManager._currentTickersSteps[tag] = {
1208
- currentStepNumber: 0,
1209
- steps: steps.map((s) => {
1210
- if (s === Repeat) {
1211
- return s;
1212
- }
1213
- if (!s.duration) {
1214
- console.warn("[Pixi'VN] Duration is not defined, so it will be set to 1000");
1215
- s.duration = 1e3;
1398
+ currentStepNumber,
1399
+ steps: steps.map((step) => {
1400
+ if (step === Repeat) {
1401
+ return step;
1216
1402
  }
1217
- if (s.hasOwnProperty("type") && s.type === PauseValueType) {
1218
- return s;
1403
+ if (step.hasOwnProperty("type") && step.type === "pause") {
1404
+ return step;
1219
1405
  }
1220
- let tickerName = s.constructor.name;
1406
+ let tickerId = step.id;
1221
1407
  return {
1222
- ticker: tickerName,
1223
- args: s.args,
1224
- duration: s.duration
1408
+ ticker: tickerId,
1409
+ args: createExportableElement(step.args),
1410
+ duration: step.duration
1225
1411
  };
1226
1412
  })
1227
1413
  };
1228
- if (!alredyExists) {
1414
+ _GameWindowManager.runTickersSteps(tag);
1415
+ }
1416
+ static restoneTickersSteps(data) {
1417
+ for (let tag in data) {
1418
+ let steps = data[tag];
1419
+ _GameWindowManager._currentTickersSteps[tag] = steps;
1229
1420
  _GameWindowManager.runTickersSteps(tag);
1230
1421
  }
1231
1422
  }
@@ -1239,70 +1430,106 @@ var _GameWindowManager = class _GameWindowManager {
1239
1430
  return;
1240
1431
  }
1241
1432
  }
1242
- if (step.hasOwnProperty("type") && step.type === PauseValueType) {
1433
+ if (step.hasOwnProperty("type") && step.type === "pause") {
1243
1434
  let timeout = setTimeout(() => {
1435
+ let tickerTimeoutInfo = _GameWindowManager._currentTickersTimeouts[timeout.toString()];
1436
+ if (tickerTimeoutInfo) {
1437
+ tickerTimeoutInfo.tags.forEach((tag2) => {
1438
+ _GameWindowManager.nextTickerStep(tag2);
1439
+ });
1440
+ }
1244
1441
  _GameWindowManager.removeTickerTimeoutInfo(timeout);
1245
- _GameWindowManager.nextTickerStep(tag);
1246
- }, step.duration);
1247
- _GameWindowManager.addTickerTimeoutInfo(tag, "steps", timeout.toString());
1442
+ }, step.duration * 1e3);
1443
+ _GameWindowManager.addTickerTimeoutInfo(tag, "steps", timeout.toString(), false);
1248
1444
  return;
1249
1445
  }
1250
- let ticker = geTickerInstanceByClassName(step.ticker, step.args, step.duration, step.priority);
1446
+ let ticker = geTickerInstanceById(step.ticker, step.args, step.duration, step.priority);
1251
1447
  if (!ticker) {
1252
1448
  console.error(`[Pixi'VN] Ticker ${step.ticker} not found`);
1253
1449
  return;
1254
1450
  }
1255
- _GameWindowManager.addTicker(tag, ticker);
1451
+ let tickerName = ticker.id;
1452
+ let tickerHistory = {
1453
+ fn: () => {
1454
+ },
1455
+ id: tickerName,
1456
+ args: createExportableElement(ticker.args),
1457
+ canvasElementTags: [tag],
1458
+ priority: ticker.priority,
1459
+ duration: ticker.duration,
1460
+ createdByTicketStepsId: tag
1461
+ };
1462
+ let id = _GameWindowManager.generateTickerId(tickerHistory);
1463
+ _GameWindowManager.pushTicker(id, tickerHistory, ticker);
1464
+ if (ticker.duration) {
1465
+ let timeout = setTimeout(() => {
1466
+ let tickerTimeoutInfo = _GameWindowManager._currentTickersTimeouts[timeout.toString()];
1467
+ if (tickerTimeoutInfo) {
1468
+ _GameWindowManager.removeTicker(id);
1469
+ tickerTimeoutInfo.tags.forEach((tag2) => {
1470
+ _GameWindowManager.nextTickerStep(tag2);
1471
+ });
1472
+ }
1473
+ _GameWindowManager.removeTickerTimeoutInfo(timeout);
1474
+ }, ticker.duration * 1e3);
1475
+ _GameWindowManager.addTickerTimeoutInfo(tag, tickerName, timeout.toString(), false);
1476
+ }
1256
1477
  }
1257
1478
  static nextTickerStep(tag) {
1258
- if (typeof tag === "string") {
1259
- tag = [tag];
1479
+ if (_GameWindowManager._currentTickersSteps[tag]) {
1480
+ let steps = _GameWindowManager._currentTickersSteps[tag];
1481
+ if (steps.currentStepNumber + 1 < steps.steps.length) {
1482
+ steps.currentStepNumber++;
1483
+ _GameWindowManager._currentTickersSteps[tag] = steps;
1484
+ _GameWindowManager.runTickersSteps(tag);
1485
+ } else {
1486
+ _GameWindowManager.removeTickerStepByCanvasElement(tag);
1487
+ }
1260
1488
  }
1261
- tag.forEach((tag2) => {
1262
- if (_GameWindowManager._currentTickersSteps[tag2]) {
1263
- let steps = _GameWindowManager._currentTickersSteps[tag2];
1264
- if (steps.currentStepNumber + 1 < steps.steps.length) {
1265
- steps.currentStepNumber++;
1266
- _GameWindowManager._currentTickersSteps[tag2] = steps;
1267
- _GameWindowManager.runTickersSteps(tag2);
1268
- } else {
1269
- delete _GameWindowManager._currentTickersSteps[tag2];
1270
- }
1489
+ }
1490
+ static onEndOfTicker(canvasElementTags, ticker, canvasElementTagsToDelete, tickerId) {
1491
+ let tickerData = _GameWindowManager._currentTickers[tickerId];
1492
+ _GameWindowManager.removeAssociationBetweenTickerCanvasElement(canvasElementTags, ticker);
1493
+ _GameWindowManager.removeCanvasElement(canvasElementTagsToDelete);
1494
+ if (tickerData) {
1495
+ _GameWindowManager.removeTicker(tickerId);
1496
+ if (tickerData.duration == void 0 && tickerData.createdByTicketStepsId) {
1497
+ _GameWindowManager.nextTickerStep(tickerData.createdByTicketStepsId);
1271
1498
  }
1272
- });
1499
+ }
1273
1500
  }
1274
1501
  /**
1275
1502
  * Remove a connection between a canvas element and a ticker.
1276
1503
  * And remove the ticker if there is no canvas element connected to it.
1277
- * @param tag The tag of the canvas element that will use the ticker.
1504
+ * @param tags The tag of the canvas element that will use the ticker.
1278
1505
  * @param ticker The ticker class to be removed.
1279
1506
  * @example
1280
1507
  * ```typescript
1281
- * GameWindowManager.removeAssociationBetweenTickerCanvasElement("alien", TickerRotate)
1508
+ * GameWindowManager.removeAssociationBetweenTickerCanvasElement("alien", RotateTicker)
1282
1509
  * ```
1283
1510
  */
1284
- static removeAssociationBetweenTickerCanvasElement(tag, ticker) {
1285
- let tickerName;
1286
- if (ticker instanceof TickerBase) {
1287
- tickerName = ticker.constructor.name;
1511
+ static removeAssociationBetweenTickerCanvasElement(tags, ticker) {
1512
+ let tickerId;
1513
+ if (typeof ticker === "string") {
1514
+ tickerId = ticker;
1515
+ } else if (ticker instanceof TickerBase) {
1516
+ tickerId = ticker.id;
1288
1517
  } else {
1289
- tickerName = ticker.name;
1518
+ tickerId = ticker.prototype.id;
1290
1519
  }
1291
- if (typeof tag === "string") {
1292
- tag = [tag];
1520
+ if (typeof tags === "string") {
1521
+ tags = [tags];
1293
1522
  }
1294
- _GameWindowManager._currentTickers = _GameWindowManager._currentTickers.map((t) => {
1295
- if (t.className === tickerName) {
1296
- t.canvasElementTags = t.canvasElementTags.filter((e) => !tag.includes(e));
1523
+ for (let id in _GameWindowManager._currentTickers) {
1524
+ let ticker2 = _GameWindowManager._currentTickers[id];
1525
+ if (ticker2.id === tickerId) {
1526
+ _GameWindowManager._currentTickers[id].canvasElementTags = ticker2.canvasElementTags.filter((e) => !tags.includes(e));
1297
1527
  }
1298
- return t;
1299
- });
1300
- for (let timeout in _GameWindowManager.currentTickersTimeouts) {
1301
- let t = _GameWindowManager.currentTickersTimeouts[timeout].tags.filter((e) => !tag.includes(e));
1302
- if (t.length == 0) {
1303
- _GameWindowManager.removeTickerTimeoutInfo(timeout);
1304
- } else {
1305
- _GameWindowManager.currentTickersTimeouts[timeout].tags = t;
1528
+ }
1529
+ for (let timeout in _GameWindowManager._currentTickersTimeouts) {
1530
+ let TickerTimeout = _GameWindowManager._currentTickersTimeouts[timeout];
1531
+ if (TickerTimeout.ticker === tickerId && TickerTimeout.canBeDeletedBeforeEnd) {
1532
+ _GameWindowManager._currentTickersTimeouts[timeout].tags = TickerTimeout.tags.filter((t) => !tags.includes(t));
1306
1533
  }
1307
1534
  }
1308
1535
  _GameWindowManager.removeTickersWithoutAssociatedCanvasElement();
@@ -1311,49 +1538,117 @@ var _GameWindowManager = class _GameWindowManager {
1311
1538
  * Remove all tickers that are not connected to any existing canvas element.
1312
1539
  */
1313
1540
  static removeTickersWithoutAssociatedCanvasElement() {
1314
- let currentTickers = _GameWindowManager._currentTickers.map((t) => {
1315
- t.canvasElementTags = t.canvasElementTags.filter((e) => _GameWindowManager._children[e]);
1316
- return t;
1317
- });
1318
- currentTickers.filter((t) => t.canvasElementTags.length === 0).forEach((t) => {
1319
- _GameWindowManager.app.ticker.remove(t.fn);
1320
- });
1321
- currentTickers = currentTickers.filter((t) => t.canvasElementTags.length > 0);
1322
- _GameWindowManager._currentTickers = currentTickers;
1541
+ for (let id in _GameWindowManager._currentTickers) {
1542
+ let ticker = _GameWindowManager._currentTickers[id];
1543
+ ticker.canvasElementTags = ticker.canvasElementTags.filter((e) => _GameWindowManager._children[e]);
1544
+ if (ticker.canvasElementTags.length === 0) {
1545
+ _GameWindowManager.removeTicker(id);
1546
+ }
1547
+ }
1323
1548
  for (let tag in _GameWindowManager._currentTickersSteps) {
1324
1549
  if (_GameWindowManager._children[tag] === void 0) {
1325
1550
  delete _GameWindowManager._currentTickersSteps[tag];
1326
1551
  }
1327
1552
  }
1553
+ Object.entries(_GameWindowManager._currentTickersTimeouts).forEach(([timeout, { tags }]) => {
1554
+ if (tags.length === 0) {
1555
+ _GameWindowManager.removeTickerTimeout(timeout);
1556
+ }
1557
+ });
1328
1558
  }
1329
- static addTickerTimeoutInfo(tags, ticker, timeout) {
1559
+ static addTickerTimeoutInfo(tags, ticker, timeout, canBeDeletedBeforeEnd) {
1330
1560
  if (typeof tags === "string") {
1331
1561
  tags = [tags];
1332
1562
  }
1333
- _GameWindowManager.currentTickersTimeouts[timeout] = {
1563
+ _GameWindowManager._currentTickersTimeouts[timeout] = {
1334
1564
  tags,
1335
- ticker
1565
+ ticker,
1566
+ canBeDeletedBeforeEnd
1336
1567
  };
1337
1568
  }
1338
1569
  static removeTickerTimeoutInfo(timeout) {
1339
1570
  if (typeof timeout !== "string") {
1340
1571
  timeout = timeout.toString();
1341
1572
  }
1342
- if (_GameWindowManager.currentTickersTimeouts[timeout]) {
1343
- delete _GameWindowManager.currentTickersTimeouts[timeout];
1573
+ if (_GameWindowManager._currentTickersTimeouts[timeout]) {
1574
+ delete _GameWindowManager._currentTickersTimeouts[timeout];
1575
+ }
1576
+ }
1577
+ static removeTickerTimeout(timeout) {
1578
+ if (typeof timeout !== "string") {
1579
+ timeout = timeout.toString();
1580
+ }
1581
+ clearTimeout(Number(timeout));
1582
+ _GameWindowManager.removeTickerTimeoutInfo(timeout);
1583
+ }
1584
+ static removeTickerTimeoutsByTag(tag, checkCanBeDeletedBeforeEnd) {
1585
+ for (let timeout in _GameWindowManager._currentTickersTimeouts) {
1586
+ let tagsWithoutTagToRemove = _GameWindowManager._currentTickersTimeouts[timeout].tags.filter((t) => t !== tag);
1587
+ if (tagsWithoutTagToRemove.length === 0) {
1588
+ let canBeDeletedBeforeEnd = _GameWindowManager._currentTickersTimeouts[timeout].canBeDeletedBeforeEnd;
1589
+ if (!checkCanBeDeletedBeforeEnd || canBeDeletedBeforeEnd) {
1590
+ _GameWindowManager.removeTickerTimeout(timeout);
1591
+ }
1592
+ } else {
1593
+ _GameWindowManager._currentTickersTimeouts[timeout].tags = tagsWithoutTagToRemove;
1594
+ }
1344
1595
  }
1345
1596
  }
1346
1597
  /**
1347
1598
  * Remove all tickers from the canvas.
1348
1599
  */
1349
- static removeTickers() {
1600
+ static removeAllTickers() {
1350
1601
  _GameWindowManager._currentTickersSteps = {};
1351
- _GameWindowManager._currentTickers.forEach((t) => {
1352
- _GameWindowManager.app.ticker.remove(t.fn);
1602
+ Object.keys(_GameWindowManager._currentTickers).forEach((id) => {
1603
+ _GameWindowManager.removeTicker(id);
1604
+ });
1605
+ _GameWindowManager._currentTickers = {};
1606
+ for (let timeout in _GameWindowManager._currentTickersTimeouts) {
1607
+ _GameWindowManager.removeTickerTimeout(timeout);
1608
+ }
1609
+ }
1610
+ /**
1611
+ * Remove all tickers from a canvas element.
1612
+ * @param tag The tag of the canvas element that will use the ticker.
1613
+ */
1614
+ static removeTickerByCanvasElement(tag) {
1615
+ if (typeof tag === "string") {
1616
+ tag = [tag];
1617
+ }
1618
+ tag.forEach((tag2) => {
1619
+ for (let id in _GameWindowManager._currentTickers) {
1620
+ let ticker = _GameWindowManager._currentTickers[id];
1621
+ if (ticker.canvasElementTags.includes(tag2)) {
1622
+ _GameWindowManager.removeTicker(id);
1623
+ }
1624
+ }
1625
+ if (_GameWindowManager._currentTickersSteps[tag2]) {
1626
+ delete _GameWindowManager._currentTickersSteps[tag2];
1627
+ }
1628
+ _GameWindowManager.removeTickerTimeoutsByTag(tag2, false);
1629
+ delete _GameWindowManager._currentTickersSteps[tag2];
1353
1630
  });
1354
- _GameWindowManager._currentTickers = [];
1355
- for (let timeout in _GameWindowManager.currentTickersTimeouts) {
1356
- _GameWindowManager.removeTickerTimeoutInfo(timeout);
1631
+ }
1632
+ static removeTickerStepByCanvasElement(tag) {
1633
+ if (_GameWindowManager._currentTickersSteps[tag]) {
1634
+ delete _GameWindowManager._currentTickersSteps[tag];
1635
+ }
1636
+ for (let id in _GameWindowManager._currentTickers) {
1637
+ let ticker = _GameWindowManager._currentTickers[id];
1638
+ if (ticker.createdByTicketStepsId === tag) {
1639
+ _GameWindowManager.removeTicker(id);
1640
+ }
1641
+ }
1642
+ }
1643
+ static removeTicker(tickerId) {
1644
+ let ticker = _GameWindowManager._currentTickers[tickerId];
1645
+ if (ticker) {
1646
+ if (ticker.args.hasOwnProperty(tagToRemoveAfter)) {
1647
+ let tagToRemoveAfter2 = ticker.args.tagToRemoveAfter;
1648
+ _GameWindowManager.removeCanvasElement(tagToRemoveAfter2);
1649
+ }
1650
+ _GameWindowManager.app.ticker.remove(ticker.fn);
1651
+ delete _GameWindowManager._currentTickers[tickerId];
1357
1652
  }
1358
1653
  }
1359
1654
  /**
@@ -1380,7 +1675,8 @@ var _GameWindowManager = class _GameWindowManager {
1380
1675
  currentElements[tag] = exportCanvasElement(_GameWindowManager._children[tag]);
1381
1676
  }
1382
1677
  return {
1383
- currentTickers: createExportableElement(_GameWindowManager._currentTickers),
1678
+ currentTickers: createExportableElement(_GameWindowManager.currentTickersWithoutCreatedBySteps),
1679
+ currentTickersSteps: createExportableElement(_GameWindowManager._currentTickersSteps),
1384
1680
  currentElements: createExportableElement(currentElements),
1385
1681
  childrenTagsOrder: createExportableElement(_GameWindowManager.childrenTagsOrder)
1386
1682
  };
@@ -1415,15 +1711,20 @@ var _GameWindowManager = class _GameWindowManager {
1415
1711
  }
1416
1712
  if (data.hasOwnProperty("currentTickers")) {
1417
1713
  let currentTickers = data["currentTickers"];
1418
- currentTickers.forEach((t) => {
1714
+ for (let id in currentTickers) {
1715
+ let t = currentTickers[id];
1419
1716
  let tags = t.canvasElementTags;
1420
- let ticker = geTickerInstanceByClassName(t.className, t.args, t.duration, t.priority);
1717
+ let ticker = geTickerInstanceById(t.id, t.args, t.duration, t.priority);
1421
1718
  if (ticker) {
1422
1719
  _GameWindowManager.addTicker(tags, ticker);
1423
1720
  } else {
1424
- console.error(`[Pixi'VN] Ticker ${t.className} not found`);
1721
+ console.error(`[Pixi'VN] Ticker ${t.id} not found`);
1425
1722
  }
1426
- });
1723
+ }
1724
+ }
1725
+ if (data.hasOwnProperty("currentTickersSteps")) {
1726
+ let currentTickersSteps = data["currentTickersSteps"];
1727
+ _GameWindowManager.restoneTickersSteps(currentTickersSteps);
1427
1728
  }
1428
1729
  } catch (e) {
1429
1730
  console.error("[Pixi'VN] Error importing data", e);
@@ -1437,16 +1738,16 @@ _GameWindowManager._children = {};
1437
1738
  * The order of the children tags.
1438
1739
  */
1439
1740
  _GameWindowManager.childrenTagsOrder = [];
1440
- _GameWindowManager._currentTickers = [];
1741
+ _GameWindowManager._currentTickers = {};
1441
1742
  _GameWindowManager._currentTickersSteps = {};
1442
- _GameWindowManager.currentTickersTimeouts = {};
1743
+ _GameWindowManager._currentTickersTimeouts = {};
1443
1744
  var GameWindowManager = _GameWindowManager;
1444
1745
 
1445
1746
  // src/decorators/LabelDecorator.ts
1446
1747
  var registeredLabels = {};
1447
1748
  function newLabel(id, steps, onStepRun) {
1448
1749
  if (registeredLabels[id]) {
1449
- console.warn(`[Pixi'VN] Label ${id} already exists, it will be overwritten`);
1750
+ console.info(`[Pixi'VN] Label ${id} already exists, it will be overwritten`);
1450
1751
  }
1451
1752
  let label = new Label(id, steps, onStepRun);
1452
1753
  registeredLabels[id] = label;