rpgmaker-mz-mcp 1.0.0

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 (219) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +425 -0
  3. package/dist/events/commandBuilders.d.ts +405 -0
  4. package/dist/events/commandBuilders.d.ts.map +1 -0
  5. package/dist/events/commandBuilders.js +554 -0
  6. package/dist/events/commandBuilders.js.map +1 -0
  7. package/dist/index.d.ts +3 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +105 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/registry.d.ts +81 -0
  12. package/dist/registry.d.ts.map +1 -0
  13. package/dist/registry.js +49 -0
  14. package/dist/registry.js.map +1 -0
  15. package/dist/tiles/autotile.d.ts +65 -0
  16. package/dist/tiles/autotile.d.ts.map +1 -0
  17. package/dist/tiles/autotile.js +201 -0
  18. package/dist/tiles/autotile.js.map +1 -0
  19. package/dist/tiles/catalog/dungeon.d.ts +16 -0
  20. package/dist/tiles/catalog/dungeon.d.ts.map +1 -0
  21. package/dist/tiles/catalog/dungeon.js +765 -0
  22. package/dist/tiles/catalog/dungeon.js.map +1 -0
  23. package/dist/tiles/catalog/index.d.ts +78 -0
  24. package/dist/tiles/catalog/index.d.ts.map +1 -0
  25. package/dist/tiles/catalog/index.js +115 -0
  26. package/dist/tiles/catalog/index.js.map +1 -0
  27. package/dist/tiles/catalog/inside.d.ts +16 -0
  28. package/dist/tiles/catalog/inside.d.ts.map +1 -0
  29. package/dist/tiles/catalog/inside.js +765 -0
  30. package/dist/tiles/catalog/inside.js.map +1 -0
  31. package/dist/tiles/catalog/outside.d.ts +16 -0
  32. package/dist/tiles/catalog/outside.d.ts.map +1 -0
  33. package/dist/tiles/catalog/outside.js +799 -0
  34. package/dist/tiles/catalog/outside.js.map +1 -0
  35. package/dist/tiles/catalog/overworld.d.ts +16 -0
  36. package/dist/tiles/catalog/overworld.d.ts.map +1 -0
  37. package/dist/tiles/catalog/overworld.js +585 -0
  38. package/dist/tiles/catalog/overworld.js.map +1 -0
  39. package/dist/tiles/catalog/sf.d.ts +16 -0
  40. package/dist/tiles/catalog/sf.d.ts.map +1 -0
  41. package/dist/tiles/catalog/sf.js +1313 -0
  42. package/dist/tiles/catalog/sf.js.map +1 -0
  43. package/dist/tiles/paint.d.ts +20 -0
  44. package/dist/tiles/paint.d.ts.map +1 -0
  45. package/dist/tiles/paint.js +65 -0
  46. package/dist/tiles/paint.js.map +1 -0
  47. package/dist/tiles/png.d.ts +11 -0
  48. package/dist/tiles/png.d.ts.map +1 -0
  49. package/dist/tiles/png.js +180 -0
  50. package/dist/tiles/png.js.map +1 -0
  51. package/dist/tiles/tileCodec.d.ts +95 -0
  52. package/dist/tiles/tileCodec.d.ts.map +1 -0
  53. package/dist/tiles/tileCodec.js +186 -0
  54. package/dist/tiles/tileCodec.js.map +1 -0
  55. package/dist/tiles/tileFlags.d.ts +98 -0
  56. package/dist/tiles/tileFlags.d.ts.map +1 -0
  57. package/dist/tiles/tileFlags.js +129 -0
  58. package/dist/tiles/tileFlags.js.map +1 -0
  59. package/dist/tiles/tilegeom.d.ts +29 -0
  60. package/dist/tiles/tilegeom.d.ts.map +1 -0
  61. package/dist/tiles/tilegeom.js +111 -0
  62. package/dist/tiles/tilegeom.js.map +1 -0
  63. package/dist/tiles/transparency.d.ts +22 -0
  64. package/dist/tiles/transparency.d.ts.map +1 -0
  65. package/dist/tiles/transparency.js +59 -0
  66. package/dist/tiles/transparency.js.map +1 -0
  67. package/dist/tools/actorTools.d.ts +48 -0
  68. package/dist/tools/actorTools.d.ts.map +1 -0
  69. package/dist/tools/actorTools.js +154 -0
  70. package/dist/tools/actorTools.js.map +1 -0
  71. package/dist/tools/allTools.d.ts +8 -0
  72. package/dist/tools/allTools.d.ts.map +1 -0
  73. package/dist/tools/allTools.js +56 -0
  74. package/dist/tools/allTools.js.map +1 -0
  75. package/dist/tools/assetTools.d.ts +113 -0
  76. package/dist/tools/assetTools.d.ts.map +1 -0
  77. package/dist/tools/assetTools.js +97 -0
  78. package/dist/tools/assetTools.js.map +1 -0
  79. package/dist/tools/batchTools.d.ts +3 -0
  80. package/dist/tools/batchTools.d.ts.map +1 -0
  81. package/dist/tools/batchTools.js +138 -0
  82. package/dist/tools/batchTools.js.map +1 -0
  83. package/dist/tools/battleTools.d.ts +72 -0
  84. package/dist/tools/battleTools.d.ts.map +1 -0
  85. package/dist/tools/battleTools.js +322 -0
  86. package/dist/tools/battleTools.js.map +1 -0
  87. package/dist/tools/catalogTools.d.ts +3 -0
  88. package/dist/tools/catalogTools.d.ts.map +1 -0
  89. package/dist/tools/catalogTools.js +134 -0
  90. package/dist/tools/catalogTools.js.map +1 -0
  91. package/dist/tools/classTools.d.ts +85 -0
  92. package/dist/tools/classTools.d.ts.map +1 -0
  93. package/dist/tools/classTools.js +279 -0
  94. package/dist/tools/classTools.js.map +1 -0
  95. package/dist/tools/commonEventTools.d.ts +32 -0
  96. package/dist/tools/commonEventTools.d.ts.map +1 -0
  97. package/dist/tools/commonEventTools.js +150 -0
  98. package/dist/tools/commonEventTools.js.map +1 -0
  99. package/dist/tools/eventCommandTools.d.ts +37 -0
  100. package/dist/tools/eventCommandTools.d.ts.map +1 -0
  101. package/dist/tools/eventCommandTools.js +893 -0
  102. package/dist/tools/eventCommandTools.js.map +1 -0
  103. package/dist/tools/eventPageTools.d.ts +112 -0
  104. package/dist/tools/eventPageTools.d.ts.map +1 -0
  105. package/dist/tools/eventPageTools.js +597 -0
  106. package/dist/tools/eventPageTools.js.map +1 -0
  107. package/dist/tools/itemTools.d.ts +82 -0
  108. package/dist/tools/itemTools.d.ts.map +1 -0
  109. package/dist/tools/itemTools.js +380 -0
  110. package/dist/tools/itemTools.js.map +1 -0
  111. package/dist/tools/listTools.d.ts +58 -0
  112. package/dist/tools/listTools.d.ts.map +1 -0
  113. package/dist/tools/listTools.js +99 -0
  114. package/dist/tools/listTools.js.map +1 -0
  115. package/dist/tools/mapTools.d.ts +270 -0
  116. package/dist/tools/mapTools.d.ts.map +1 -0
  117. package/dist/tools/mapTools.js +1066 -0
  118. package/dist/tools/mapTools.js.map +1 -0
  119. package/dist/tools/moveTools.d.ts +43 -0
  120. package/dist/tools/moveTools.d.ts.map +1 -0
  121. package/dist/tools/moveTools.js +240 -0
  122. package/dist/tools/moveTools.js.map +1 -0
  123. package/dist/tools/objectTools.d.ts +12 -0
  124. package/dist/tools/objectTools.d.ts.map +1 -0
  125. package/dist/tools/objectTools.js +221 -0
  126. package/dist/tools/objectTools.js.map +1 -0
  127. package/dist/tools/paintTools.d.ts +3 -0
  128. package/dist/tools/paintTools.d.ts.map +1 -0
  129. package/dist/tools/paintTools.js +134 -0
  130. package/dist/tools/paintTools.js.map +1 -0
  131. package/dist/tools/pluginScanTools.d.ts +22 -0
  132. package/dist/tools/pluginScanTools.d.ts.map +1 -0
  133. package/dist/tools/pluginScanTools.js +119 -0
  134. package/dist/tools/pluginScanTools.js.map +1 -0
  135. package/dist/tools/pluginTools.d.ts +11 -0
  136. package/dist/tools/pluginTools.d.ts.map +1 -0
  137. package/dist/tools/pluginTools.js +63 -0
  138. package/dist/tools/pluginTools.js.map +1 -0
  139. package/dist/tools/projectTools.d.ts +11 -0
  140. package/dist/tools/projectTools.d.ts.map +1 -0
  141. package/dist/tools/projectTools.js +74 -0
  142. package/dist/tools/projectTools.js.map +1 -0
  143. package/dist/tools/skillTools.d.ts +83 -0
  144. package/dist/tools/skillTools.d.ts.map +1 -0
  145. package/dist/tools/skillTools.js +369 -0
  146. package/dist/tools/skillTools.js.map +1 -0
  147. package/dist/tools/stateTools.d.ts +28 -0
  148. package/dist/tools/stateTools.d.ts.map +1 -0
  149. package/dist/tools/stateTools.js +161 -0
  150. package/dist/tools/stateTools.js.map +1 -0
  151. package/dist/tools/systemTools.d.ts +86 -0
  152. package/dist/tools/systemTools.d.ts.map +1 -0
  153. package/dist/tools/systemTools.js +342 -0
  154. package/dist/tools/systemTools.js.map +1 -0
  155. package/dist/tools/tileTools.d.ts +9 -0
  156. package/dist/tools/tileTools.d.ts.map +1 -0
  157. package/dist/tools/tileTools.js +34 -0
  158. package/dist/tools/tileTools.js.map +1 -0
  159. package/dist/tools/tileTransparency.d.ts +40 -0
  160. package/dist/tools/tileTransparency.d.ts.map +1 -0
  161. package/dist/tools/tileTransparency.js +156 -0
  162. package/dist/tools/tileTransparency.js.map +1 -0
  163. package/dist/tools/tilesetTools.d.ts +23 -0
  164. package/dist/tools/tilesetTools.d.ts.map +1 -0
  165. package/dist/tools/tilesetTools.js +209 -0
  166. package/dist/tools/tilesetTools.js.map +1 -0
  167. package/dist/tools/validationTools.d.ts +50 -0
  168. package/dist/tools/validationTools.d.ts.map +1 -0
  169. package/dist/tools/validationTools.js +229 -0
  170. package/dist/tools/validationTools.js.map +1 -0
  171. package/dist/utils/commit.d.ts +62 -0
  172. package/dist/utils/commit.d.ts.map +1 -0
  173. package/dist/utils/commit.js +119 -0
  174. package/dist/utils/commit.js.map +1 -0
  175. package/dist/utils/fileHandler.d.ts +49 -0
  176. package/dist/utils/fileHandler.d.ts.map +1 -0
  177. package/dist/utils/fileHandler.js +137 -0
  178. package/dist/utils/fileHandler.js.map +1 -0
  179. package/dist/utils/records.d.ts +8 -0
  180. package/dist/utils/records.d.ts.map +1 -0
  181. package/dist/utils/records.js +10 -0
  182. package/dist/utils/records.js.map +1 -0
  183. package/dist/utils/types.d.ts +465 -0
  184. package/dist/utils/types.d.ts.map +1 -0
  185. package/dist/utils/types.js +5 -0
  186. package/dist/utils/types.js.map +1 -0
  187. package/dist/validation/assets.d.ts +53 -0
  188. package/dist/validation/assets.d.ts.map +1 -0
  189. package/dist/validation/assets.js +198 -0
  190. package/dist/validation/assets.js.map +1 -0
  191. package/dist/validation/createRefs.d.ts +37 -0
  192. package/dist/validation/createRefs.d.ts.map +1 -0
  193. package/dist/validation/createRefs.js +89 -0
  194. package/dist/validation/createRefs.js.map +1 -0
  195. package/dist/validation/eventCommands.d.ts +70 -0
  196. package/dist/validation/eventCommands.d.ts.map +1 -0
  197. package/dist/validation/eventCommands.js +273 -0
  198. package/dist/validation/eventCommands.js.map +1 -0
  199. package/dist/validation/gate.d.ts +56 -0
  200. package/dist/validation/gate.d.ts.map +1 -0
  201. package/dist/validation/gate.js +50 -0
  202. package/dist/validation/gate.js.map +1 -0
  203. package/dist/validation/moveCommands.d.ts +31 -0
  204. package/dist/validation/moveCommands.d.ts.map +1 -0
  205. package/dist/validation/moveCommands.js +123 -0
  206. package/dist/validation/moveCommands.js.map +1 -0
  207. package/dist/validation/pluginCommands.d.ts +83 -0
  208. package/dist/validation/pluginCommands.d.ts.map +1 -0
  209. package/dist/validation/pluginCommands.js +134 -0
  210. package/dist/validation/pluginCommands.js.map +1 -0
  211. package/dist/validation/pluginManifest.d.ts +67 -0
  212. package/dist/validation/pluginManifest.d.ts.map +1 -0
  213. package/dist/validation/pluginManifest.js +199 -0
  214. package/dist/validation/pluginManifest.js.map +1 -0
  215. package/dist/validation/references.d.ts +57 -0
  216. package/dist/validation/references.d.ts.map +1 -0
  217. package/dist/validation/references.js +314 -0
  218. package/dist/validation/references.js.map +1 -0
  219. package/package.json +67 -0
