@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,
@@ -207,40 +216,43 @@ function getTextStyle(style) {
207
216
 
208
217
  // src/decorators/EventDecorator.ts
209
218
  var registeredEvents = {};
210
- function getEventTypeByClassName(eventName) {
219
+ function getEventTypeById(eventId) {
211
220
  try {
212
- let eventType = registeredEvents[eventName];
221
+ let eventType = registeredEvents[eventId];
213
222
  if (!eventType) {
214
- console.error(`[Pixi'VN] Event ${eventName} not found`);
223
+ console.error(`[Pixi'VN] Event ${eventId} not found`);
215
224
  return;
216
225
  }
217
226
  new eventType();
218
227
  return eventType;
219
228
  } catch (e) {
220
- console.error(`[Pixi'VN] Error while getting Event ${eventName}`, e);
229
+ console.error(`[Pixi'VN] Error while getting Event ${eventId}`, e);
221
230
  return;
222
231
  }
223
232
  }
224
- function getEventInstanceByClassName(eventName) {
233
+ function getEventInstanceById(eventId) {
225
234
  try {
226
- let eventType = registeredEvents[eventName];
235
+ let eventType = registeredEvents[eventId];
227
236
  if (!eventType) {
228
- console.error(`[Pixi'VN] Event ${eventName} not found`);
237
+ console.error(`[Pixi'VN] Event ${eventId} not found`);
229
238
  return;
230
239
  }
231
240
  let event = new eventType();
232
241
  return event;
233
242
  } catch (e) {
234
- console.error(`[Pixi'VN] Error while getting Event ${eventName}`, e);
243
+ console.error(`[Pixi'VN] Error while getting Event ${eventId}`, e);
235
244
  return;
236
245
  }
237
246
  }
238
247
 
239
248
  // src/classes/canvas/CanvasSprite.ts
249
+ var CANVAS_SPRITE_ID = "CanvasSprite";
240
250
  var CanvasSprite = class _CanvasSprite extends Sprite {
241
- constructor() {
242
- super(...arguments);
251
+ constructor(options) {
252
+ super(options);
253
+ this.pixivnId = CANVAS_SPRITE_ID;
243
254
  this._onEvents = {};
255
+ this.pixivnId = this.constructor.prototype.pixivnId;
244
256
  }
245
257
  get memory() {
246
258
  return getMemorySprite(this);
@@ -281,9 +293,9 @@ var CanvasSprite = class _CanvasSprite extends Sprite {
281
293
  * ```
282
294
  */
283
295
  onEvent(event, eventClass) {
284
- let className = eventClass.name;
285
- let instance = getEventInstanceByClassName(className);
286
- this._onEvents[event] = className;
296
+ let id = eventClass.prototype.id;
297
+ let instance = getEventInstanceById(id);
298
+ this._onEvents[event] = id;
287
299
  if (instance) {
288
300
  super.on(event, () => {
289
301
  instance.fn(event, this);
@@ -312,7 +324,7 @@ var CanvasSprite = class _CanvasSprite extends Sprite {
312
324
  function getMemorySprite(element) {
313
325
  let temp = getMemoryContainer(element);
314
326
  return __spreadProps(__spreadValues({}, temp), {
315
- className: "CanvasSprite",
327
+ pixivnId: element.pixivnId,
316
328
  textureImage: getTextureMemory(element.texture),
317
329
  anchor: { x: element.anchor.x, y: element.anchor.y },
318
330
  roundPixels: element.roundPixels,
@@ -335,8 +347,8 @@ function setMemorySprite(element, memory) {
335
347
  }
336
348
  memory.roundPixels && (element.roundPixels = memory.roundPixels);
337
349
  for (let event in memory.onEvents) {
338
- let className = memory.onEvents[event];
339
- let instance = getEventTypeByClassName(className);
350
+ let id = memory.onEvents[event];
351
+ let instance = getEventTypeById(id);
340
352
  if (instance) {
341
353
  element.onEvent(event, instance);
342
354
  }
@@ -344,9 +356,11 @@ function setMemorySprite(element, memory) {
344
356
  }
345
357
 
346
358
  // src/classes/canvas/CanvasImage.ts
359
+ var CANVAS_IMAGE_ID = "CanvasImage";
347
360
  var CanvasImage = class _CanvasImage extends CanvasSprite {
348
361
  constructor(options, imageLink) {
349
362
  super(options);
363
+ this.pixivnId = CANVAS_IMAGE_ID;
350
364
  this.imageLink = "";
351
365
  if (imageLink) {
352
366
  this.imageLink = imageLink;
@@ -354,12 +368,13 @@ var CanvasImage = class _CanvasImage extends CanvasSprite {
354
368
  }
355
369
  get memory() {
356
370
  return __spreadProps(__spreadValues({}, getMemorySprite(this)), {
357
- className: "CanvasImage",
358
- textureImage: { image: this.imageLink }
371
+ pixivnId: this.pixivnId,
372
+ imageLink: this.imageLink
359
373
  });
360
374
  }
361
375
  set memory(memory) {
362
376
  setMemorySprite(this, memory);
377
+ this.imageLink = memory.imageLink;
363
378
  }
364
379
  static from(source, skipCache) {
365
380
  let sprite = Sprite.from(source, skipCache);
@@ -387,10 +402,13 @@ var CanvasImage = class _CanvasImage extends CanvasSprite {
387
402
  });
388
403
  }
389
404
  };
405
+ var CANVAS_TEXT_ID = "CanvasText";
390
406
  var CanvasText = class extends Text {
391
- constructor() {
392
- super(...arguments);
407
+ constructor(options) {
408
+ super(options);
409
+ this.pixivnId = CANVAS_TEXT_ID;
393
410
  this._onEvents = {};
411
+ this.pixivnId = this.constructor.prototype.pixivnId;
394
412
  }
395
413
  get memory() {
396
414
  return getMemoryText(this);
@@ -431,9 +449,9 @@ var CanvasText = class extends Text {
431
449
  * ```
432
450
  */
433
451
  onEvent(event, eventClass) {
434
- let className = eventClass.name;
435
- let instance = getEventInstanceByClassName(className);
436
- this._onEvents[event] = className;
452
+ let id = eventClass.prototype.id;
453
+ let instance = getEventInstanceById(id);
454
+ this._onEvents[event] = id;
437
455
  if (instance) {
438
456
  super.on(event, () => {
439
457
  instance.fn(event, this);
@@ -456,7 +474,7 @@ var CanvasText = class extends Text {
456
474
  function getMemoryText(element) {
457
475
  let temp = getMemoryContainer(element);
458
476
  return __spreadProps(__spreadValues({}, temp), {
459
- className: "CanvasText",
477
+ pixivnId: element.pixivnId,
460
478
  anchor: { x: element.anchor.x, y: element.anchor.y },
461
479
  text: element.text,
462
480
  resolution: element.resolution,
@@ -479,8 +497,8 @@ function setMemoryText(element, memory) {
479
497
  memory.style && (element.style = memory.style);
480
498
  memory.roundPixels && (element.roundPixels = memory.roundPixels);
481
499
  for (let event in memory.onEvents) {
482
- let className = memory.onEvents[event];
483
- let instance = getEventTypeByClassName(className);
500
+ let id = memory.onEvents[event];
501
+ let instance = getEventTypeById(id);
484
502
  if (instance) {
485
503
  element.onEvent(event, instance);
486
504
  }
@@ -489,28 +507,28 @@ function setMemoryText(element, memory) {
489
507
 
490
508
  // src/decorators/CanvasElementDecorator.ts
491
509
  var registeredCanvasElement = {};
492
- function getCanvasElementInstanceByClassName(canvasName) {
510
+ function getCanvasElementInstanceById(canvasId) {
493
511
  try {
494
- let eventType = registeredCanvasElement[canvasName];
512
+ let eventType = registeredCanvasElement[canvasId];
495
513
  if (!eventType) {
496
- if (canvasName === "CanvasContainer") {
514
+ if (canvasId === CANVAS_CONTAINER_ID) {
497
515
  eventType = CanvasContainer;
498
- } else if (canvasName === "CanvasImage") {
516
+ } else if (canvasId === CANVAS_IMAGE_ID) {
499
517
  eventType = CanvasImage;
500
- } else if (canvasName === "CanvasSprite") {
518
+ } else if (canvasId === CANVAS_SPRITE_ID) {
501
519
  eventType = CanvasSprite;
502
- } else if (canvasName === "CanvasText") {
520
+ } else if (canvasId === CANVAS_TEXT_ID) {
503
521
  eventType = CanvasText;
504
522
  }
505
523
  }
506
524
  if (!eventType) {
507
- console.error(`[Pixi'VN] CanvasElement ${canvasName} not found`);
525
+ console.error(`[Pixi'VN] CanvasElement ${canvasId} not found`);
508
526
  return;
509
527
  }
510
528
  let canvasElement = new eventType();
511
529
  return canvasElement;
512
530
  } catch (e) {
513
- console.error(`[Pixi'VN] Error while getting CanvasElement ${canvasName}`, e);
531
+ console.error(`[Pixi'VN] Error while getting CanvasElement ${canvasId}`, e);
514
532
  return;
515
533
  }
516
534
  }
@@ -533,7 +551,7 @@ var Label = class {
533
551
  this._choiseIndex = choiseIndex;
534
552
  }
535
553
  /**
536
- * Get the id of the label
554
+ * Get the id of the label. This variable is used in the system to get the label by id, {@link getLabelById}
537
555
  */
538
556
  get id() {
539
557
  return this._id;
@@ -594,49 +612,46 @@ function newCloseLabel(choiseIndex) {
594
612
  // src/types/CloseType.ts
595
613
  var Close = "close";
596
614
 
597
- // src/types/PauseType.ts
598
- var PauseValueType = "pause";
599
-
600
- // src/types/RepeatType.ts
601
- var Repeat = "repeat";
602
-
603
615
  // src/classes/ticker/TickerBase.ts
604
616
  var TickerBase = class {
605
617
  /**
606
618
  * @param args The arguments that you want to pass to the ticker.
607
- * @param duration The duration of the ticker. If is undefined, the ticker will be called every frame.
608
- * @param priority The priority of the ticker. If is undefined, the priority will be UPDATE_PRIORITY.NORMAL.
619
+ * @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
620
+ * @param priority The priority of the ticker. @default UPDATE_PRIORITY.NORMAL
609
621
  */
610
622
  constructor(args, duration, priority) {
623
+ /**
624
+ * Get the id of the ticker. This variable is used in the system to get the ticker by id, {@link geTickerInstanceById}
625
+ */
626
+ this.id = "ticker_id_not_set";
611
627
  this.args = args;
612
628
  this.duration = duration;
613
629
  this.priority = priority;
630
+ this.id = this.constructor.prototype.id;
614
631
  }
615
632
  /**
616
633
  * The method that will be called every frame.
617
634
  * This method should be overridden and you can use GameWindowManager.addCanvasElement() to get the canvas element of the canvas, and edit them.
618
- * @param t The ticker that is calling this method
619
- * @param args The arguments that you passed when you added the ticker
620
- * @param tags The tags of the canvas elements that are connected to this ticker
635
+ * @param _ticker The ticker that is calling this method
636
+ * @param _args The arguments that you passed when you added the ticker
637
+ * @param _tags The tags of the canvas elements that are connected to this ticker
638
+ * @param _tickerId The id of the ticker. You can use this to get the ticker from the {@link GameWindowManager.currentTickers}
621
639
  */
622
- fn(_t, _args, _tags) {
640
+ fn(_ticker, _args, _tags, _tickerId) {
623
641
  throw new Error("[Pixi'VN] The method TickerBase.fn() must be overridden");
624
642
  }
625
643
  };
626
- var TickerFadeAlpha = class extends TickerBase {
627
- /**
628
- * The method that will be called every frame to fade the alpha of the canvas element of the canvas.
629
- * @param delta The delta time
630
- * @param args The arguments that are passed to the ticker
631
- * @param tags The tags of the canvas element that are connected to this ticker
632
- */
633
- fn(t, args, tags) {
644
+
645
+ // src/classes/ticker/FadeAlphaTicker.ts
646
+ var FadeAlphaTicker = class extends TickerBase {
647
+ fn(ticker, args, tags, tickerId) {
634
648
  let type = args.type === void 0 ? "hide" : args.type;
635
- let speed = args.speed === void 0 ? 0.1 : args.speed;
649
+ let duration = args.duration === void 0 ? 1 : args.duration;
650
+ let speed = 1 / (duration * 60);
636
651
  let limit = args.limit === void 0 ? type === "hide" ? 0 : 1 : args.limit;
637
- let removeElementAfter = args.tagToRemoveAfter || [];
638
- if (typeof removeElementAfter === "string") {
639
- removeElementAfter = [removeElementAfter];
652
+ let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
653
+ if (typeof tagToRemoveAfter2 === "string") {
654
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
640
655
  }
641
656
  if (type === "hide" && limit < 0) {
642
657
  limit = 0;
@@ -657,61 +672,88 @@ var TickerFadeAlpha = class extends TickerBase {
657
672
  let element = GameWindowManager.getCanvasElement(tag);
658
673
  if (element && element instanceof Container) {
659
674
  if (type === "show" && element.alpha < limit) {
660
- element.alpha += speed * t.deltaTime;
675
+ element.alpha += speed * ticker.deltaTime;
661
676
  } else if (type === "hide" && element.alpha > limit) {
662
- element.alpha -= speed * t.deltaTime;
663
- } else {
677
+ element.alpha -= speed * ticker.deltaTime;
678
+ }
679
+ if (type === "show" && element.alpha >= limit) {
680
+ element.alpha = limit;
681
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
682
+ } else if (type === "hide" && element.alpha <= limit) {
664
683
  element.alpha = limit;
665
- GameWindowManager.removeAssociationBetweenTickerCanvasElement(tag, this);
666
- GameWindowManager.removeCanvasElement(removeElementAfter);
684
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
667
685
  }
668
686
  }
669
687
  });
670
688
  }
671
689
  };
672
- TickerFadeAlpha = __decorateClass([
690
+ FadeAlphaTicker = __decorateClass([
673
691
  tickerDecorator()
674
- ], TickerFadeAlpha);
692
+ ], FadeAlphaTicker);
675
693
 
676
694
  // src/functions/TickerUtility.ts
677
695
  function updateTickerProgression(args, propertyName, progression) {
678
- if (args.hasOwnProperty(propertyName) && typeof args[propertyName] !== "number") {
696
+ if (args[propertyName] === void 0 || !progression || args[propertyName] === progression.limit) {
679
697
  return;
680
698
  }
681
- if (args[propertyName] !== void 0 && progression && args[propertyName] !== progression.limit) {
699
+ if (typeof args[propertyName] === "number") {
682
700
  if (progression.type === "linear") {
683
- args[propertyName] += progression.amt;
684
- if (progression.limit !== void 0) {
685
- if (args[propertyName] > progression.limit && progression.amt > 0) {
686
- args[propertyName] = progression.limit;
687
- } else if (args[propertyName] < progression.limit && progression.amt < 0) {
688
- args[propertyName] = progression.limit;
689
- }
690
- }
701
+ args[propertyName] = getLinearProgression(args[propertyName], progression);
691
702
  } else if (progression.type === "exponential") {
692
- args[propertyName] += args[propertyName] * progression.percentage;
693
- if (progression.limit !== void 0) {
694
- if (args[propertyName] > progression.limit && progression.percentage > 0) {
695
- args[propertyName] = progression.limit;
696
- } else if (args[propertyName] < progression.limit && progression.percentage < 0) {
697
- args[propertyName] = progression.limit;
698
- }
699
- }
703
+ args[propertyName] = getExponentialProgression(args[propertyName], progression);
704
+ }
705
+ } 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") {
706
+ if (progression.type === "linear") {
707
+ args[propertyName].x = getLinearProgression(args[propertyName].x, progression);
708
+ args[propertyName].y = getLinearProgression(args[propertyName].y, progression);
709
+ } else if (progression.type === "exponential") {
710
+ args[propertyName].x = getExponentialProgression(args[propertyName].x, progression);
711
+ args[propertyName].y = getExponentialProgression(args[propertyName].y, progression);
712
+ }
713
+ }
714
+ }
715
+ function getLinearProgression(number, progression) {
716
+ if (progression.limit !== void 0) {
717
+ if (number > progression.limit && progression.amt > 0) {
718
+ return progression.limit;
719
+ } else if (number < progression.limit && progression.amt < 0) {
720
+ return progression.limit;
700
721
  }
701
722
  }
723
+ return number + progression.amt / 60;
724
+ }
725
+ function getExponentialProgression(number, progression) {
726
+ if (progression.limit !== void 0) {
727
+ if (number > progression.limit && progression.percentage > 0) {
728
+ return progression.limit;
729
+ } else if (number < progression.limit && progression.percentage < 0) {
730
+ return progression.limit;
731
+ }
732
+ }
733
+ return number + number * progression.percentage;
702
734
  }
703
735
 
704
- // src/classes/ticker/TickerMove.ts
705
- var TickerMove = class extends TickerBase {
706
- /**
707
- * The method that will be called every frame to move the canvas element of the canvas.
708
- * @param t The ticker that is calling this method
709
- * @param args The arguments that are passed to the ticker
710
- * @param tags The tags of the canvas element that are connected to this ticker
711
- */
712
- fn(t, args, tags) {
713
- let speed = args.speed === void 0 ? 0.1 : args.speed;
736
+ // src/classes/ticker/MoveTicker.ts
737
+ var MoveTicker = class extends TickerBase {
738
+ fn(ticker, args, tags, tickerId) {
739
+ let xSpeed = 1;
740
+ let ySpeed = 1;
741
+ if (args.speed) {
742
+ if (typeof args.speed === "number") {
743
+ xSpeed = args.speed;
744
+ ySpeed = args.speed;
745
+ } else {
746
+ xSpeed = args.speed.x;
747
+ ySpeed = args.speed.y;
748
+ }
749
+ }
750
+ xSpeed /= 60;
751
+ ySpeed /= 60;
714
752
  let destination = args.destination;
753
+ let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
754
+ if (typeof tagToRemoveAfter2 === "string") {
755
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
756
+ }
715
757
  tags.filter((tag) => {
716
758
  var _a;
717
759
  let element = GameWindowManager.getCanvasElement(tag);
@@ -724,41 +766,42 @@ var TickerMove = class extends TickerBase {
724
766
  }).forEach((tag) => {
725
767
  let element = GameWindowManager.getCanvasElement(tag);
726
768
  if (element && element instanceof Container) {
727
- let xDistance = destination.x - element.x;
769
+ let xDistance = destination.x - element.x > 0 ? 1 : -1;
728
770
  if (xDistance != 0) {
729
- element.x += xDistance / speed * t.deltaTime;
771
+ element.x += xDistance * xSpeed * ticker.deltaTime;
730
772
  let newDistance = destination.x - element.x;
731
773
  if (xDistance < 0 && newDistance > 0 || xDistance > 0 && newDistance < 0) {
732
774
  element.x = destination.x;
733
775
  }
734
776
  }
735
- let yDistance = destination.y - element.y;
777
+ let yDistance = destination.y - element.y > 0 ? 1 : -1;
736
778
  if (yDistance != 0) {
737
- element.y += yDistance / speed * t.deltaTime;
779
+ element.y += yDistance * ySpeed * ticker.deltaTime;
738
780
  let newDistance = destination.y - element.y;
739
781
  if (yDistance < 0 && newDistance > 0 || yDistance > 0 && newDistance < 0) {
740
782
  element.y = destination.y;
741
783
  }
742
784
  }
785
+ if (element.x == destination.x && element.y == destination.y) {
786
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
787
+ }
743
788
  }
744
789
  });
745
790
  if (args.speedProgression)
746
791
  updateTickerProgression(args, "speed", args.speedProgression);
747
792
  }
748
793
  };
749
- TickerMove = __decorateClass([
794
+ MoveTicker = __decorateClass([
750
795
  tickerDecorator()
751
- ], TickerMove);
752
- var TickerRotate = class extends TickerBase {
753
- /**
754
- * The method that will be called every frame to rotate the canvas element of the canvas.
755
- * @param delta The delta time
756
- * @param args The arguments that are passed to the ticker
757
- * @param tags The tags of the canvas element that are connected to this ticker
758
- */
759
- fn(t, args, tags) {
760
- let speed = args.speed === void 0 ? 0.1 : args.speed;
796
+ ], MoveTicker);
797
+ var RotateTicker = class extends TickerBase {
798
+ fn(ticker, args, tags, tickerId) {
799
+ let speed = (args.speed === void 0 ? 1 : args.speed) / 60;
761
800
  let clockwise = args.clockwise === void 0 ? true : args.clockwise;
801
+ let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
802
+ if (typeof tagToRemoveAfter2 === "string") {
803
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
804
+ }
762
805
  tags.filter((tag) => {
763
806
  var _a;
764
807
  let element = GameWindowManager.getCanvasElement(tag);
@@ -772,18 +815,114 @@ var TickerRotate = class extends TickerBase {
772
815
  let element = GameWindowManager.getCanvasElement(tag);
773
816
  if (element && element instanceof Container) {
774
817
  if (clockwise)
775
- element.rotation += speed * t.deltaTime;
818
+ element.rotation += speed * ticker.deltaTime;
776
819
  else
777
- element.rotation -= speed * t.deltaTime;
820
+ element.rotation -= speed * ticker.deltaTime;
821
+ if (speed < 1e-5 && !(args.speedProgression && args.speedProgression.type == "linear" && args.speedProgression.amt != 0)) {
822
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
823
+ }
824
+ }
825
+ });
826
+ if (args.speedProgression)
827
+ updateTickerProgression(args, "speed", args.speedProgression);
828
+ }
829
+ };
830
+ RotateTicker = __decorateClass([
831
+ tickerDecorator()
832
+ ], RotateTicker);
833
+ var ZoomTicker = class extends TickerBase {
834
+ fn(ticker, args, tags, tickerId) {
835
+ let xSpeed = 0.1;
836
+ let ySpeed = 0.1;
837
+ if (args.speed) {
838
+ if (typeof args.speed === "number") {
839
+ xSpeed = args.speed;
840
+ ySpeed = args.speed;
841
+ } else {
842
+ xSpeed = args.speed.x;
843
+ ySpeed = args.speed.y;
844
+ }
845
+ }
846
+ xSpeed /= 60;
847
+ ySpeed /= 60;
848
+ let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
849
+ if (typeof tagToRemoveAfter2 === "string") {
850
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
851
+ }
852
+ let type = args.type || "zoom";
853
+ let xLimit = type === "zoom" ? Infinity : 0;
854
+ let yLimit = type === "zoom" ? Infinity : 0;
855
+ if (args.limit) {
856
+ if (typeof args.limit === "number") {
857
+ xLimit = args.limit;
858
+ yLimit = args.limit;
859
+ } else {
860
+ xLimit = args.limit.x;
861
+ yLimit = args.limit.y;
862
+ }
863
+ }
864
+ tags.filter((tag) => {
865
+ var _a;
866
+ let element = GameWindowManager.getCanvasElement(tag);
867
+ if (args.startOnlyIfHaveTexture) {
868
+ if (element && element instanceof Sprite && ((_a = element.texture) == null ? void 0 : _a.label) == "EMPTY") {
869
+ return false;
870
+ }
871
+ }
872
+ return true;
873
+ }).forEach((tag) => {
874
+ let element = GameWindowManager.getCanvasElement(tag);
875
+ if (element && element instanceof Container) {
876
+ if (type === "zoom" && (element.scale.x < xLimit || element.scale.y < yLimit)) {
877
+ element.scale.x += xSpeed * ticker.deltaTime;
878
+ element.scale.y += ySpeed * ticker.deltaTime;
879
+ } else if (type === "unzoom" && (element.scale.x > xLimit || element.scale.y > yLimit)) {
880
+ element.scale.x -= xSpeed * ticker.deltaTime;
881
+ element.scale.y -= ySpeed * ticker.deltaTime;
882
+ }
883
+ if (type === "zoom") {
884
+ if (element.scale.x > xLimit) {
885
+ element.scale.x = xLimit;
886
+ }
887
+ if (element.scale.y > yLimit) {
888
+ element.scale.y = yLimit;
889
+ }
890
+ if (element.scale.x >= xLimit && element.scale.y >= yLimit) {
891
+ element.scale.x = xLimit;
892
+ element.scale.y = yLimit;
893
+ this.onEndOfTicker(tag, tickerId, element, tagToRemoveAfter2);
894
+ }
895
+ } else if (type === "unzoom") {
896
+ if (element.scale.x < xLimit) {
897
+ element.scale.x = xLimit;
898
+ }
899
+ if (element.scale.y < yLimit) {
900
+ element.scale.y = yLimit;
901
+ }
902
+ if (element.scale.x <= xLimit && element.scale.y <= yLimit) {
903
+ element.scale.x = xLimit;
904
+ element.scale.y = yLimit;
905
+ this.onEndOfTicker(tag, tickerId, element, tagToRemoveAfter2);
906
+ }
907
+ }
908
+ if (xSpeed < 1e-5 && ySpeed < 1e-5 && !(args.speedProgression && args.speedProgression.type == "linear" && args.speedProgression.amt != 0)) {
909
+ this.onEndOfTicker(tag, tickerId, element, tagToRemoveAfter2);
910
+ }
778
911
  }
779
912
  });
780
913
  if (args.speedProgression)
781
914
  updateTickerProgression(args, "speed", args.speedProgression);
782
915
  }
916
+ onEndOfTicker(tag, tickerId, _element, tagToRemoveAfter2) {
917
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
918
+ }
783
919
  };
784
- TickerRotate = __decorateClass([
920
+ ZoomTicker = __decorateClass([
785
921
  tickerDecorator()
786
- ], TickerRotate);
922
+ ], ZoomTicker);
923
+
924
+ // src/constants.ts
925
+ var Repeat = "repeat";
787
926
 
788
927
  // src/functions/ExportUtility.ts
789
928
  function createExportableElement(element) {
@@ -804,21 +943,22 @@ function tickerDecorator(name) {
804
943
  name = target.name;
805
944
  }
806
945
  if (registeredTickers[name]) {
807
- console.warn(`[Pixi'VN] Ticker ${name} already exists, it will be overwritten`);
946
+ console.info(`[Pixi'VN] Ticker ${name} already exists, it will be overwritten`);
808
947
  }
948
+ target.prototype.id = name;
809
949
  registeredTickers[name] = target;
810
950
  };
811
951
  }
812
- function geTickerInstanceByClassName(tickerName, args, duration, priority) {
952
+ function geTickerInstanceById(tickerId, args, duration, priority) {
813
953
  try {
814
- let ticker = registeredTickers[tickerName];
954
+ let ticker = registeredTickers[tickerId];
815
955
  if (!ticker) {
816
- console.error(`[Pixi'VN] Ticker ${tickerName} not found`);
956
+ console.error(`[Pixi'VN] Ticker ${tickerId} not found`);
817
957
  return;
818
958
  }
819
959
  return new ticker(args, duration, priority);
820
960
  } catch (e) {
821
- console.error(`[Pixi'VN] Error while getting Ticker ${tickerName}`, e);
961
+ console.error(`[Pixi'VN] Error while getting Ticker ${tickerId}`, e);
822
962
  return;
823
963
  }
824
964
  }
@@ -834,6 +974,9 @@ function asciiArtLog() {
834
974
  `);
835
975
  }
836
976
 
977
+ // src/types/ticker/TagToRemoveAfterType.ts
978
+ var tagToRemoveAfter = "tagToRemoveAfter";
979
+
837
980
  // src/managers/WindowManager.ts
838
981
  var _GameWindowManager = class _GameWindowManager {
839
982
  constructor() {
@@ -1016,25 +1159,25 @@ var _GameWindowManager = class _GameWindowManager {
1016
1159
  /**
1017
1160
  * Remove a canvas element from the canvas.
1018
1161
  * And remove all tickers that are not connected to any canvas element.
1019
- * @param tag The tag of the canvas element to be removed.
1162
+ * @param tags The tag of the canvas element to be removed.
1020
1163
  * @returns
1021
1164
  * @example
1022
1165
  * ```typescript
1023
1166
  * GameWindowManager.removeCanvasElement("bunny");
1024
1167
  * ```
1025
1168
  */
1026
- static removeCanvasElement(tag) {
1027
- if (typeof tag === "string") {
1028
- tag = [tag];
1169
+ static removeCanvasElement(tags) {
1170
+ if (typeof tags === "string") {
1171
+ tags = [tags];
1029
1172
  }
1030
- tag.forEach((t) => {
1031
- if (_GameWindowManager._children[t]) {
1032
- _GameWindowManager.app.stage.removeChild(_GameWindowManager._children[t]);
1033
- delete _GameWindowManager._children[t];
1173
+ tags.forEach((tag) => {
1174
+ if (_GameWindowManager._children[tag]) {
1175
+ _GameWindowManager.app.stage.removeChild(_GameWindowManager._children[tag]);
1176
+ delete _GameWindowManager._children[tag];
1177
+ _GameWindowManager.removeTickerByCanvasElement(tag);
1034
1178
  }
1035
1179
  });
1036
- _GameWindowManager.removeTickersWithoutAssociatedCanvasElement();
1037
- _GameWindowManager.childrenTagsOrder = _GameWindowManager.childrenTagsOrder.filter((t) => !tag.includes(t));
1180
+ _GameWindowManager.childrenTagsOrder = _GameWindowManager.childrenTagsOrder.filter((t) => !tags.includes(t));
1038
1181
  }
1039
1182
  /**
1040
1183
  * Get a canvas element by the tag.
@@ -1064,18 +1207,43 @@ var _GameWindowManager = class _GameWindowManager {
1064
1207
  _GameWindowManager.app.stage.removeChildren();
1065
1208
  _GameWindowManager._children = {};
1066
1209
  _GameWindowManager.childrenTagsOrder = [];
1067
- _GameWindowManager.removeTickers();
1210
+ _GameWindowManager.removeAllTickers();
1068
1211
  }
1069
1212
  /**
1070
1213
  * Edit the tag of a canvas element.
1071
1214
  * @param oldTag The old tag of the canvas element.
1072
1215
  * @param newTag The new tag of the canvas element.
1073
1216
  */
1074
- static editTagCanvasElement(oldTag, newTag) {
1217
+ static editCanvasElementTag(oldTag, newTag) {
1075
1218
  if (_GameWindowManager._children[oldTag]) {
1076
1219
  _GameWindowManager._children[newTag] = _GameWindowManager._children[oldTag];
1077
1220
  delete _GameWindowManager._children[oldTag];
1078
1221
  }
1222
+ if (_GameWindowManager._currentTickersSteps[oldTag]) {
1223
+ _GameWindowManager._currentTickersSteps[newTag] = _GameWindowManager._currentTickersSteps[oldTag];
1224
+ delete _GameWindowManager._currentTickersSteps[oldTag];
1225
+ }
1226
+ for (let id in _GameWindowManager._currentTickers) {
1227
+ let ticker = _GameWindowManager._currentTickers[id];
1228
+ if (ticker.canvasElementTags.includes(oldTag)) {
1229
+ ticker.canvasElementTags = ticker.canvasElementTags.map((t) => t === oldTag ? newTag : t);
1230
+ if (ticker.args.hasOwnProperty(tagToRemoveAfter)) {
1231
+ let tagToRemoveAfter2 = ticker.args.tagToRemoveAfter;
1232
+ if (typeof tagToRemoveAfter2 === "string") {
1233
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
1234
+ }
1235
+ if (Array.isArray(tagToRemoveAfter2)) {
1236
+ ticker.args.tagToRemoveAfter = tagToRemoveAfter2.map((t) => t === oldTag ? newTag : t);
1237
+ }
1238
+ }
1239
+ }
1240
+ }
1241
+ for (let timeout in _GameWindowManager._currentTickersTimeouts) {
1242
+ let TickerTimeout = _GameWindowManager._currentTickersTimeouts[timeout];
1243
+ if (TickerTimeout.tags.includes(oldTag)) {
1244
+ TickerTimeout.tags = TickerTimeout.tags.map((t) => t === oldTag ? newTag : t);
1245
+ }
1246
+ }
1079
1247
  }
1080
1248
  /** Edit Tickers Methods */
1081
1249
  /**
@@ -1084,106 +1252,127 @@ var _GameWindowManager = class _GameWindowManager {
1084
1252
  static get currentTickers() {
1085
1253
  return _GameWindowManager._currentTickers;
1086
1254
  }
1255
+ static get currentTickersList() {
1256
+ return Object.values(_GameWindowManager._currentTickers);
1257
+ }
1258
+ static get currentTickersWithoutCreatedBySteps() {
1259
+ return Object.fromEntries(Object.entries(_GameWindowManager._currentTickers).filter(([_, ticker]) => !ticker.createdByTicketStepsId));
1260
+ }
1087
1261
  /**
1088
1262
  * The steps of the tickers
1089
1263
  */
1090
1264
  static get currentTickersSteps() {
1091
1265
  return _GameWindowManager._currentTickersSteps;
1092
1266
  }
1267
+ static generateTickerId(tickerData) {
1268
+ try {
1269
+ return sha1(JSON.stringify(tickerData)).toString() + "_" + Math.random().toString(36).substring(7);
1270
+ } catch (e) {
1271
+ throw new Error(`[Pixi'VN] Error to generate ticker id: ${e}`);
1272
+ }
1273
+ }
1093
1274
  /**
1094
- * Run a ticker.
1275
+ * Run a ticker. You can run multiple addTicker with the same tag and different tickerClasses.
1276
+ * If you run a ticker with the same tag and tickerClass, the old ticker will be removed.
1277
+ * If already exists a sequence of tickers with the same tag, it will be removed.
1095
1278
  * @param canvasEslementTag The tag of the canvas element that will use the ticker.
1096
1279
  * @param ticker The ticker class to be run.
1097
1280
  * @param args The arguments to be used in the ticker.
1098
- * @param duration The time to be used in the ticker. This number is in milliseconds. If it is undefined, the ticker will run forever.
1281
+ * @param duration The time to be used in the ticker. This number is in seconds. If it is undefined, the ticker will run forever.
1099
1282
  * @param priority The priority to be used in the ticker.
1100
1283
  * @returns
1101
1284
  * @example
1102
1285
  * ```typescript
1103
- * GameWindowManager.addTicker("alien", new TickerRotate({ speed: 0.2 }))
1286
+ * GameWindowManager.addTicker("alien", new RotateTicker({ speed: 0.2 }))
1104
1287
  * ```
1105
1288
  */
1106
1289
  static addTicker(canvasElementTag, ticker) {
1107
- let tickerName = ticker.constructor.name;
1290
+ let tickerId = ticker.id;
1108
1291
  if (typeof canvasElementTag === "string") {
1109
1292
  canvasElementTag = [canvasElementTag];
1110
1293
  }
1111
- let t = geTickerInstanceByClassName(tickerName, ticker.args, ticker.duration, ticker.priority);
1112
- if (!t) {
1113
- console.error(`[Pixi'VN] Ticker ${tickerName} not found`);
1294
+ if (!geTickerInstanceById(tickerId, ticker.args, ticker.duration, ticker.priority)) {
1295
+ console.error(`[Pixi'VN] Ticker ${tickerId} not found`);
1114
1296
  return;
1115
1297
  }
1116
- _GameWindowManager.removeAssociationBetweenTickerCanvasElement(canvasElementTag, ticker);
1117
1298
  let tickerHistory = {
1118
1299
  fn: () => {
1119
1300
  },
1120
- className: tickerName,
1121
- args: ticker.args,
1301
+ id: tickerId,
1302
+ args: createExportableElement(ticker.args),
1122
1303
  canvasElementTags: canvasElementTag,
1123
1304
  priority: ticker.priority,
1124
1305
  duration: ticker.duration
1125
1306
  };
1126
- _GameWindowManager.pushTicker(tickerHistory, t);
1127
- _GameWindowManager.removeTickersWithoutAssociatedCanvasElement();
1307
+ let id = _GameWindowManager.generateTickerId(tickerHistory);
1308
+ _GameWindowManager.pushTicker(id, tickerHistory, ticker);
1128
1309
  if (ticker.duration) {
1129
1310
  let timeout = setTimeout(() => {
1130
1311
  _GameWindowManager.removeTickerTimeoutInfo(timeout);
1131
- _GameWindowManager.nextTickerStep(canvasElementTag);
1132
- }, ticker.duration);
1133
- _GameWindowManager.addTickerTimeoutInfo(canvasElementTag, tickerName, timeout.toString());
1312
+ let tickerTimeoutInfo = _GameWindowManager._currentTickersTimeouts[timeout.toString()];
1313
+ if (tickerTimeoutInfo) {
1314
+ _GameWindowManager.removeTicker(id);
1315
+ }
1316
+ }, ticker.duration * 1e3);
1317
+ _GameWindowManager.addTickerTimeoutInfo(canvasElementTag, tickerId, timeout.toString(), true);
1134
1318
  }
1135
1319
  }
1136
- static pushTicker(tickerData, ticker) {
1137
- _GameWindowManager.removeAssociationBetweenTickerCanvasElement(tickerData.canvasElementTags, tickerData);
1138
- _GameWindowManager._currentTickers.push(tickerData);
1320
+ static pushTicker(id, tickerData, ticker) {
1321
+ _GameWindowManager.removeAssociationBetweenTickerCanvasElement(tickerData.canvasElementTags, ticker);
1322
+ _GameWindowManager._currentTickers[id] = tickerData;
1139
1323
  tickerData.fn = (t) => {
1140
- ticker == null ? void 0 : ticker.fn(t, tickerData.args, tickerData.canvasElementTags);
1324
+ let data = _GameWindowManager._currentTickers[id];
1325
+ if (data) {
1326
+ ticker == null ? void 0 : ticker.fn(t, data.args, data.canvasElementTags, id);
1327
+ }
1141
1328
  };
1142
1329
  _GameWindowManager.app.ticker.add(tickerData.fn, void 0, tickerData.priority);
1143
1330
  }
1144
1331
  /**
1145
- * Run a sequence of tickers.
1332
+ * Run a sequence of tickers. If exists a ticker steps with the same tag, it will be removed.
1146
1333
  * @param tag The tag of canvas element that will use the tickers.
1147
1334
  * @param steps The steps of the tickers.
1335
+ * @param currentStepNumber The current step number. It is used to continue the sequence of tickers.
1148
1336
  * @returns
1149
1337
  * @example
1150
1338
  * ```typescript
1151
1339
  * GameWindowManager.addTickersSteps("alien", [
1152
- * new TickerRotate({ speed: 0.1, clockwise: true }, 2000),
1153
- * Pause(500),
1154
- * new TickerRotate({ speed: 0.2, clockwise: false }, 2000),
1340
+ * new RotateTicker({ speed: 0.1, clockwise: true }, 2), // 2 seconds
1341
+ * Pause(1), // 1 second
1342
+ * new RotateTicker({ speed: 0.2, clockwise: false }, 2),
1155
1343
  * Repeat,
1156
1344
  * ])
1157
1345
  * ```
1158
1346
  */
1159
- static addTickersSteps(tag, steps) {
1347
+ static addTickersSteps(tag, steps, currentStepNumber = 0) {
1160
1348
  if (steps.length == 0) {
1161
1349
  console.warn("[Pixi'VN] The steps of the tickers is empty");
1162
1350
  return;
1163
1351
  }
1164
- let alredyExists = _GameWindowManager._currentTickersSteps[tag] !== void 0;
1352
+ _GameWindowManager.removeTickerStepByCanvasElement(tag);
1165
1353
  _GameWindowManager._currentTickersSteps[tag] = {
1166
- currentStepNumber: 0,
1167
- steps: steps.map((s) => {
1168
- if (s === Repeat) {
1169
- return s;
1170
- }
1171
- if (!s.duration) {
1172
- console.warn("[Pixi'VN] Duration is not defined, so it will be set to 1000");
1173
- s.duration = 1e3;
1354
+ currentStepNumber,
1355
+ steps: steps.map((step) => {
1356
+ if (step === Repeat) {
1357
+ return step;
1174
1358
  }
1175
- if (s.hasOwnProperty("type") && s.type === PauseValueType) {
1176
- return s;
1359
+ if (step.hasOwnProperty("type") && step.type === "pause") {
1360
+ return step;
1177
1361
  }
1178
- let tickerName = s.constructor.name;
1362
+ let tickerId = step.id;
1179
1363
  return {
1180
- ticker: tickerName,
1181
- args: s.args,
1182
- duration: s.duration
1364
+ ticker: tickerId,
1365
+ args: createExportableElement(step.args),
1366
+ duration: step.duration
1183
1367
  };
1184
1368
  })
1185
1369
  };
1186
- if (!alredyExists) {
1370
+ _GameWindowManager.runTickersSteps(tag);
1371
+ }
1372
+ static restoneTickersSteps(data) {
1373
+ for (let tag in data) {
1374
+ let steps = data[tag];
1375
+ _GameWindowManager._currentTickersSteps[tag] = steps;
1187
1376
  _GameWindowManager.runTickersSteps(tag);
1188
1377
  }
1189
1378
  }
@@ -1197,70 +1386,106 @@ var _GameWindowManager = class _GameWindowManager {
1197
1386
  return;
1198
1387
  }
1199
1388
  }
1200
- if (step.hasOwnProperty("type") && step.type === PauseValueType) {
1389
+ if (step.hasOwnProperty("type") && step.type === "pause") {
1201
1390
  let timeout = setTimeout(() => {
1391
+ let tickerTimeoutInfo = _GameWindowManager._currentTickersTimeouts[timeout.toString()];
1392
+ if (tickerTimeoutInfo) {
1393
+ tickerTimeoutInfo.tags.forEach((tag2) => {
1394
+ _GameWindowManager.nextTickerStep(tag2);
1395
+ });
1396
+ }
1202
1397
  _GameWindowManager.removeTickerTimeoutInfo(timeout);
1203
- _GameWindowManager.nextTickerStep(tag);
1204
- }, step.duration);
1205
- _GameWindowManager.addTickerTimeoutInfo(tag, "steps", timeout.toString());
1398
+ }, step.duration * 1e3);
1399
+ _GameWindowManager.addTickerTimeoutInfo(tag, "steps", timeout.toString(), false);
1206
1400
  return;
1207
1401
  }
1208
- let ticker = geTickerInstanceByClassName(step.ticker, step.args, step.duration, step.priority);
1402
+ let ticker = geTickerInstanceById(step.ticker, step.args, step.duration, step.priority);
1209
1403
  if (!ticker) {
1210
1404
  console.error(`[Pixi'VN] Ticker ${step.ticker} not found`);
1211
1405
  return;
1212
1406
  }
1213
- _GameWindowManager.addTicker(tag, ticker);
1407
+ let tickerName = ticker.id;
1408
+ let tickerHistory = {
1409
+ fn: () => {
1410
+ },
1411
+ id: tickerName,
1412
+ args: createExportableElement(ticker.args),
1413
+ canvasElementTags: [tag],
1414
+ priority: ticker.priority,
1415
+ duration: ticker.duration,
1416
+ createdByTicketStepsId: tag
1417
+ };
1418
+ let id = _GameWindowManager.generateTickerId(tickerHistory);
1419
+ _GameWindowManager.pushTicker(id, tickerHistory, ticker);
1420
+ if (ticker.duration) {
1421
+ let timeout = setTimeout(() => {
1422
+ let tickerTimeoutInfo = _GameWindowManager._currentTickersTimeouts[timeout.toString()];
1423
+ if (tickerTimeoutInfo) {
1424
+ _GameWindowManager.removeTicker(id);
1425
+ tickerTimeoutInfo.tags.forEach((tag2) => {
1426
+ _GameWindowManager.nextTickerStep(tag2);
1427
+ });
1428
+ }
1429
+ _GameWindowManager.removeTickerTimeoutInfo(timeout);
1430
+ }, ticker.duration * 1e3);
1431
+ _GameWindowManager.addTickerTimeoutInfo(tag, tickerName, timeout.toString(), false);
1432
+ }
1214
1433
  }
1215
1434
  static nextTickerStep(tag) {
1216
- if (typeof tag === "string") {
1217
- tag = [tag];
1435
+ if (_GameWindowManager._currentTickersSteps[tag]) {
1436
+ let steps = _GameWindowManager._currentTickersSteps[tag];
1437
+ if (steps.currentStepNumber + 1 < steps.steps.length) {
1438
+ steps.currentStepNumber++;
1439
+ _GameWindowManager._currentTickersSteps[tag] = steps;
1440
+ _GameWindowManager.runTickersSteps(tag);
1441
+ } else {
1442
+ _GameWindowManager.removeTickerStepByCanvasElement(tag);
1443
+ }
1218
1444
  }
1219
- tag.forEach((tag2) => {
1220
- if (_GameWindowManager._currentTickersSteps[tag2]) {
1221
- let steps = _GameWindowManager._currentTickersSteps[tag2];
1222
- if (steps.currentStepNumber + 1 < steps.steps.length) {
1223
- steps.currentStepNumber++;
1224
- _GameWindowManager._currentTickersSteps[tag2] = steps;
1225
- _GameWindowManager.runTickersSteps(tag2);
1226
- } else {
1227
- delete _GameWindowManager._currentTickersSteps[tag2];
1228
- }
1445
+ }
1446
+ static onEndOfTicker(canvasElementTags, ticker, canvasElementTagsToDelete, tickerId) {
1447
+ let tickerData = _GameWindowManager._currentTickers[tickerId];
1448
+ _GameWindowManager.removeAssociationBetweenTickerCanvasElement(canvasElementTags, ticker);
1449
+ _GameWindowManager.removeCanvasElement(canvasElementTagsToDelete);
1450
+ if (tickerData) {
1451
+ _GameWindowManager.removeTicker(tickerId);
1452
+ if (tickerData.duration == void 0 && tickerData.createdByTicketStepsId) {
1453
+ _GameWindowManager.nextTickerStep(tickerData.createdByTicketStepsId);
1229
1454
  }
1230
- });
1455
+ }
1231
1456
  }
1232
1457
  /**
1233
1458
  * Remove a connection between a canvas element and a ticker.
1234
1459
  * And remove the ticker if there is no canvas element connected to it.
1235
- * @param tag The tag of the canvas element that will use the ticker.
1460
+ * @param tags The tag of the canvas element that will use the ticker.
1236
1461
  * @param ticker The ticker class to be removed.
1237
1462
  * @example
1238
1463
  * ```typescript
1239
- * GameWindowManager.removeAssociationBetweenTickerCanvasElement("alien", TickerRotate)
1464
+ * GameWindowManager.removeAssociationBetweenTickerCanvasElement("alien", RotateTicker)
1240
1465
  * ```
1241
1466
  */
1242
- static removeAssociationBetweenTickerCanvasElement(tag, ticker) {
1243
- let tickerName;
1244
- if (ticker instanceof TickerBase) {
1245
- tickerName = ticker.constructor.name;
1467
+ static removeAssociationBetweenTickerCanvasElement(tags, ticker) {
1468
+ let tickerId;
1469
+ if (typeof ticker === "string") {
1470
+ tickerId = ticker;
1471
+ } else if (ticker instanceof TickerBase) {
1472
+ tickerId = ticker.id;
1246
1473
  } else {
1247
- tickerName = ticker.name;
1474
+ tickerId = ticker.prototype.id;
1248
1475
  }
1249
- if (typeof tag === "string") {
1250
- tag = [tag];
1476
+ if (typeof tags === "string") {
1477
+ tags = [tags];
1251
1478
  }
1252
- _GameWindowManager._currentTickers = _GameWindowManager._currentTickers.map((t) => {
1253
- if (t.className === tickerName) {
1254
- t.canvasElementTags = t.canvasElementTags.filter((e) => !tag.includes(e));
1479
+ for (let id in _GameWindowManager._currentTickers) {
1480
+ let ticker2 = _GameWindowManager._currentTickers[id];
1481
+ if (ticker2.id === tickerId) {
1482
+ _GameWindowManager._currentTickers[id].canvasElementTags = ticker2.canvasElementTags.filter((e) => !tags.includes(e));
1255
1483
  }
1256
- return t;
1257
- });
1258
- for (let timeout in _GameWindowManager.currentTickersTimeouts) {
1259
- let t = _GameWindowManager.currentTickersTimeouts[timeout].tags.filter((e) => !tag.includes(e));
1260
- if (t.length == 0) {
1261
- _GameWindowManager.removeTickerTimeoutInfo(timeout);
1262
- } else {
1263
- _GameWindowManager.currentTickersTimeouts[timeout].tags = t;
1484
+ }
1485
+ for (let timeout in _GameWindowManager._currentTickersTimeouts) {
1486
+ let TickerTimeout = _GameWindowManager._currentTickersTimeouts[timeout];
1487
+ if (TickerTimeout.ticker === tickerId && TickerTimeout.canBeDeletedBeforeEnd) {
1488
+ _GameWindowManager._currentTickersTimeouts[timeout].tags = TickerTimeout.tags.filter((t) => !tags.includes(t));
1264
1489
  }
1265
1490
  }
1266
1491
  _GameWindowManager.removeTickersWithoutAssociatedCanvasElement();
@@ -1269,49 +1494,117 @@ var _GameWindowManager = class _GameWindowManager {
1269
1494
  * Remove all tickers that are not connected to any existing canvas element.
1270
1495
  */
1271
1496
  static removeTickersWithoutAssociatedCanvasElement() {
1272
- let currentTickers = _GameWindowManager._currentTickers.map((t) => {
1273
- t.canvasElementTags = t.canvasElementTags.filter((e) => _GameWindowManager._children[e]);
1274
- return t;
1275
- });
1276
- currentTickers.filter((t) => t.canvasElementTags.length === 0).forEach((t) => {
1277
- _GameWindowManager.app.ticker.remove(t.fn);
1278
- });
1279
- currentTickers = currentTickers.filter((t) => t.canvasElementTags.length > 0);
1280
- _GameWindowManager._currentTickers = currentTickers;
1497
+ for (let id in _GameWindowManager._currentTickers) {
1498
+ let ticker = _GameWindowManager._currentTickers[id];
1499
+ ticker.canvasElementTags = ticker.canvasElementTags.filter((e) => _GameWindowManager._children[e]);
1500
+ if (ticker.canvasElementTags.length === 0) {
1501
+ _GameWindowManager.removeTicker(id);
1502
+ }
1503
+ }
1281
1504
  for (let tag in _GameWindowManager._currentTickersSteps) {
1282
1505
  if (_GameWindowManager._children[tag] === void 0) {
1283
1506
  delete _GameWindowManager._currentTickersSteps[tag];
1284
1507
  }
1285
1508
  }
1509
+ Object.entries(_GameWindowManager._currentTickersTimeouts).forEach(([timeout, { tags }]) => {
1510
+ if (tags.length === 0) {
1511
+ _GameWindowManager.removeTickerTimeout(timeout);
1512
+ }
1513
+ });
1286
1514
  }
1287
- static addTickerTimeoutInfo(tags, ticker, timeout) {
1515
+ static addTickerTimeoutInfo(tags, ticker, timeout, canBeDeletedBeforeEnd) {
1288
1516
  if (typeof tags === "string") {
1289
1517
  tags = [tags];
1290
1518
  }
1291
- _GameWindowManager.currentTickersTimeouts[timeout] = {
1519
+ _GameWindowManager._currentTickersTimeouts[timeout] = {
1292
1520
  tags,
1293
- ticker
1521
+ ticker,
1522
+ canBeDeletedBeforeEnd
1294
1523
  };
1295
1524
  }
1296
1525
  static removeTickerTimeoutInfo(timeout) {
1297
1526
  if (typeof timeout !== "string") {
1298
1527
  timeout = timeout.toString();
1299
1528
  }
1300
- if (_GameWindowManager.currentTickersTimeouts[timeout]) {
1301
- delete _GameWindowManager.currentTickersTimeouts[timeout];
1529
+ if (_GameWindowManager._currentTickersTimeouts[timeout]) {
1530
+ delete _GameWindowManager._currentTickersTimeouts[timeout];
1531
+ }
1532
+ }
1533
+ static removeTickerTimeout(timeout) {
1534
+ if (typeof timeout !== "string") {
1535
+ timeout = timeout.toString();
1536
+ }
1537
+ clearTimeout(Number(timeout));
1538
+ _GameWindowManager.removeTickerTimeoutInfo(timeout);
1539
+ }
1540
+ static removeTickerTimeoutsByTag(tag, checkCanBeDeletedBeforeEnd) {
1541
+ for (let timeout in _GameWindowManager._currentTickersTimeouts) {
1542
+ let tagsWithoutTagToRemove = _GameWindowManager._currentTickersTimeouts[timeout].tags.filter((t) => t !== tag);
1543
+ if (tagsWithoutTagToRemove.length === 0) {
1544
+ let canBeDeletedBeforeEnd = _GameWindowManager._currentTickersTimeouts[timeout].canBeDeletedBeforeEnd;
1545
+ if (!checkCanBeDeletedBeforeEnd || canBeDeletedBeforeEnd) {
1546
+ _GameWindowManager.removeTickerTimeout(timeout);
1547
+ }
1548
+ } else {
1549
+ _GameWindowManager._currentTickersTimeouts[timeout].tags = tagsWithoutTagToRemove;
1550
+ }
1302
1551
  }
1303
1552
  }
1304
1553
  /**
1305
1554
  * Remove all tickers from the canvas.
1306
1555
  */
1307
- static removeTickers() {
1556
+ static removeAllTickers() {
1308
1557
  _GameWindowManager._currentTickersSteps = {};
1309
- _GameWindowManager._currentTickers.forEach((t) => {
1310
- _GameWindowManager.app.ticker.remove(t.fn);
1558
+ Object.keys(_GameWindowManager._currentTickers).forEach((id) => {
1559
+ _GameWindowManager.removeTicker(id);
1560
+ });
1561
+ _GameWindowManager._currentTickers = {};
1562
+ for (let timeout in _GameWindowManager._currentTickersTimeouts) {
1563
+ _GameWindowManager.removeTickerTimeout(timeout);
1564
+ }
1565
+ }
1566
+ /**
1567
+ * Remove all tickers from a canvas element.
1568
+ * @param tag The tag of the canvas element that will use the ticker.
1569
+ */
1570
+ static removeTickerByCanvasElement(tag) {
1571
+ if (typeof tag === "string") {
1572
+ tag = [tag];
1573
+ }
1574
+ tag.forEach((tag2) => {
1575
+ for (let id in _GameWindowManager._currentTickers) {
1576
+ let ticker = _GameWindowManager._currentTickers[id];
1577
+ if (ticker.canvasElementTags.includes(tag2)) {
1578
+ _GameWindowManager.removeTicker(id);
1579
+ }
1580
+ }
1581
+ if (_GameWindowManager._currentTickersSteps[tag2]) {
1582
+ delete _GameWindowManager._currentTickersSteps[tag2];
1583
+ }
1584
+ _GameWindowManager.removeTickerTimeoutsByTag(tag2, false);
1585
+ delete _GameWindowManager._currentTickersSteps[tag2];
1311
1586
  });
1312
- _GameWindowManager._currentTickers = [];
1313
- for (let timeout in _GameWindowManager.currentTickersTimeouts) {
1314
- _GameWindowManager.removeTickerTimeoutInfo(timeout);
1587
+ }
1588
+ static removeTickerStepByCanvasElement(tag) {
1589
+ if (_GameWindowManager._currentTickersSteps[tag]) {
1590
+ delete _GameWindowManager._currentTickersSteps[tag];
1591
+ }
1592
+ for (let id in _GameWindowManager._currentTickers) {
1593
+ let ticker = _GameWindowManager._currentTickers[id];
1594
+ if (ticker.createdByTicketStepsId === tag) {
1595
+ _GameWindowManager.removeTicker(id);
1596
+ }
1597
+ }
1598
+ }
1599
+ static removeTicker(tickerId) {
1600
+ let ticker = _GameWindowManager._currentTickers[tickerId];
1601
+ if (ticker) {
1602
+ if (ticker.args.hasOwnProperty(tagToRemoveAfter)) {
1603
+ let tagToRemoveAfter2 = ticker.args.tagToRemoveAfter;
1604
+ _GameWindowManager.removeCanvasElement(tagToRemoveAfter2);
1605
+ }
1606
+ _GameWindowManager.app.ticker.remove(ticker.fn);
1607
+ delete _GameWindowManager._currentTickers[tickerId];
1315
1608
  }
1316
1609
  }
1317
1610
  /**
@@ -1338,7 +1631,8 @@ var _GameWindowManager = class _GameWindowManager {
1338
1631
  currentElements[tag] = exportCanvasElement(_GameWindowManager._children[tag]);
1339
1632
  }
1340
1633
  return {
1341
- currentTickers: createExportableElement(_GameWindowManager._currentTickers),
1634
+ currentTickers: createExportableElement(_GameWindowManager.currentTickersWithoutCreatedBySteps),
1635
+ currentTickersSteps: createExportableElement(_GameWindowManager._currentTickersSteps),
1342
1636
  currentElements: createExportableElement(currentElements),
1343
1637
  childrenTagsOrder: createExportableElement(_GameWindowManager.childrenTagsOrder)
1344
1638
  };
@@ -1373,15 +1667,20 @@ var _GameWindowManager = class _GameWindowManager {
1373
1667
  }
1374
1668
  if (data.hasOwnProperty("currentTickers")) {
1375
1669
  let currentTickers = data["currentTickers"];
1376
- currentTickers.forEach((t) => {
1670
+ for (let id in currentTickers) {
1671
+ let t = currentTickers[id];
1377
1672
  let tags = t.canvasElementTags;
1378
- let ticker = geTickerInstanceByClassName(t.className, t.args, t.duration, t.priority);
1673
+ let ticker = geTickerInstanceById(t.id, t.args, t.duration, t.priority);
1379
1674
  if (ticker) {
1380
1675
  _GameWindowManager.addTicker(tags, ticker);
1381
1676
  } else {
1382
- console.error(`[Pixi'VN] Ticker ${t.className} not found`);
1677
+ console.error(`[Pixi'VN] Ticker ${t.id} not found`);
1383
1678
  }
1384
- });
1679
+ }
1680
+ }
1681
+ if (data.hasOwnProperty("currentTickersSteps")) {
1682
+ let currentTickersSteps = data["currentTickersSteps"];
1683
+ _GameWindowManager.restoneTickersSteps(currentTickersSteps);
1385
1684
  }
1386
1685
  } catch (e) {
1387
1686
  console.error("[Pixi'VN] Error importing data", e);
@@ -1395,9 +1694,9 @@ _GameWindowManager._children = {};
1395
1694
  * The order of the children tags.
1396
1695
  */
1397
1696
  _GameWindowManager.childrenTagsOrder = [];
1398
- _GameWindowManager._currentTickers = [];
1697
+ _GameWindowManager._currentTickers = {};
1399
1698
  _GameWindowManager._currentTickersSteps = {};
1400
- _GameWindowManager.currentTickersTimeouts = {};
1699
+ _GameWindowManager._currentTickersTimeouts = {};
1401
1700
  var GameWindowManager = _GameWindowManager;
1402
1701
 
1403
1702
  // src/decorators/LabelDecorator.ts
@@ -1443,8 +1742,9 @@ var ChoiceMenuOption = class {
1443
1742
  var ChoiceMenuOptionClose = class {
1444
1743
  /**
1445
1744
  * @param text Text to be displayed in the menu
1745
+ * @param closeCurrentLabel If true, the current label will be closed. @default false
1446
1746
  */
1447
- constructor(text) {
1747
+ constructor(text, closeCurrentLabel = false) {
1448
1748
  /**
1449
1749
  * Label to be opened when the option is selected
1450
1750
  */
@@ -1458,6 +1758,7 @@ var ChoiceMenuOptionClose = class {
1458
1758
  */
1459
1759
  this.props = {};
1460
1760
  this.text = text;
1761
+ this.closeCurrentLabel = closeCurrentLabel;
1461
1762
  }
1462
1763
  };
1463
1764