isaacscript-common 1.2.138 → 1.2.139

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 (34) hide show
  1. package/dist/constants.d.ts +2 -0
  2. package/dist/features/deployJSONRoom.lua +11 -22
  3. package/dist/features/disableInputs.lua +6 -20
  4. package/dist/features/disableSound.lua +4 -12
  5. package/dist/features/extraConsoleCommands/commands.d.ts +88 -4
  6. package/dist/features/extraConsoleCommands/commands.lua +299 -27
  7. package/dist/features/extraConsoleCommands/init.lua +46 -5
  8. package/dist/features/extraConsoleCommands/v.d.ts +5 -1
  9. package/dist/features/extraConsoleCommands/v.lua +7 -1
  10. package/dist/features/forgottenSwitch.lua +3 -8
  11. package/dist/features/getCollectibleItemPoolType.lua +4 -9
  12. package/dist/features/isPonyActive.lua +3 -8
  13. package/dist/features/preventCollectibleRotate.lua +3 -8
  14. package/dist/features/runInNFrames.lua +6 -20
  15. package/dist/features/saveDataManager/constants.d.ts +3 -0
  16. package/dist/features/saveDataManager/constants.lua +5 -0
  17. package/dist/features/saveDataManager/exports.lua +9 -18
  18. package/dist/features/saveDataManager/load.lua +4 -3
  19. package/dist/features/saveDataManager/main.lua +4 -10
  20. package/dist/features/saveDataManager/merge.lua +2 -2
  21. package/dist/features/saveDataManager/save.lua +3 -1
  22. package/dist/features/sirenHelpers.lua +4 -8
  23. package/dist/featuresInitialized.d.ts +1 -1
  24. package/dist/featuresInitialized.lua +5 -0
  25. package/dist/functions/deepCopy.lua +2 -2
  26. package/dist/functions/log.lua +3 -0
  27. package/dist/functions/rooms.lua +4 -5
  28. package/dist/index.d.ts +2 -0
  29. package/dist/index.lua +16 -0
  30. package/dist/maps/roomTypeMap.d.ts +3 -0
  31. package/dist/maps/roomTypeMap.lua +43 -0
  32. package/dist/maps/roomTypeNameMap.d.ts +2 -0
  33. package/dist/maps/roomTypeNameMap.lua +38 -0
  34. package/package.json +1 -1
@@ -126,6 +126,8 @@ export declare const PILL_COLOR_MASK = 2047;
126
126
  export declare const SINGLE_USE_ACTIVE_COLLECTIBLE_TYPES: ReadonlySet<CollectibleType>;
127
127
  export declare const STORY_BOSSES: ReadonlySet<EntityType>;
