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