isaacscript-common 1.2.137 → 1.2.140

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 (81) hide show
  1. package/dist/callbacks/postPlayerChangeHealth.lua +4 -64
  2. package/dist/constants.d.ts +2 -0
  3. package/dist/features/deployJSONRoom.lua +11 -22
  4. package/dist/features/disableInputs.lua +6 -20
  5. package/dist/features/disableSound.lua +4 -12
  6. package/dist/features/extraConsoleCommands/commands.d.ts +185 -13
  7. package/dist/features/extraConsoleCommands/commands.lua +491 -77
  8. package/dist/features/extraConsoleCommands/init.lua +72 -9
  9. package/dist/features/extraConsoleCommands/v.d.ts +5 -1
  10. package/dist/features/extraConsoleCommands/v.lua +7 -1
  11. package/dist/features/forgottenSwitch.lua +3 -8
  12. package/dist/features/getCollectibleItemPoolType.lua +4 -9
  13. package/dist/features/isPonyActive.lua +3 -8
  14. package/dist/features/preventCollectibleRotate.lua +3 -8
  15. package/dist/features/runInNFrames.lua +6 -20
  16. package/dist/features/saveDataManager/constants.d.ts +3 -0
  17. package/dist/features/saveDataManager/constants.lua +5 -0
  18. package/dist/features/saveDataManager/exports.lua +9 -18
  19. package/dist/features/saveDataManager/load.lua +4 -3
  20. package/dist/features/saveDataManager/main.lua +4 -10
  21. package/dist/features/saveDataManager/merge.lua +2 -2
  22. package/dist/features/saveDataManager/save.lua +3 -1
  23. package/dist/features/sirenHelpers.lua +4 -8
  24. package/dist/featuresInitialized.d.ts +1 -1
  25. package/dist/featuresInitialized.lua +5 -0
  26. package/dist/functions/cards.lua +12 -18
  27. package/dist/functions/challenges.lua +3 -2
  28. package/dist/functions/collectibles.lua +8 -14
  29. package/dist/functions/deepCopy.lua +2 -2
  30. package/dist/functions/log.lua +3 -0
  31. package/dist/functions/map.d.ts +4 -1
  32. package/dist/functions/map.lua +5 -1
  33. package/dist/functions/pills.lua +10 -15
  34. package/dist/functions/player.d.ts +4 -2
  35. package/dist/functions/player.lua +37 -81
  36. package/dist/functions/playerHealth.d.ts +3 -0
  37. package/dist/functions/playerHealth.lua +142 -0
  38. package/dist/functions/rooms.lua +4 -5
  39. package/dist/functions/transformations.lua +3 -3
  40. package/dist/functions/trinkets.lua +8 -14
  41. package/dist/index.d.ts +2 -0
  42. package/dist/index.lua +16 -0
  43. package/dist/maps/cardDescriptionMap.d.ts +4 -1
  44. package/dist/maps/cardDescriptionMap.lua +103 -102
  45. package/dist/maps/cardNameMap.d.ts +4 -1
  46. package/dist/maps/cardNameMap.lua +103 -102
  47. package/dist/maps/cardTypeMap.d.ts +3 -1
  48. package/dist/maps/cardTypeMap.lua +102 -102
  49. package/dist/maps/challengeNameMap.d.ts +4 -1
  50. package/dist/maps/challengeNameMap.lua +50 -50
  51. package/dist/maps/characterNameMap.d.ts +5 -0
  52. package/dist/maps/characterNameMap.lua +49 -0
  53. package/dist/maps/collectibleDescriptionMap.d.ts +1 -0
  54. package/dist/maps/collectibleDescriptionMap.lua +1 -0
  55. package/dist/maps/collectibleNameMap.d.ts +1 -0
  56. package/dist/maps/collectibleNameMap.lua +1 -0
  57. package/dist/maps/pillEffectClassMap.d.ts +4 -1
  58. package/dist/maps/pillEffectClassMap.lua +56 -55
  59. package/dist/maps/pillEffectNameMap.d.ts +4 -1
  60. package/dist/maps/pillEffectNameMap.lua +55 -55
  61. package/dist/maps/pillEffectTypeMap.d.ts +4 -1
  62. package/dist/maps/pillEffectTypeMap.lua +55 -55
  63. package/dist/maps/roomTypeMap.d.ts +3 -0
  64. package/dist/maps/roomTypeMap.lua +43 -0
  65. package/dist/maps/roomTypeNameMap.d.ts +5 -0
  66. package/dist/maps/roomTypeNameMap.lua +37 -0
  67. package/dist/maps/transformationNameMap.d.ts +4 -1
  68. package/dist/maps/transformationNameMap.lua +19 -20
  69. package/dist/maps/trinketDescriptionMap.d.ts +1 -0
  70. package/dist/maps/trinketDescriptionMap.lua +1 -0
  71. package/dist/maps/trinketNameMap.d.ts +1 -0
  72. package/dist/maps/trinketNameMap.lua +1 -0
  73. package/dist/types/CardType.d.ts +10 -8
  74. package/dist/types/CardType.lua +9 -7
  75. package/dist/types/HealthType.d.ts +4 -2
  76. package/dist/types/HealthType.lua +3 -1
  77. package/dist/types/PillEffectClass.d.ts +11 -5
  78. package/dist/types/PillEffectClass.lua +8 -5
  79. package/dist/types/PillEffectType.d.ts +10 -4
  80. package/dist/types/PillEffectType.lua +7 -4
  81. package/package.json +1 -1