128
128
  /**
129
+ * Add this to a `TrinketType` to get the corresponding golden trinket type.
130
+ *
129
131
  * In vanilla, this is part of the `TrinketType` enum, but we implement it as a constant in
130
132
  * IsaacScript since it is not a real trinket type.
131
133
  *
@@ -6,11 +6,11 @@ local __TS__ArrayPush = ____lualib.__TS__ArrayPush
6
6
  local Map = ____lualib.Map
7
7
  local __TS__Iterator = ____lualib.__TS__Iterator
8
8
  local ____exports = {}
9
- local postNewRoom, setDecorationsInvisible, respawnPersistentEntities, removeSpecificNPCs, fillRoomWithDecorations, spawnAllEntities, spawnGridEntityForJSONRoom, spawnNormalEntityForJSONRoom, storePersistentEntity, fixPitGraphics, getPitMap, getPitFrame, FEATURE_NAME, NPC_TYPES_TO_NOT_REMOVE, PERSISTENT_ENTITY_TYPES, initialized, v
9
+ local postNewRoom, setDecorationsInvisible, respawnPersistentEntities, removeSpecificNPCs, fillRoomWithDecorations, spawnAllEntities, spawnGridEntityForJSONRoom, spawnNormalEntityForJSONRoom, storePersistentEntity, fixPitGraphics, getPitMap, getPitFrame, FEATURE_NAME, NPC_TYPES_TO_NOT_REMOVE, PERSISTENT_ENTITY_TYPES, v
10
10
  local ____cachedClasses = require("cachedClasses")
11
11
  local game = ____cachedClasses.game
12
- local ____errors = require("errors")
13
- local getUpgradeErrorMsg = ____errors.getUpgradeErrorMsg
12
+ local ____featuresInitialized = require("featuresInitialized")
13
+ local errorIfFeaturesNotInitialized = ____featuresInitialized.errorIfFeaturesNotInitialized
14
14
  local ____entity = require("functions.entity")
15
15
  local removeAllMatchingEntities = ____entity.removeAllMatchingEntities
16
16
  local ____entitySpecific = require("functions.entitySpecific")
@@ -80,10 +80,7 @@ function respawnPersistentEntities(self)
80
80
  end
81
81
  end
82
82
  function ____exports.emptyRoom(self, fillWithDecorations)
83
- if not initialized then
84
- local msg = getUpgradeErrorMsg(nil, FEATURE_NAME)
85
- error(msg)
86
- end
83
+ errorIfFeaturesNotInitialized(nil, FEATURE_NAME)
87
84
  local roomListIndex = getRoomListIndex(nil)
88
85
  v.level.deployedRoomListIndexes:add(roomListIndex)
89
86
  removeAllBombs(nil)
@@ -103,10 +100,10 @@ function removeSpecificNPCs(self)
103
100
  for ____, npc in ipairs(getNPCs(nil)) do
104
101
  do
105
102
  if NPC_TYPES_TO_NOT_REMOVE:has(npc.Type) then
106
- goto __continue27
103
+ goto __continue24
107
104
  end
108
105
  if npc:HasEntityFlags(EntityFlag.FLAG_CHARM) or npc:HasEntityFlags(EntityFlag.FLAG_FRIENDLY) or npc:HasEntityFlags(EntityFlag.FLAG_PERSISTENT) then
109
- goto __continue27
106
+ goto __continue24
110
107
  end
111
108
  npc:ClearEntityFlags(EntityFlag.FLAG_APPEAR)
112
109
  npc:Remove()
@@ -115,7 +112,7 @@ function removeSpecificNPCs(self)
115
112
  room:SetGridPath(gridIndex, 0)
116
113
  end
117
114
  end
118
- ::__continue27::
115
+ ::__continue24::
119
116
  end
120
117
  end
121
118
  function fillRoomWithDecorations(self)
@@ -127,7 +124,7 @@ function fillRoomWithDecorations(self)
127
124
  do
128
125
  local existingGridEntity = room:GetGridEntity(gridIndex)
129
126
  if existingGridEntity ~= nil then
130
- goto __continue33
127
+ goto __continue30
131
128
  end
132
129
  local position = room:GetGridPosition(gridIndex)
133
130
  local decoration = Isaac.GridSpawn(GridEntityType.GRID_DECORATION, 0, position, true)
@@ -136,7 +133,7 @@ function fillRoomWithDecorations(self)
136
133
  end
137
134
  __TS__ArrayPush(decorationGridIndexes, gridIndex)
138
135
  end
139
- ::__continue33::
136
+ ::__continue30::
140
137
  end
141
138
  end
142
139
  function spawnAllEntities(self, jsonRoom, seed, verbose)
@@ -391,7 +388,6 @@ end
391
388
  FEATURE_NAME = "JSON room deployer"
392
389
  NPC_TYPES_TO_NOT_REMOVE = __TS__New(Set, {EntityType.ENTITY_DARK_ESAU})
393
390
  PERSISTENT_ENTITY_TYPES = __TS__New(Set, {EntityType.ENTITY_WALL_HUGGER})
394
- initialized = false
395
391
  v = {level = {
396
392
  deployedRoomListIndexes = __TS__New(Set),
397
393
  roomToPersistentEntitiesMap = __TS__New(
@@ -404,7 +400,6 @@ v = {level = {
404
400
  )
405
401
  }}
406
402
  function ____exports.deployJSONRoomInit(self, mod)
407
- initialized = true
408
403
  saveDataManager(nil, "deployJSONRoom", v)
409
404
  mod:AddCallback(ModCallbacks.MC_POST_NEW_ROOM, postNewRoom)
410
405
  end
@@ -415,10 +410,7 @@ function ____exports.deployJSONRoom(self, jsonRoom, seed, verbose)
415
410
  if verbose == nil then
416
411
  verbose = false
417
412
  end
418
- if not initialized then
419
- local msg = getUpgradeErrorMsg(nil, FEATURE_NAME)
420
- error(msg)
421
- end
413
+ errorIfFeaturesNotInitialized(nil, FEATURE_NAME)
422
414
  if verbose then
423
415
  log("Starting to empty the room of entities and grid entities.")
424
416
  end
@@ -444,10 +436,7 @@ function ____exports.deployRandomJSONRoom(self, jsonRooms, seed, verbose)
444
436
  if verbose == nil then
445
437
  verbose = false
446
438
  end
447
- if not initialized then
448
- local msg = getUpgradeErrorMsg(nil, FEATURE_NAME)
449
- error(msg)
450
- end
439
+ errorIfFeaturesNotInitialized(nil, FEATURE_NAME)
451
440
  local randomJSONRoom = getRandomJSONRoom(nil, jsonRooms, seed, verbose)
452
441
  if verbose then
453
442
  log((((((("Randomly chose JSON room " .. randomJSONRoom["$"].type) .. ".") .. randomJSONRoom["$"].variant) .. ".") .. randomJSONRoom["$"].subtype) .. " with name: ") .. randomJSONRoom["$"].name)
@@ -6,8 +6,8 @@ local __TS__Iterator = ____lualib.__TS__Iterator
6
6
  local Set = ____lualib.Set
7
7
  local ____exports = {}
8
8
  local isActionPressed, isActionTriggered, getActionValue, getReturnValue, v
9
- local ____errors = require("errors")
10
- local getUpgradeErrorMsg = ____errors.getUpgradeErrorMsg
9
+ local ____featuresInitialized = require("featuresInitialized")
10
+ local errorIfFeaturesNotInitialized = ____featuresInitialized.errorIfFeaturesNotInitialized
11
11
  local ____input = require("functions.input")
12
12
  local getMoveActions = ____input.getMoveActions
13
13
  local getShootActions = ____input.getShootActions
@@ -43,31 +43,23 @@ function getReturnValue(self, buttonAction, booleanCallback)
43
43
  return nil
44
44
  end
45
45
  local FEATURE_NAME = "input disabler"
46
- local initialized = false
47
46
  v = {run = {
48
47
  disableInputsWithWhitelistMap = __TS__New(Map),
49
48
  enableInputsWithBlacklistMap = __TS__New(Map)
50
49
  }}
51
50
  function ____exports.disableInputsInit(self, mod)
52
- initialized = true
53
51
  saveDataManager(nil, "disableInputs", v)
54
52
  mod:AddCallback(ModCallbacks.MC_INPUT_ACTION, isActionPressed, InputHook.IS_ACTION_PRESSED)
55
53
  mod:AddCallback(ModCallbacks.MC_INPUT_ACTION, isActionTriggered, InputHook.IS_ACTION_TRIGGERED)
56
54
  mod:AddCallback(ModCallbacks.MC_INPUT_ACTION, getActionValue, InputHook.GET_ACTION_VALUE)
57
55
  end
58
56
  function ____exports.enableAllInputs(self, key)
59
- if not initialized then
60
- local msg = getUpgradeErrorMsg(nil, FEATURE_NAME)
61
- error(msg)
62
- end
57
+ errorIfFeaturesNotInitialized(nil, FEATURE_NAME)
63
58
  v.run.disableInputsWithWhitelistMap:delete(key)
64
59
  v.run.enableInputsWithBlacklistMap:delete(key)
65
60
  end
66
61
  function ____exports.disableAllInputs(self, key)
67
- if not initialized then
68
- local msg = getUpgradeErrorMsg(nil, FEATURE_NAME)
69
- error(msg)
70
- end
62
+ errorIfFeaturesNotInitialized(nil, FEATURE_NAME)
71
63
  v.run.disableInputsWithWhitelistMap:set(
72
64
  key,
73
65
  __TS__New(Set)
@@ -75,18 +67,12 @@ function ____exports.disableAllInputs(self, key)
75
67
  v.run.enableInputsWithBlacklistMap:delete(key)
76
68
  end
77
69
  function ____exports.enableAllInputsExceptFor(self, key, blacklist)
78
- if not initialized then
79
- local msg = getUpgradeErrorMsg(nil, FEATURE_NAME)
80
- error(msg)
81
- end
70
+ errorIfFeaturesNotInitialized(nil, FEATURE_NAME)
82
71
  v.run.disableInputsWithWhitelistMap:delete(key)
83
72
  v.run.enableInputsWithBlacklistMap:set(key, blacklist)
84
73
  end
85
74
  function ____exports.disableAllInputsExceptFor(self, key, whitelist)
86
- if not initialized then
87
- local msg = getUpgradeErrorMsg(nil, FEATURE_NAME)
88
- error(msg)
89
- end
75
+ errorIfFeaturesNotInitialized(nil, FEATURE_NAME)
90
76
  v.run.disableInputsWithWhitelistMap:set(key, whitelist)
91
77
  v.run.enableInputsWithBlacklistMap:delete(key)
92
78
  end
@@ -6,8 +6,8 @@ local ____exports = {}
6
6
  local postRender, v
7
7
  local ____cachedClasses = require("cachedClasses")
8
8
  local musicManager = ____cachedClasses.musicManager
9
- local ____errors = require("errors")
10
- local getUpgradeErrorMsg = ____errors.getUpgradeErrorMsg
9
+ local ____featuresInitialized = require("featuresInitialized")
10
+ local errorIfFeaturesNotInitialized = ____featuresInitialized.errorIfFeaturesNotInitialized
11
11
  local ____sound = require("functions.sound")
12
12
  local stopAllSoundEffects = ____sound.stopAllSoundEffects
13
13
  local ____exports = require("features.saveDataManager.exports")
@@ -19,19 +19,14 @@ function postRender(self)
19
19
  stopAllSoundEffects(nil)
20
20
  end
21
21
  local FEATURE_NAME = "sound disabler"
22
- local initialized = false
23
22
  local musicWasEnabled = false
24
23
  v = {run = {disableSoundSet = __TS__New(Set)}}
25
24
  function ____exports.disableSoundsInit(self, mod)
26
- initialized = true
27
25
  saveDataManager(nil, "disableSounds", v)
28
26
  mod:AddCallback(ModCallbacks.MC_POST_RENDER, postRender)
29
27
  end
30
28
  function ____exports.enableAllSound(self, key)
31
- if not initialized then
32
- local msg = getUpgradeErrorMsg(nil, FEATURE_NAME)
33
- error(msg)
34
- end
29
+ errorIfFeaturesNotInitialized(nil, FEATURE_NAME)
35
30
  if not v.run.disableSoundSet:has(key) then
36
31
  return
37
32
  end
@@ -42,10 +37,7 @@ function ____exports.enableAllSound(self, key)
42
37
  stopAllSoundEffects(nil)
43
38
  end
44
39
  function ____exports.disableAllSound(self, key)
45
- if not initialized then
46
- local msg = getUpgradeErrorMsg(nil, FEATURE_NAME)
47
- error(msg)
48
- end
40
+ errorIfFeaturesNotInitialized(nil, FEATURE_NAME)
49
41
  if v.run.disableSoundSet.size == 0 then
50
42
  musicWasEnabled = musicManager:IsEnabled()
51
43
  end
@@ -1,3 +1,9 @@
1
+ /**
2
+ * Adds a single charge to the player's specified active item. You must provide the active slot
3
+ * number. Provide a second number to give a custom amount of charges. (You can use negative numbers
4
+ * to remove charge.)
5
+ */
6
+ export declare function addCharges(params: string): void;
1
7
  /**
2
8
  * Warps to the Angel Room for the floor. If the Devil Room has already been visited or initialized,
3
9
  * this will uninitialize it and make an Angel Room instead.
@@ -5,6 +11,8 @@
5
11
  export declare function angel(): void;
6
12
  /** Activates the flags for the Ascent (i.e. Backwards Path). */
