@drincs/pixi-vn 0.6.3 → 0.6.5

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 (238) hide show
  1. package/README.md +8 -5
  2. package/dist/LabelProps-CFV-zRjG.d.ts +113 -0
  3. package/dist/LabelProps-CmRpvUJm.d.mts +113 -0
  4. package/dist/classes/CharacterBaseModel.js +42 -33
  5. package/dist/classes/CharacterBaseModel.js.map +1 -1
  6. package/dist/classes/CharacterBaseModel.mjs +42 -33
  7. package/dist/classes/CharacterBaseModel.mjs.map +1 -1
  8. package/dist/classes/ChoiceMenuOption.d.mts +68 -8
  9. package/dist/classes/ChoiceMenuOption.d.ts +68 -8
  10. package/dist/classes/ChoiceMenuOption.js +119 -53
  11. package/dist/classes/ChoiceMenuOption.js.map +1 -1
  12. package/dist/classes/ChoiceMenuOption.mjs +119 -53
  13. package/dist/classes/ChoiceMenuOption.mjs.map +1 -1
  14. package/dist/classes/CloseLabel.d.mts +2 -2
  15. package/dist/classes/CloseLabel.d.ts +2 -2
  16. package/dist/classes/CloseLabel.js +53 -17
  17. package/dist/classes/CloseLabel.js.map +1 -1
  18. package/dist/classes/CloseLabel.mjs +53 -17
  19. package/dist/classes/CloseLabel.mjs.map +1 -1
  20. package/dist/classes/Label.d.mts +4 -72
  21. package/dist/classes/Label.d.ts +4 -72
  22. package/dist/classes/Label.js +50 -16
  23. package/dist/classes/Label.js.map +1 -1
  24. package/dist/classes/Label.mjs +50 -16
  25. package/dist/classes/Label.mjs.map +1 -1
  26. package/dist/classes/StoredClassModel.js +42 -33
  27. package/dist/classes/StoredClassModel.js.map +1 -1
  28. package/dist/classes/StoredClassModel.mjs +42 -33
  29. package/dist/classes/StoredClassModel.mjs.map +1 -1
  30. package/dist/classes/canvas/CanvasContainer.js +2 -2
  31. package/dist/classes/canvas/CanvasContainer.js.map +1 -1
  32. package/dist/classes/canvas/CanvasContainer.mjs +2 -2
  33. package/dist/classes/canvas/CanvasContainer.mjs.map +1 -1
  34. package/dist/classes/canvas/CanvasImage.js +2 -2
  35. package/dist/classes/canvas/CanvasImage.js.map +1 -1
  36. package/dist/classes/canvas/CanvasImage.mjs +2 -2
  37. package/dist/classes/canvas/CanvasImage.mjs.map +1 -1
  38. package/dist/classes/canvas/CanvasSprite.js +2 -2
  39. package/dist/classes/canvas/CanvasSprite.js.map +1 -1
  40. package/dist/classes/canvas/CanvasSprite.mjs +2 -2
  41. package/dist/classes/canvas/CanvasSprite.mjs.map +1 -1
  42. package/dist/classes/canvas/CanvasText.js +2 -2
  43. package/dist/classes/canvas/CanvasText.js.map +1 -1
  44. package/dist/classes/canvas/CanvasText.mjs +2 -2
  45. package/dist/classes/canvas/CanvasText.mjs.map +1 -1
  46. package/dist/classes/canvas/index.js +2 -2
  47. package/dist/classes/canvas/index.js.map +1 -1
  48. package/dist/classes/canvas/index.mjs +2 -2
  49. package/dist/classes/canvas/index.mjs.map +1 -1
  50. package/dist/classes/index.d.mts +2 -2
  51. package/dist/classes/index.d.ts +2 -2
  52. package/dist/classes/index.js +119 -53
  53. package/dist/classes/index.js.map +1 -1
  54. package/dist/classes/index.mjs +119 -53
  55. package/dist/classes/index.mjs.map +1 -1
  56. package/dist/classes/ticker/FadeAlphaTicker.js +42 -33
  57. package/dist/classes/ticker/FadeAlphaTicker.js.map +1 -1
  58. package/dist/classes/ticker/FadeAlphaTicker.mjs +42 -33
  59. package/dist/classes/ticker/FadeAlphaTicker.mjs.map +1 -1
  60. package/dist/classes/ticker/MoveTicker.d.mts +1 -0
  61. package/dist/classes/ticker/MoveTicker.d.ts +1 -0
  62. package/dist/classes/ticker/MoveTicker.js +42 -33
  63. package/dist/classes/ticker/MoveTicker.js.map +1 -1
  64. package/dist/classes/ticker/MoveTicker.mjs +42 -33
  65. package/dist/classes/ticker/MoveTicker.mjs.map +1 -1
  66. package/dist/classes/ticker/RotateTicker.d.mts +1 -0
  67. package/dist/classes/ticker/RotateTicker.d.ts +1 -0
  68. package/dist/classes/ticker/RotateTicker.js +42 -33
  69. package/dist/classes/ticker/RotateTicker.js.map +1 -1
  70. package/dist/classes/ticker/RotateTicker.mjs +42 -33
  71. package/dist/classes/ticker/RotateTicker.mjs.map +1 -1
  72. package/dist/classes/ticker/ZoomTicker.d.mts +1 -0
  73. package/dist/classes/ticker/ZoomTicker.d.ts +1 -0
  74. package/dist/classes/ticker/ZoomTicker.js +42 -33
  75. package/dist/classes/ticker/ZoomTicker.js.map +1 -1
  76. package/dist/classes/ticker/ZoomTicker.mjs +42 -33
  77. package/dist/classes/ticker/ZoomTicker.mjs.map +1 -1
  78. package/dist/classes/ticker/index.js +42 -33
  79. package/dist/classes/ticker/index.js.map +1 -1
  80. package/dist/classes/ticker/index.mjs +42 -33
  81. package/dist/classes/ticker/index.mjs.map +1 -1
  82. package/dist/constants.d.mts +1 -1
  83. package/dist/constants.d.ts +1 -1
  84. package/dist/constants.js +1 -1
  85. package/dist/constants.js.map +1 -1
  86. package/dist/constants.mjs +1 -1
  87. package/dist/constants.mjs.map +1 -1
  88. package/dist/decorators/CanvasElementDecorator.js +2 -2
  89. package/dist/decorators/CanvasElementDecorator.js.map +1 -1
  90. package/dist/decorators/CanvasElementDecorator.mjs +2 -2
  91. package/dist/decorators/CanvasElementDecorator.mjs.map +1 -1
  92. package/dist/decorators/LabelDecorator.d.mts +3 -3
  93. package/dist/decorators/LabelDecorator.d.ts +3 -3
  94. package/dist/decorators/LabelDecorator.js +74 -50
  95. package/dist/decorators/LabelDecorator.js.map +1 -1
  96. package/dist/decorators/LabelDecorator.mjs +74 -50
  97. package/dist/decorators/LabelDecorator.mjs.map +1 -1
  98. package/dist/decorators/index.d.mts +2 -2
  99. package/dist/decorators/index.d.ts +2 -2
  100. package/dist/decorators/index.js +74 -50
  101. package/dist/decorators/index.js.map +1 -1
  102. package/dist/decorators/index.mjs +74 -50
  103. package/dist/decorators/index.mjs.map +1 -1
  104. package/dist/functions/CanvasUtility.js +2 -2
  105. package/dist/functions/CanvasUtility.js.map +1 -1
  106. package/dist/functions/CanvasUtility.mjs +2 -2
  107. package/dist/functions/CanvasUtility.mjs.map +1 -1
  108. package/dist/functions/DialogueUtility.d.mts +9 -9
  109. package/dist/functions/DialogueUtility.d.ts +9 -9
  110. package/dist/functions/DialogueUtility.js +184 -106
  111. package/dist/functions/DialogueUtility.js.map +1 -1
  112. package/dist/functions/DialogueUtility.mjs +184 -106
  113. package/dist/functions/DialogueUtility.mjs.map +1 -1
  114. package/dist/functions/FlagsUtility.js +42 -33
  115. package/dist/functions/FlagsUtility.js.map +1 -1
  116. package/dist/functions/FlagsUtility.mjs +42 -33
  117. package/dist/functions/FlagsUtility.mjs.map +1 -1
  118. package/dist/functions/GameUtility.js +42 -33
  119. package/dist/functions/GameUtility.js.map +1 -1
  120. package/dist/functions/GameUtility.mjs +42 -33
  121. package/dist/functions/GameUtility.mjs.map +1 -1
  122. package/dist/functions/ImageUtility.js +45 -36
  123. package/dist/functions/ImageUtility.js.map +1 -1
  124. package/dist/functions/ImageUtility.mjs +45 -36
  125. package/dist/functions/ImageUtility.mjs.map +1 -1
  126. package/dist/functions/SavesUtility.d.mts +4 -4
  127. package/dist/functions/SavesUtility.d.ts +4 -4
  128. package/dist/functions/SavesUtility.js +173 -111
  129. package/dist/functions/SavesUtility.js.map +1 -1
  130. package/dist/functions/SavesUtility.mjs +173 -111
  131. package/dist/functions/SavesUtility.mjs.map +1 -1
  132. package/dist/functions/TickerUtility.d.mts +2 -1
  133. package/dist/functions/TickerUtility.d.ts +2 -1
  134. package/dist/functions/TickerUtility.js +19 -15
  135. package/dist/functions/TickerUtility.js.map +1 -1
  136. package/dist/functions/TickerUtility.mjs +19 -15
  137. package/dist/functions/TickerUtility.mjs.map +1 -1
  138. package/dist/functions/index.d.mts +3 -3
  139. package/dist/functions/index.d.ts +3 -3
  140. package/dist/functions/index.js +197 -115
  141. package/dist/functions/index.js.map +1 -1
  142. package/dist/functions/index.mjs +197 -115
  143. package/dist/functions/index.mjs.map +1 -1
  144. package/dist/index.d.mts +1 -1
  145. package/dist/index.d.ts +1 -1
  146. package/dist/index.js +325 -190
  147. package/dist/index.js.map +1 -1
  148. package/dist/index.mjs +326 -191
  149. package/dist/index.mjs.map +1 -1
  150. package/dist/interface/IHistoryStep.d.mts +1 -1
  151. package/dist/interface/IHistoryStep.d.ts +1 -1
  152. package/dist/interface/ISaveData.d.mts +2 -2
  153. package/dist/interface/ISaveData.d.ts +2 -2
  154. package/dist/interface/LabelProps.d.mts +5 -0
  155. package/dist/interface/LabelProps.d.ts +5 -0
  156. package/dist/interface/LabelProps.js +4 -0
  157. package/dist/interface/LabelProps.js.map +1 -0
  158. package/dist/interface/LabelProps.mjs +3 -0
  159. package/dist/interface/LabelProps.mjs.map +1 -0
  160. package/dist/interface/export/ExportedStep.d.mts +2 -2
  161. package/dist/interface/export/ExportedStep.d.ts +2 -2
  162. package/dist/interface/export/index.d.mts +2 -2
  163. package/dist/interface/export/index.d.ts +2 -2
  164. package/dist/interface/index.d.mts +4 -4
  165. package/dist/interface/index.d.ts +4 -4
  166. package/dist/labels/BaseCanvasElementTestLabel.d.mts +2 -2
  167. package/dist/labels/BaseCanvasElementTestLabel.d.ts +2 -2
  168. package/dist/labels/BaseCanvasElementTestLabel.js +175 -111
  169. package/dist/labels/BaseCanvasElementTestLabel.js.map +1 -1
  170. package/dist/labels/BaseCanvasElementTestLabel.mjs +176 -112
  171. package/dist/labels/BaseCanvasElementTestLabel.mjs.map +1 -1
  172. package/dist/labels/CanvasEventsTestLabel.d.mts +3 -6
  173. package/dist/labels/CanvasEventsTestLabel.d.ts +3 -6
  174. package/dist/labels/CanvasEventsTestLabel.js +186 -128
  175. package/dist/labels/CanvasEventsTestLabel.js.map +1 -1
  176. package/dist/labels/CanvasEventsTestLabel.mjs +187 -129
  177. package/dist/labels/CanvasEventsTestLabel.mjs.map +1 -1
  178. package/dist/labels/CustomTickerCanvasElementTestLabel.d.mts +2 -2
  179. package/dist/labels/CustomTickerCanvasElementTestLabel.d.ts +2 -2
  180. package/dist/labels/CustomTickerCanvasElementTestLabel.js +166 -108
  181. package/dist/labels/CustomTickerCanvasElementTestLabel.js.map +1 -1
  182. package/dist/labels/CustomTickerCanvasElementTestLabel.mjs +166 -108
  183. package/dist/labels/CustomTickerCanvasElementTestLabel.mjs.map +1 -1
  184. package/dist/labels/ImagesAnimationsTestLabel.d.mts +2 -2
  185. package/dist/labels/ImagesAnimationsTestLabel.d.ts +2 -2
  186. package/dist/labels/ImagesAnimationsTestLabel.js +253 -147
  187. package/dist/labels/ImagesAnimationsTestLabel.js.map +1 -1
  188. package/dist/labels/ImagesAnimationsTestLabel.mjs +253 -147
  189. package/dist/labels/ImagesAnimationsTestLabel.mjs.map +1 -1
  190. package/dist/labels/MarkdownTest.d.mts +2 -2
  191. package/dist/labels/MarkdownTest.d.ts +2 -2
  192. package/dist/labels/MarkdownTest.js +166 -108
  193. package/dist/labels/MarkdownTest.js.map +1 -1
  194. package/dist/labels/MarkdownTest.mjs +166 -108
  195. package/dist/labels/MarkdownTest.mjs.map +1 -1
  196. package/dist/labels/StartLabel.d.mts +2 -2
  197. package/dist/labels/StartLabel.d.ts +2 -2
  198. package/dist/labels/StartLabel.js +316 -184
  199. package/dist/labels/StartLabel.js.map +1 -1
  200. package/dist/labels/StartLabel.mjs +317 -185
  201. package/dist/labels/StartLabel.mjs.map +1 -1
  202. package/dist/labels/StepLabelTest.d.mts +9 -0
  203. package/dist/labels/StepLabelTest.d.ts +9 -0
  204. package/dist/labels/StepLabelTest.js +2758 -0
  205. package/dist/labels/StepLabelTest.js.map +1 -0
  206. package/dist/labels/StepLabelTest.mjs +2752 -0
  207. package/dist/labels/StepLabelTest.mjs.map +1 -0
  208. package/dist/labels/TestConstant.js +43 -34
  209. package/dist/labels/TestConstant.js.map +1 -1
  210. package/dist/labels/TestConstant.mjs +43 -34
  211. package/dist/labels/TestConstant.mjs.map +1 -1
  212. package/dist/labels/index.d.mts +2 -2
  213. package/dist/labels/index.d.ts +2 -2
  214. package/dist/labels/index.js +316 -184
  215. package/dist/labels/index.js.map +1 -1
  216. package/dist/labels/index.mjs +317 -185
  217. package/dist/labels/index.mjs.map +1 -1
  218. package/dist/managers/StepManager.d.mts +6 -5
  219. package/dist/managers/StepManager.d.ts +6 -5
  220. package/dist/managers/StepManager.js +163 -105
  221. package/dist/managers/StepManager.js.map +1 -1
  222. package/dist/managers/StepManager.mjs +163 -105
  223. package/dist/managers/StepManager.mjs.map +1 -1
  224. package/dist/managers/WindowManager.js +2 -2
  225. package/dist/managers/WindowManager.js.map +1 -1
  226. package/dist/managers/WindowManager.mjs +2 -2
  227. package/dist/managers/WindowManager.mjs.map +1 -1
  228. package/dist/managers/index.d.mts +2 -2
  229. package/dist/managers/index.d.ts +2 -2
  230. package/dist/managers/index.js +163 -105
  231. package/dist/managers/index.js.map +1 -1
  232. package/dist/managers/index.mjs +163 -105
  233. package/dist/managers/index.mjs.map +1 -1
  234. package/dist/types/ChoiceMenuOptionsType.d.mts +2 -2
  235. package/dist/types/ChoiceMenuOptionsType.d.ts +2 -2
  236. package/dist/types/index.d.mts +1 -1
  237. package/dist/types/index.d.ts +1 -1
  238. package/package.json +6 -6
