@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
@@ -83,14 +83,15 @@ var Label = class {
83
83
  /**
84
84
  * @param id is the id of the label
85
85
  * @param steps is the list of steps that the label will perform
86
- * @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
87
- * @param choiseIndex is the index of the choice that the label will perform
86
+ * @param props is the properties of the label
88
87
  */
89
- constructor(id, steps, onStepRun, choiseIndex) {
88
+ constructor(id, steps, props) {
90
89
  this._id = id;
91
90
  this._steps = steps;
92
- this._onStepRun = onStepRun;
93
- this._choiseIndex = choiseIndex;
91
+ this._onStepStart = props == null ? void 0 : props.onStepStart;
92
+ this._onLoadStep = props == null ? void 0 : props.onLoadStep;
93
+ this._onStepEnd = props == null ? void 0 : props.onStepEnd;
94
+ this._choiseIndex = props == null ? void 0 : props.choiseIndex;
94
95
  }
95
96
  /**
96
97
  * Get the id of the label. This variable is used in the system to get the label by id, {@link getLabelById}
@@ -127,18 +128,32 @@ var Label = class {
127
128
  return res;
128
129
  }
129
130
  /**
130
- * 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
131
+ * 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.
132
+ * @returns Promise<void> or void
133
+ */
134
+ get onStepStart() {
135
+ return (stepIndex, label) => __async(this, null, function* () {
136
+ if (this._onLoadStep) {
137
+ yield this._onLoadStep(stepIndex, label);
138
+ }
139
+ if (this._onStepStart) {
140
+ return yield this._onStepStart(stepIndex, label);
141
+ }
142
+ });
143
+ }
144
+ /**
145
+ * 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.
146
+ * @returns Promise<void> or void
147
+ */
148
+ get onLoadStep() {
149
+ return this._onLoadStep;
150
+ }
151
+ /**
152
+ * Is a function that will be executed when the step ends.
131
153
  * @returns Promise<void> or void
132
- * @example
133
- * ```typescript
134
- * newLabel("id", [], () => {
135
- * Assets.load('path/to/image1.png')
136
- * Assets.load('path/to/image2.png')
137
- * })
138
- * ```
139
154
  */
140
- get onStepRun() {
141
- return this._onStepRun;
155
+ get onStepEnd() {
156
+ return this._onStepEnd;
142
157
  }
143
158
  get choiseIndex() {
144
159
  return this._choiseIndex;
@@ -148,16 +163,18 @@ var Label = class {
148
163
  // src/classes/CloseLabel.ts
149
164
  var CLOSE_LABEL_ID = "__close-label-id__";
150
165
  function newCloseLabel(choiseIndex) {
151
- return new Label(CLOSE_LABEL_ID, [], void 0, choiseIndex);
166
+ return new Label(CLOSE_LABEL_ID, [], {
167
+ choiseIndex
168
+ });
152
169
  }
153
170
 
154
171
  // src/decorators/LabelDecorator.ts
155
172
  var registeredLabels = {};
156
- function newLabel(id, steps, onStepRun) {
173
+ function newLabel(id, steps, props) {
157
174
  if (registeredLabels[id]) {
158
175
  console.info(`[Pixi'VN] Label ${id} already exists, it will be overwritten`);
159
176
  }
160
- let label = new Label(id, steps, onStepRun);
177
+ let label = new Label(id, steps, props);
161
178
  registeredLabels[id] = label;
162
179
  return label;
163
180
  }
@@ -246,8 +263,6 @@ function getMemoryContainer(element) {
246
263
  };
247
264
  }
248
265
  function setMemoryContainer(element, memory) {
249
- memory.width && (element.width = memory.width);
250
- memory.height && (element.height = memory.height);
251
266
  memory.isRenderGroup && (element.isRenderGroup = memory.isRenderGroup);
252
267
  memory.blendMode && (element.blendMode = memory.blendMode);
253
268
  memory.tint && (element.tint = memory.tint);
@@ -280,6 +295,8 @@ function setMemoryContainer(element, memory) {
280
295
  memory.interactive && (element.interactive = memory.interactive);
281
296
  memory.interactiveChildren && (element.interactiveChildren = memory.interactiveChildren);
282
297
  memory.hitArea && (element.hitArea = memory.hitArea);
298
+ memory.width && (element.width = memory.width);
299
+ memory.height && (element.height = memory.height);
283
300
  }
284
301
  function getTexture(imageUrl) {
285
302
  return __async(this, null, function* () {
@@ -722,12 +739,32 @@ var ChoiceMenuOption = class {
722
739
  /**
723
740
  * @param text Text to be displayed in the menu
724
741
  * @param label Label to be opened when the option is selected or the id of the label
742
+ * @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.
725
743
  * @param type Type of the label to be opened. @default "call"
726
- * @param props Properties to be passed to the label, when the label is called. it cannot contain functions or classes. @default {}
727
744
  */
728
- constructor(text, label, type = "call", props) {
745
+ constructor(text, label, props, type = "call") {
729
746
  /**
730
- * Properties to be passed to the label
747
+ * Properties to be passed to the label and olther parameters that you can use when get all the choice menu options.
748
+ * @example
749
+ * ```tsx
750
+ * setChoiceMenuOptions([
751
+ * new ChoiceMenuOption("Hello", helloLabel, { disabled: true }),
752
+ * ])
753
+ * return <List>
754
+ * {getChoiceMenuOptions()?.map((item, index) => {
755
+ * return (
756
+ * <ChoiceButton
757
+ * disabled={item.props.disabled}
758
+ * onClick={() => {
759
+ * afterSelectChoice(item)
760
+ * }}
761
+ * >
762
+ * {item.text}
763
+ * </ChoiceButton>
764
+ * )
765
+ * })}
766
+ * </List>
767
+ * ```
731
768
  */
732
769
  this.props = {};
733
770
  if (typeof label === "string") {
@@ -761,7 +798,27 @@ var ChoiceMenuOptionClose = class {
761
798
  */
762
799
  this.type = Close;
763
800
  /**
764
- * Properties to be passed to the label
801
+ * Properties to be passed to the label and olther parameters that you can use when get all the choice menu options.
802
+ * @example
803
+ * ```tsx
804
+ * setChoiceMenuOptions([
805
+ * new ChoiceMenuOption("Hello", helloLabel, { disabled: true }),
806
+ * ])
807
+ * return <List>
808
+ * {getChoiceMenuOptions()?.map((item, index) => {
809
+ * return (
810
+ * <ChoiceButton
811
+ * disabled={item.props.disabled}
812
+ * onClick={() => {
813
+ * afterSelectChoice(item)
814
+ * }}
815
+ * >
816
+ * {item.text}
817
+ * </ChoiceButton>
818
+ * )
819
+ * })}
820
+ * </List>
821
+ * ```
765
822
  */
766
823
  this.props = {};
767
824
  this.text = text;
@@ -830,7 +887,10 @@ function getChoiceMenuOptions() {
830
887
  }
831
888
  let label = getLabelById(option.label);
832
889
  if (label) {
833
- let itemLabel = new Label(label.id, label.steps, label.onStepRun, index);
890
+ let itemLabel = new Label(label.id, label.steps, {
891
+ onStepStart: label.onStepStart,
892
+ choiseIndex: index
893
+ });
834
894
  options.push(__spreadProps(__spreadValues({}, option), {
835
895
  label: itemLabel
836
896
  }));
@@ -921,8 +981,9 @@ FadeAlphaTicker = __decorateClass([
921
981
  ], FadeAlphaTicker);
922
982
 
923
983
  // src/functions/TickerUtility.ts
924
- function updateTickerProgression(args, propertyName, progression) {
925
- if (args[propertyName] === void 0 || !progression || args[propertyName] === progression.limit) {
984
+ function updateTickerProgression(args, propertyName, progression, valueConvert) {
985
+ let limit = valueConvert && progression.limit ? valueConvert(progression.limit) : progression.limit;
986
+ if (args[propertyName] === void 0 || !progression || args[propertyName] === limit) {
926
987
  return;
927
988
  }
928
989
  if (typeof args[propertyName] === "number") {
@@ -941,22 +1002,25 @@ function updateTickerProgression(args, propertyName, progression) {
941
1002
  }
942
1003
  }
943
1004
  }
944
- function getLinearProgression(number, progression) {
945
- if (progression.limit !== void 0) {
946
- if (number > progression.limit && progression.amt > 0) {
947
- return progression.limit;
948
- } else if (number < progression.limit && progression.amt < 0) {
949
- return progression.limit;
1005
+ function getLinearProgression(number, progression, valueConvert) {
1006
+ let limit = valueConvert && progression.limit ? valueConvert(progression.limit) : progression.limit;
1007
+ let amt = valueConvert ? valueConvert(progression.amt) : progression.amt;
1008
+ if (limit !== void 0) {
1009
+ if (number > limit && amt > 0) {
1010
+ return limit;
1011
+ } else if (number < limit && amt < 0) {
1012
+ return limit;
950
1013
  }
951
1014
  }
952
- return number + progression.amt / 60;
1015
+ return number + amt;
953
1016
  }
954
- function getExponentialProgression(number, progression) {
955
- if (progression.limit !== void 0) {
956
- if (number > progression.limit && progression.percentage > 0) {
957
- return progression.limit;
958
- } else if (number < progression.limit && progression.percentage < 0) {
959
- return progression.limit;
1017
+ function getExponentialProgression(number, progression, valueConvert) {
1018
+ let limit = valueConvert && progression.limit ? valueConvert(progression.limit) : progression.limit;
1019
+ if (limit !== void 0) {
1020
+ if (number > limit && progression.percentage > 0) {
1021
+ return limit;
1022
+ } else if (number < limit && progression.percentage < 0) {
1023
+ return limit;
960
1024
  }
961
1025
  }
962
1026
  return number + number * progression.percentage;
@@ -969,15 +1033,13 @@ var MoveTicker = class extends TickerBase {
969
1033
  let ySpeed = 1;
970
1034
  if (args.speed) {
971
1035
  if (typeof args.speed === "number") {
972
- xSpeed = args.speed;
973
- ySpeed = args.speed;
1036
+ xSpeed = this.speedConvert(args.speed);
1037
+ ySpeed = this.speedConvert(args.speed);
974
1038
  } else {
975
- xSpeed = args.speed.x;
976
- ySpeed = args.speed.y;
1039
+ xSpeed = this.speedConvert(args.speed.x);
1040
+ ySpeed = this.speedConvert(args.speed.y);
977
1041
  }
978
1042
  }
979
- xSpeed /= 60;
980
- ySpeed /= 60;
981
1043
  let destination = args.destination;
982
1044
  let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
983
1045
  if (typeof tagToRemoveAfter2 === "string") {
@@ -1017,7 +1079,10 @@ var MoveTicker = class extends TickerBase {
1017
1079
  }
1018
1080
  });
1019
1081
  if (args.speedProgression)
1020
- updateTickerProgression(args, "speed", args.speedProgression);
1082
+ updateTickerProgression(args, "speed", args.speedProgression, this.speedConvert);
1083
+ }
1084
+ speedConvert(speed) {
1085
+ return speed / 6;
1021
1086
  }
1022
1087
  };
1023
1088
  MoveTicker = __decorateClass([
@@ -1025,7 +1090,7 @@ MoveTicker = __decorateClass([
1025
1090
  ], MoveTicker);
1026
1091
  var RotateTicker = class extends TickerBase {
1027
1092
  fn(ticker, args, tags, tickerId) {
1028
- let speed = (args.speed === void 0 ? 1 : args.speed) / 60;
1093
+ let speed = this.speedConvert(args.speed === void 0 ? 1 : args.speed);
1029
1094
  let clockwise = args.clockwise === void 0 ? true : args.clockwise;
1030
1095
  let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
1031
1096
  if (typeof tagToRemoveAfter2 === "string") {
@@ -1053,7 +1118,10 @@ var RotateTicker = class extends TickerBase {
1053
1118
  }
1054
1119
  });
1055
1120
  if (args.speedProgression)
1056
- updateTickerProgression(args, "speed", args.speedProgression);
1121
+ updateTickerProgression(args, "speed", args.speedProgression, this.speedConvert);
1122
+ }
1123
+ speedConvert(speed) {
1124
+ return speed / 60;
1057
1125
  }
1058
1126
  };
1059
1127
  RotateTicker = __decorateClass([
@@ -1065,15 +1133,13 @@ var ZoomTicker = class extends TickerBase {
1065
1133
  let ySpeed = 0.1;
1066
1134
  if (args.speed) {
1067
1135
  if (typeof args.speed === "number") {
1068
- xSpeed = args.speed;
1069
- ySpeed = args.speed;
1136
+ xSpeed = this.speedConvert(args.speed);
1137
+ ySpeed = this.speedConvert(args.speed);
1070
1138
  } else {
1071
- xSpeed = args.speed.x;
1072
- ySpeed = args.speed.y;
1139
+ xSpeed = this.speedConvert(args.speed.x);
1140
+ ySpeed = this.speedConvert(args.speed.y);
1073
1141
  }
1074
1142
  }
1075
- xSpeed /= 60;
1076
- ySpeed /= 60;
1077
1143
  let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
1078
1144
  if (typeof tagToRemoveAfter2 === "string") {
1079
1145
  tagToRemoveAfter2 = [tagToRemoveAfter2];
@@ -1140,7 +1206,10 @@ var ZoomTicker = class extends TickerBase {
1140
1206
  }
1141
1207
  });
1142
1208
  if (args.speedProgression)
1143
- updateTickerProgression(args, "speed", args.speedProgression);
1209
+ updateTickerProgression(args, "speed", args.speedProgression, this.speedConvert);
1210
+ }
1211
+ speedConvert(speed) {
1212
+ return speed / 60;
1144
1213
  }
1145
1214
  onEndOfTicker(tag, tickerId, _element, tagToRemoveAfter2) {
1146
1215
  GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
@@ -1163,6 +1232,7 @@ var ZoomInOutTicker = class extends ZoomTicker {
1163
1232
  };
1164
1233
 
1165
1234
  // src/constants.ts
1235
+ var PIXIVN_VERSION = "0.6.5";
1166
1236
  var Repeat = "repeat";
1167
1237
  function Pause(duration) {
1168
1238
  return {
@@ -1340,14 +1410,14 @@ function zoomIn(_0, _1) {
1340
1410
  } else {
1341
1411
  canvasElement = image;
1342
1412
  }
1343
- if (canvasElement instanceof CanvasImage && ((_a = canvasElement.texture) == null ? void 0 : _a.label) == "EMPTY") {
1344
- yield canvasElement.load();
1345
- }
1346
1413
  let container = new CanvasContainer();
1347
1414
  container.addChild(canvasElement);
1348
1415
  container.height = GameWindowManager.canvasHeight;
1349
1416
  container.width = GameWindowManager.canvasWidth;
1350
1417
  GameWindowManager.addCanvasElement(tag, container);
1418
+ if (canvasElement instanceof CanvasImage && ((_a = canvasElement.texture) == null ? void 0 : _a.label) == "EMPTY") {
1419
+ yield canvasElement.load();
1420
+ }
1351
1421
  if (props.direction == "up") {
1352
1422
  container.pivot.y = GameWindowManager.canvasHeight;
1353
1423
  container.pivot.x = GameWindowManager.canvasWidth / 2;
@@ -2369,6 +2439,16 @@ var _GameStepManager = class _GameStepManager {
2369
2439
  static set originalStepData(value) {
2370
2440
  _GameStepManager._originalStepData = createExportableElement(value);
2371
2441
  }
2442
+ static get currentStepData() {
2443
+ let currentStepData = {
2444
+ path: window.location.pathname,
2445
+ storage: GameStorageManager.export(),
2446
+ canvas: GameWindowManager.export(),
2447
+ labelIndex: _GameStepManager.currentLabelStepIndex || 0,
2448
+ openedLabels: createExportableElement(_GameStepManager._openedLabels)
2449
+ };
2450
+ return currentStepData;
2451
+ }
2372
2452
  /* Edit History Methods */
2373
2453
  /**
2374
2454
  * Add a label to the history.
@@ -2376,19 +2456,13 @@ var _GameStepManager = class _GameStepManager {
2376
2456
  */
2377
2457
  static addStepHistory(step, choiseMade) {
2378
2458
  let stepHistory = getStepSha1(step);
2379
- let historyStep = {
2380
- path: window.location.pathname,
2381
- storage: GameStorageManager.export(),
2382
- canvas: GameWindowManager.export(),
2383
- labelIndex: _GameStepManager.currentLabelStepIndex || 0,
2384
- openedLabels: createExportableElement(_GameStepManager._openedLabels)
2385
- };
2459
+ let currentStepData = _GameStepManager.currentStepData;
2386
2460
  if (_GameStepManager.originalStepData) {
2387
- if (_GameStepManager.originalStepData.openedLabels.length === historyStep.openedLabels.length) {
2461
+ if (_GameStepManager.originalStepData.openedLabels.length === currentStepData.openedLabels.length) {
2388
2462
  try {
2389
2463
  let lastStepDataOpenedLabelsString = JSON.stringify(_GameStepManager.originalStepData.openedLabels);
2390
- let historyStepOpenedLabelsString = JSON.stringify(historyStep.openedLabels);
2391
- if (lastStepDataOpenedLabelsString === historyStepOpenedLabelsString && _GameStepManager.originalStepData.path === historyStep.path && _GameStepManager.originalStepData.labelIndex === historyStep.labelIndex) {
2464
+ let historyStepOpenedLabelsString = JSON.stringify(currentStepData.openedLabels);
2465
+ if (lastStepDataOpenedLabelsString === historyStepOpenedLabelsString && _GameStepManager.originalStepData.path === currentStepData.path && _GameStepManager.originalStepData.labelIndex === currentStepData.labelIndex) {
2392
2466
  return;
2393
2467
  }
2394
2468
  } catch (e) {
@@ -2396,7 +2470,7 @@ var _GameStepManager = class _GameStepManager {
2396
2470
  }
2397
2471
  }
2398
2472
  }
2399
- let data = deepDiff.diff(_GameStepManager.originalStepData, historyStep);
2473
+ let data = deepDiff.diff(_GameStepManager.originalStepData, currentStepData);
2400
2474
  if (data) {
2401
2475
  let dialoge = void 0;
2402
2476
  let requiredChoices = void 0;
@@ -2415,7 +2489,7 @@ var _GameStepManager = class _GameStepManager {
2415
2489
  index: _GameStepManager.lastStepIndex,
2416
2490
  choiceIndexMade: choiseMade
2417
2491
  });
2418
- _GameStepManager.originalStepData = historyStep;
2492
+ _GameStepManager.originalStepData = currentStepData;
2419
2493
  }
2420
2494
  _GameStepManager.increaseLastStepIndex();
2421
2495
  }
@@ -2506,6 +2580,9 @@ var _GameStepManager = class _GameStepManager {
2506
2580
  console.warn("[Pixi'VN] The player must make a choice");
2507
2581
  return;
2508
2582
  }
2583
+ if (_GameStepManager.currentLabel && _GameStepManager.currentLabel.onStepEnd) {
2584
+ yield _GameStepManager.currentLabel.onStepEnd(_GameStepManager.currentLabelStepIndex || 0, _GameStepManager.currentLabel);
2585
+ }
2509
2586
  _GameStepManager.increaseCurrentStepIndex();
2510
2587
  return yield _GameStepManager.runCurrentStep(props, choiseMade);
2511
2588
  });
@@ -2530,6 +2607,10 @@ var _GameStepManager = class _GameStepManager {
2530
2607
  return;
2531
2608
  }
2532
2609
  if (currentLabel.steps.length > currentLabelStepIndex) {
2610
+ let onStepRun = currentLabel.onStepStart;
2611
+ if (onStepRun) {
2612
+ yield onStepRun(currentLabelStepIndex, currentLabel);
2613
+ }
2533
2614
  let step = currentLabel.steps[currentLabelStepIndex];
2534
2615
  let result = yield step(props);
2535
2616
  _GameStepManager.addStepHistory(step, choiseMade);
@@ -2594,6 +2675,9 @@ var _GameStepManager = class _GameStepManager {
2594
2675
  if (!tempLabel) {
2595
2676
  throw new Error(`[Pixi'VN] Label ${labelId} not found`);
2596
2677
  }
2678
+ if (_GameStepManager.currentLabel && _GameStepManager.currentLabel.onStepEnd) {
2679
+ yield _GameStepManager.currentLabel.onStepEnd(_GameStepManager.currentLabelStepIndex || 0, _GameStepManager.currentLabel);
2680
+ }
2597
2681
  _GameStepManager.pushNewLabel(tempLabel.id);
2598
2682
  } catch (e) {
2599
2683
  console.error("[Pixi'VN] Error calling label", e);
@@ -2652,6 +2736,9 @@ var _GameStepManager = class _GameStepManager {
2652
2736
  if (!tempLabel) {
2653
2737
  throw new Error(`[Pixi'VN] Label ${labelId} not found`);
2654
2738
  }
2739
+ if (_GameStepManager.currentLabel && _GameStepManager.currentLabel.onStepEnd) {
2740
+ yield _GameStepManager.currentLabel.onStepEnd(_GameStepManager.currentLabelStepIndex || 0, _GameStepManager.currentLabel);
2741
+ }
2655
2742
  _GameStepManager.pushNewLabel(tempLabel.id);
2656
2743
  } catch (e) {
2657
2744
  console.error("[Pixi'VN] Error jumping label", e);
@@ -2757,24 +2844,29 @@ var _GameStepManager = class _GameStepManager {
2757
2844
  * ```
2758
2845
  */
2759
2846
  static goBack(navigate, steps = 1) {
2760
- if (steps <= 0) {
2761
- console.warn("[Pixi'VN] Steps must be greater than 0");
2762
- return;
2763
- }
2764
- if (_GameStepManager._stepsHistory.length <= 1) {
2765
- console.warn("[Pixi'VN] No steps to go back");
2766
- return;
2767
- }
2768
- let restoredStep = _GameStepManager.goBackInternal(steps, _GameStepManager.originalStepData);
2769
- if (restoredStep) {
2770
- _GameStepManager._originalStepData = restoredStep;
2771
- _GameStepManager._openedLabels = createExportableElement(restoredStep.openedLabels);
2772
- GameStorageManager.import(createExportableElement(restoredStep.storage));
2773
- GameWindowManager.import(createExportableElement(restoredStep.canvas));
2774
- navigate(restoredStep.path);
2775
- } else {
2776
- console.error("[Pixi'VN] Error going back");
2777
- }
2847
+ return __async(this, null, function* () {
2848
+ if (steps <= 0) {
2849
+ console.warn("[Pixi'VN] Steps must be greater than 0");
2850
+ return;
2851
+ }
2852
+ if (_GameStepManager._stepsHistory.length <= 1) {
2853
+ console.warn("[Pixi'VN] No steps to go back");
2854
+ return;
2855
+ }
2856
+ let restoredStep = _GameStepManager.goBackInternal(steps, _GameStepManager.originalStepData);
2857
+ if (restoredStep) {
2858
+ _GameStepManager._originalStepData = restoredStep;
2859
+ _GameStepManager._openedLabels = createExportableElement(restoredStep.openedLabels);
2860
+ if (_GameStepManager.currentLabel && _GameStepManager.currentLabel.onLoadStep) {
2861
+ yield _GameStepManager.currentLabel.onLoadStep(_GameStepManager.currentLabelStepIndex || 0, _GameStepManager.currentLabel);
2862
+ }
2863
+ GameStorageManager.import(createExportableElement(restoredStep.storage));
2864
+ GameWindowManager.import(createExportableElement(restoredStep.canvas));
2865
+ navigate(restoredStep.path);
2866
+ } else {
2867
+ console.error("[Pixi'VN] Error going back");
2868
+ }
2869
+ });
2778
2870
  }
2779
2871
  static goBackInternal(steps, restoredStep) {
2780
2872
  if (steps <= 0) {
@@ -2836,38 +2928,45 @@ var _GameStepManager = class _GameStepManager {
2836
2928
  * @param dataString The history in a JSON string.
2837
2929
  */
2838
2930
  static importJson(dataString) {
2839
- _GameStepManager.import(JSON.parse(dataString));
2931
+ return __async(this, null, function* () {
2932
+ yield _GameStepManager.import(JSON.parse(dataString));
2933
+ });
2840
2934
  }
2841
2935
  /**
2842
2936
  * Import the history from an object.
2843
2937
  * @param data The history in an object.
2844
2938
  */
2845
2939
  static import(data) {
2846
- _GameStepManager.clear();
2847
- try {
2848
- if (data.hasOwnProperty("stepsHistory")) {
2849
- _GameStepManager._stepsHistory = data["stepsHistory"];
2850
- } else {
2851
- console.warn("[Pixi'VN] Could not import stepsHistory data, so will be ignored");
2852
- }
2853
- if (data.hasOwnProperty("openedLabels")) {
2854
- _GameStepManager._openedLabels = data["openedLabels"];
2855
- } else {
2856
- console.warn("[Pixi'VN] Could not import openedLabels data, so will be ignored");
2857
- }
2858
- if (data.hasOwnProperty("lastStepIndex")) {
2859
- _GameStepManager._lastStepIndex = data["lastStepIndex"];
2860
- } else {
2861
- console.warn("[Pixi'VN] Could not import lastStepIndex data, so will be ignored");
2862
- }
2863
- if (data.hasOwnProperty("originalStepData")) {
2864
- _GameStepManager._originalStepData = data["originalStepData"];
2865
- } else {
2866
- console.warn("[Pixi'VN] Could not import originalStepData data, so will be ignored");
2940
+ return __async(this, null, function* () {
2941
+ _GameStepManager.clear();
2942
+ try {
2943
+ if (data.hasOwnProperty("stepsHistory")) {
2944
+ _GameStepManager._stepsHistory = data["stepsHistory"];
2945
+ } else {
2946
+ console.warn("[Pixi'VN] Could not import stepsHistory data, so will be ignored");
2947
+ }
2948
+ if (data.hasOwnProperty("openedLabels")) {
2949
+ _GameStepManager._openedLabels = data["openedLabels"];
2950
+ } else {
2951
+ console.warn("[Pixi'VN] Could not import openedLabels data, so will be ignored");
2952
+ }
2953
+ if (data.hasOwnProperty("lastStepIndex")) {
2954
+ _GameStepManager._lastStepIndex = data["lastStepIndex"];
2955
+ } else {
2956
+ console.warn("[Pixi'VN] Could not import lastStepIndex data, so will be ignored");
2957
+ }
2958
+ if (data.hasOwnProperty("originalStepData")) {
2959
+ _GameStepManager._originalStepData = data["originalStepData"];
2960
+ } else {
2961
+ console.warn("[Pixi'VN] Could not import originalStepData data, so will be ignored");
2962
+ }
2963
+ if (_GameStepManager.currentLabel && _GameStepManager.currentLabel.onLoadStep) {
2964
+ yield _GameStepManager.currentLabel.onLoadStep(_GameStepManager.currentLabelStepIndex || 0, _GameStepManager.currentLabel);
2965
+ }
2966
+ } catch (e) {
2967
+ console.error("[Pixi'VN] Error importing data", e);
2867
2968
  }
2868
- } catch (e) {
2869
- console.error("[Pixi'VN] Error importing data", e);
2870
- }
2969
+ });
2871
2970
  }
2872
2971
  };
2873
2972
  /**
@@ -3043,7 +3142,7 @@ var DialogueBaseModel = class {
3043
3142
  var juliette = new CharacterBaseModel2("___pixivn_juliette___", {
3044
3143
  name: "Juliette",
3045
3144
  age: 25,
3046
- 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",
3145
+ icon: "https://firebasestorage.googleapis.com/v0/b/pixi-vn.appspot.com/o/public%2Fcharacters%2Fjuliette-square.webp?alt=media",
3047
3146
  color: "#ac0086"
3048
3147
  });
3049
3148
  saveCharacter(juliette);
@@ -3088,10 +3187,16 @@ var baseCanvasElementTestLabel = newLabel(
3088
3187
  removeCanvasElement("container");
3089
3188
  setDialogue({
3090
3189
  character: juliette,
3091
- 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.
3190
+ text: `Here's what's going to happen: I'm going to create some CanvasText with different styles and put them on the stage.
3092
3191
  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)).`
3093
3192
  });
3094
- const basicText = new CanvasText({ text: "Basic text in pixi" });
3193
+ const basicStyle = new pixi_js.TextStyle({
3194
+ fill: "#ffffff"
3195
+ });
3196
+ const basicText = new CanvasText({
3197
+ text: "Basic text in pixi",
3198
+ style: basicStyle
3199
+ });
3095
3200
  basicText.x = 50;
3096
3201
  basicText.y = 100;
3097
3202
  GameWindowManager.addCanvasElement("basicText", basicText);
@@ -3109,7 +3214,7 @@ But it will generate a warn message, because the FillGradient or FillPattern has
3109
3214
  fill: { fill },
3110
3215
  stroke: { color: "#4a1850", width: 5, join: "round" },
3111
3216
  dropShadow: {
3112
- color: "#000000",
3217
+ color: "#ff5f74",
3113
3218
  blur: 4,
3114
3219
  angle: Math.PI / 6,
3115
3220
  distance: 6
@@ -3162,36 +3267,30 @@ EventTest1 = __decorateClass([
3162
3267
  eventDecorator("___pixi_vn_canvas_events_test_event1___")
3163
3268
  ], EventTest1);
3164
3269
  var EventTest2 = class extends CanvasEvent {
3165
- constructor() {
3166
- super(...arguments);
3167
- this.textureButtonDown = pixi_js.Texture.from("https://pixijs.com/assets/button_down.png");
3168
- this.textureButtonOver = pixi_js.Texture.from("https://pixijs.com/assets/button_over.png");
3169
- this.textureButton = pixi_js.Texture.from("https://pixijs.com/assets/button.png");
3170
- }
3171
3270
  fn(event, sprite) {
3172
3271
  if (event === "pointerdown") {
3173
3272
  sprite.isdown = true;
3174
- sprite.texture = this.textureButtonDown;
3273
+ sprite.texture = pixi_js.Texture.from("https://pixijs.com/assets/button_down.png");
3175
3274
  sprite.alpha = 1;
3176
3275
  } else if (event === "pointerup" || event === "pointerupoutside") {
3177
3276
  sprite.isdown = false;
3178
3277
  if (sprite.isOver) {
3179
- sprite.texture = this.textureButtonOver;
3278
+ sprite.texture = pixi_js.Texture.from("https://pixijs.com/assets/button_over.png");
3180
3279
  } else {
3181
- sprite.texture = this.textureButton;
3280
+ sprite.texture = pixi_js.Texture.from("https://pixijs.com/assets/button.png");
3182
3281
  }
3183
3282
  } else if (event === "pointerover") {
3184
3283
  sprite.isOver = true;
3185
3284
  if (sprite.isdown) {
3186
3285
  return;
3187
3286
  }
3188
- sprite.texture = this.textureButtonOver;
3287
+ sprite.texture = pixi_js.Texture.from("https://pixijs.com/assets/button_over.png");
3189
3288
  } else if (event === "pointerout") {
3190
3289
  sprite.isOver = false;
3191
3290
  if (sprite.isdown) {
3192
3291
  return;
3193
3292
  }
3194
- sprite.texture = this.textureButton;
3293
+ sprite.texture = pixi_js.Texture.from("https://pixijs.com/assets/button.png");
3195
3294
  }
3196
3295
  }
3197
3296
  };
@@ -3213,6 +3312,7 @@ var canvasEventsTestLabel = newLabel(
3213
3312
  });
3214
3313
  const texture = yield pixi_js.Assets.load(bunnyImage);
3215
3314
  const sprite = CanvasSprite.from(texture);
3315
+ sprite.scale.set(3);
3216
3316
  sprite.anchor.set(0.5);
3217
3317
  sprite.x = GameWindowManager.screen.width / 2;
3218
3318
  sprite.y = GameWindowManager.screen.height / 2;
@@ -3227,17 +3327,12 @@ var canvasEventsTestLabel = newLabel(
3227
3327
  character: juliette,
3228
3328
  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).)`
3229
3329
  });
3230
- yield pixi_js.Assets.load([
3231
- "https://pixijs.com/assets/bg_button.jpg",
3232
- "https://pixijs.com/assets/button.png",
3233
- "https://pixijs.com/assets/button_down.png",
3234
- "https://pixijs.com/assets/button_over.png"
3235
- ]);
3236
- const background = CanvasSprite.from("https://pixijs.com/assets/bg_button.jpg");
3330
+ const backgroundT = yield pixi_js.Assets.load("https://pixijs.com/assets/bg_button.jpg");
3331
+ const background = new CanvasSprite(backgroundT);
3237
3332
  background.width = GameWindowManager.screen.width;
3238
3333
  background.height = GameWindowManager.screen.height;
3239
3334
  GameWindowManager.addCanvasElement("bg", background);
3240
- const textureButton = pixi_js.Texture.from("https://pixijs.com/assets/button.png");
3335
+ const textureButton = yield pixi_js.Assets.load("https://pixijs.com/assets/button.png");
3241
3336
  const buttons = [];
3242
3337
  const buttonPositions = [175, 75, 655, 75, 410, 325, 150, 465, 685, 445];
3243
3338
  for (let i = 0; i < 5; i++) {
@@ -3257,7 +3352,17 @@ var canvasEventsTestLabel = newLabel(
3257
3352
  buttons[4].scale.set(0.8, 1.2);
3258
3353
  buttons[4].rotation = Math.PI;
3259
3354
  })
3260
- ]
3355
+ ],
3356
+ {
3357
+ onLoadStep: () => __async(void 0, null, function* () {
3358
+ yield pixi_js.Assets.load([
3359
+ "https://pixijs.com/assets/bg_button.jpg",
3360
+ "https://pixijs.com/assets/button.png",
3361
+ "https://pixijs.com/assets/button_down.png",
3362
+ "https://pixijs.com/assets/button_over.png"
3363
+ ]);
3364
+ })
3365
+ }
3261
3366
  );
3262
3367
  var AlienTintingTest = class extends CanvasSprite {
3263
3368
  constructor() {
@@ -3377,13 +3482,13 @@ var imagesAnimationsTest = newLabel(IMAGE_ANIMAIONS_TEST_LABEL, [
3377
3482
  () => __async(void 0, null, function* () {
3378
3483
  setDialogue({ character: juliette, text: "Here's what they can do." });
3379
3484
  setChoiceMenuOptions([
3380
- new ChoiceMenuOption("Dissolve effect", imagesDissolveTest),
3381
- new ChoiceMenuOption("Fade effect", imagesFadeTest),
3382
- new ChoiceMenuOption("Rotate", imagesRotateTest),
3383
- new ChoiceMenuOption("Move", imagesMoveTest),
3384
- new ChoiceMenuOption("Zoom", imagesZoomTest),
3385
- new ChoiceMenuOption("Move in/out", imagesMoveInOutTest),
3386
- new ChoiceMenuOption("Zoom in/out", imagesZoomInOutTest),
3485
+ new ChoiceMenuOption("Dissolve effect", imagesDissolveTest, {}),
3486
+ new ChoiceMenuOption("Fade effect", imagesFadeTest, {}),
3487
+ new ChoiceMenuOption("Rotate", imagesRotateTest, {}),
3488
+ new ChoiceMenuOption("Move", imagesMoveTest, {}),
3489
+ new ChoiceMenuOption("Zoom", imagesZoomTest, {}),
3490
+ new ChoiceMenuOption("Move in/out", imagesMoveInOutTest, {}),
3491
+ new ChoiceMenuOption("Zoom in/out", imagesZoomInOutTest, {}),
3387
3492
  new ChoiceMenuOptionClose("Cancel", true)
3388
3493
  ]);
3389
3494
  }),
@@ -3493,8 +3598,8 @@ var imagesRotateTest = newLabel("___pixi_vn_images_rotate_test___", [
3493
3598
  text: `Here's what's going to happen:
3494
3599
  - ${eggHeadName} will rotate with a anchor set to 0.
3495
3600
  - ${flowerTopName} will rotate with a anchor set to 0.5 and a exponential speed progression.
3496
- - ${helmlokName} will rotate with a anchor set to 0.5, rotate 2 times, move to the right, rotate 5 times, and repeat.
3497
- - ${skullyName} will rotate with a anchor set to 1, rotate 3 times, wait for 0.5 seconds, rotate 7 times.`
3601
+ - ${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.
3602
+ - ${skullyName} will rotate with a anchor set to 1, rotate 3 seconds clockwise, wait for 0.5 seconds, and rotate 7 seconds counterclockwise.`
3498
3603
  });
3499
3604
  let eggHead = GameWindowManager.getCanvasElement("eggHead");
3500
3605
  if (eggHead)
@@ -3547,10 +3652,10 @@ var imagesMoveTest = newLabel("___pixi_vn_images_move_test___", [
3547
3652
  setDialogue({
3548
3653
  character: juliette,
3549
3654
  text: `Here's what's going to happen:
3550
- - ${eggHeadName} will move to { x: 500, y: 100 } with a speed of 0.4.
3551
- - ${flowerTopName} will move to { x: 500, y: 300 } with a speed of 0.3.
3552
- - ${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.
3553
- - ${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.`
3655
+ - ${eggHeadName} will move to { x: 500, y: 100 } with a speed of 24.
3656
+ - ${flowerTopName} will move to { x: 500, y: 300 } with a speed of 18.
3657
+ - ${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.
3658
+ - ${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.`
3554
3659
  });
3555
3660
  GameWindowManager.addTicker("eggHead", new MoveTicker({
3556
3661
  destination: { x: 500, y: 100 },
@@ -3563,25 +3668,25 @@ var imagesMoveTest = newLabel("___pixi_vn_images_move_test___", [
3563
3668
  GameWindowManager.addTickersSteps("helmlok", [
3564
3669
  new MoveTicker({
3565
3670
  destination: { x: 100, y: 500 },
3566
- speed: 1200,
3567
- speedProgression: { type: "linear", amt: -12, limit: 60 }
3671
+ speed: 150,
3672
+ speedProgression: { type: "linear", amt: -2, limit: 10 }
3568
3673
  }),
3569
3674
  new MoveTicker({
3570
3675
  destination: { x: 1700, y: 500 },
3571
- speed: 6,
3572
- speedProgression: { type: "linear", amt: 3 }
3676
+ speed: 10,
3677
+ speedProgression: { type: "linear", amt: 2, limit: 150 }
3573
3678
  }),
3574
3679
  Repeat
3575
3680
  ]);
3576
3681
  GameWindowManager.addTickersSteps("skully", [
3577
3682
  new MoveTicker({
3578
3683
  destination: { x: 500, y: 500 },
3579
- speed: 60
3684
+ speed: 40
3580
3685
  }),
3581
3686
  Pause(0.5),
3582
3687
  new MoveTicker({
3583
3688
  destination: { x: 100, y: 100 },
3584
- speed: 60
3689
+ speed: 40
3585
3690
  })
3586
3691
  ]);
3587
3692
  }
@@ -3643,37 +3748,45 @@ var imagesMoveInOutTest = newLabel("___pixi_vn_images_move_in_out_test___", [
3643
3748
  setDialogue({
3644
3749
  character: juliette,
3645
3750
  text: `Here's what's going to happen:
3646
- - ${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.
3647
- - ${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.
3648
- - ${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.
3649
- - ${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.`
3751
+ - ${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.
3752
+ - ${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.
3753
+ - ${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.
3754
+ - ${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.`
3650
3755
  });
3651
3756
  let eggHead = new CanvasImage({ x: 100, y: 100 }, eggHeadImage);
3652
3757
  let flowerTop = new CanvasImage({ x: 300, y: 100 }, flowerTopImage);
3653
3758
  let helmlok = new CanvasImage({ x: 100, y: 300 }, helmlokImage);
3654
3759
  let skully = new CanvasImage({ x: 300, y: 300 }, skullyImage);
3655
- moveIn("eggHead", eggHead, { speed: 800, direction: "down" });
3760
+ moveIn("eggHead", eggHead, { speed: 80, direction: "down" });
3656
3761
  moveIn("flowerTop", flowerTop, {
3657
- speed: 800,
3762
+ speed: 80,
3658
3763
  direction: "left",
3659
3764
  speedProgression: { type: "exponential", percentage: 0.02 }
3660
3765
  });
3661
- moveIn("helmlok", helmlok, { speed: 800, direction: "right" });
3766
+ moveIn("helmlok", helmlok, { speed: 80, direction: "right" });
3662
3767
  moveIn("skully", skully, {
3663
- speed: 800,
3768
+ speed: 80,
3664
3769
  direction: "up",
3665
3770
  speedProgression: { type: "exponential", percentage: 0.02 }
3666
3771
  });
3667
3772
  }),
3668
3773
  () => {
3669
- moveOut("eggHead", { speed: 800, direction: "down" });
3670
- moveOut("flowerTop", { speed: 800, direction: "left" });
3671
- moveOut("helmlok", { speed: 800, direction: "right" });
3672
- moveOut("skully", { speed: 800, direction: "up" });
3774
+ moveOut("eggHead", { speed: 80, direction: "down" });
3775
+ moveOut("flowerTop", { speed: 80, direction: "left" });
3776
+ moveOut("helmlok", { speed: 80, direction: "right" });
3777
+ moveOut("skully", { speed: 80, direction: "up" });
3673
3778
  }
3674
3779
  ]);
3675
3780
  var imagesZoomInOutTest = newLabel("___pixi_vn_images_zoom_in_out_test___", [
3676
3781
  () => __async(void 0, null, function* () {
3782
+ setDialogue({
3783
+ character: juliette,
3784
+ text: `Here's what's going to happen:
3785
+ - ${eggHeadName} will zoom in with a speed of 3. If you go next, ${eggHeadName} will zoom out with a speed of 3.
3786
+ - ${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.
3787
+ - ${helmlokName} will zoom in with a speed of 3. If you go next, ${helmlokName} will zoom out with a speed of 1.
3788
+ - ${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.`
3789
+ });
3677
3790
  GameWindowManager.removeCanvasElements();
3678
3791
  let eggHead = new CanvasImage({ x: 100, y: 100 }, eggHeadImage);
3679
3792
  let flowerTop = new CanvasImage({ x: 300, y: 100 }, flowerTopImage);
@@ -3699,7 +3812,7 @@ var imagesZoomInOutTest = newLabel("___pixi_vn_images_zoom_in_out_test___", [
3699
3812
  speedProgression: { type: "exponential", percentage: 0.02 }
3700
3813
  });
3701
3814
  zoomOut("flowerTop", { speed: 3, direction: "left" });
3702
- zoomOut("helmlok", { speed: 3, direction: "right" });
3815
+ zoomOut("helmlok", { speed: 1, direction: "right" });
3703
3816
  zoomOut("skully", {
3704
3817
  speed: 3,
3705
3818
  direction: "up",
@@ -3781,6 +3894,23 @@ Footer
3781
3894
  })
3782
3895
  ]);
3783
3896
 
3897
+ // src/labels/StepLabelTest.ts
3898
+ var STEP_LABEL_TEST_LABEL = "___pixi_vn_step_label_test___";
3899
+ var stepLabelTestLAbel = newLabel(STEP_LABEL_TEST_LABEL, [
3900
+ () => __async(void 0, null, function* () {
3901
+ setDialogue({ character: juliette, text: `Pixi'VN manages the succession of "screens" with steps. Each step is a function that can be asynchronous.` });
3902
+ }),
3903
+ () => __async(void 0, null, function* () {
3904
+ 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." });
3905
+ }),
3906
+ () => __async(void 0, null, function* () {
3907
+ setDialogue({ character: juliette, text: "It is also possible to ask the player to make a choice." });
3908
+ }),
3909
+ () => __async(void 0, null, function* () {
3910
+ setDialogue({ character: juliette, text: "Browsing through available tests is one way to test the steps/labels system." });
3911
+ })
3912
+ ]);
3913
+
3784
3914
  // src/labels/StartLabel.ts
3785
3915
  var pixivnTestStartLabel = newLabel(
3786
3916
  "___pixi_vn_example_start_label___",
@@ -3789,25 +3919,25 @@ var pixivnTestStartLabel = newLabel(
3789
3919
  let currentTimeName = "";
3790
3920
  const hour = (/* @__PURE__ */ new Date()).getHours();
3791
3921
  if (hour >= 5 && hour < 12) {
3792
- currentTimeName = "morning";
3922
+ currentTimeName = "morning\u{1F505}";
3793
3923
  } else if (hour >= 12 && hour < 18) {
3794
- currentTimeName = "afternoon";
3924
+ currentTimeName = "afternoon\u{1F506}";
3795
3925
  } else if (hour >= 18 && hour < 22) {
3796
- currentTimeName = "evening";
3926
+ currentTimeName = "evening\u26C5";
3797
3927
  } else {
3798
- currentTimeName = "night";
3928
+ currentTimeName = "night\u{1F319}";
3799
3929
  }
3800
3930
  setDialogue({ character: juliette, text: `Good ${currentTimeName}! I'm ${juliette.name}, your virtual assistant. I'm here to help you with your tests.` });
3801
3931
  },
3802
- () => setDialogue({ character: juliette, text: `You are running the Pixi\u2019VN test. This test will guide you through the different features of the library.` }),
3932
+ () => 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.` }),
3803
3933
  (props) => GameStepManager.jumpLabel(pixivnTestStartLabel2, props)
3804
3934
  ]
3805
3935
  );
3806
- var openWiki = newLabel(
3807
- "___pixi_vn_open_wiki___",
3936
+ var openLink = newLabel(
3937
+ "___pixi_vn_open_link___",
3808
3938
  [
3809
3939
  (props) => {
3810
- window.open("https://pixi-vn.web.app/");
3940
+ window.open(props.link);
3811
3941
  GameStepManager.goNext(props);
3812
3942
  }
3813
3943
  ]
@@ -3820,12 +3950,14 @@ var pixivnTestStartLabel2 = newLabel(
3820
3950
  GameWindowManager.clear();
3821
3951
  setDialogue({ character: juliette, text: "Which test would you like to start with?" });
3822
3952
  setChoiceMenuOptions([
3823
- new ChoiceMenuOption("Open Pixi\u2019VN Wiki", openWiki),
3824
- new ChoiceMenuOption("Images, Transitions and Animations Test", imagesAnimationsTest),
3825
- new ChoiceMenuOption("Canvas Events Test Label", canvasEventsTestLabel),
3826
- new ChoiceMenuOption("Base Canvas Element Test", baseCanvasElementTestLabel),
3827
- new ChoiceMenuOption("Custom Ticker Canvas Element Test", customTickerCanvasElementTestLabel),
3828
- new ChoiceMenuOption("Markdown Test", markdownTest)
3953
+ new ChoiceMenuOption("Open Pixi\u2019VN Wiki", openLink, { link: "https://pixi-vn.web.app/" }),
3954
+ new ChoiceMenuOption("Images, Transitions and Animations Test", imagesAnimationsTest, {}),
3955
+ new ChoiceMenuOption("Canvas Events Test", canvasEventsTestLabel, {}),
3956
+ new ChoiceMenuOption("Base Canvas Element Test", baseCanvasElementTestLabel, {}),
3957
+ new ChoiceMenuOption("Custom Ticker Canvas Element Test", customTickerCanvasElementTestLabel, {}),
3958
+ new ChoiceMenuOption("Steps and Labels Test", stepLabelTestLAbel, {}),
3959
+ new ChoiceMenuOption("Markdown Test", markdownTest, {}),
3960
+ new ChoiceMenuOption("Open Pixi\u2019VN Github Issues", openLink, { link: "https://github.com/DRincs-Productions/pixi-vn/issues" })
3829
3961
  ]);
3830
3962
  },
3831
3963
  (props) => GameStepManager.jumpLabel(RESTART_TEST_LABEL, props)