7
13
  export declare function ascent(): void;
14
+ /** Warps to the first Clean Bedroom or Dirty Bedroom on the floor. */
15
+ export declare function bedroom(): void;
8
16
  /** Alias for the "blackhearts" command. */
9
17
  export declare function bh(params: string): void;
10
18
  /**
@@ -36,6 +44,8 @@ export declare function bombs(params: string): void;
36
44
  export declare function boneHearts(params: string): void;
37
45
  /** Warps to the first Boss Room on the floor. */
38
46
  export declare function boss(): void;
47
+ /** Warps to the Boss Rush for the floor. */
48
+ export declare function bossRush(): void;
39
49
  /** Alias for the "blackmarket" command. */
40
50
  export declare function bm(): void;
41
51
  /**
@@ -66,6 +76,10 @@ export declare function chaosCardTears(): void;
66
76
  * - character ta - Restarts as Tainted Azazel.
67
77
  */
68
78
  export declare function characterCommand(params: string): void;
79
+ /** Alias for the "addcharges" command. */
80
+ export declare function charge(params: string): void;
81
+ /** Warps to the first Clean Bedroom on the floor. */
82
+ export declare function cleanBedroom(): void;
69
83
  /**
70
84
  * Gives a coin. Provide a number to give a custom amount of coins. (You can use negative numbers to
71
85
  * remove coins.)
@@ -91,8 +105,14 @@ export declare function dd(): void;
91
105
  * this will uninitialize it and make an Devil Room instead.
92
106
  */