@@ -1,14 +1,18 @@
1
1
  --[[ Generated with https://github.com/TypeScriptToLua/TypeScriptToLua ]]
2
2
  local ____lualib = require("lualib_bundle")
3
3
  local Map = ____lualib.Map
4
+ local __TS__StringSplit = ____lualib.__TS__StringSplit
4
5
  local __TS__StringSlice = ____lualib.__TS__StringSlice
5
6
  local ____exports = {}
6
- local devilAngel, listEntities, listGridEntities, movePlayer, printEnabled, spawnTrapdoorOrCrawlspace, warpToRoomType, DEFAULT_MOVE_UNITS
7
+ local addHeart, devilAngel, listEntities, listGridEntities, movePlayer, printEnabled, spawnTrapdoorOrCrawlspace, warpToRoomType, DEFAULT_MOVE_UNITS
7
8
  local ____cachedClasses = require("cachedClasses")
8
9
  local game = ____cachedClasses.game
9
10
  local sfxManager = ____cachedClasses.sfxManager
10
11
  local ____constants = require("constants")
11
12
  local PILL_GIANT_FLAG = ____constants.PILL_GIANT_FLAG
13
+ local TRINKET_GOLDEN_FLAG = ____constants.TRINKET_GOLDEN_FLAG
14
+ local ____cards = require("functions.cards")
15
+ local getCardName = ____cards.getCardName
12
16
  local ____gridEntity = require("functions.gridEntity")
13
17
  local spawnGridEntityWithVariant = ____gridEntity.spawnGridEntityWithVariant
14
18
  local ____log = require("functions.log")
@@ -22,8 +26,14 @@ local ____map = require("functions.map")
22
26
  local getMapPartialMatch = ____map.getMapPartialMatch
23
27
  local ____npc = require("functions.npc")
24
28
  local getNPCs = ____npc.getNPCs
29
+ local ____pills = require("functions.pills")
30
+ local getPillEffectName = ____pills.getPillEffectName
25
31
  local ____player = require("functions.player")
32
+ local getCharacterName = ____player.getCharacterName
26
33
  local getPlayers = ____player.getPlayers
34
+ local useActiveItemTemp = ____player.useActiveItemTemp
35
+ local ____playerHealth = require("functions.playerHealth")
36
+ local addPlayerHealthType = ____playerHealth.addPlayerHealthType
27
37
  local ____rooms = require("functions.rooms")
28
38
  local changeRoom = ____rooms.changeRoom
29
39
  local getRoomData = ____rooms.getRoomData
@@ -41,8 +51,18 @@ local ____characterMap = require("maps.characterMap")
41
51
  local CHARACTER_MAP = ____characterMap.CHARACTER_MAP
42
52
  local ____pillEffectMap = require("maps.pillEffectMap")
43
53
  local PILL_EFFECT_MAP = ____pillEffectMap.PILL_EFFECT_MAP
54
+ local ____roomTypeMap = require("maps.roomTypeMap")
55
+ local ROOM_TYPE_MAP = ____roomTypeMap.ROOM_TYPE_MAP
56
+ local ____roomTypeNameMap = require("maps.roomTypeNameMap")
57
+ local DEFAULT_ROOM_TYPE_NAME = ____roomTypeNameMap.DEFAULT_ROOM_TYPE_NAME
58
+ local ROOM_TYPE_NAME_MAP = ____roomTypeNameMap.ROOM_TYPE_NAME_MAP
59
+ local ____HealthType = require("types.HealthType")
60
+ local HealthType = ____HealthType.HealthType
44
61
  local ____v = require("features.extraConsoleCommands.v")
45
62
  local v = ____v.default
63
+ function ____exports.blackHearts(self, params)
64
+ addHeart(nil, params, HealthType.BLACK)
65
+ end
46
66
  function ____exports.chaosCardTears(self)
47
67
  v.run.chaosCardTears = not v.run.chaosCardTears
48
68
  printEnabled(nil, v.run.chaosCardTears, "Chaos Card tears")
@@ -50,22 +70,48 @@ end
50
70
  function ____exports.devil(self)
51
71
  devilAngel(nil, true)
52
72
  end
73
+ function ____exports.eternalHearts(self, params)
74
+ addHeart(nil, params, HealthType.ETERNAL)
75
+ end
53
76
  function ____exports.goldenBomb(self)
54
77
  local player = Isaac.GetPlayer()
55
78
  player:AddGoldenBomb()
56
79
  end
57
- function ____exports.goldenKey(self)
58
- local player = Isaac.GetPlayer()
59
- player:AddGoldenKey()
80
+ function ____exports.hearts(self, params)
81
+ addHeart(nil, params, HealthType.RED)
60
82
  end
61
83
  function ____exports.IAMERROR(self)
62
84
  changeRoom(nil, GridRooms.ROOM_ERROR_IDX)
63
85
  end
86
+ function ____exports.soulHearts(self, params)
87
+ addHeart(nil, params, HealthType.SOUL)
88
+ end
89
+ function ____exports.sound(self, params)
90
+ local soundEffect = tonumber(params)
91
+ if soundEffect == nil then
92
+ printConsole(nil, "That is an invalid sound effect ID.")
93
+ return
94
+ end
95
+ sfxManager:Play(soundEffect)
96
+ end
64
97
  function ____exports.startingRoom(self)
65
98
  local level = game:GetLevel()
66
99
  local startingRoomIndex = level:GetStartingRoomIndex()
67
100
  changeRoom(nil, startingRoomIndex)
68
101
  end
102
+ function addHeart(self, params, healthType)
103
+ local numHearts = healthType == HealthType.MAX_HEARTS and 2 or 1
104
+ if params ~= "" then
105
+ local num = tonumber(params)
106
+ if num == nil then
107
+ printConsole(nil, "That is an invalid amount of hearts to add.")
108
+ return
109
+ end
110
+ numHearts = num
111
+ end
112
+ local player = Isaac.GetPlayer()
113
+ addPlayerHealthType(nil, player, healthType, numHearts)
114
+ end
69
115
  function devilAngel(self, useDevil)
70
116
  local level = game:GetLevel()
71
117
  local devilAngelRoomData = getRoomData(nil, GridRooms.ROOM_DEVIL_IDX)
@@ -135,7 +181,14 @@ function spawnTrapdoorOrCrawlspace(self, trapdoor)
135
181
  local gridEntityType = trapdoor and GridEntityType.GRID_TRAPDOOR or GridEntityType.GRID_STAIRS
136
182
  spawnGridEntityWithVariant(nil, gridEntityType, 0, gridIndex)
137
183
  end
138
- function warpToRoomType(self, roomType, roomTypeName)
184
+ function warpToRoomType(self, roomType)
185
+ local roomTypeName = ROOM_TYPE_NAME_MAP[roomType]
186
+ if roomTypeName == nil or roomTypeName == DEFAULT_ROOM_TYPE_NAME then
187
+ printConsole(
188
+ nil,
189
+ "Invalid room type: " .. tostring(roomType)
190
+ )
191
+ end
139
192
  local gridIndexes = getRoomGridIndexesForType(nil, roomType)
140
193
  if #gridIndexes == 0 then
141
194
  printConsole(nil, ("There are no " .. roomTypeName) .. "s on this floor.")
@@ -143,8 +196,49 @@ function warpToRoomType(self, roomType, roomTypeName)
143
196
  end
144
197
  local firstGridIndex = gridIndexes[1]
145
198
  changeRoom(nil, firstGridIndex)
199
+ printConsole(
200
+ nil,
201
+ ((("Warped to room type: " .. roomTypeName) .. " (") .. tostring(roomType)) .. ")"
202
+ )
146
203
  end
147
204
  DEFAULT_MOVE_UNITS = 0.5
205
+ function ____exports.addCharges(self, params)
206
+ if params == "" then
207
+ printConsole(nil, "You must specify a slot number. (Use 0 for the primary slot, 1 for the Schoolbag slot, 2 for the pocket item slot, and 3 for the Dice Bag slot.)")
208
+ return
209
+ end
210
+ local args = __TS__StringSplit(params, " ")
211
+ if #args ~= 1 and #args ~= 2 then
212
+ printConsole(nil, "That is an invalid amount of arguments.")
213
+ return
214
+ end
215
+ local activeSlotString, chargeString = table.unpack(args)
216
+ local activeSlot = tonumber(activeSlotString)
217
+ if activeSlot == nil then
218
+ printConsole(nil, "The provided slot number is invalid: " .. activeSlotString)
219
+ return
220
+ end
221
+ if activeSlot < ActiveSlot.SLOT_PRIMARY or activeSlot > ActiveSlot.SLOT_POCKET2 then
222
+ printConsole(
223
+ nil,
224
+ "The provided slot number is invalid: " .. tostring(activeSlot)
225
+ )
226
+ return
227
+ end
228
+ local chargeNum = 1
229
+ if chargeString ~= nil then
230
+ local chargeNumAttempt = tonumber(chargeString)
231
+ if chargeNumAttempt == nil then
232
+ printConsole(nil, "The provided charge amount is invalid: " .. chargeString)
233
+ return
234
+ end
235
+ chargeNum = chargeNumAttempt
236
+ end
237
+ local player = Isaac.GetPlayer()
238
+ local currentCharge = player:GetActiveCharge(activeSlot)
239
+ local newCharge = currentCharge + chargeNum
240
+ player:SetActiveCharge(newCharge, activeSlot)
241
+ end
148
242
  function ____exports.angel(self)
149
243
  devilAngel(nil, false)
150
244
  end
@@ -153,9 +247,38 @@ function ____exports.ascent(self)
153
247
  game:SetStateFlag(GameStateFlag.STATE_BACKWARDS_PATH, true)
154
248
  printConsole(nil, "Set Ascent flags.")
155
249
  end
250
+ function ____exports.bedroom(self)
251
+ local cleanBedroomGridIndexes = getRoomGridIndexesForType(nil, RoomType.ROOM_ISAACS)
252
+ if #cleanBedroomGridIndexes > 0 then
253
+ warpToRoomType(nil, RoomType.ROOM_ISAACS)
254
+ return
255
+ end
256
+ local dirtyBedroomGridIndexes = getRoomGridIndexesForType(nil, RoomType.ROOM_BARREN)
257
+ if #dirtyBedroomGridIndexes > 0 then
258
+ warpToRoomType(nil, RoomType.ROOM_BARREN)
259
+ return
260
+ end
261
+ printConsole(nil, "There are no Clean Bedrooms or Dirty Bedrooms on this floor.")
262
+ end
263
+ function ____exports.bh(self, params)
264
+ ____exports.blackHearts(nil, params)
265
+ end
156
266
  function ____exports.blackMarket(self)
157
267
  changeRoom(nil, GridRooms.ROOM_BLACK_MARKET_IDX)
158
268
  end
269
+ function ____exports.bloodCharges(self, params)
270
+ local charges = 1
271
+ if params ~= "" then
272
+ local num = tonumber(params)
273
+ if num == nil then
274
+ printConsole(nil, "That is an invalid amount of charges to add.")
275
+ return
276
+ end
277
+ charges = num
278
+ end
279
+ local player = Isaac.GetPlayer()
280
+ player:AddBloodCharge(charges)
281
+ end
159
282
  function ____exports.bomb(self, params)
160
283
  local numBombs = 1
161
284
  if params ~= "" then
@@ -169,43 +292,63 @@ function ____exports.bomb(self, params)
169
292
  local player = Isaac.GetPlayer()
170
293
  player:AddBombs(numBombs)
171
294
  end
172
- function ____exports.bombs(self)
295
+ function ____exports.bombs(self, params)
296
+ local numBombs = 99
297
+ if params ~= "" then
298
+ local num = tonumber(params)
299
+ if num == nil then
300
+ printConsole(nil, "That is an invalid amount of bombs to add.")
301
+ return
302
+ end
303
+ numBombs = num
304
+ end
173
305
  local player = Isaac.GetPlayer()
174
- player:AddBombs(99)
306
+ player:AddBombs(numBombs)
307
+ end
308
+ function ____exports.boneHearts(self, params)
309
+ addHeart(nil, params, HealthType.BONE)
175
310
  end
176
311
  function ____exports.boss(self)
177
- warpToRoomType(nil, RoomType.ROOM_BOSS, "Boss Room")
312
+ warpToRoomType(nil, RoomType.ROOM_BOSS)
313
+ end
314
+ function ____exports.bossRush(self)
315
+ changeRoom(nil, GridRooms.ROOM_BOSSRUSH_IDX)
178
316
  end
179
317
  function ____exports.bm(self)
180
318
  ____exports.blackMarket(nil)
181
319
  end
320
+ function ____exports.brokenHearts(self, params)
321
+ addHeart(nil, params, HealthType.BROKEN)
322
+ end
182
323
  function ____exports.card(self, params)
183
324
  if params == "" then
184
325
  printConsole(nil, "You must specify a card name or number.")
185
326
  return
186
327
  end
328
+ local cardNum
187
329
  local num = tonumber(params)
188
- if num ~= nil then
330
+ if num == nil then
331
+ local match = getMapPartialMatch(nil, params, CARD_MAP)
332
+ if match == nil then
333
+ printConsole(nil, "Unknown card: " .. params)
334
+ return
335
+ end
336
+ cardNum = match[2]
337
+ else
189
338
  if num < 1 or num >= Card.NUM_CARDS then
190
- printConsole(nil, "That is an invalid card sub-type.")
339
+ printConsole(
340
+ nil,
341
+ "Invalid card sub-type: " .. tostring(num)
342
+ )
191
343
  return
192
344
  end
193
- Isaac.ExecuteCommand("g k" .. tostring(num))
194
- printConsole(
195
- nil,
196
- "Gave card: " .. tostring(num)
197
- )
198
- return
199
- end
200
- local match = getMapPartialMatch(nil, params, CARD_MAP)
201
- if match == nil then
202
- printConsole(nil, "Unknown card: " .. params)
203
- return
345
+ cardNum = num
204
346
  end
205
- Isaac.ExecuteCommand("g k" .. tostring(match))
347
+ local cardName = getCardName(nil, cardNum)
348
+ Isaac.ExecuteCommand("g k" .. tostring(cardNum))
206
349
  printConsole(
207
350
  nil,
208
- "Gave card: " .. tostring(match)
351
+ ((("Gave card: " .. cardName) .. " (") .. tostring(cardNum)) .. ")"
209
352
  )
210
353
  end
211
354
  function ____exports.cards(self)
@@ -244,30 +387,38 @@ function ____exports.characterCommand(self, params)
244
387
  printConsole(nil, "You must specify a character name or number.")
245
388
  return
246
389
  end
390
+ local character
247
391
  local num = tonumber(params)
248
- if num ~= nil then
392
+ if num == nil then
393
+ local match = getMapPartialMatch(nil, params, CHARACTER_MAP)
394
+ if match == nil then
395
+ printConsole(nil, "Unknown character: " .. params)
396
+ return
397
+ end
398
+ character = match[2]
399
+ else
249
400
  if num < 0 or num >= PlayerType.NUM_PLAYER_TYPES then
250
- printConsole(nil, "That is an invalid player sub-type.")
401
+ printConsole(
402
+ nil,
403
+ "Invalid player sub-type: " .. tostring(num)
404
+ )
251
405
  return
252
406
  end
253
- printConsole(
254
- nil,
255
- "Restarting as character: " .. tostring(num)
256
- )
257
- restart(nil, num)
258
- return
259
- end
260
- local match = getMapPartialMatch(nil, params, CHARACTER_MAP)
261
- if match == nil then
262
- printConsole(nil, "Unknown character: " .. params)
263
- return
407
+ character = num
264
408
  end
265
- restart(nil, match)
409
+ local characterName = getCharacterName(nil, character)
410
+ restart(nil, character)
266
411
  printConsole(
267
412
  nil,
268
- "Restarting as character: " .. tostring(match)
413
+ ((("Restarting as character: " .. characterName) .. " (") .. tostring(character)) .. ")"
269
414
  )
270
415
  end
416
+ function ____exports.charge(self, params)
417
+ ____exports.addCharges(nil, params)
418
+ end
419
+ function ____exports.cleanBedroom(self)
420
+ warpToRoomType(nil, RoomType.ROOM_ISAACS)
421
+ end
271
422
  function ____exports.coin(self, params)
272
423
  local numCoins = 1
273
424
  if params ~= "" then
@@ -281,13 +432,30 @@ function ____exports.coin(self, params)
281
432
  local player = Isaac.GetPlayer()
282
433
  player:AddCoins(numCoins)
283
434
  end
284
- function ____exports.coins(self)
435
+ function ____exports.coins(self, params)
436
+ local numCoins = 999
437
+ if params ~= "" then
438
+ local num = tonumber(params)
439
+ if num == nil then
440
+ printConsole(nil, "That is an invalid amount of coins to add.")
441
+ return
442
+ end
443
+ numCoins = num
444
+ end
285
445
  local player = Isaac.GetPlayer()
286
- player:AddCoins(999)
446
+ player:AddCoins(numCoins)
287
447
  end
288
448
  function ____exports.crawlspace(self)
289
449
  spawnTrapdoorOrCrawlspace(nil, false)
290
450
  end
451
+ function ____exports.d6(self)
452
+ local player = Isaac.GetPlayer()
453
+ useActiveItemTemp(nil, player, CollectibleType.COLLECTIBLE_D6)
454
+ end
455
+ function ____exports.d20(self)
456
+ local player = Isaac.GetPlayer()
457
+ useActiveItemTemp(nil, player, CollectibleType.COLLECTIBLE_D20)
458
+ end
291
459
  function ____exports.damage(self)
292
460
  v.run.maxDamage = not v.run.maxDamage
293
461
  printEnabled(nil, v.run.maxDamage, "debug damage")
@@ -295,26 +463,83 @@ end
295
463
  function ____exports.dd(self)
296
464
  ____exports.devil(nil)
297
465
  end
466
+ function ____exports.dirtyBedroom(self)
467
+ warpToRoomType(nil, RoomType.ROOM_BARREN)
468
+ end
469
+ function ____exports.disableCurses(self)
470
+ v.persistent.disableCurses = not v.persistent.disableCurses
471
+ printEnabled(nil, not v.persistent.disableCurses, "curses")
472
+ end
298
473
  function ____exports.down(self, params)
299
474
  movePlayer(nil, params, Direction.DOWN)
300
475
  end
476
+ function ____exports.dungeon(self)
477
+ changeRoom(nil, GridRooms.ROOM_DUNGEON_IDX)
478
+ end
301
479
  function ____exports.effects(self)
302
480
  local player = Isaac.GetPlayer()
303
481
  logTemporaryEffects(player)
304
482
  printConsole(nil, "Logged the player's effects to the \"log.txt\" file.")
305
483
  end
484
+ function ____exports.eh(self, params)
485
+ ____exports.eternalHearts(nil, params)
486
+ end
306
487
  function ____exports.error(self)
307
488
  ____exports.IAMERROR(nil)
308
489
  end
309
490
  function ____exports.fool(self)
310
491
  ____exports.startingRoom(nil)
311
492
  end
493
+ function ____exports.getPosition(self)
494
+ for ____, player in ipairs(getPlayers(nil)) do
495
+ local character = player:GetPlayerType()
496
+ printConsole(
497
+ nil,
498
+ ((((("Player position for character " .. tostring(character)) .. ": (") .. tostring(player.Position.X)) .. ", ") .. tostring(player.Position.Y)) .. ")"
499
+ )
500
+ end
501
+ end
502
+ function ____exports.gigaBomb(self, params)
503
+ local numBombs = 1
504
+ if params ~= "" then
505
+ local num = tonumber(params)
506
+ if num == nil then
507
+ printConsole(nil, "That is an invalid amount of Giga Bombs to add.")
508
+ return
509
+ end
510
+ numBombs = num
511
+ end
512
+ local player = Isaac.GetPlayer()
513
+ player:AddGigaBombs(numBombs)
514
+ end
312
515
  function ____exports.goldBomb(self)
313
516
  ____exports.goldenBomb(nil)
314
517
  end
518
+ function ____exports.goldenHearts(self, params)
519
+ addHeart(nil, params, HealthType.GOLDEN)
520
+ end
521
+ function ____exports.goldenKey(self)
522
+ local player = Isaac.GetPlayer()
523
+ player:AddGoldenKey()
524
+ end
525
+ function ____exports.goldHearts(self, params)
526
+ ____exports.goldenHearts(nil, params)
527
+ end
315
528
  function ____exports.goldKey(self)
316
529
  ____exports.goldenKey(nil)
317
530
  end
531
+ function ____exports.grid(self)
532
+ Isaac.ExecuteCommand("debug 2")
533
+ end
534
+ function ____exports.grid2(self)
535
+ Isaac.ExecuteCommand("debug 11")
536
+ end
537
+ function ____exports.h(self, params)
538
+ ____exports.hearts(nil, params)
539
+ end
540
+ function ____exports.hitboxes(self)
541
+ Isaac.ExecuteCommand("debug 6")
542
+ end
318
543
  function ____exports.key(self, params)
319
544
  local numKeys = 1
320
545
  if params ~= "" then
@@ -328,9 +553,21 @@ function ____exports.key(self, params)
328
553
  local player = Isaac.GetPlayer()
329
554
  player:AddKeys(numKeys)
330
555
  end
331
- function ____exports.keys(self)
556
+ function ____exports.keys(self, params)
557
+ local numKeys = 99
558
+ if params ~= "" then
559
+ local num = tonumber(params)
560
+ if num == nil then
561
+ printConsole(nil, "That is an invalid amount of keys to add.")
562
+ return
563
+ end
564
+ numKeys = num
565
+ end
332
566
  local player = Isaac.GetPlayer()
333
- player:AddKeys(99)
567
+ player:AddKeys(numKeys)
568
+ end
569
+ function ____exports.library(self)
570
+ warpToRoomType(nil, RoomType.ROOM_LIBRARY)
334
571
  end
335
572
  function ____exports.list(self, params)
336
573
  listEntities(nil, params, false)
@@ -353,33 +590,47 @@ end
353
590
  function ____exports.luck(self)
354
591
  Isaac.ExecuteCommand("debug 9")
355
592
  end
593
+ function ____exports.maxHearts(self, params)
594
+ addHeart(nil, params, HealthType.MAX_HEARTS)
595
+ end
596
+ function ____exports.mh(self, params)
597
+ ____exports.maxHearts(nil, params)
598
+ end
599
+ function ____exports.miniboss(self)
600
+ warpToRoomType(nil, RoomType.ROOM_MINIBOSS)
601
+ end
602
+ function ____exports.noCurses(self)
603
+ ____exports.disableCurses(nil)
604
+ end
356
605
  function ____exports.pill(self, params)
357
606
  if params == "" then
358
607
  printConsole(nil, "You must specify a pill name or number.")
359
608
  return
360
609
  end
610
+ local pillEffect
361
611
  local num = tonumber(params)
362
- if num ~= nil then
612
+ if num == nil then
613
+ local match = getMapPartialMatch(nil, params, PILL_EFFECT_MAP)
614
+ if match == nil then
615
+ printConsole(nil, "Unknown pill effect: " .. params)
616
+ return
617
+ end
618
+ pillEffect = match[2]
619
+ else
363
620
  if num < 1 or num >= PillEffect.NUM_PILL_EFFECTS then
364
- printConsole(nil, "That is an invalid pill effect ID.")
621
+ printConsole(
622
+ nil,
623
+ "Invalid pill effect ID: " .. tostring(num)
624
+ )
365
625
  return
366
626
  end
367
- Isaac.ExecuteCommand("g p" .. tostring(num))
368
- printConsole(
369
- nil,
370
- "Gave pill: " .. tostring(num)
371
- )
372
- return
627
+ pillEffect = num
373
628
  end
374
- local match = getMapPartialMatch(nil, params, PILL_EFFECT_MAP)
375
- if match == nil then
376
- printConsole(nil, "Unknown pill effect: " .. params)
377
- return
378
- end
379
- Isaac.ExecuteCommand("g p" .. tostring(match))
629
+ local pillEffectName = getPillEffectName(nil, pillEffect)
630
+ Isaac.ExecuteCommand("g p" .. tostring(pillEffect))
380
631
  printConsole(
381
632
  nil,
382
- "Gave pill: " .. tostring(match)
633
+ ((("Gave pill: " .. pillEffectName) .. " (") .. tostring(pillEffect)) .. ")"
383
634
  )
384
635
  end
385
636
  function ____exports.pills(self)
@@ -418,7 +669,10 @@ function ____exports.pills(self)
418
669
  end
419
670
  end
420
671
  function ____exports.planetarium(self)
421
- warpToRoomType(nil, RoomType.ROOM_PLANETARIUM, "Planetarium")
672
+ warpToRoomType(nil, RoomType.ROOM_PLANETARIUM)
673
+ end
674
+ function ____exports.playSound(self, params)
675
+ ____exports.sound(nil, params)
422
676
  end
423
677
  function ____exports.pocket(self, params)
424
678
  if params == "" then
@@ -433,18 +687,34 @@ function ____exports.pocket(self, params)
433
687
  local player = Isaac.GetPlayer()
434
688
  player:SetPocketActiveItem(num, ActiveSlot.SLOT_POCKET)
435
689
  end
436
- function ____exports.positionCommand(self)
437
- for ____, player in ipairs(getPlayers(nil)) do
438
- local character = player:GetPlayerType()
439
- printConsole(
440
- nil,
441
- ((((("Player position for character " .. tostring(character)) .. ": (") .. tostring(player.Position.X)) .. ", ") .. tostring(player.Position.Y)) .. ")"
442
- )
690
+ function ____exports.poopMana(self, params)
691
+ local charges = 1
692
+ if params ~= "" then
693
+ local num = tonumber(params)
694
+ if num == nil then
695
+ printConsole(nil, "That is an invalid amount of mana to add.")
696
+ return
697
+ end
698
+ charges = num
443
699
  end
700
+ local player = Isaac.GetPlayer()
701
+ player:AddPoopMana(charges)
702
+ end
703
+ function ____exports.positionCommand(self)
704
+ ____exports.getPosition(nil)
705
+ end
706
+ function ____exports.redHearts(self, params)
707
+ ____exports.hearts(nil, params)
708
+ end
709
+ function ____exports.rh(self, params)
710
+ ____exports.redHearts(nil, params)
444
711
  end
445
712
  function ____exports.roomCommand(self)
446
713
  logRoom()
447
714
  end
715
+ function ____exports.rottenHearts(self, params)
716
+ addHeart(nil, params, HealthType.ROTTEN)
717
+ end
448
718
  function ____exports.s(self, params)
449
719
  if params == "" then
450
720
  printConsole(nil, "You must specify a stage number.")
@@ -479,20 +749,105 @@ function ____exports.s(self, params)
479
749
  end
480
750
  Isaac.ExecuteCommand(("stage " .. tostring(stage)) .. stageTypeLetter)
481
751
  end
752
+ function ____exports.sacrifice(self)
753
+ warpToRoomType(nil, RoomType.ROOM_SACRIFICE)
754
+ end
755
+ function ____exports.secret(self)
756
+ warpToRoomType(nil, RoomType.ROOM_SECRET)
757
+ end
482
758
  function ____exports.seeds(self)
483
759
  logAllSeedEffects()
484
760
  printConsole(nil, "Logged the seed effects to the \"log.txt\" file.")
485
761
  end
486
- function ____exports.shop(self)
487
- warpToRoomType(nil, RoomType.ROOM_SHOP, "shop")
762
+ function ____exports.setCharges(self, params)
763
+ if params == "" then
764
+ printConsole(nil, "You must specify a slot number and a charge amount. (Use 0 for the primary slot, 1 for the Schoolbag slot, 2 for the pocket item slot, and 3 for the Dice Bag slot.)")
765
+ return
766
+ end
767
+ local args = __TS__StringSplit(params, " ")
768
+ if #args == 1 then
769
+ printConsole(nil, "You must specify the amount of charge to set.")
770
+ return
771
+ end
772
+ if #args ~= 2 then
773
+ printConsole(nil, "That is an invalid amount of arguments.")
774
+ return
775
+ end
776
+ local activeSlotString, chargeString = table.unpack(args)
777
+ local activeSlot = tonumber(activeSlotString)
778
+ if activeSlot == nil then
779
+ printConsole(nil, "The provided slot number is invalid: " .. activeSlotString)
780
+ return
781
+ end
782
+ if activeSlot < ActiveSlot.SLOT_PRIMARY or activeSlot > ActiveSlot.SLOT_POCKET2 then
783
+ printConsole(
784
+ nil,
785
+ "The provided slot number is invalid: " .. tostring(activeSlot)
786
+ )
787
+ return
788
+ end
789
+ local chargeNum = tonumber(chargeString)
790
+ if chargeNum == nil then
791
+ printConsole(nil, "The provided charge amount is invalid: " .. chargeString)
792
+ return
793
+ end
794
+ if chargeNum < 0 then
795
+ printConsole(
796
+ nil,
797
+ "The provided charge amount is invalid: " .. tostring(chargeNum)
798
+ )
799
+ return
800
+ end
801
+ local player = Isaac.GetPlayer()
802
+ player:SetActiveCharge(chargeNum, activeSlot)
488
803
  end
489
- function ____exports.sound(self, params)
490
- local soundEffect = tonumber(params)
491
- if soundEffect == nil then
492
- printConsole(nil, "That is an invalid sound effect ID.")
804
+ function ____exports.setPosition(self, params)
805
+ if params == "" then
806
+ printConsole(nil, "You must specify a position. (e.g. \"setposition 100 50\")")
493
807
  return
494
808
  end
495
- sfxManager:Play(soundEffect)
809
+ local args = __TS__StringSplit(params, " ")
810
+ if #args ~= 2 then
811
+ printConsole(nil, "You must specify a position. (e.g. \"setposition 100 50\")")
812
+ return
813
+ end
814
+ local xString, yString = table.unpack(args)
815
+ local x = tonumber(xString)
816
+ if x == nil then
817
+ printConsole(nil, "That is an invalid x value: " .. xString)
818
+ return
819
+ end
820
+ local y = tonumber(yString)
821
+ if y == nil then
822
+ printConsole(nil, "That is an invalid y value: " .. yString)
823
+ return
824
+ end
825
+ local player = Isaac.GetPlayer()
826
+ local position = Vector(x, y)
827
+ player.Position = position
828
+ end
829
+ function ____exports.sh(self, params)
830
+ ____exports.soulHearts(nil, params)
831
+ end
832
+ function ____exports.shop(self)
833
+ warpToRoomType(nil, RoomType.ROOM_SHOP)
834
+ end
835
+ function ____exports.smelt(self)
836
+ local player = Isaac.GetPlayer()
837
+ useActiveItemTemp(nil, player, CollectibleType.COLLECTIBLE_SMELTER)
838
+ end
839
+ function ____exports.soulCharges(self, params)
840
+ local charges = 1
841
+ if params ~= "" then
842
+ local num = tonumber(params)
843
+ if num == nil then
844
+ printConsole(nil, "That is an invalid amount of charges to add.")
845
+ return
846
+ end
847
+ charges = num
848
+ end
849
+ local player = Isaac.GetPlayer()
850
+ player:AddSoulCharge(charges)
496
851
  end
497
852
  function ____exports.sounds(self)
498
853
  logSounds()
@@ -500,13 +855,36 @@ function ____exports.sounds(self)
500
855
  end
501
856
  function ____exports.spam(self)
502
857
  v.run.spamBloodRights = not v.run.spamBloodRights
858
+ printEnabled(nil, v.run.maxSpeed, "spamming Blood Rights")
859
+ end
860
+ function ____exports.spawnGoldenTrinket(self, params)
861
+ if params == "" then
862
+ printConsole(nil, "You must specify the number corresponding to the trinket type.")
863
+ return
864
+ end
865
+ local trinketType = tonumber(params)
866
+ if trinketType == nil then
867
+ printConsole(nil, "That is an invalid trinket type: " .. params)
868
+ return
869
+ end
870
+ local goldenTrinketType = trinketType + TRINKET_GOLDEN_FLAG
871
+ local room = game:GetRoom()
872
+ local centerPos = room:GetCenterPos()
873
+ Isaac.Spawn(
874
+ EntityType.ENTITY_PICKUP,
875
+ PickupVariant.PICKUP_TRINKET,
876
+ goldenTrinketType,
877
+ centerPos,
878
+ Vector.Zero,
879
+ nil
880
+ )
503
881
  end
504
882
  function ____exports.speed(self)
505
883
  local player = Isaac.GetPlayer()
506
884
  v.run.maxSpeed = not v.run.maxSpeed
507
885
  if v.run.maxSpeed and not player:HasCollectible(CollectibleType.COLLECTIBLE_FATE) then
508
- local eternalHearts = player:GetEternalHearts()
509
- if eternalHearts == 0 then
886
+ local numEternalHearts = player:GetEternalHearts()
887
+ if numEternalHearts == 0 then
510
888
  player:AddCollectible(CollectibleType.COLLECTIBLE_FATE)
511
889
  player:AddEternalHearts(-1)
512
890
  else
@@ -518,13 +896,49 @@ function ____exports.speed(self)
518
896
  player:EvaluateItems()
519
897
  printEnabled(nil, v.run.maxSpeed, "max speed")
520
898
  end
899
+ function ____exports.superSecret(self)
900
+ warpToRoomType(nil, RoomType.ROOM_SUPERSECRET)
901
+ end
902
+ function ____exports.tears(self)
903
+ v.run.maxTears = not v.run.maxTears
904
+ local player = Isaac.GetPlayer()
905
+ player:AddCacheFlags(CacheFlag.CACHE_FIREDELAY)
906
+ player:EvaluateItems()
907
+ printEnabled(nil, v.run.maxDamage, "debug tear-rate")
908
+ end
521
909
  function ____exports.trapdoorCommand(self)
522
910
  spawnTrapdoorOrCrawlspace(nil, true)
523
911
  end
524
912
  function ____exports.treasure(self)
525
- warpToRoomType(nil, RoomType.ROOM_TREASURE, "Treasure Room")
913
+ warpToRoomType(nil, RoomType.ROOM_TREASURE)
526
914
  end
527
- function ____exports.ultra(self)
528
- warpToRoomType(nil, RoomType.ROOM_ULTRASECRET, "Ultra Secret Room")
915
+ function ____exports.ultraSecret(self)
916
+ warpToRoomType(nil, RoomType.ROOM_ULTRASECRET)
917
+ end
918
+ function ____exports.warp(self, params)
919
+ if params == "" then
920
+ printConsole(nil, "You must specify a room type name or number.")
921
+ return
922
+ end
923
+ local roomType
924
+ local num = tonumber(params)
925
+ if num == nil then
926
+ local match = getMapPartialMatch(nil, params, ROOM_TYPE_MAP)
927
+ if match == nil then
928
+ printConsole(nil, "Unknown room type: " .. params)
929
+ return
930
+ end
931
+ roomType = match[2]
932
+ else
933
+ if num < 1 or num >= RoomType.NUM_ROOMTYPES then
934
+ printConsole(
935
+ nil,
936
+ "Invalid room type: " .. tostring(num)
937
+ )
938
+ return
939
+ end
940
+ roomType = num
941
+ end
942
+ warpToRoomType(nil, roomType)
529
943
  end
530
944
  return ____exports