isaacscript-common 6.6.3 → 6.7.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 (262) hide show
  1. package/dist/callbacks/customRevive.lua +4 -4
  2. package/dist/callbacks/postCursedTeleport.lua +2 -2
  3. package/dist/callbacks/postCustomDoorEnter.d.ts +1 -1
  4. package/dist/callbacks/postCustomDoorEnter.lua +6 -6
  5. package/dist/callbacks/postDiceRoomActivated.lua +2 -2
  6. package/dist/callbacks/postFlip.lua +3 -3
  7. package/dist/callbacks/postGridEntity.lua +3 -3
  8. package/dist/callbacks/postGridEntityCollision.lua +3 -3
  9. package/dist/callbacks/postGridEntityRender.lua +2 -2
  10. package/dist/callbacks/postNewRoomEarly.lua +5 -5
  11. package/dist/callbacks/postPickupCollect.lua +2 -2
  12. package/dist/callbacks/postPitRender.lua +2 -2
  13. package/dist/callbacks/postPitUpdate.lua +2 -2
  14. package/dist/callbacks/postPlayerCollectible.lua +2 -2
  15. package/dist/callbacks/postPoopRender.lua +2 -2
  16. package/dist/callbacks/postPoopUpdate.lua +2 -2
  17. package/dist/callbacks/postPressurePlateRender.lua +2 -2
  18. package/dist/callbacks/postPressurePlateUpdate.lua +2 -2
  19. package/dist/callbacks/postPurchase.lua +2 -2
  20. package/dist/callbacks/postRockRender.lua +2 -2
  21. package/dist/callbacks/postRockUpdate.lua +2 -2
  22. package/dist/callbacks/postSlotInitUpdate.lua +2 -2
  23. package/dist/callbacks/postSlotRender.lua +2 -2
  24. package/dist/callbacks/postSpikesRender.lua +2 -2
  25. package/dist/callbacks/postSpikesUpdate.lua +2 -2
  26. package/dist/callbacks/postTNTRender.lua +2 -2
  27. package/dist/callbacks/postTNTUpdate.lua +2 -2
  28. package/dist/callbacks/preBerserkDeath.lua +2 -2
  29. package/dist/callbacks/preNewLevel.lua +2 -2
  30. package/dist/callbacks/subscriptions/postDoorRender.d.ts +2 -3
  31. package/dist/callbacks/subscriptions/postDoorRender.d.ts.map +1 -1
  32. package/dist/callbacks/subscriptions/postDoorRender.lua +3 -3
  33. package/dist/callbacks/subscriptions/postDoorUpdate.d.ts +2 -3
  34. package/dist/callbacks/subscriptions/postDoorUpdate.d.ts.map +1 -1
  35. package/dist/callbacks/subscriptions/postDoorUpdate.lua +3 -3
  36. package/dist/callbacks/subscriptions/postPitRender.d.ts +2 -3
  37. package/dist/callbacks/subscriptions/postPitRender.d.ts.map +1 -1
  38. package/dist/callbacks/subscriptions/postPitRender.lua +3 -3
  39. package/dist/callbacks/subscriptions/postPitUpdate.d.ts +2 -3
  40. package/dist/callbacks/subscriptions/postPitUpdate.d.ts.map +1 -1
  41. package/dist/callbacks/subscriptions/postPitUpdate.lua +3 -3
  42. package/dist/callbacks/subscriptions/postPoopRender.d.ts +2 -3
  43. package/dist/callbacks/subscriptions/postPoopRender.d.ts.map +1 -1
  44. package/dist/callbacks/subscriptions/postPoopRender.lua +3 -3
  45. package/dist/callbacks/subscriptions/postPoopUpdate.d.ts +2 -3
  46. package/dist/callbacks/subscriptions/postPoopUpdate.d.ts.map +1 -1
  47. package/dist/callbacks/subscriptions/postPoopUpdate.lua +3 -3
  48. package/dist/callbacks/subscriptions/postPressurePlateRender.d.ts +2 -3
  49. package/dist/callbacks/subscriptions/postPressurePlateRender.d.ts.map +1 -1
  50. package/dist/callbacks/subscriptions/postPressurePlateRender.lua +3 -3
  51. package/dist/callbacks/subscriptions/postPressurePlateUpdate.d.ts +2 -3
  52. package/dist/callbacks/subscriptions/postPressurePlateUpdate.d.ts.map +1 -1
  53. package/dist/callbacks/subscriptions/postPressurePlateUpdate.lua +3 -3
  54. package/dist/enums/private/SerializationBrand.d.ts +0 -4
  55. package/dist/enums/private/SerializationBrand.d.ts.map +1 -1
  56. package/dist/features/characterStats.lua +2 -2
  57. package/dist/features/collectibleItemPoolType.lua +2 -2
  58. package/dist/features/customGridEntity.d.ts.map +1 -1
  59. package/dist/features/customGridEntity.lua +5 -5
  60. package/dist/features/customStage/backdrop.lua +2 -2
  61. package/dist/features/customStage/{gridEntities.d.ts → customStageGridEntities.d.ts} +1 -1
  62. package/dist/features/customStage/customStageGridEntities.d.ts.map +1 -0
  63. package/dist/features/customStage/{gridEntities.lua → customStageGridEntities.lua} +8 -8
  64. package/dist/features/customStage/{util.d.ts → customStageUtils.d.ts} +1 -1
  65. package/dist/features/customStage/customStageUtils.d.ts.map +1 -0
  66. package/dist/features/customStage/{util.lua → customStageUtils.lua} +0 -0
  67. package/dist/features/customStage/exports.lua +4 -4
  68. package/dist/features/customStage/init.lua +6 -6
  69. package/dist/features/customStage/shadows.lua +2 -2
  70. package/dist/features/customStage/versusScreen.lua +4 -4
  71. package/dist/features/debugDisplay/v.lua +4 -4
  72. package/dist/features/deployJSONRoom.lua +20 -20
  73. package/dist/features/extraConsoleCommands/commandsSubroutines.lua +3 -3
  74. package/dist/features/extraConsoleCommands/listCommands.d.ts.map +1 -1
  75. package/dist/features/extraConsoleCommands/listCommands.lua +14 -14
  76. package/dist/features/pause.lua +2 -2
  77. package/dist/features/persistentEntities.lua +2 -2
  78. package/dist/features/preventCollectibleRotation.lua +2 -2
  79. package/dist/features/saveDataManager/exports.d.ts.map +1 -1
  80. package/dist/features/saveDataManager/merge.lua +4 -3
  81. package/dist/features/sirenHelpers.lua +2 -2
  82. package/dist/functions/ambush.lua +5 -5
  83. package/dist/functions/array.d.ts.map +1 -1
  84. package/dist/functions/array.lua +1 -1
  85. package/dist/functions/{boss.d.ts → bosses.d.ts} +22 -4
  86. package/dist/functions/bosses.d.ts.map +1 -0
  87. package/dist/functions/{boss.lua → bosses.lua} +38 -13
  88. package/dist/functions/collectibleTag.lua +2 -2
  89. package/dist/functions/collectibles.lua +5 -5
  90. package/dist/functions/deepCopy.d.ts +8 -5
  91. package/dist/functions/deepCopy.d.ts.map +1 -1
  92. package/dist/functions/deepCopy.lua +142 -38
  93. package/dist/functions/deepCopyTests.d.ts +6 -1
  94. package/dist/functions/deepCopyTests.d.ts.map +1 -1
  95. package/dist/functions/deepCopyTests.lua +19 -16
  96. package/dist/functions/{entity.d.ts → entities.d.ts} +21 -19
  97. package/dist/functions/entities.d.ts.map +1 -0
  98. package/dist/functions/{entity.lua → entities.lua} +25 -20
  99. package/dist/functions/{entitySpecific.d.ts → entitiesSpecific.d.ts} +145 -68
  100. package/dist/functions/entitiesSpecific.d.ts.map +1 -0
  101. package/dist/functions/{entitySpecific.lua → entitiesSpecific.lua} +203 -65
  102. package/dist/functions/familiars.lua +2 -2
  103. package/dist/functions/{gridEntity.d.ts → gridEntities.d.ts} +48 -17
  104. package/dist/functions/gridEntities.d.ts.map +1 -0
  105. package/dist/functions/{gridEntity.lua → gridEntities.lua} +140 -90
  106. package/dist/functions/gridEntitiesSpecific.d.ts +141 -0
  107. package/dist/functions/gridEntitiesSpecific.d.ts.map +1 -0
  108. package/dist/functions/gridEntitiesSpecific.lua +366 -0
  109. package/dist/functions/log.d.ts +1 -1
  110. package/dist/functions/log.d.ts.map +1 -1
  111. package/dist/functions/log.lua +16 -12
  112. package/dist/functions/mergeTests.d.ts +7 -1
  113. package/dist/functions/mergeTests.d.ts.map +1 -1
  114. package/dist/functions/mergeTests.lua +86 -7
  115. package/dist/functions/{npc.d.ts → npcs.d.ts} +24 -2
  116. package/dist/functions/npcs.d.ts.map +1 -0
  117. package/dist/functions/{npc.lua → npcs.lua} +44 -9
  118. package/dist/functions/pickups.d.ts +4 -119
  119. package/dist/functions/pickups.d.ts.map +1 -1
  120. package/dist/functions/pickups.lua +10 -439
  121. package/dist/functions/pickupsSpecific.d.ts +229 -0
  122. package/dist/functions/pickupsSpecific.d.ts.map +1 -0
  123. package/dist/functions/pickupsSpecific.lua +560 -0
  124. package/dist/functions/playerHealth.lua +6 -6
  125. package/dist/functions/{player.d.ts → players.d.ts} +1 -1
  126. package/dist/functions/players.d.ts.map +1 -0
  127. package/dist/functions/{player.lua → players.lua} +0 -0
  128. package/dist/functions/pocketItems.lua +2 -2
  129. package/dist/functions/positionVelocity.lua +6 -6
  130. package/dist/functions/pressurePlate.d.ts +10 -0
  131. package/dist/functions/pressurePlate.d.ts.map +1 -0
  132. package/dist/functions/pressurePlate.lua +29 -0
  133. package/dist/functions/revive.lua +7 -7
  134. package/dist/functions/rooms.lua +2 -2
  135. package/dist/functions/saveFile.lua +3 -3
  136. package/dist/functions/spawnCollectible.lua +4 -4
  137. package/dist/functions/{sprite.d.ts → sprites.d.ts} +1 -1
  138. package/dist/functions/sprites.d.ts.map +1 -0
  139. package/dist/functions/{sprite.lua → sprites.lua} +0 -0
  140. package/dist/functions/table.d.ts +1 -1
  141. package/dist/functions/table.lua +1 -1
  142. package/dist/functions/transformations.lua +2 -2
  143. package/dist/functions/trinketGive.lua +2 -2
  144. package/dist/functions/trinkets.lua +6 -6
  145. package/dist/functions/utils.d.ts +7 -0
  146. package/dist/functions/utils.d.ts.map +1 -1
  147. package/dist/functions/utils.lua +35 -22
  148. package/dist/index.d.ts +10 -8
  149. package/dist/index.d.ts.map +1 -1
  150. package/dist/index.lua +26 -10
  151. package/dist/types/AnyGridEntity.d.ts +10 -0
  152. package/dist/types/AnyGridEntity.d.ts.map +1 -0
  153. package/dist/types/AnyGridEntity.lua +2 -0
  154. package/package.json +2 -2
  155. package/src/callbacks/customRevive.ts +2 -2
  156. package/src/callbacks/postCursedTeleport.ts +2 -2
  157. package/src/callbacks/postCustomDoorEnter.ts +3 -3
  158. package/src/callbacks/postDiceRoomActivated.ts +1 -1
  159. package/src/callbacks/postFlip.ts +1 -1
  160. package/src/callbacks/postGridEntity.ts +1 -1
  161. package/src/callbacks/postGridEntityCollision.ts +1 -1
  162. package/src/callbacks/postGridEntityRender.ts +1 -1
  163. package/src/callbacks/postNewRoomEarly.ts +9 -3
  164. package/src/callbacks/postPickupCollect.ts +1 -1
  165. package/src/callbacks/postPitRender.ts +1 -1
  166. package/src/callbacks/postPitUpdate.ts +1 -1
  167. package/src/callbacks/postPlayerCollectible.ts +2 -2
  168. package/src/callbacks/postPoopRender.ts +1 -1
  169. package/src/callbacks/postPoopUpdate.ts +1 -1
  170. package/src/callbacks/postPressurePlateRender.ts +1 -1
  171. package/src/callbacks/postPressurePlateUpdate.ts +1 -1
  172. package/src/callbacks/postPurchase.ts +1 -1
  173. package/src/callbacks/postRockRender.ts +1 -1
  174. package/src/callbacks/postRockUpdate.ts +1 -1
  175. package/src/callbacks/postSacrifice.ts +1 -1
  176. package/src/callbacks/postSlotInitUpdate.ts +1 -1
  177. package/src/callbacks/postSlotRender.ts +1 -1
  178. package/src/callbacks/postSpikesRender.ts +1 -1
  179. package/src/callbacks/postSpikesUpdate.ts +1 -1
  180. package/src/callbacks/postTNTRender.ts +1 -1
  181. package/src/callbacks/postTNTUpdate.ts +1 -1
  182. package/src/callbacks/preBerserkDeath.ts +1 -1
  183. package/src/callbacks/preNewLevel.ts +1 -1
  184. package/src/callbacks/subscriptions/postDoorRender.ts +7 -5
  185. package/src/callbacks/subscriptions/postDoorUpdate.ts +7 -5
  186. package/src/callbacks/subscriptions/postPitRender.ts +6 -7
  187. package/src/callbacks/subscriptions/postPitUpdate.ts +6 -7
  188. package/src/callbacks/subscriptions/postPoopRender.ts +7 -5
  189. package/src/callbacks/subscriptions/postPoopUpdate.ts +7 -5
  190. package/src/callbacks/subscriptions/postPressurePlateRender.ts +7 -5
  191. package/src/callbacks/subscriptions/postPressurePlateUpdate.ts +7 -5
  192. package/src/enums/private/SerializationBrand.ts +0 -4
  193. package/src/features/characterStats.ts +1 -1
  194. package/src/features/collectibleItemPoolType.ts +1 -1
  195. package/src/features/customGridEntity.ts +6 -3
  196. package/src/features/customStage/backdrop.ts +1 -1
  197. package/src/features/customStage/{gridEntities.ts → customStageGridEntities.ts} +3 -3
  198. package/src/features/customStage/{util.ts → customStageUtils.ts} +0 -0
  199. package/src/features/customStage/exports.ts +2 -2
  200. package/src/features/customStage/init.ts +1 -1
  201. package/src/features/customStage/shadows.ts +1 -1
  202. package/src/features/customStage/versusScreen.ts +2 -2
  203. package/src/features/debugDisplay/v.ts +2 -2
  204. package/src/features/deployJSONRoom.ts +11 -7
  205. package/src/features/extraConsoleCommands/commandsSubroutines.ts +2 -2
  206. package/src/features/extraConsoleCommands/listCommands.ts +13 -9
  207. package/src/features/pause.ts +1 -1
  208. package/src/features/persistentEntities.ts +2 -2
  209. package/src/features/preventCollectibleRotation.ts +1 -1
  210. package/src/features/saveDataManager/exports.ts +7 -4
  211. package/src/features/saveDataManager/merge.ts +3 -3
  212. package/src/features/sirenHelpers.ts +1 -1
  213. package/src/functions/ambush.ts +2 -2
  214. package/src/functions/array.ts +5 -2
  215. package/src/functions/bitwise.ts +2 -2
  216. package/src/functions/{boss.ts → bosses.ts} +29 -21
  217. package/src/functions/collectibleTag.ts +1 -1
  218. package/src/functions/collectibles.ts +2 -2
  219. package/src/functions/deepCopy.ts +98 -19
  220. package/src/functions/deepCopyTests.ts +75 -19
  221. package/src/functions/{entity.ts → entities.ts} +23 -21
  222. package/src/functions/{entitySpecific.ts → entitiesSpecific.ts} +170 -99
  223. package/src/functions/familiars.ts +1 -1
  224. package/src/functions/{gridEntity.ts → gridEntities.ts} +110 -34
  225. package/src/functions/gridEntitiesSpecific.ts +490 -0
  226. package/src/functions/log.ts +19 -10
  227. package/src/functions/mergeTests.ts +152 -4
  228. package/src/functions/{npc.ts → npcs.ts} +42 -11
  229. package/src/functions/pickups.ts +8 -475
  230. package/src/functions/pickupsSpecific.ts +613 -0
  231. package/src/functions/playerHealth.ts +1 -1
  232. package/src/functions/{player.ts → players.ts} +0 -0
  233. package/src/functions/pocketItems.ts +1 -1
  234. package/src/functions/positionVelocity.ts +3 -3
  235. package/src/functions/pressurePlate.ts +29 -0
  236. package/src/functions/revive.ts +2 -2
  237. package/src/functions/rooms.ts +1 -1
  238. package/src/functions/saveFile.ts +1 -1
  239. package/src/functions/spawnCollectible.ts +2 -2
  240. package/src/functions/{sprite.ts → sprites.ts} +0 -0
  241. package/src/functions/table.ts +1 -1
  242. package/src/functions/transformations.ts +1 -1
  243. package/src/functions/trinketGive.ts +4 -4
  244. package/src/functions/trinkets.ts +3 -3
  245. package/src/functions/tstlClass.ts +1 -1
  246. package/src/functions/ui.ts +3 -3
  247. package/src/functions/utils.ts +32 -13
  248. package/src/index.ts +10 -8
  249. package/src/types/AnyGridEntity.ts +9 -0
  250. package/dist/features/customStage/gridEntities.d.ts.map +0 -1
  251. package/dist/features/customStage/util.d.ts.map +0 -1
  252. package/dist/functions/boss.d.ts.map +0 -1
  253. package/dist/functions/entity.d.ts.map +0 -1
  254. package/dist/functions/entitySpecific.d.ts.map +0 -1
  255. package/dist/functions/gridEntity.d.ts.map +0 -1
  256. package/dist/functions/gridEntitySpecific.d.ts +0 -29
  257. package/dist/functions/gridEntitySpecific.d.ts.map +0 -1
  258. package/dist/functions/gridEntitySpecific.lua +0 -114
  259. package/dist/functions/npc.d.ts.map +0 -1
  260. package/dist/functions/player.d.ts.map +0 -1
  261. package/dist/functions/sprite.d.ts.map +0 -1
  262. package/src/functions/gridEntitySpecific.ts +0 -143