93
107
  export declare function devil(): void;
108
+ /** Warps to the first Dirty Bedroom on the floor. */
109
+ export declare function dirtyBedroom(): void;
110
+ /** Toggles whether or not curses can appear. */
111
+ export declare function disableCurses(): void;
94
112
  /** Moves the player 0.5 units down. Provide a number to move a custom amount of units. */
95
113
  export declare function down(params: string): void;
114
+ /** Warps to the Dungeon (i.e. Crawlspace) for the floor. */
115
+ export declare function dungeon(): void;
96
116
  /** Logs the player's current temporary effects to the "log.txt" file. */
97
117
  export declare function effects(): void;
98
118
  /** Alias for the "eternalhearts" command. */
@@ -106,14 +126,32 @@ export declare function error(): void;
106
126
  export declare function eternalHearts(params: string): void;
107
127
  /** Alias for the "startingroom" command. */
108
128
  export declare function fool(): void;
129
+ /** Prints the current position of all players. */
130
+ export declare function getPosition(): void;
131
+ /**
132
+ * Gives a Giga Bomb. Provide a number to give a custom amount of Giga Bombs. (You can use negative
133
+ * numbers to remove bombs.)
134
+ */
135
+ export declare function gigaBomb(params: string): void;
109
136
  /** Alias for the "goldenbomb" command. */