@@ -1,6 +1,6 @@
1
1
  import { diff } from 'deep-diff';
2
2
  import sha1 from 'crypto-js/sha1';
3
- import { Sprite, Container, Texture, Rectangle, Application, Assets, FillGradient, Color, TextStyle, Text } from 'pixi.js';
3
+ import { Sprite, Container, Assets, TextStyle, FillGradient, Color, Texture, Rectangle, Text, Application } from 'pixi.js';
4
4
 
5
5
  var __defProp = Object.defineProperty;
6
6
  var __defProps = Object.defineProperties;
@@ -77,14 +77,15 @@ var Label = class {
77
77
  /**
78
78
  * @param id is the id of the label
79
79
  * @param steps is the list of steps that the label will perform
80
- * @param onStepRun is a function that will be executed before any step is executed, is useful for example to make sure all images used have been cached
81
- * @param choiseIndex is the index of the choice that the label will perform
80
+ * @param props is the properties of the label
82
81
  */
83
- constructor(id, steps, onStepRun, choiseIndex) {
82
+ constructor(id, steps, props) {
84
83
  this._id = id;
85
84
  this._steps = steps;
86
- this._onStepRun = onStepRun;
87
- this._choiseIndex = choiseIndex;
85
+ this._onStepStart = props == null ? void 0 : props.onStepStart;
86
+ this._onLoadStep = props == null ? void 0 : props.onLoadStep;
87
+ this._onStepEnd = props == null ? void 0 : props.onStepEnd;
88
+ this._choiseIndex = props == null ? void 0 : props.choiseIndex;
88
89
  }
89
90
  /**
90
91
  * Get the id of the label. This variable is used in the system to get the label by id, {@link getLabelById}
@@ -121,18 +122,32 @@ var Label = class {
121
122
  return res;
122
123
  }
123
124
  /**
124
- * Get the function that will be executed before any step is executed, is useful for example to make sure all images used have been cached
125
+ * Is a function that will be executed in {@link Label#onStepStart} and when the user goes back to it or when the user laods a save file.
126
+ * @returns Promise<void> or void
127
+ */
128
+ get onStepStart() {
129
+ return (stepIndex, label) => __async(this, null, function* () {
130
+ if (this._onLoadStep) {
131
+ yield this._onLoadStep(stepIndex, label);
132
+ }
133
+ if (this._onStepStart) {
134
+ return yield this._onStepStart(stepIndex, label);
135
+ }
136
+ });
137
+ }
138
+ /**
139
+ * Get the function that will be executed a old step is reloaded. A step is reloaded when the user goes back to it or when the user laods a save file.
140
+ * @returns Promise<void> or void
141
+ */
142
+ get onLoadStep() {
143
+ return this._onLoadStep;
144
+ }
145
+ /**
146
+ * Is a function that will be executed when the step ends.
125
147
  * @returns Promise<void> or void
126
- * @example
127
- * ```typescript
128
- * newLabel("id", [], () => {
129
- * Assets.load('path/to/image1.png')
130
- * Assets.load('path/to/image2.png')
131
- * })
132
- * ```
133
148
  */
134
- get onStepRun() {
135
- return this._onStepRun;
149
+ get onStepEnd() {
150
+ return this._onStepEnd;
136
151
  }
137
152
  get choiseIndex() {
138
153
  return this._choiseIndex;
@@ -142,16 +157,18 @@ var Label = class {
142
157
  // src/classes/CloseLabel.ts
143
158
  var CLOSE_LABEL_ID = "__close-label-id__";
144
159
  function newCloseLabel(choiseIndex) {
145
- return new Label(CLOSE_LABEL_ID, [], void 0, choiseIndex);
160
+ return new Label(CLOSE_LABEL_ID, [], {
161
+ choiseIndex
162
+ });
146
163
  }
147
164
 
148
165
  // src/decorators/LabelDecorator.ts
149
166
  var registeredLabels = {};
150
- function newLabel(id, steps, onStepRun) {
167
+ function newLabel(id, steps, props) {
151
168
  if (registeredLabels[id]) {
152
169
  console.info(`[Pixi'VN] Label ${id} already exists, it will be overwritten`);
153
170
  }
154
- let label = new Label(id, steps, onStepRun);
171
+ let label = new Label(id, steps, props);
155
172
  registeredLabels[id] = label;
156
173
  return label;
157
174
  }
@@ -240,8 +257,6 @@ function getMemoryContainer(element) {
240
257
  };
241
258
  }
242
259
  function setMemoryContainer(element, memory) {
243
- memory.width && (element.width = memory.width);
244
- memory.height && (element.height = memory.height);
245
260
  memory.isRenderGroup && (element.isRenderGroup = memory.isRenderGroup);
246
261
  memory.blendMode && (element.blendMode = memory.blendMode);
247
262
  memory.tint && (element.tint = memory.tint);
@@ -274,6 +289,8 @@ function setMemoryContainer(element, memory) {
274
289
  memory.interactive && (element.interactive = memory.interactive);
275
290
  memory.interactiveChildren && (element.interactiveChildren = memory.interactiveChildren);
276
291
  memory.hitArea && (element.hitArea = memory.hitArea);
292
+ memory.width && (element.width = memory.width);
293
+ memory.height && (element.height = memory.height);
277
294
  }
278
295
  function getTexture(imageUrl) {
279
296
  return __async(this, null, function* () {
@@ -716,12 +733,32 @@ var ChoiceMenuOption = class {
716
733
  /**
717
734
  * @param text Text to be displayed in the menu
718
735
  * @param label Label to be opened when the option is selected or the id of the label
736
+ * @param props Properties to be passed to the label and olther parameters that you can use when get all the choice menu options. It be converted to a JSON string, so it cannot contain functions or classes.
719
737
  * @param type Type of the label to be opened. @default "call"
720
- * @param props Properties to be passed to the label, when the label is called. it cannot contain functions or classes. @default {}
721
738
  */
722
- constructor(text, label, type = "call", props) {
739
+ constructor(text, label, props, type = "call") {
723
740
  /**
724
- * Properties to be passed to the label
741
+ * Properties to be passed to the label and olther parameters that you can use when get all the choice menu options.
742
+ * @example
743
+ * ```tsx
744
+ * setChoiceMenuOptions([
745
+ * new ChoiceMenuOption("Hello", helloLabel, { disabled: true }),
746
+ * ])
747
+ * return <List>
748
+ * {getChoiceMenuOptions()?.map((item, index) => {
749
+ * return (
750
+ * <ChoiceButton
751
+ * disabled={item.props.disabled}
752
+ * onClick={() => {
753
+ * afterSelectChoice(item)
754
+ * }}
755
+ * >
756
+ * {item.text}
757
+ * </ChoiceButton>
758
+ * )
759
+ * })}
760
+ * </List>
761
+ * ```
725
762
  */
726
763
  this.props = {};
727
764
  if (typeof label === "string") {
@@ -755,7 +792,27 @@ var ChoiceMenuOptionClose = class {
755
792
  */
756
793
  this.type = Close;
757
794
  /**
758
- * Properties to be passed to the label
795
+ * Properties to be passed to the label and olther parameters that you can use when get all the choice menu options.
796
+ * @example
797
+ * ```tsx
798
+ * setChoiceMenuOptions([
799
+ * new ChoiceMenuOption("Hello", helloLabel, { disabled: true }),
800
+ * ])
801
+ * return <List>
802
+ * {getChoiceMenuOptions()?.map((item, index) => {
803
+ * return (
804
+ * <ChoiceButton
805
+ * disabled={item.props.disabled}
806
+ * onClick={() => {
807
+ * afterSelectChoice(item)
808
+ * }}
809
+ * >
810
+ * {item.text}
811
+ * </ChoiceButton>
812
+ * )
813
+ * })}
814
+ * </List>
815
+ * ```
759
816
  */
760
817
  this.props = {};
761
818
  this.text = text;
@@ -824,7 +881,10 @@ function getChoiceMenuOptions() {
824
881
  }
825
882
  let label = getLabelById(option.label);
826
883
  if (label) {
827
- let itemLabel = new Label(label.id, label.steps, label.onStepRun, index);
884
+ let itemLabel = new Label(label.id, label.steps, {
885
+ onStepStart: label.onStepStart,
886
+ choiseIndex: index
887
+ });
828
888
  options.push(__spreadProps(__spreadValues({}, option), {
829
889
  label: itemLabel
830
890
  }));
@@ -915,8 +975,9 @@ FadeAlphaTicker = __decorateClass([
915
975
  ], FadeAlphaTicker);
916
976
 
917
977
  // src/functions/TickerUtility.ts
918
- function updateTickerProgression(args, propertyName, progression) {
919
- if (args[propertyName] === void 0 || !progression || args[propertyName] === progression.limit) {
978
+ function updateTickerProgression(args, propertyName, progression, valueConvert) {
979
+ let limit = valueConvert && progression.limit ? valueConvert(progression.limit) : progression.limit;
980
+ if (args[propertyName] === void 0 || !progression || args[propertyName] === limit) {
920
981
  return;
921
982
  }
922
983
  if (typeof args[propertyName] === "number") {
@@ -935,22 +996,25 @@ function updateTickerProgression(args, propertyName, progression) {
935
996
  }
936
997
  }
937
998
  }
938
- function getLinearProgression(number, progression) {
939
- if (progression.limit !== void 0) {
940
- if (number > progression.limit && progression.amt > 0) {
941
- return progression.limit;
942
- } else if (number < progression.limit && progression.amt < 0) {
943
- return progression.limit;
999
+ function getLinearProgression(number, progression, valueConvert) {
1000
+ let limit = valueConvert && progression.limit ? valueConvert(progression.limit) : progression.limit;
1001
+ let amt = valueConvert ? valueConvert(progression.amt) : progression.amt;
1002
+ if (limit !== void 0) {
1003
+ if (number > limit && amt > 0) {
1004
+ return limit;
1005
+ } else if (number < limit && amt < 0) {
1006
+ return limit;
944
1007
  }
945
1008
  }
946
- return number + progression.amt / 60;
1009
+ return number + amt;
947
1010
  }
948
- function getExponentialProgression(number, progression) {
949
- if (progression.limit !== void 0) {
950
- if (number > progression.limit && progression.percentage > 0) {
951
- return progression.limit;
952
- } else if (number < progression.limit && progression.percentage < 0) {
953
- return progression.limit;
1011
+ function getExponentialProgression(number, progression, valueConvert) {
1012
+ let limit = valueConvert && progression.limit ? valueConvert(progression.limit) : progression.limit;
1013
+ if (limit !== void 0) {
1014
+ if (number > limit && progression.percentage > 0) {
1015
+ return limit;
1016
+ } else if (number < limit && progression.percentage < 0) {
1017
+ return limit;
954
1018
  }
955
1019
  }
956
1020
  return number + number * progression.percentage;
@@ -963,15 +1027,13 @@ var MoveTicker = class extends TickerBase {
963
1027
  let ySpeed = 1;
964
1028
  if (args.speed) {
965
1029
  if (typeof args.speed === "number") {
966
- xSpeed = args.speed;
967
- ySpeed = args.speed;
1030
+ xSpeed = this.speedConvert(args.speed);
1031
+ ySpeed = this.speedConvert(args.speed);
968
1032
  } else {
969
- xSpeed = args.speed.x;
970
- ySpeed = args.speed.y;
1033
+ xSpeed = this.speedConvert(args.speed.x);
1034
+ ySpeed = this.speedConvert(args.speed.y);
971
1035
  }
972
1036
  }
973
- xSpeed /= 60;
974
- ySpeed /= 60;
975
1037
  let destination = args.destination;
976
1038
  let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
977
1039
  if (typeof tagToRemoveAfter2 === "string") {
@@ -1011,7 +1073,10 @@ var MoveTicker = class extends TickerBase {
1011
1073
  }
1012
1074
  });
1013
1075
  if (args.speedProgression)
1014
- updateTickerProgression(args, "speed", args.speedProgression);
1076
+ updateTickerProgression(args, "speed", args.speedProgression, this.speedConvert);
1077
+ }
1078
+ speedConvert(speed) {
1079
+ return speed / 6;
1015
1080
  }
1016
1081
  };
1017
1082
  MoveTicker = __decorateClass([
@@ -1019,7 +1084,7 @@ MoveTicker = __decorateClass([
1019
1084
  ], MoveTicker);
1020
1085
  var RotateTicker = class extends TickerBase {
1021
1086
  fn(ticker, args, tags, tickerId) {
1022
- let speed = (args.speed === void 0 ? 1 : args.speed) / 60;
1087
+ let speed = this.speedConvert(args.speed === void 0 ? 1 : args.speed);
1023
1088
  let clockwise = args.clockwise === void 0 ? true : args.clockwise;
1024
1089
  let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
1025
1090
  if (typeof tagToRemoveAfter2 === "string") {
@@ -1047,7 +1112,10 @@ var RotateTicker = class extends TickerBase {
1047
1112
  }
1048
1113
  });
1049
1114
  if (args.speedProgression)
1050
- updateTickerProgression(args, "speed", args.speedProgression);
1115
+ updateTickerProgression(args, "speed", args.speedProgression, this.speedConvert);
1116
+ }
1117
+ speedConvert(speed) {
1118
+ return speed / 60;
1051
1119
  }
1052
1120
  };
1053
1121
  RotateTicker = __decorateClass([
@@ -1059,15 +1127,13 @@ var ZoomTicker = class extends TickerBase {
1059
1127
  let ySpeed = 0.1;
1060
1128
  if (args.speed) {
1061
1129
  if (typeof args.speed === "number") {
1062
- xSpeed = args.speed;
1063
- ySpeed = args.speed;
1130
+ xSpeed = this.speedConvert(args.speed);
1131
+ ySpeed = this.speedConvert(args.speed);
1064
1132
  } else {
1065
- xSpeed = args.speed.x;
1066
- ySpeed = args.speed.y;
1133
+ xSpeed = this.speedConvert(args.speed.x);
1134
+ ySpeed = this.speedConvert(args.speed.y);
1067
1135
  }
1068
1136
  }
1069
- xSpeed /= 60;
1070
- ySpeed /= 60;
1071
1137
  let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
1072
1138
  if (typeof tagToRemoveAfter2 === "string") {
1073
1139
  tagToRemoveAfter2 = [tagToRemoveAfter2];
@@ -1134,7 +1200,10 @@ var ZoomTicker = class extends TickerBase {
1134
1200
  }
1135
1201
  });
1136
1202
  if (args.speedProgression)
1137
- updateTickerProgression(args, "speed", args.speedProgression);
1203
+ updateTickerProgression(args, "speed", args.speedProgression, this.speedConvert);
1204
+ }
1205
+ speedConvert(speed) {
1206
+ return speed / 60;
1138
1207
  }
1139
1208
  onEndOfTicker(tag, tickerId, _element, tagToRemoveAfter2) {
1140
1209
  GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
@@ -1157,6 +1226,7 @@ var ZoomInOutTicker = class extends ZoomTicker {
1157
1226
  };
1158
1227
 
1159
1228
  // src/constants.ts
1229
+ var PIXIVN_VERSION = "0.6.5";
1160
1230
  var Repeat = "repeat";
1161
1231
  function Pause(duration) {
1162
1232
  return {
@@ -1334,14 +1404,14 @@ function zoomIn(_0, _1) {
1334
1404
  } else {
1335
1405
  canvasElement = image;
1336
1406
  }
1337
- if (canvasElement instanceof CanvasImage && ((_a = canvasElement.texture) == null ? void 0 : _a.label) == "EMPTY") {
1338
- yield canvasElement.load();
1339
- }
1340
1407
  let container = new CanvasContainer();
1341
1408
  container.addChild(canvasElement);
1342
1409
  container.height = GameWindowManager.canvasHeight;
1343
1410
  container.width = GameWindowManager.canvasWidth;
1344
1411
  GameWindowManager.addCanvasElement(tag, container);
1412
+ if (canvasElement instanceof CanvasImage && ((_a = canvasElement.texture) == null ? void 0 : _a.label) == "EMPTY") {
1413
+ yield canvasElement.load();
1414
+ }
1345
1415
  if (props.direction == "up") {
1346
1416
  container.pivot.y = GameWindowManager.canvasHeight;
1347
1417
  container.pivot.x = GameWindowManager.canvasWidth / 2;
@@ -2363,6 +2433,16 @@ var _GameStepManager = class _GameStepManager {
2363
2433
  static set originalStepData(value) {
2364
2434
  _GameStepManager._originalStepData = createExportableElement(value);
2365
2435
  }
2436
+ static get currentStepData() {
2437
+ let currentStepData = {
2438
+ path: window.location.pathname,
2439
+ storage: GameStorageManager.export(),
2440
+ canvas: GameWindowManager.export(),
2441
+ labelIndex: _GameStepManager.currentLabelStepIndex || 0,
2442
+ openedLabels: createExportableElement(_GameStepManager._openedLabels)
2443
+ };
2444
+ return currentStepData;
2445
+ }
2366
2446
  /* Edit History Methods */
2367
2447
  /**
2368
2448
  * Add a label to the history.
@@ -2370,19 +2450,13 @@ var _GameStepManager = class _GameStepManager {
2370
2450
  */
2371
2451
  static addStepHistory(step, choiseMade) {
2372
2452
  let stepHistory = getStepSha1(step);
2373
- let historyStep = {
2374
- path: window.location.pathname,
2375
- storage: GameStorageManager.export(),
2376
- canvas: GameWindowManager.export(),
2377
- labelIndex: _GameStepManager.currentLabelStepIndex || 0,
2378
- openedLabels: createExportableElement(_GameStepManager._openedLabels)
2379
- };
2453
+ let currentStepData = _GameStepManager.currentStepData;
2380
2454
  if (_GameStepManager.originalStepData) {
2381
- if (_GameStepManager.originalStepData.openedLabels.length === historyStep.openedLabels.length) {
2455
+ if (_GameStepManager.originalStepData.openedLabels.length === currentStepData.openedLabels.length) {
2382
2456
  try {
2383
2457
  let lastStepDataOpenedLabelsString = JSON.stringify(_GameStepManager.originalStepData.openedLabels);
2384
- let historyStepOpenedLabelsString = JSON.stringify(historyStep.openedLabels);
2385
- if (lastStepDataOpenedLabelsString === historyStepOpenedLabelsString && _GameStepManager.originalStepData.path === historyStep.path && _GameStepManager.originalStepData.labelIndex === historyStep.labelIndex) {
2458
+ let historyStepOpenedLabelsString = JSON.stringify(currentStepData.openedLabels);
2459
+ if (lastStepDataOpenedLabelsString === historyStepOpenedLabelsString && _GameStepManager.originalStepData.path === currentStepData.path && _GameStepManager.originalStepData.labelIndex === currentStepData.labelIndex) {
2386
2460
  return;
2387
2461
  }
2388
2462
  } catch (e) {
@@ -2390,7 +2464,7 @@ var _GameStepManager = class _GameStepManager {
2390
2464
  }
2391
2465
  }
2392
2466
  }
2393
- let data = diff(_GameStepManager.originalStepData, historyStep);
2467
+ let data = diff(_GameStepManager.originalStepData, currentStepData);
2394
2468
  if (data) {
2395
2469
  let dialoge = void 0;
2396
2470
  let requiredChoices = void 0;
@@ -2409,7 +2483,7 @@ var _GameStepManager = class _GameStepManager {
2409
2483
  index: _GameStepManager.lastStepIndex,
2410
2484
  choiceIndexMade: choiseMade
2411
2485
  });
2412
- _GameStepManager.originalStepData = historyStep;
2486
+ _GameStepManager.originalStepData = currentStepData;
2413
2487
  }
2414
2488
  _GameStepManager.increaseLastStepIndex();
2415
2489
  }
@@ -2500,6 +2574,9 @@ var _GameStepManager = class _GameStepManager {
2500
2574
  console.warn("[Pixi'VN] The player must make a choice");
2501
2575
  return;
2502
2576
  }
2577
+ if (_GameStepManager.currentLabel && _GameStepManager.currentLabel.onStepEnd) {
2578
+ yield _GameStepManager.currentLabel.onStepEnd(_GameStepManager.currentLabelStepIndex || 0, _GameStepManager.currentLabel);
2579
+ }
2503
2580
  _GameStepManager.increaseCurrentStepIndex();
2504
2581
  return yield _GameStepManager.runCurrentStep(props, choiseMade);
2505
2582
  });
@@ -2524,6 +2601,10 @@ var _GameStepManager = class _GameStepManager {
2524
2601
  return;
2525
2602
  }
2526
2603
  if (currentLabel.steps.length > currentLabelStepIndex) {
2604
+ let onStepRun = currentLabel.onStepStart;
2605
+ if (onStepRun) {
2606
+ yield onStepRun(currentLabelStepIndex, currentLabel);
2607
+ }
2527
2608
  let step = currentLabel.steps[currentLabelStepIndex];
2528
2609
  let result = yield step(props);
2529
2610
  _GameStepManager.addStepHistory(step, choiseMade);
@@ -2588,6 +2669,9 @@ var _GameStepManager = class _GameStepManager {
2588
2669
  if (!tempLabel) {
2589
2670
  throw new Error(`[Pixi'VN] Label ${labelId} not found`);
2590
2671
  }
2672
+ if (_GameStepManager.currentLabel && _GameStepManager.currentLabel.onStepEnd) {
2673
+ yield _GameStepManager.currentLabel.onStepEnd(_GameStepManager.currentLabelStepIndex || 0, _GameStepManager.currentLabel);
2674
+ }
2591
2675
  _GameStepManager.pushNewLabel(tempLabel.id);
2592
2676
  } catch (e) {
2593
2677
  console.error("[Pixi'VN] Error calling label", e);
@@ -2646,6 +2730,9 @@ var _GameStepManager = class _GameStepManager {
2646
2730
  if (!tempLabel) {
2647
2731
  throw new Error(`[Pixi'VN] Label ${labelId} not found`);
2648
2732
  }
2733
+ if (_GameStepManager.currentLabel && _GameStepManager.currentLabel.onStepEnd) {
2734
+ yield _GameStepManager.currentLabel.onStepEnd(_GameStepManager.currentLabelStepIndex || 0, _GameStepManager.currentLabel);
2735
+ }
2649
2736
  _GameStepManager.pushNewLabel(tempLabel.id);
2650
2737
  } catch (e) {
2651
2738
  console.error("[Pixi'VN] Error jumping label", e);
@@ -2751,24 +2838,29 @@ var _GameStepManager = class _GameStepManager {
2751
2838
  * ```
2752
2839
  */
2753
2840
  static goBack(navigate, steps = 1) {
2754
- if (steps <= 0) {
2755
- console.warn("[Pixi'VN] Steps must be greater than 0");
2756
- return;
2757
- }
2758
- if (_GameStepManager._stepsHistory.length <= 1) {
2759
- console.warn("[Pixi'VN] No steps to go back");
2760
- return;
2761
- }
2762
- let restoredStep = _GameStepManager.goBackInternal(steps, _GameStepManager.originalStepData);
2763
- if (restoredStep) {
2764
- _GameStepManager._originalStepData = restoredStep;
2765
- _GameStepManager._openedLabels = createExportableElement(restoredStep.openedLabels);
2766
- GameStorageManager.import(createExportableElement(restoredStep.storage));
2767
- GameWindowManager.import(createExportableElement(restoredStep.canvas));
2768
- navigate(restoredStep.path);
2769
- } else {
2770
- console.error("[Pixi'VN] Error going back");
2771
- }
2841
+ return __async(this, null, function* () {
2842
+ if (steps <= 0) {
2843
+ console.warn("[Pixi'VN] Steps must be greater than 0");
2844
+ return;
2845
+ }
2846
+ if (_GameStepManager._stepsHistory.length <= 1) {
2847
+ console.warn("[Pixi'VN] No steps to go back");
2848
+ return;
2849
+ }
2850
+ let restoredStep = _GameStepManager.goBackInternal(steps, _GameStepManager.originalStepData);
2851
+ if (restoredStep) {
2852
+ _GameStepManager._originalStepData = restoredStep;
2853
+ _GameStepManager._openedLabels = createExportableElement(restoredStep.openedLabels);
2854
+ if (_GameStepManager.currentLabel && _GameStepManager.currentLabel.onLoadStep) {
2855
+ yield _GameStepManager.currentLabel.onLoadStep(_GameStepManager.currentLabelStepIndex || 0, _GameStepManager.currentLabel);
2856
+ }
2857
+ GameStorageManager.import(createExportableElement(restoredStep.storage));
2858
+ GameWindowManager.import(createExportableElement(restoredStep.canvas));
2859
+ navigate(restoredStep.path);
2860
+ } else {
2861
+ console.error("[Pixi'VN] Error going back");
2862
+ }
2863
+ });
2772
2864
  }
2773
2865
  static goBackInternal(steps, restoredStep) {
2774
2866
  if (steps <= 0) {
@@ -2830,38 +2922,45 @@ var _GameStepManager = class _GameStepManager {
2830
2922
  * @param dataString The history in a JSON string.
2831
2923
  */
2832
2924
  static importJson(dataString) {
2833
- _GameStepManager.import(JSON.parse(dataString));
2925
+ return __async(this, null, function* () {
2926
+ yield _GameStepManager.import(JSON.parse(dataString));
2927
+ });
2834
2928
  }
2835
2929
  /**
2836
2930
  * Import the history from an object.
2837
2931
  * @param data The history in an object.
2838
2932
  */
2839
2933
  static import(data) {
2840
- _GameStepManager.clear();
2841
- try {
2842
- if (data.hasOwnProperty("stepsHistory")) {
2843
- _GameStepManager._stepsHistory = data["stepsHistory"];
2844
- } else {
2845
- console.warn("[Pixi'VN] Could not import stepsHistory data, so will be ignored");
2846
- }
2847
- if (data.hasOwnProperty("openedLabels")) {
2848
- _GameStepManager._openedLabels = data["openedLabels"];
2849
- } else {
2850
- console.warn("[Pixi'VN] Could not import openedLabels data, so will be ignored");
2851
- }
2852
- if (data.hasOwnProperty("lastStepIndex")) {
2853
- _GameStepManager._lastStepIndex = data["lastStepIndex"];
2854
- } else {
2855
- console.warn("[Pixi'VN] Could not import lastStepIndex data, so will be ignored");
2856
- }
2857
- if (data.hasOwnProperty("originalStepData")) {
2858
- _GameStepManager._originalStepData = data["originalStepData"];
2859
- } else {
2860
- console.warn("[Pixi'VN] Could not import originalStepData data, so will be ignored");
2934
+ return __async(this, null, function* () {
2935
+ _GameStepManager.clear();
2936
+ try {
2937
+ if (data.hasOwnProperty("stepsHistory")) {
2938
+ _GameStepManager._stepsHistory = data["stepsHistory"];
2939
+ } else {
2940
+ console.warn("[Pixi'VN] Could not import stepsHistory data, so will be ignored");
2941
+ }
2942
+ if (data.hasOwnProperty("openedLabels")) {
2943
+ _GameStepManager._openedLabels = data["openedLabels"];
2944
+ } else {
2945
+ console.warn("[Pixi'VN] Could not import openedLabels data, so will be ignored");
2946
+ }
2947
+ if (data.hasOwnProperty("lastStepIndex")) {
2948
+ _GameStepManager._lastStepIndex = data["lastStepIndex"];
2949
+ } else {
2950
+ console.warn("[Pixi'VN] Could not import lastStepIndex data, so will be ignored");
2951
+ }
2952
+ if (data.hasOwnProperty("originalStepData")) {
2953
+ _GameStepManager._originalStepData = data["originalStepData"];
2954
+ } else {
2955
+ console.warn("[Pixi'VN] Could not import originalStepData data, so will be ignored");
2956
+ }
2957
+ if (_GameStepManager.currentLabel && _GameStepManager.currentLabel.onLoadStep) {
2958
+ yield _GameStepManager.currentLabel.onLoadStep(_GameStepManager.currentLabelStepIndex || 0, _GameStepManager.currentLabel);
2959
+ }
2960
+ } catch (e) {
2961
+ console.error("[Pixi'VN] Error importing data", e);
2861
2962
  }
2862
- } catch (e) {
2863
- console.error("[Pixi'VN] Error importing data", e);
2864
- }
2963
+ });
2865
2964
  }
2866
2965
  };
2867
2966
  /**
@@ -3037,7 +3136,7 @@ var DialogueBaseModel = class {
3037
3136
  var juliette = new CharacterBaseModel2("___pixivn_juliette___", {
3038
3137
  name: "Juliette",
3039
3138
  age: 25,
3040
- icon: "https://firebasestorage.googleapis.com/v0/b/pixi-vn.appspot.com/o/public%2Fcharacters%2Fjuliette-square.webp?alt=media&token=5856ae7b-d99e-4563-86ec-cbc48cc9c6b4",
3139
+ icon: "https://firebasestorage.googleapis.com/v0/b/pixi-vn.appspot.com/o/public%2Fcharacters%2Fjuliette-square.webp?alt=media",
3041
3140
  color: "#ac0086"
3042
3141
  });
3043
3142
  saveCharacter(juliette);
@@ -3082,10 +3181,16 @@ var baseCanvasElementTestLabel = newLabel(
3082
3181
  removeCanvasElement("container");
3083
3182
  setDialogue({
3084
3183
  character: juliette,
3085
- text: `Here's what's going to happen: I'm going to create some text elements with different styles and put them on the stage.
3184
+ text: `Here's what's going to happen: I'm going to create some CanvasText with different styles and put them on the stage.
3086
3185
  But it will generate a warn message, because the FillGradient or FillPattern has not yet been supported by the Pixi\u2019VN ( you can see the status of the issue here: [#76](https://github.com/DRincs-Productions/pixi-vn/issues/76)).`
3087
3186
  });
3088
- const basicText = new CanvasText({ text: "Basic text in pixi" });
3187
+ const basicStyle = new TextStyle({
3188
+ fill: "#ffffff"
3189
+ });
3190
+ const basicText = new CanvasText({
3191
+ text: "Basic text in pixi",
3192
+ style: basicStyle
3193
+ });
3089
3194
  basicText.x = 50;
3090
3195
  basicText.y = 100;
3091
3196
  GameWindowManager.addCanvasElement("basicText", basicText);
@@ -3103,7 +3208,7 @@ But it will generate a warn message, because the FillGradient or FillPattern has
3103
3208
  fill: { fill },
3104
3209
  stroke: { color: "#4a1850", width: 5, join: "round" },
3105
3210
  dropShadow: {
3106
- color: "#000000",
3211
+ color: "#ff5f74",
3107
3212
  blur: 4,
3108
3213
  angle: Math.PI / 6,
3109
3214
  distance: 6
@@ -3156,36 +3261,30 @@ EventTest1 = __decorateClass([
3156
3261
  eventDecorator("___pixi_vn_canvas_events_test_event1___")
3157
3262
  ], EventTest1);
3158
3263
  var EventTest2 = class extends CanvasEvent {
3159
- constructor() {
3160
- super(...arguments);
3161
- this.textureButtonDown = Texture.from("https://pixijs.com/assets/button_down.png");
3162
- this.textureButtonOver = Texture.from("https://pixijs.com/assets/button_over.png");
3163
- this.textureButton = Texture.from("https://pixijs.com/assets/button.png");
3164
- }
3165
3264
  fn(event, sprite) {
3166
3265
  if (event === "pointerdown") {
3167
3266
  sprite.isdown = true;
3168
- sprite.texture = this.textureButtonDown;
3267
+ sprite.texture = Texture.from("https://pixijs.com/assets/button_down.png");
3169
3268
  sprite.alpha = 1;
3170
3269
  } else if (event === "pointerup" || event === "pointerupoutside") {
3171
3270
  sprite.isdown = false;
3172
3271
  if (sprite.isOver) {
3173
- sprite.texture = this.textureButtonOver;
3272
+ sprite.texture = Texture.from("https://pixijs.com/assets/button_over.png");
3174
3273
  } else {
3175
- sprite.texture = this.textureButton;
3274
+ sprite.texture = Texture.from("https://pixijs.com/assets/button.png");
3176
3275
  }
3177
3276
  } else if (event === "pointerover") {
3178
3277
  sprite.isOver = true;
3179
3278
  if (sprite.isdown) {
3180
3279
  return;
3181
3280
  }
3182
- sprite.texture = this.textureButtonOver;
3281
+ sprite.texture = Texture.from("https://pixijs.com/assets/button_over.png");
3183
3282
  } else if (event === "pointerout") {
3184
3283
  sprite.isOver = false;
3185
3284
  if (sprite.isdown) {
3186
3285
  return;
3187
3286
  }
3188
- sprite.texture = this.textureButton;
3287
+ sprite.texture = Texture.from("https://pixijs.com/assets/button.png");
3189
3288
  }
3190
3289
  }
3191
3290
  };
@@ -3207,6 +3306,7 @@ var canvasEventsTestLabel = newLabel(
3207
3306
  });
3208
3307
  const texture = yield Assets.load(bunnyImage);
3209
3308
  const sprite = CanvasSprite.from(texture);
3309
+ sprite.scale.set(3);
3210
3310
  sprite.anchor.set(0.5);
3211
3311
  sprite.x = GameWindowManager.screen.width / 2;
3212
3312
  sprite.y = GameWindowManager.screen.height / 2;
@@ -3221,17 +3321,12 @@ var canvasEventsTestLabel = newLabel(
3221
3321
  character: juliette,
3222
3322
  text: `This is the test of buttons in a canvas. (This example is from the official [PixiJS website](https://pixijs.com/8.x/examples/events/interactivity).)`
3223
3323
  });
3224
- yield Assets.load([
3225
- "https://pixijs.com/assets/bg_button.jpg",
3226
- "https://pixijs.com/assets/button.png",
3227
- "https://pixijs.com/assets/button_down.png",
3228
- "https://pixijs.com/assets/button_over.png"
3229
- ]);
3230
- const background = CanvasSprite.from("https://pixijs.com/assets/bg_button.jpg");
3324
+ const backgroundT = yield Assets.load("https://pixijs.com/assets/bg_button.jpg");
3325
+ const background = new CanvasSprite(backgroundT);
3231
3326
  background.width = GameWindowManager.screen.width;
3232
3327
  background.height = GameWindowManager.screen.height;
3233
3328
  GameWindowManager.addCanvasElement("bg", background);
3234
- const textureButton = Texture.from("https://pixijs.com/assets/button.png");
3329
+ const textureButton = yield Assets.load("https://pixijs.com/assets/button.png");
3235
3330
  const buttons = [];
3236
3331
  const buttonPositions = [175, 75, 655, 75, 410, 325, 150, 465, 685, 445];
3237
3332
  for (let i = 0; i < 5; i++) {
@@ -3251,7 +3346,17 @@ var canvasEventsTestLabel = newLabel(
3251
3346
  buttons[4].scale.set(0.8, 1.2);
3252
3347
  buttons[4].rotation = Math.PI;
3253
3348
  })
3254
- ]
3349
+ ],
3350
+ {
3351
+ onLoadStep: () => __async(void 0, null, function* () {
3352
+ yield Assets.load([
3353
+ "https://pixijs.com/assets/bg_button.jpg",
3354
+ "https://pixijs.com/assets/button.png",
3355
+ "https://pixijs.com/assets/button_down.png",
3356
+ "https://pixijs.com/assets/button_over.png"
3357
+ ]);
3358
+ })
3359
+ }
3255
3360
  );
3256
3361
  var AlienTintingTest = class extends CanvasSprite {
3257
3362
  constructor() {
@@ -3371,13 +3476,13 @@ var imagesAnimationsTest = newLabel(IMAGE_ANIMAIONS_TEST_LABEL, [
3371
3476
  () => __async(void 0, null, function* () {
3372
3477
  setDialogue({ character: juliette, text: "Here's what they can do." });
3373
3478
  setChoiceMenuOptions([
3374
- new ChoiceMenuOption("Dissolve effect", imagesDissolveTest),
3375
- new ChoiceMenuOption("Fade effect", imagesFadeTest),
3376
- new ChoiceMenuOption("Rotate", imagesRotateTest),
3377
- new ChoiceMenuOption("Move", imagesMoveTest),
3378
- new ChoiceMenuOption("Zoom", imagesZoomTest),
3379
- new ChoiceMenuOption("Move in/out", imagesMoveInOutTest),
3380
- new ChoiceMenuOption("Zoom in/out", imagesZoomInOutTest),
3479
+ new ChoiceMenuOption("Dissolve effect", imagesDissolveTest, {}),
3480
+ new ChoiceMenuOption("Fade effect", imagesFadeTest, {}),
3481
+ new ChoiceMenuOption("Rotate", imagesRotateTest, {}),
3482
+ new ChoiceMenuOption("Move", imagesMoveTest, {}),
3483
+ new ChoiceMenuOption("Zoom", imagesZoomTest, {}),
3484
+ new ChoiceMenuOption("Move in/out", imagesMoveInOutTest, {}),
3485
+ new ChoiceMenuOption("Zoom in/out", imagesZoomInOutTest, {}),
3381
3486
  new ChoiceMenuOptionClose("Cancel", true)
3382
3487
  ]);
3383
3488
  }),
@@ -3487,8 +3592,8 @@ var imagesRotateTest = newLabel("___pixi_vn_images_rotate_test___", [
3487
3592
  text: `Here's what's going to happen:
3488
3593
  - ${eggHeadName} will rotate with a anchor set to 0.
3489
3594
  - ${flowerTopName} will rotate with a anchor set to 0.5 and a exponential speed progression.
3490
- - ${helmlokName} will rotate with a anchor set to 0.5, rotate 2 times, move to the right, rotate 5 times, and repeat.
3491
- - ${skullyName} will rotate with a anchor set to 1, rotate 3 times, wait for 0.5 seconds, rotate 7 times.`
3595
+ - ${helmlokName} will rotate with a anchor set to 0.5, rotate clockwise for 2 seconds, rotate counterclockwise with a exponential (-0.05) speed progression, and when it reaches 0, it will repeat.
3596
+ - ${skullyName} will rotate with a anchor set to 1, rotate 3 seconds clockwise, wait for 0.5 seconds, and rotate 7 seconds counterclockwise.`
3492
3597
  });
3493
3598
  let eggHead = GameWindowManager.getCanvasElement("eggHead");
3494
3599
  if (eggHead)
@@ -3541,10 +3646,10 @@ var imagesMoveTest = newLabel("___pixi_vn_images_move_test___", [
3541
3646
  setDialogue({
3542
3647
  character: juliette,
3543
3648
  text: `Here's what's going to happen:
3544
- - ${eggHeadName} will move to { x: 500, y: 100 } with a speed of 0.4.
3545
- - ${flowerTopName} will move to { x: 500, y: 300 } with a speed of 0.3.
3546
- - ${helmlokName} will move to the right with a speed of 20 and a linear speed progression of -0.2, and then move to the left with a speed of 0.1 and a linear speed progression of 0.05.
3547
- - ${skullyName} will move to { x: 500, y: 500 } with a speed of 0.5, wait for 0.5 seconds, and move to { x: 100, y: 100 } with a speed of 0.5.`
3649
+ - ${eggHeadName} will move to { x: 500, y: 100 } with a speed of 24.
3650
+ - ${flowerTopName} will move to { x: 500, y: 300 } with a speed of 18.
3651
+ - ${helmlokName} will move to { x: 100, y: 500 } with a speed of 150 and a linear speed progression of -2 ( limit 10 ), and then move to { x: 1700, y: 500 } with a speed of 10 and a linear speed progression of 2 ( limit 150 ), and repeat.
3652
+ - ${skullyName} will move to { x: 500, y: 500 } with a speed of 40, wait for 0.5 seconds, and move to { x: 100, y: 100 } with a speed of 40.`
3548
3653
  });
3549
3654
  GameWindowManager.addTicker("eggHead", new MoveTicker({
3550
3655
  destination: { x: 500, y: 100 },
@@ -3557,25 +3662,25 @@ var imagesMoveTest = newLabel("___pixi_vn_images_move_test___", [
3557
3662
  GameWindowManager.addTickersSteps("helmlok", [
3558
3663
  new MoveTicker({
3559
3664
  destination: { x: 100, y: 500 },
3560
- speed: 1200,
3561
- speedProgression: { type: "linear", amt: -12, limit: 60 }
3665
+ speed: 150,
3666
+ speedProgression: { type: "linear", amt: -2, limit: 10 }
3562
3667
  }),
3563
3668
  new MoveTicker({
3564
3669
  destination: { x: 1700, y: 500 },
3565
- speed: 6,
3566
- speedProgression: { type: "linear", amt: 3 }
3670
+ speed: 10,
3671
+ speedProgression: { type: "linear", amt: 2, limit: 150 }
3567
3672
  }),
3568
3673
  Repeat
3569
3674
  ]);
3570
3675
  GameWindowManager.addTickersSteps("skully", [
3571
3676
  new MoveTicker({
3572
3677
  destination: { x: 500, y: 500 },
3573
- speed: 60
3678
+ speed: 40
3574
3679
  }),
3575
3680
  Pause(0.5),
3576
3681
  new MoveTicker({
3577
3682
  destination: { x: 100, y: 100 },
3578
- speed: 60
3683
+ speed: 40
3579
3684
  })
3580
3685
  ]);
3581
3686
  }
@@ -3637,37 +3742,45 @@ var imagesMoveInOutTest = newLabel("___pixi_vn_images_move_in_out_test___", [
3637
3742
  setDialogue({
3638
3743
  character: juliette,
3639
3744
  text: `Here's what's going to happen:
3640
- - ${eggHeadName} will move in from the top with a speed of 800. If you go next, ${eggHeadName} will move out from the bottom with a speed of 800.
3641
- - ${flowerTopName} will move in from the right with a speed of 800 and a speed progression of 0.02. If you go next, ${flowerTopName} will move out from the left with a speed of 800 and a speed progression of 0.02.
3642
- - ${helmlokName} will move in from the left with a speed of 800. If you go next, ${helmlokName} will move out from the right with a speed of 800.
3643
- - ${skullyName} will move in from the bottom with a speed of 800 and a speed progression of 0.02. If you go next, ${skullyName} will move out from the top with a speed of 800 and a speed progression of 0.02.`
3745
+ - ${eggHeadName} will move in from the top with a speed of 80. If you go next, ${eggHeadName} will move out from the bottom with a speed of 80.
3746
+ - ${flowerTopName} will move in from the right with a speed of 80 and a speed progression of 0.02. If you go next, ${flowerTopName} will move out from the left with a speed of 80 and a speed progression of 0.02.
3747
+ - ${helmlokName} will move in from the left with a speed of 80. If you go next, ${helmlokName} will move out from the right with a speed of 80.
3748
+ - ${skullyName} will move in from the bottom with a speed of 80 and a speed progression of 0.02. If you go next, ${skullyName} will move out from the top with a speed of 80 and a speed progression of 0.02.`
3644
3749
  });
3645
3750
  let eggHead = new CanvasImage({ x: 100, y: 100 }, eggHeadImage);
3646
3751
  let flowerTop = new CanvasImage({ x: 300, y: 100 }, flowerTopImage);
3647
3752
  let helmlok = new CanvasImage({ x: 100, y: 300 }, helmlokImage);
3648
3753
  let skully = new CanvasImage({ x: 300, y: 300 }, skullyImage);
3649
- moveIn("eggHead", eggHead, { speed: 800, direction: "down" });
3754
+ moveIn("eggHead", eggHead, { speed: 80, direction: "down" });
3650
3755
  moveIn("flowerTop", flowerTop, {
3651
- speed: 800,
3756
+ speed: 80,
3652
3757
  direction: "left",
3653
3758
  speedProgression: { type: "exponential", percentage: 0.02 }
3654
3759
  });
3655
- moveIn("helmlok", helmlok, { speed: 800, direction: "right" });
3760
+ moveIn("helmlok", helmlok, { speed: 80, direction: "right" });
3656
3761
  moveIn("skully", skully, {
3657
- speed: 800,
3762
+ speed: 80,
3658
3763
  direction: "up",
3659
3764
  speedProgression: { type: "exponential", percentage: 0.02 }
3660
3765
  });
3661
3766
  }),
3662
3767
  () => {
3663
- moveOut("eggHead", { speed: 800, direction: "down" });
3664
- moveOut("flowerTop", { speed: 800, direction: "left" });
3665
- moveOut("helmlok", { speed: 800, direction: "right" });
3666
- moveOut("skully", { speed: 800, direction: "up" });
3768
+ moveOut("eggHead", { speed: 80, direction: "down" });
3769
+ moveOut("flowerTop", { speed: 80, direction: "left" });
3770
+ moveOut("helmlok", { speed: 80, direction: "right" });
3771
+ moveOut("skully", { speed: 80, direction: "up" });
3667
3772
  }
3668
3773
  ]);
3669
3774
  var imagesZoomInOutTest = newLabel("___pixi_vn_images_zoom_in_out_test___", [
3670
3775
  () => __async(void 0, null, function* () {
3776
+ setDialogue({
3777
+ character: juliette,
3778
+ text: `Here's what's going to happen:
3779
+ - ${eggHeadName} will zoom in with a speed of 3. If you go next, ${eggHeadName} will zoom out with a speed of 3.
3780
+ - ${flowerTopName} will zoom in with a speed of 3 and a speed progression of 0.02. If you go next, ${flowerTopName} will zoom out with a speed of 3.
3781
+ - ${helmlokName} will zoom in with a speed of 3. If you go next, ${helmlokName} will zoom out with a speed of 1.
3782
+ - ${skullyName} will zoom in with a speed of 3 and a speed progression of 0.02. If you go next, ${skullyName} will zoom out with a speed of 3 and a speed progression of 0.02.`
3783
+ });
3671
3784
  GameWindowManager.removeCanvasElements();
3672
3785
  let eggHead = new CanvasImage({ x: 100, y: 100 }, eggHeadImage);
3673
3786
  let flowerTop = new CanvasImage({ x: 300, y: 100 }, flowerTopImage);
@@ -3693,7 +3806,7 @@ var imagesZoomInOutTest = newLabel("___pixi_vn_images_zoom_in_out_test___", [
3693
3806
  speedProgression: { type: "exponential", percentage: 0.02 }
3694
3807
  });
3695
3808
  zoomOut("flowerTop", { speed: 3, direction: "left" });
3696
- zoomOut("helmlok", { speed: 3, direction: "right" });
3809
+ zoomOut("helmlok", { speed: 1, direction: "right" });
3697
3810
  zoomOut("skully", {
3698
3811
  speed: 3,
3699
3812
  direction: "up",
@@ -3775,6 +3888,23 @@ Footer
3775
3888
  })
3776
3889
  ]);
3777
3890
 
3891
+ // src/labels/StepLabelTest.ts
3892
+ var STEP_LABEL_TEST_LABEL = "___pixi_vn_step_label_test___";
3893
+ var stepLabelTestLAbel = newLabel(STEP_LABEL_TEST_LABEL, [
3894
+ () => __async(void 0, null, function* () {
3895
+ setDialogue({ character: juliette, text: `Pixi'VN manages the succession of "screens" with steps. Each step is a function that can be asynchronous.` });
3896
+ }),
3897
+ () => __async(void 0, null, function* () {
3898
+ setDialogue({ character: juliette, text: "The labels are containers of steps, they are used to organize the steps in a more readable way. For start a steps sequence, you must call or jump to a label." });
3899
+ }),
3900
+ () => __async(void 0, null, function* () {
3901
+ setDialogue({ character: juliette, text: "It is also possible to ask the player to make a choice." });
3902
+ }),
3903
+ () => __async(void 0, null, function* () {
3904
+ setDialogue({ character: juliette, text: "Browsing through available tests is one way to test the steps/labels system." });
3905
+ })
3906
+ ]);
3907
+
3778
3908
  // src/labels/StartLabel.ts
3779
3909
  var pixivnTestStartLabel = newLabel(
3780
3910
  "___pixi_vn_example_start_label___",
@@ -3783,25 +3913,25 @@ var pixivnTestStartLabel = newLabel(
3783
3913
  let currentTimeName = "";
3784
3914
  const hour = (/* @__PURE__ */ new Date()).getHours();
3785
3915
  if (hour >= 5 && hour < 12) {
3786
- currentTimeName = "morning";
3916
+ currentTimeName = "morning\u{1F505}";
3787
3917
  } else if (hour >= 12 && hour < 18) {
3788
- currentTimeName = "afternoon";
3918
+ currentTimeName = "afternoon\u{1F506}";
3789
3919
  } else if (hour >= 18 && hour < 22) {
3790
- currentTimeName = "evening";
3920
+ currentTimeName = "evening\u26C5";
3791
3921
  } else {
3792
- currentTimeName = "night";
3922
+ currentTimeName = "night\u{1F319}";
3793
3923
  }
3794
3924
  setDialogue({ character: juliette, text: `Good ${currentTimeName}! I'm ${juliette.name}, your virtual assistant. I'm here to help you with your tests.` });
3795
3925
  },
3796
- () => setDialogue({ character: juliette, text: `You are running the Pixi\u2019VN test. This test will guide you through the different features of the library.` }),
3926
+ () => setDialogue({ character: juliette, text: `You are running the Pixi\u2019VN v${PIXIVN_VERSION} test. This test will guide you through the different features of the library.` }),
3797
3927
  (props) => GameStepManager.jumpLabel(pixivnTestStartLabel2, props)
3798
3928
  ]
3799
3929
  );
3800
- var openWiki = newLabel(
3801
- "___pixi_vn_open_wiki___",
3930
+ var openLink = newLabel(
3931
+ "___pixi_vn_open_link___",
3802
3932
  [
3803
3933
  (props) => {
3804
- window.open("https://pixi-vn.web.app/");
3934
+ window.open(props.link);
3805
3935
  GameStepManager.goNext(props);
3806
3936
  }
3807
3937
  ]
@@ -3814,12 +3944,14 @@ var pixivnTestStartLabel2 = newLabel(
3814
3944
  GameWindowManager.clear();
3815
3945
  setDialogue({ character: juliette, text: "Which test would you like to start with?" });
3816
3946
  setChoiceMenuOptions([
3817
- new ChoiceMenuOption("Open Pixi\u2019VN Wiki", openWiki),
3818
- new ChoiceMenuOption("Images, Transitions and Animations Test", imagesAnimationsTest),
3819
- new ChoiceMenuOption("Canvas Events Test Label", canvasEventsTestLabel),
3820
- new ChoiceMenuOption("Base Canvas Element Test", baseCanvasElementTestLabel),
3821
- new ChoiceMenuOption("Custom Ticker Canvas Element Test", customTickerCanvasElementTestLabel),
3822
- new ChoiceMenuOption("Markdown Test", markdownTest)
3947
+ new ChoiceMenuOption("Open Pixi\u2019VN Wiki", openLink, { link: "https://pixi-vn.web.app/" }),
3948
+ new ChoiceMenuOption("Images, Transitions and Animations Test", imagesAnimationsTest, {}),
3949
+ new ChoiceMenuOption("Canvas Events Test", canvasEventsTestLabel, {}),
3950
+ new ChoiceMenuOption("Base Canvas Element Test", baseCanvasElementTestLabel, {}),
3951
+ new ChoiceMenuOption("Custom Ticker Canvas Element Test", customTickerCanvasElementTestLabel, {}),
3952
+ new ChoiceMenuOption("Steps and Labels Test", stepLabelTestLAbel, {}),
3953
+ new ChoiceMenuOption("Markdown Test", markdownTest, {}),
3954
+ new ChoiceMenuOption("Open Pixi\u2019VN Github Issues", openLink, { link: "https://github.com/DRincs-Productions/pixi-vn/issues" })
3823
3955
  ]);
3824
3956
  },
3825
3957
  (props) => GameStepManager.jumpLabel(RESTART_TEST_LABEL, props)