@@ -0,0 +1,554 @@
1
+ /**
2
+ * Splice built commands into a command list before its code-0 end marker (or at
3
+ * `position` when it's a valid in-range index). Shared by every insert path
4
+ * (map event page, common event, troop page, single-command add) so the "insert
5
+ * before the terminator" rule lives in one place. Mutates `list` in place.
6
+ */
7
+ export function spliceIntoList(list, commands, position) {
8
+ const insertAt = position !== undefined && position >= 0 && position < list.length - 1
9
+ ? position
10
+ : list.length - 1; // before the end-of-list command (code 0)
11
+ list.splice(insertAt, 0, ...commands);
12
+ }
13
+ /**
14
+ * Pure builders for common vanilla RPG Maker MZ event commands. Each returns the
15
+ * exact `EventCommand[]` sequence the editor writes on disk (validated against
16
+ * real editor output), ready to splice into an event page's `list` via
17
+ * `insert_event_commands`. No I/O — every function is a pure transform so the
18
+ * byte-for-byte shape can be unit-tested.
19
+ *
20
+ * Block commands (Show Choices, Conditional Branch) follow the editor's recursive
21
+ * layout: the block-opener sits at `indent`, each branch body sits at `indent + 1`
22
+ * and is closed by its own `{ code: 0 }` end-of-branch marker at that child indent
23
+ * — exactly as the editor serializes them (an empty branch still gets the marker).
24
+ */
25
+ /** Event command codes emitted by these builders. */
26
+ const CODE = {
27
+ SHOW_TEXT: 101,
28
+ SHOW_TEXT_LINE: 401,
29
+ SHOW_CHOICES: 102,
30
+ WHEN_CHOICE: 402,
31
+ WHEN_CANCEL: 403,
32
+ END_CHOICES: 404,
33
+ CONDITIONAL_BRANCH: 111,
34
+ ELSE: 411,
35
+ END_BRANCH: 412,
36
+ EXIT_EVENT: 115,
37
+ LABEL: 118,
38
+ JUMP_TO_LABEL: 119,
39
+ CONTROL_SWITCHES: 121,
40
+ CONTROL_VARIABLES: 122,
41
+ CONTROL_SELF_SWITCH: 123,
42
+ CHANGE_GOLD: 125,
43
+ CHANGE_ITEMS: 126,
44
+ CHANGE_WEAPONS: 127,
45
+ CHANGE_ARMORS: 128,
46
+ CHANGE_PARTY_MEMBER: 129,
47
+ TRANSFER_PLAYER: 201,
48
+ SHOW_ANIMATION: 212,
49
+ SHOW_BALLOON: 213,
50
+ FADEOUT_SCREEN: 221,
51
+ FADEIN_SCREEN: 222,
52
+ TINT_SCREEN: 223,
53
+ FLASH_SCREEN: 224,
54
+ SHAKE_SCREEN: 225,
55
+ WAIT: 230,
56
+ SHOW_PICTURE: 231,
57
+ ERASE_PICTURE: 235,
58
+ PLAY_BGM: 241,
59
+ PLAY_BGS: 245,
60
+ PLAY_ME: 249,
61
+ PLAY_SE: 250,
62
+ BATTLE_PROCESSING: 301,
63
+ SHOP_PROCESSING: 302,
64
+ SHOP_GOODS: 605,
65
+ NAME_INPUT: 303,
66
+ CHANGE_HP: 311,
67
+ CHANGE_MP: 312,
68
+ CHANGE_STATE: 313,
69
+ RECOVER_ALL: 314,
70
+ CHANGE_EXP: 315,
71
+ CHANGE_LEVEL: 316,
72
+ END_OF_LIST: 0,
73
+ };
74
+ /** Encode a switch/self-switch on/off value as the engine's code (0 on, 1 off). */
75
+ const onOff = (value) => (value === 'off' ? 1 : 0);
76
+ /** Build one event command with an always-present parameters array. */
77
+ function cmd(code, indent, parameters = []) {
78
+ return { code, indent, parameters };
79
+ }
80
+ /**
81
+ * Place a caller-supplied branch body at `childIndent`. The body is normalized so
82
+ * its shallowest command sits at `childIndent` (regardless of the indent it was
83
+ * authored at), preserving any internal nesting — so builders compose cleanly.
84
+ * Always followed by the `{ code: 0 }` end-of-branch marker the editor writes.
85
+ */
86
+ function branchBody(body, childIndent) {
87
+ const commands = body ?? [];
88
+ const minIndent = commands.reduce((min, c) => Math.min(min, c.indent ?? 0), commands.length > 0 ? Infinity : 0);
89
+ const shifted = commands.map((c) => cmd(c.code, (c.indent ?? 0) - minIndent + childIndent, [
90
+ ...(Array.isArray(c.parameters) ? c.parameters : []),
91
+ ]));
92
+ shifted.push(cmd(CODE.END_OF_LIST, childIndent));
93
+ return shifted;
94
+ }
95
+ const POSITION_CODE = { top: 0, middle: 1, bottom: 2 };
96
+ const BACKGROUND_CODE = { window: 0, dim: 1, transparent: 2 };
97
+ /**
98
+ * Show Text (command 101 setup + one 401 line per text line). `lines` are the
99
+ * message lines; the engine word-wraps within a window, so pass one entry per
100
+ * visual line you intend. Face/background/position/speaker match the editor's
101
+ * Show Text dialog.
102
+ */
103
+ export function showText(lines, options = {}) {
104
+ const indent = options.indent ?? 0;
105
+ const setup = cmd(CODE.SHOW_TEXT, indent, [
106
+ options.faceName ?? '',
107
+ options.faceIndex ?? 0,
108
+ BACKGROUND_CODE[options.background ?? 'window'],
109
+ POSITION_CODE[options.position ?? 'bottom'],
110
+ options.speakerName ?? '',
111
+ ]);
112
+ return [setup, ...lines.map((line) => cmd(CODE.SHOW_TEXT_LINE, indent, [String(line)]))];
113
+ }
114
+ const CHOICE_POSITION_CODE = { left: 0, middle: 1, right: 2 };
115
+ /**
116
+ * Show Choices — the 102 opener + a 402 "When [choice]" branch per choice
117
+ * (optionally a 403 "When Cancel" branch) + the 404 "End Choices" closer. Each
118
+ * branch body is placed at indent+1 and terminated with a code-0 marker, matching
119
+ * the editor. The engine reads cancelType via `params[1] < choices.length ? … : -2`,
120
+ * so a cancel branch is encoded as cancelType = choices.length.
121
+ */
122
+ export function showChoices(choices, options = {}) {
123
+ if (!Array.isArray(choices) || choices.length === 0) {
124
+ throw new Error('showChoices requires a non-empty `choices` array');
125
+ }
126
+ const indent = options.indent ?? 0;
127
+ const child = indent + 1;
128
+ const hasCancelBranch = options.cancelBranch !== undefined;
129
+ const cancelType = hasCancelBranch ? choices.length : (options.cancelType ?? -1);
130
+ const out = [
131
+ cmd(CODE.SHOW_CHOICES, indent, [
132
+ choices.map((c) => String(c)),
133
+ cancelType,
134
+ options.defaultType ?? 0,
135
+ CHOICE_POSITION_CODE[options.position ?? 'right'],
136
+ BACKGROUND_CODE[options.background ?? 'window'],
137
+ ]),
138
+ ];
139
+ choices.forEach((choice, i) => {
140
+ out.push(cmd(CODE.WHEN_CHOICE, indent, [i, String(choice)]));
141
+ out.push(...branchBody(options.branches?.[i], child));
142
+ });
143
+ if (hasCancelBranch) {
144
+ out.push(cmd(CODE.WHEN_CANCEL, indent));
145
+ out.push(...branchBody(options.cancelBranch, child));
146
+ }
147
+ out.push(cmd(CODE.END_CHOICES, indent));
148
+ return out;
149
+ }
150
+ const COMPARISON_CODE = {
151
+ '==': 0,
152
+ '>=': 1,
153
+ '<=': 2,
154
+ '>': 3,
155
+ '<': 4,
156
+ '!=': 5,
157
+ };
158
+ const GOLD_COMPARE_CODE = { '>=': 0, '<=': 1, '<': 2 };
159
+ /** Turn a {@link BranchCondition} into the code-111 parameters array. */
160
+ export function conditionParameters(condition) {
161
+ switch (condition.type) {
162
+ case 'switch':
163
+ return [0, condition.switchId, condition.value === 'off' ? 1 : 0];
164
+ case 'self_switch':
165
+ return [2, condition.name, condition.value === 'off' ? 1 : 0];
166
+ case 'variable': {
167
+ const useVar = condition.variableOperand !== undefined;
168
+ return [
169
+ 1,
170
+ condition.variableId,
171
+ useVar ? 1 : 0,
172
+ useVar ? condition.variableOperand : (condition.constant ?? 0),
173
+ COMPARISON_CODE[condition.comparison],
174
+ ];
175
+ }
176
+ case 'actor_in_party':
177
+ return [4, condition.actorId, 0];
178
+ case 'gold':
179
+ return [7, condition.value, GOLD_COMPARE_CODE[condition.compare ?? '>=']];
180
+ case 'item':
181
+ return [8, condition.itemId];
182
+ }
183
+ }
184
+ /**
185
+ * Conditional Branch — the 111 opener (condition), the then-branch body, an
186
+ * optional 411 "Else" branch, and the 412 "End" closer. Each branch body is
187
+ * placed at indent+1 and terminated with a code-0 marker, matching the editor.
188
+ * The Else block is emitted only when `elseBranch` is provided.
189
+ */
190
+ export function conditionalBranch(condition, options = {}) {
191
+ const indent = options.indent ?? 0;
192
+ const child = indent + 1;
193
+ const out = [
194
+ cmd(CODE.CONDITIONAL_BRANCH, indent, conditionParameters(condition)),
195
+ ...branchBody(options.thenBranch, child),
196
+ ];
197
+ if (options.elseBranch !== undefined) {
198
+ out.push(cmd(CODE.ELSE, indent));
199
+ out.push(...branchBody(options.elseBranch, child));
200
+ }
201
+ out.push(cmd(CODE.END_BRANCH, indent));
202
+ return out;
203
+ }
204
+ /** Wait a number of frames (command 230; 60 frames = 1 second). */
205
+ export function wait(frames, indent = 0) {
206
+ return cmd(CODE.WAIT, indent, [frames]);
207
+ }
208
+ /** Exit Event Processing (command 115) — stops the current event's list early. */
209
+ export function exitEvent(indent = 0) {
210
+ return cmd(CODE.EXIT_EVENT, indent, []);
211
+ }
212
+ /** Label (command 118) — a named jump target within the same command list. */
213
+ export function label(name, indent = 0) {
214
+ return cmd(CODE.LABEL, indent, [String(name)]);
215
+ }
216
+ /** Jump to Label (command 119) — jumps to the matching {@link label} by name. */
217
+ export function jumpToLabel(name, indent = 0) {
218
+ return cmd(CODE.JUMP_TO_LABEL, indent, [String(name)]);
219
+ }
220
+ // --- 5e-2 game state ---
221
+ /**
222
+ * Control Switches (command 121) — turn a switch (or an inclusive range of
223
+ * switches `startId..endId`) on or off. Pass the same id for `endId` to set a
224
+ * single switch. On disk: `[startId, endId, value]` where value 0 = ON, 1 = OFF.
225
+ */
226
+ export function controlSwitches(startId, endId, value = 'on', indent = 0) {
227
+ return cmd(CODE.CONTROL_SWITCHES, indent, [startId, endId, onOff(value)]);
228
+ }
229
+ /**
230
+ * Control Self Switch (command 123) — turn one of the current event's self
231
+ * switches (A–D) on or off. On disk: `[name, value]` (value 0 = ON, 1 = OFF).
232
+ */
233
+ export function controlSelfSwitch(name, value = 'on', indent = 0) {
234
+ return cmd(CODE.CONTROL_SELF_SWITCH, indent, [name, onOff(value)]);
235
+ }
236
+ const VARIABLE_OPERATION_CODE = {
237
+ set: 0,
238
+ add: 1,
239
+ sub: 2,
240
+ mul: 3,
241
+ div: 4,
242
+ mod: 5,
243
+ };
244
+ /** Turn a {@link VariableOperand} into the trailing code-122 parameters (from params[3]). */
245
+ function variableOperandParams(operand) {
246
+ switch (operand.type) {
247
+ case 'constant':
248
+ return [0, operand.value];
249
+ case 'variable':
250
+ return [1, operand.variableId];
251
+ case 'random':
252
+ return [2, operand.min, operand.max];
253
+ case 'game_data':
254
+ return [3, operand.dataType, operand.param1 ?? 0, operand.param2 ?? 0];
255
+ }
256
+ }
257
+ /**
258
+ * Control Variables (command 122) — apply `operation` to a variable (or an
259
+ * inclusive `variableId..endId` range) using `operand`. On disk:
260
+ * `[startId, endId, operationType, operandType, ...operandParams]`.
261
+ */
262
+ export function controlVariables(variableId, operation, operand, options = {}) {
263
+ return cmd(CODE.CONTROL_VARIABLES, options.indent ?? 0, [
264
+ variableId,
265
+ options.endId ?? variableId,
266
+ VARIABLE_OPERATION_CODE[operation],
267
+ ...variableOperandParams(operand),
268
+ ]);
269
+ }
270
+ /**
271
+ * The engine's `operateValue(operation, operandType, operand)` triple:
272
+ * `[operation(0 increase/1 decrease), operandType(0 constant/1 variable), operand]`.
273
+ */
274
+ function operateValueParams(operation, operand) {
275
+ const opCode = operation === 'decrease' ? 1 : 0;
276
+ return operand.type === 'variable' ? [opCode, 1, operand.variableId] : [opCode, 0, operand.value];
277
+ }
278
+ /** Change Gold (command 125) — gain or lose gold by a constant or variable amount. */
279
+ export function changeGold(operation, operand, indent = 0) {
280
+ return cmd(CODE.CHANGE_GOLD, indent, operateValueParams(operation, operand));
281
+ }
282
+ /**
283
+ * Change Items (command 126) — gain or lose `itemId` from the party inventory by
284
+ * a constant or variable amount. On disk: `[itemId, operation, operandType, operand]`.
285
+ */
286
+ export function changeItems(itemId, operation, operand, indent = 0) {
287
+ return cmd(CODE.CHANGE_ITEMS, indent, [itemId, ...operateValueParams(operation, operand)]);
288
+ }
289
+ /**
290
+ * Change Weapons (command 127) — gain or lose `weaponId`. `includeEquip` (default
291
+ * false) also counts weapons currently equipped by party members when removing.
292
+ * On disk: `[weaponId, operation, operandType, operand, includeEquip]`.
293
+ */
294
+ export function changeWeapons(weaponId, operation, operand, includeEquip = false, indent = 0) {
295
+ return cmd(CODE.CHANGE_WEAPONS, indent, [
296
+ weaponId,
297
+ ...operateValueParams(operation, operand),
298
+ includeEquip,
299
+ ]);
300
+ }
301
+ /**
302
+ * Change Armors (command 128) — gain or lose `armorId`. `includeEquip` (default
303
+ * false) also counts armors currently equipped when removing.
304
+ * On disk: `[armorId, operation, operandType, operand, includeEquip]`.
305
+ */
306
+ export function changeArmors(armorId, operation, operand, includeEquip = false, indent = 0) {
307
+ return cmd(CODE.CHANGE_ARMORS, indent, [
308
+ armorId,
309
+ ...operateValueParams(operation, operand),
310
+ includeEquip,
311
+ ]);
312
+ }
313
+ /**
314
+ * Change Party Member (command 129) — add or remove `actorId`. `initialize`
315
+ * (default false, add only) resets the actor to their initial state on add.
316
+ * On disk: `[actorId, operation(0 add/1 remove), initialize]`.
317
+ */
318
+ export function changePartyMember(actorId, operation, initialize = false, indent = 0) {
319
+ return cmd(CODE.CHANGE_PARTY_MEMBER, indent, [
320
+ actorId,
321
+ operation === 'remove' ? 1 : 0,
322
+ initialize,
323
+ ]);
324
+ }
325
+ const TRANSFER_DIRECTION_CODE = {
326
+ retain: 0,
327
+ down: 2,
328
+ left: 4,
329
+ right: 6,
330
+ up: 8,
331
+ };
332
+ const TRANSFER_FADE_CODE = { black: 0, white: 1, none: 2 };
333
+ /**
334
+ * Transfer Player (command 201) — move the party to `(x, y)` on map `mapId`. On
335
+ * disk: `[designation(0 direct/1 variable), mapId, x, y, direction, fade]`. With
336
+ * `designation: 'variable'`, `mapId`/`x`/`y` are variable ids resolved at runtime.
337
+ */
338
+ export function transferPlayer(mapId, x, y, options = {}) {
339
+ return cmd(CODE.TRANSFER_PLAYER, options.indent ?? 0, [
340
+ options.designation === 'variable' ? 1 : 0,
341
+ mapId,
342
+ x,
343
+ y,
344
+ TRANSFER_DIRECTION_CODE[options.direction ?? 'retain'],
345
+ TRANSFER_FADE_CODE[options.fade ?? 'black'],
346
+ ]);
347
+ }
348
+ const AUDIO_CODE = {
349
+ bgm: CODE.PLAY_BGM,
350
+ bgs: CODE.PLAY_BGS,
351
+ me: CODE.PLAY_ME,
352
+ se: CODE.PLAY_SE,
353
+ };
354
+ /** Normalize an {@link AudioTrack} into the on-disk audio object with defaults filled. */
355
+ function audioParam(track) {
356
+ return {
357
+ name: track.name,
358
+ volume: track.volume ?? 90,
359
+ pitch: track.pitch ?? 100,
360
+ pan: track.pan ?? 0,
361
+ };
362
+ }
363
+ /**
364
+ * Play BGM/BGS/ME/SE (commands 241/245/249/250) — start a track on the given audio
365
+ * channel. On disk: `[{ name, volume, pitch, pan }]` (a single audio object).
366
+ */
367
+ export function playAudio(kind, track, indent = 0) {
368
+ return cmd(AUDIO_CODE[kind], indent, [audioParam(track)]);
369
+ }
370
+ /**
371
+ * Fadeout/Fadein Screen (commands 221/222) — no parameters; the fade colour is the
372
+ * one last set by a Tint Screen (defaults to black).
373
+ */
374
+ export function fadeScreen(direction, indent = 0) {
375
+ return cmd(direction === 'in' ? CODE.FADEIN_SCREEN : CODE.FADEOUT_SCREEN, indent, []);
376
+ }
377
+ /**
378
+ * Tint Screen (command 223) — shift the screen tone over `duration` frames. `tone`
379
+ * is `[red, green, blue, gray]`, each −255…255 (0,0,0,0 = normal). On disk:
380
+ * `[tone, duration, wait]`.
381
+ */
382
+ export function tintScreen(tone, duration = 60, wait = true, indent = 0) {
383
+ return cmd(CODE.TINT_SCREEN, indent, [tone, duration, wait]);
384
+ }
385
+ /**
386
+ * Flash Screen (command 224) — flash a colour over `duration` frames. `color` is
387
+ * `[red, green, blue, intensity]`, each 0…255. On disk: `[color, duration, wait]`.
388
+ */
389
+ export function flashScreen(color, duration = 60, wait = true, indent = 0) {
390
+ return cmd(CODE.FLASH_SCREEN, indent, [color, duration, wait]);
391
+ }
392
+ /**
393
+ * Shake Screen (command 225) — shake for `duration` frames. On disk:
394
+ * `[power(1–9), speed(1–9), duration, wait]`.
395
+ */
396
+ export function shakeScreen(power = 5, speed = 5, duration = 60, wait = true, indent = 0) {
397
+ return cmd(CODE.SHAKE_SCREEN, indent, [power, speed, duration, wait]);
398
+ }
399
+ const PICTURE_ORIGIN_CODE = { upper_left: 0, center: 1 };
400
+ const BLEND_MODE_CODE = {
401
+ normal: 0,
402
+ additive: 1,
403
+ multiply: 2,
404
+ screen: 3,
405
+ };
406
+ /**
407
+ * Show Picture (command 231) — display picture `name` in slot `pictureId` (1–100).
408
+ * On disk: `[pictureId, name, origin, 0 (direct position), x, y, scaleX, scaleY,
409
+ * opacity, blend]` — the position is always a direct designation here (variable
410
+ * positioning isn't exposed).
411
+ */
412
+ export function showPicture(pictureId, name, options = {}) {
413
+ return cmd(CODE.SHOW_PICTURE, options.indent ?? 0, [
414
+ pictureId,
415
+ name,
416
+ PICTURE_ORIGIN_CODE[options.origin ?? 'upper_left'],
417
+ 0,
418
+ options.x ?? 0,
419
+ options.y ?? 0,
420
+ options.scaleX ?? 100,
421
+ options.scaleY ?? 100,
422
+ options.opacity ?? 255,
423
+ BLEND_MODE_CODE[options.blend ?? 'normal'],
424
+ ]);
425
+ }
426
+ /** Erase Picture (command 235) — remove the picture in slot `pictureId`. */
427
+ export function erasePicture(pictureId, indent = 0) {
428
+ return cmd(CODE.ERASE_PICTURE, indent, [pictureId]);
429
+ }
430
+ /**
431
+ * Show Animation (command 212) — play animation `animationId` on `characterId`.
432
+ * `wait` holds event execution until it finishes. On disk: `[characterId,
433
+ * animationId, wait]`.
434
+ */
435
+ export function showAnimation(characterId, animationId, wait = false, indent = 0) {
436
+ return cmd(CODE.SHOW_ANIMATION, indent, [characterId, animationId, wait]);
437
+ }
438
+ /**
439
+ * Show Balloon Icon (command 213) — show balloon `balloonId` (1 exclamation, 2
440
+ * question, …) over `characterId`. On disk: `[characterId, balloonId, wait]`.
441
+ */
442
+ export function showBalloon(characterId, balloonId, wait = false, indent = 0) {
443
+ return cmd(CODE.SHOW_BALLOON, indent, [characterId, balloonId, wait]);
444
+ }
445
+ /**
446
+ * Battle Processing (command 301) — start a battle against a troop. On disk:
447
+ * `[designation(0 direct/1 variable/2 random), troopId, canEscape, canLose]`. With
448
+ * `variable`, param[1] is a variable id; with `random` it is ignored. `canEscape`
449
+ * / `canLose` are engine-truthy JS booleans on disk.
450
+ */
451
+ export function battleProcessing(troop, canEscape = false, canLose = false, indent = 0) {
452
+ const designation = troop.type === 'variable'
453
+ ? [1, troop.variableId]
454
+ : troop.type === 'random'
455
+ ? [2, 0]
456
+ : [0, troop.troopId];
457
+ return cmd(CODE.BATTLE_PROCESSING, indent, [...designation, canEscape, canLose]);
458
+ }
459
+ const SHOP_GOOD_KIND_CODE = { item: 0, weapon: 1, armor: 2 };
460
+ /** Encode one shop good as `[kind, id, priceType(0 standard/1 specify), price]`. */
461
+ function shopGoodParams(good) {
462
+ const specify = good.price !== undefined;
463
+ return [SHOP_GOOD_KIND_CODE[good.kind], good.id, specify ? 1 : 0, specify ? good.price : 0];
464
+ }
465
+ /**
466
+ * Shop Processing (command 302 + one 605 continuation row per extra good) — open a
467
+ * shop selling `goods`. The 302 carries the first good plus `purchaseOnly` as a 5th
468
+ * param `[kind, id, priceType, price, purchaseOnly]`; each additional good is a 605
469
+ * row `[kind, id, priceType, price]` — exactly as the editor serializes them.
470
+ */
471
+ export function shopProcessing(goods, purchaseOnly = false, indent = 0) {
472
+ if (!Array.isArray(goods) || goods.length === 0) {
473
+ throw new Error('shopProcessing requires a non-empty `goods` array');
474
+ }
475
+ const [first, ...rest] = goods;
476
+ const out = [
477
+ cmd(CODE.SHOP_PROCESSING, indent, [...shopGoodParams(first), purchaseOnly]),
478
+ ];
479
+ rest.forEach((good) => out.push(cmd(CODE.SHOP_GOODS, indent, shopGoodParams(good))));
480
+ return out;
481
+ }
482
+ /**
483
+ * Name Input Processing (command 303) — open the name-entry screen for `actorId`.
484
+ * `maxLength` (default 8) caps the entered name. On disk: `[actorId, maxLength]`.
485
+ */
486
+ export function nameInput(actorId, maxLength = 8, indent = 0) {
487
+ return cmd(CODE.NAME_INPUT, indent, [actorId, maxLength]);
488
+ }
489
+ /** Encode an {@link ActorTarget} as the leading `[designation, actorId]` pair. */
490
+ function actorTargetParams(target) {
491
+ return target.type === 'variable' ? [1, target.variableId] : [0, target.actorId];
492
+ }
493
+ /**
494
+ * Change HP (command 311) — gain or lose HP on the target actor(s) by a constant or
495
+ * variable amount. `allowKnockout` (default false) permits the change to reduce HP to
496
+ * 0 (death). On disk: `[designation, actorId, operation, operandType, operand, allowKnockout]`.
497
+ */
498
+ export function changeHp(target, operation, operand, allowKnockout = false, indent = 0) {
499
+ return cmd(CODE.CHANGE_HP, indent, [
500
+ ...actorTargetParams(target),
501
+ ...operateValueParams(operation, operand),
502
+ allowKnockout,
503
+ ]);
504
+ }
505
+ /**
506
+ * Change MP (command 312) — gain or lose MP on the target actor(s). On disk:
507
+ * `[designation, actorId, operation, operandType, operand]`.
508
+ */
509
+ export function changeMp(target, operation, operand, indent = 0) {
510
+ return cmd(CODE.CHANGE_MP, indent, [
511
+ ...actorTargetParams(target),
512
+ ...operateValueParams(operation, operand),
513
+ ]);
514
+ }
515
+ /**
516
+ * Change State (command 313) — add or remove a state on the target actor(s). On disk:
517
+ * `[designation, actorId, operation(0 add/1 remove), stateId]`.
518
+ */
519
+ export function changeState(target, operation, stateId, indent = 0) {
520
+ return cmd(CODE.CHANGE_STATE, indent, [
521
+ ...actorTargetParams(target),
522
+ operation === 'remove' ? 1 : 0,
523
+ stateId,
524
+ ]);
525
+ }
526
+ /** Recover All (command 314) — fully restore HP/MP and clear states on the target actor(s). */
527
+ export function recoverAll(target, indent = 0) {
528
+ return cmd(CODE.RECOVER_ALL, indent, [...actorTargetParams(target)]);
529
+ }
530
+ /**
531
+ * Change EXP (command 315) — gain or lose experience on the target actor(s).
532
+ * `showLevelUp` (default false) shows the level-up message. On disk:
533
+ * `[designation, actorId, operation, operandType, operand, showLevelUp]`.
534
+ */
535
+ export function changeExp(target, operation, operand, showLevelUp = false, indent = 0) {
536
+ return cmd(CODE.CHANGE_EXP, indent, [
537
+ ...actorTargetParams(target),
538
+ ...operateValueParams(operation, operand),
539
+ showLevelUp,
540
+ ]);
541
+ }
542
+ /**
543
+ * Change Level (command 316) — raise or lower level on the target actor(s).
544
+ * `showLevelUp` (default false) shows the level-up message. On disk:
545
+ * `[designation, actorId, operation, operandType, operand, showLevelUp]`.
546
+ */
547
+ export function changeLevel(target, operation, operand, showLevelUp = false, indent = 0) {
548
+ return cmd(CODE.CHANGE_LEVEL, indent, [
549
+ ...actorTargetParams(target),
550
+ ...operateValueParams(operation, operand),
551
+ showLevelUp,
552
+ ]);
553
+ }
554
+ //# sourceMappingURL=commandBuilders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commandBuilders.js","sourceRoot":"","sources":["../../src/events/commandBuilders.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}