110
137
  export declare function goldBomb(): void;
111
138
  /** Gives the player a golden bomb. */
112
139
  export declare function goldenBomb(): void;
113
- /** Alias for the "goldenkey" command. */
114
- export declare function goldKey(): void;
140
+ /**
141
+ * Gives a golden heart. Provide a number to give a custom amount of hearts. (You can use negative
142
+ * numbers to remove hearts.)
143
+ */
144
+ export declare function goldenHearts(params: string): void;
115
145
  /** Gives the player a golden key. */
116
146
  export declare function goldenKey(): void;
147
+ /** Alias for the "goldenhearts" command. */
148
+ export declare function goldHearts(params: string): void;
149
+ /** Alias for the "goldenkey" command. */
150
+ export declare function goldKey(): void;
151
+ /** Alias for the "debug 2" command. */
152
+ export declare function grid(): void;
153
+ /** Alias for the "debug 11" command. */
154
+ export declare function grid2(): void;
117
155
  /** Alias for the "hearts" command. */
118
156
  export declare function h(params: string): void;
119
157
  /**
@@ -121,6 +159,8 @@ export declare function h(params: string): void;
121
159
  * negative numbers to remove hearts.)
122
160
  */
123
161
  export declare function hearts(params: string): void;
162
+ /** Alias for the "debug 6" command. */
163
+ export declare function hitboxes(): void;
124
164
  /** Warps to the I AM ERROR room for the floor. */
125
165
  export declare function IAMERROR(): void;
126
166
  /**
@@ -133,6 +173,8 @@ export declare function key(params: string): void;
133
173
  * to remove keys.)
134
174
  */
135
175
  export declare function keys(params: string): void;