@@ -7,7 +7,12 @@ import { log } from "./log";
7
7
  import { isDefaultMap, isTSTLMap, isTSTLSet } from "./tstlClass";
8
8
  import { isNumber, isString, isTable } from "./types";
9
9
 
10
- export function deepCopyTests(): void {
10
+ /**
11
+ * Run the suite of tests that prove that the "deepCopy" helper function works properly.
12
+ *
13
+ * This function is only useful if you are troubleshooting the "deepCopy" function.
14
+ */
15
+ export function runDeepCopyTests(): void {
11
16
  copiedObjectIsTable();
12
17
  copiedObjectHasKeyAndValueString();
13
18
  copiedTableHasKeyAndValueNumber();
@@ -34,7 +39,11 @@ function copiedObjectIsTable() {
34
39
  const oldObject = {
35
40
  abc: "def",
36
41
  };
37
- const newObject = deepCopy(oldObject as unknown as LuaTable);
42
+ const newObject = deepCopy(
43
+ oldObject as unknown as LuaTable,
44
+ SerializationType.NONE,
45
+ "copiedObjectIsTable",
46
+ );
38
47
  if (!isTable(newObject)) {
39
48
  error(`The copied object had a type of: ${typeof newObject}`);
40
49
  }
@@ -46,7 +55,11 @@ function copiedObjectHasKeyAndValueString() {
46
55
  const oldObject = {
47
56
  abc: valueToLookFor,
48
57
  };
49
- const newTable = deepCopy(oldObject as unknown as LuaTable);
58
+ const newTable = deepCopy(
59
+ oldObject as unknown as LuaTable,
60
+ SerializationType.NONE,
61
+ "copiedObjectHasKeyAndValueString",
62
+ );
50
63
  const newObject = newTable as typeof oldObject;
51
64
 
52
65
  const value = newObject[keyToLookFor];
@@ -69,7 +82,11 @@ function copiedTableHasKeyAndValueNumber() {
69
82
  const oldTable = new LuaTable<AnyNotNil, unknown>();
70
83
  oldTable.set(keyToLookFor, valueToLookFor);
71
84
 
72
- const newObject = deepCopy(oldTable);
85
+ const newObject = deepCopy(
86
+ oldTable,
87
+ SerializationType.NONE,
88
+ "copiedTableHasKeyAndValueNumber",
89
+ );
73
90
  const newTable = newObject as LuaTable<AnyNotNil, unknown>;
74
91
 
75
92
  const value = newTable.get(keyToLookFor) as number | undefined;
@@ -91,7 +108,11 @@ function copiedTableDoesNotCoerceTypes() {
91
108
  const oldTable = new LuaTable<AnyNotNil, unknown>();
92
109
  oldTable.set(keyToLookFor, valueToLookFor);
93
110
 
94
- const newObject = deepCopy(oldTable);
111
+ const newObject = deepCopy(
112
+ oldTable,
113
+ SerializationType.NONE,
114
+ "copiedTableDoesNotCoerceTypes",
115
+ );
95
116
  const newTable = newObject as LuaTable<AnyNotNil, unknown>;
96
117
 
97
118
  const keyString = tostring(keyToLookFor);
@@ -110,6 +131,7 @@ function copiedTableDoesNotCoerceTypes() {
110
131
  }
111
132
  }
112
133
 
134
+ /** In this context, a reference is a pointer. */
113
135
  function copiedObjectHasNoReferencesForPrimitivesForward() {
114
136
  const originalStringValue = "abcdef";
115
137
  const originalNumberValue = 123;
@@ -117,7 +139,11 @@ function copiedObjectHasNoReferencesForPrimitivesForward() {
117
139
  abc: originalStringValue,
118
140
  def: originalNumberValue,
119
141
  };
120
- const newTable = deepCopy(oldObject as unknown as LuaTable);
142
+ const newTable = deepCopy(
143
+ oldObject as unknown as LuaTable,
144
+ SerializationType.NONE,
145
+ "copiedObjectHasNoReferencesForPrimitivesForward",
146
+ );
121
147
  const newObject = newTable as typeof oldObject;
122
148
 
123
149
  oldObject.abc = "newValue";
@@ -138,7 +164,11 @@ function copiedObjectHasNoReferencesForPrimitivesBackward() {
138
164
  abc: originalStringValue,
139
165
  def: originalNumberValue,
140
166
  };
141
- const newTable = deepCopy(oldObject as unknown as LuaTable);
167
+ const newTable = deepCopy(
168
+ oldObject as unknown as LuaTable,
169
+ SerializationType.NONE,
170
+ "copiedObjectHasNoReferencesForPrimitivesBackward",
171
+ );
142
172
  const newObject = newTable as typeof oldObject;
143
173
 
144
174
  newObject.abc = "newValue";
@@ -152,11 +182,16 @@ function copiedObjectHasNoReferencesForPrimitivesBackward() {
152
182
  }
153
183
  }
154
184
 
185
+ /** In this context, a reference is a pointer. */
155
186
  function copiedObjectHasNoReferencesForArray() {
156
187
  const oldObject = {
157
188
  abc: [1, 2, 3],
158
189
  };
159
- const newTable = deepCopy(oldObject as unknown as LuaTable);
190
+ const newTable = deepCopy(
191
+ oldObject as unknown as LuaTable,
192
+ SerializationType.NONE,
193
+ "copiedObjectHasNoReferencesForArray",
194
+ );
160
195
  const newObject = newTable as typeof oldObject;
161
196
 
162
197
  if (oldObject.abc === newObject.abc) {
@@ -167,21 +202,21 @@ function copiedObjectHasNoReferencesForArray() {
167
202
  error("The copied object does not have an equal array.");
168
203
  }
169
204
 
170
- oldObject.abc[0] += 1;
205
+ oldObject.abc[0]++;
171
206
  if (arrayEquals(oldObject.abc, newObject.abc)) {
172
207
  error(
173
208
  "The copied object has an equal array after a modification to the old array.",
174
209
  );
175
210
  }
176
- oldObject.abc[0] -= 1;
211
+ oldObject.abc[0]--;
177
212
 
178
- newObject.abc[0] += 1;
213
+ newObject.abc[0]++;
179
214
  if (arrayEquals(oldObject.abc, newObject.abc)) {
180
215
  error(
181
216
  "The copied object has an equal array after a modification to the new array.",
182
217
  );
183
218
  }
184
- newObject.abc[0] -= 1;
219
+ newObject.abc[0]--;
185
220
  }
186
221
 
187
222
  function copiedObjectHasChildObject() {
@@ -193,7 +228,11 @@ function copiedObjectHasChildObject() {
193
228
  def: valueToLookFor,
194
229
  },
195
230
  };
196
- const newTable = deepCopy(oldObject as unknown as LuaTable);
231
+ const newTable = deepCopy(
232
+ oldObject as unknown as LuaTable,
233
+ SerializationType.NONE,
234
+ "copiedObjectHasChildObject",
235
+ );
197
236
  const newObject = newTable as typeof oldObject;
198
237
 
199
238
  const childObject = newObject[childObjectIndex];
@@ -226,7 +265,7 @@ function copiedMapIsMap() {
226
265
  const oldMap = new Map<string, string>();
227
266
  oldMap.set(keyToLookFor, valueToLookFor);
228
267
 
229
- const newObject = deepCopy(oldMap);
268
+ const newObject = deepCopy(oldMap, SerializationType.NONE, "copiedMapIsMap");
230
269
  const newMap = newObject as Map<string, string>;
231
270
 
232
271
  if (!isTable(newMap)) {
@@ -243,7 +282,11 @@ function copiedMapHasValue() {
243
282
  const oldMap = new Map<string, string>();
244
283
  oldMap.set(keyToLookFor, valueToLookFor);
245
284
 
246
- const newTable = deepCopy(oldMap);
285
+ const newTable = deepCopy(
286
+ oldMap,
287
+ SerializationType.NONE,
288
+ "copiedMapHasValue",
289
+ );
247
290
  const newMap = newTable as typeof oldMap;
248
291
 
249
292
  const value = newMap.get(keyToLookFor);
@@ -260,7 +303,7 @@ function copiedSetIsSet() {
260
303
  const oldSet = new Set<string>();
261
304
  oldSet.add(valueToLookFor);
262
305
 
263
- const newTable = deepCopy(oldSet);
306
+ const newTable = deepCopy(oldSet, SerializationType.NONE, "copiedSetIsSet");
264
307
  const newSet = newTable as Set<string>;
265
308
 
266
309
  if (!isTable(newSet)) {
@@ -276,7 +319,11 @@ function copiedSetHasValue() {
276
319
  const oldSet = new Set<string>();
277
320
  oldSet.add(valueToLookFor);
278
321
 
279
- const newTable = deepCopy(oldSet);
322
+ const newTable = deepCopy(
323
+ oldSet,
324
+ SerializationType.NONE,
325
+ "copiedSetHasValue",
326
+ );
280
327
  const newSet = newTable as Set<string>;
281
328
 
282
329
  const hasValue = newSet.has(valueToLookFor);
@@ -295,7 +342,11 @@ function copiedMapHasChildMap() {
295
342
  const oldMap = new Map<string, Map<number, number>>();
296
343
  oldMap.set(keyToLookFor, oldChildMap);
297
344
 
298
- const newTable = deepCopy(oldMap);
345
+ const newTable = deepCopy(
346
+ oldMap,
347
+ SerializationType.NONE,
348
+ "copiedMapHasChildMap",
349
+ );
299
350
  const newMap = newTable as typeof oldMap;
300
351
 
301
352
  const newChildMap = newMap.get(keyToLookFor);
@@ -332,7 +383,11 @@ function copiedDefaultMapHasChildDefaultMap() {
332
383
  oldChildMap.getAndSetDefault(childMapKey1);
333
384
  oldChildMap.set(childMapKey2, childMapCustomValue);
334
385
 
335
- const newTable = deepCopy(oldParentMap);
386
+ const newTable = deepCopy(
387
+ oldParentMap,
388
+ SerializationType.NONE,
389
+ "copiedDefaultMapHasChildDefaultMap",
390
+ );
336
391
  const newParentMap = newTable as typeof oldParentMap;
337
392
 
338
393
  const newChildMap = newParentMap.get(parentMapKey);
@@ -376,6 +431,7 @@ function copiedDefaultMapHasBrand() {
376
431
  const newTable = deepCopy(
377
432
  oldDefaultMap,
378
433
  SerializationType.SERIALIZE,
434
+ "copiedDefaultMapHasBrand",
379
435
  ) as LuaTable<AnyNotNil, unknown>;
380
436
 
381
437
  if (!newTable.has(SerializationBrand.DEFAULT_MAP)) {
@@ -13,10 +13,10 @@ import { isPrimitive } from "./types";
13
13
  * `Isaac.CountEntities` method to avoid having to specify a spawner and to handle ignoring charmed
14
14
  * enemies.
15
15
  *
16
- * @param entityType Default is -1. -1 matches every entity type.
17
- * @param variant Default is -1. -1 matches every variant.
18
- * @param subType Default is -1. -1 matches every sub-type.
19
- * @param ignoreFriendly Default is false.
16
+ * @param entityType Optional. Default is -1, which matches every entity type.
17
+ * @param variant Optional. Default is -1, which matches every variant.
18
+ * @param subType Optional. Default is -1, which matches every sub-type.
19
+ * @param ignoreFriendly Optional. Default is false.
20
20
  */
21
21
  export function countEntities(
22
22
  entityType: EntityType = -1,
@@ -43,10 +43,10 @@ export function countEntities(
43
43
  * Helper function to check if one or more of a specific kind of entity is present in the current
44
44
  * room. It uses the `countEntities` helper function to determine this.
45
45
  *
46
- * @param entityType Default is -1. -1 matches every entity type.
47
- * @param variant Default is -1. -1 matches every variant.
48
- * @param subType Default is -1. -1 matches every sub-type.
49
- * @param ignoreFriendly Default is false.
46
+ * @param entityType Optional. Default is -1, which matches every entity type.
47
+ * @param variant Optional. Default is -1, which matches every variant.
48
+ * @param subType Optional. Default is -1, which matches every sub-type.
49
+ * @param ignoreFriendly Optional. Default is false.
50
50
  */
51
51
  export function doesEntityExist(
52
52
  entityType: EntityType = -1,
@@ -99,28 +99,29 @@ export function getClosestEntityTo<T extends AnyEntity>(
99
99
  * For example:
100
100
  *
101
101
  * ```ts
102
- * // Make all of the entities in the room invisible
102
+ * // Make all of the entities in the room invisible.
103
103
  * for (const entity of getEntities()) {
104
104
  * entity.Visible = false;
105
105
  * }
106
106
  * ```
107
107
  *
108
- * @param entityType Optional. If specified, will only return NPCs that match this entity type.
109
- * @param variant Optional. If specified, will only return NPCs that match this variant. Default is
110
- * -1. -1 matches every variant.
111
- * @param subType Optional. If specified, will only return NPCs that match this sub-type. Default is
112
- * -1. -1 matches every sub-type.
108
+ * @param entityType Optional. If specified, will only get the entities that match the type. Default
109
+ * is -1, which matches every type.
110
+ * @param variant Optional. If specified, will only get the entities that match the variant. Default
111
+ * is -1, which matches every variant.
112
+ * @param subType Optional. If specified, will only get the entities that match the sub-type.
113
+ * Default is -1, which matches every sub-type.
113
114
  * @param ignoreFriendly Optional. If set to true, it will exclude friendly NPCs from being
114
- * returned. Default is false. Will only be taken into account if
115
- * `matchingEntityType` is specified.
115
+ * returned. Default is false. Will only be taken into account if the
116
+ * `entityType` is specified.
116
117
  */
117
118
  export function getEntities(
118
- entityType?: EntityType,
119
+ entityType: EntityType = -1,
119
120
  variant = -1,
120
121
  subType = -1,
121
122
  ignoreFriendly = false,
122
123
  ): Entity[] {
123
- if (entityType === undefined) {
124
+ if ((entityType as int) === -1) {
124
125
  return Isaac.GetRoomEntities();
125
126
  }
126
127
 
@@ -317,8 +318,9 @@ export function parseEntityTypeVariantString(
317
318
  * Helper function to remove all of the matching entities in the room.
318
319
  *
319
320
  * @param entityType The entity type to match.
320
- * @param entityVariant Optional. The variant to match. Default is -1. -1 matches every variant.
321
- * @param entitySubType Optional. The sub-type to match. Default is -1. -1 matches every sub-type.
321
+ * @param entityVariant Optional. The variant to match. Default is -1, which matches every variant.
322
+ * @param entitySubType Optional. The sub-type to match. Default is -1, which matches every
323
+ * sub-type.
322
324
  * @param cap Optional. If specified, will only remove the given amount of collectibles.
323
325
  * @returns An array of the entities that were removed.
324
326
  */
@@ -353,7 +355,7 @@ export function removeEntities<T extends AnyEntity>(
353
355
 
354
356
  entitiesRemoved.push(entity);
355
357
  if (cap !== undefined && entitiesRemoved.length >= cap) {
356
- return entitiesRemoved;
358
+ break;
357
359
  }
358
360
  }
359
361