176
+ /** Warps to the first Library on the floor. */
177
+ export declare function library(): void;
136
178
  /**
137
179
  * Logs the entities in the room to the "log.txt" file. Provide a number to only log that specific
138
180
  * `EntityType`.
@@ -170,6 +212,10 @@ export declare function luck(): void;
170
212
  export declare function maxHearts(params: string): void;
171
213
  /** Alias for the "maxhearts" command. */
172
214
  export declare function mh(params: string): void;
215
+ /** Warps to the first Miniboss Room on the floor. */
216
+ export declare function miniboss(): void;
217
+ /** Alias for the "disablecurses" command. */
218
+ export declare function noCurses(): void;
173
219
  /**
174
220
  * Gives a pill with the specified pill effect. Accepts either the effect ID or the partial name of
175
221
  * the effect.
@@ -183,9 +229,16 @@ export declare function pill(params: string): void;
183
229
  export declare function pills(): void;
184
230
  /** Warps to the first Planetarium on the floor. */
185
231
  export declare function planetarium(): void;
232
+ /** Alias for the "sound" command. */
233
+ export declare function playSound(params: string): void;
186
234
  /** Sets the player's pocket item to the specified collectible type. */
187
235
  export declare function pocket(params: string): void;
188
- /** Prints the current position of all players. */
236
+ /**
237
+ * Gives a poop mana charge. This only affects Tainted Blue Baby. Provide a number to give a custom
238
+ * amount of charges. (You can use negative numbers to remove charges.)
239
+ */
240
+ export declare function poopMana(params: string): void;
241
+ /** Alias for the "getposition" command. */
189
242
  export declare function positionCommand(): void;
190
243
  /** Alias for the "hearts" command. */
191
244
  export declare function redHearts(params: string): void;
@@ -206,8 +259,24 @@ export declare function rottenHearts(params: string): void;
206
259
  * - s 1c - Warps to Downpour 1.
207
260
  */
208
261
  export declare function s(params: string): void;
262
+ /** Warps to the first Sacrifice Room on the floor. */
263
+ export declare function sacrifice(): void;
264
+ /** Warps to the first Secret Room on the floor. */
265
+ export declare function secret(): void;
209
266
  /** Logs all of the current run's seed effects to the "log.txt" file. */
210
267
  export declare function seeds(): void;
268
+ /**
269
+ * Sets a charge to the player's specified active item. You must provide the active slot number and
270
+ * the number of charges to set.
271
+ */
272
+ export declare function setCharges(params: string): void;
273
+ /**
274
+ * Moves the first player to the specified position.
275
+ *
276
+ * Example:
277
+ * - setposition 100 50
278
+ */
279
+ export declare function setPosition(params: string): void;
211
280
  /** Alias for the "soulhearts" command. */
212
281
  export declare function sh(params: string): void;
213
282
  /** Warps to the first shop on the floor. */
@@ -238,13 +307,28 @@ export declare function sounds(): void;
238
307
  * "debug 10".
239
308
  */
240
309
  export declare function spam(): void;
310
+ /** Spawns a golden version of the specified trinket type. */
311
+ export declare function spawnGoldenTrinket(params: string): void;
241
312
  /** Toggles maximum movement speed and flight. */
242
313
  export declare function speed(): void;
243
314
  /** Warps to the starting room of the floor. */
244
315
  export declare function startingRoom(): void;
316
+ /** Warps to the first Super Secret Room on the floor. */
317
+ export declare function superSecret(): void;
318
+ /** Toggles extremely high tears stat (e.g. fire rate), equivalent of that to soy milk. */
319
+ export declare function tears(): void;
245
320
  /** Creates a trapdoor next to the player. */
246
321
  export declare function trapdoorCommand(): void;
247
322
  /** Warps to the first Treasure Room on the floor. */
248
323
  export declare function treasure(): void;
249
324
  /** Warps to the first Ultra Secret Room on the floor. */
250
- export declare function ultra(): void;
325
+ export declare function ultraSecret(): void;
326
+ /**
327
+ * Warps to the specified room type. Accepts either the room type number or the partial name of the
328
+ * room type.
329
+ *
330
+ * Example:
331
+ * - warp 5 - Warps to the first Boss Room on the floor, if any.
332
+ * - warp tr - Warps to the first Treasure Room on the floor, if any.
333
+ */
334
+ export declare function warp(params: string): void;