isaacscript-common 29.5.0 → 29.5.2

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 (70) hide show
  1. package/dist/index.rollup.d.ts +148 -228
  2. package/dist/isaacscript-common.lua +1682 -1711
  3. package/dist/src/callbackClasses.d.ts +0 -1
  4. package/dist/src/callbackClasses.d.ts.map +1 -1
  5. package/dist/src/callbackClasses.lua +0 -5
  6. package/dist/src/callbacks.d.ts +126 -127
  7. package/dist/src/callbacks.d.ts.map +1 -1
  8. package/dist/src/callbacks.lua +0 -1
  9. package/dist/src/classes/features/callbackLogic/EsauJrDetection.d.ts +1 -1
  10. package/dist/src/classes/features/callbackLogic/EsauJrDetection.d.ts.map +1 -1
  11. package/dist/src/classes/features/callbackLogic/EsauJrDetection.lua +2 -2
  12. package/dist/src/classes/features/callbackLogic/FlipDetection.d.ts +1 -1
  13. package/dist/src/classes/features/callbackLogic/FlipDetection.d.ts.map +1 -1
  14. package/dist/src/classes/features/callbackLogic/FlipDetection.lua +2 -2
  15. package/dist/src/classes/features/callbackLogic/GameReorderedCallbacks.d.ts +1 -1
  16. package/dist/src/classes/features/callbackLogic/GameReorderedCallbacks.d.ts.map +1 -1
  17. package/dist/src/classes/features/callbackLogic/GameReorderedCallbacks.lua +2 -2
  18. package/dist/src/classes/features/callbackLogic/PlayerCollectibleDetection.d.ts +1 -1
  19. package/dist/src/classes/features/callbackLogic/PlayerCollectibleDetection.d.ts.map +1 -1
  20. package/dist/src/classes/features/callbackLogic/PlayerCollectibleDetection.lua +2 -2
  21. package/dist/src/classes/features/other/PickupIndexCreation.d.ts +4 -0
  22. package/dist/src/classes/features/other/PickupIndexCreation.d.ts.map +1 -1
  23. package/dist/src/classes/features/other/PreventCollectibleRotation.d.ts +9 -3
  24. package/dist/src/classes/features/other/PreventCollectibleRotation.d.ts.map +1 -1
  25. package/dist/src/classes/features/other/PreventCollectibleRotation.lua +66 -25
  26. package/dist/src/enums/ModCallbackCustom.d.ts +126 -144
  27. package/dist/src/enums/ModCallbackCustom.d.ts.map +1 -1
  28. package/dist/src/enums/ModCallbackCustom.lua +126 -128
  29. package/dist/src/features.d.ts.map +1 -1
  30. package/dist/src/features.lua +2 -2
  31. package/dist/src/functions/collectibles.d.ts +0 -52
  32. package/dist/src/functions/collectibles.d.ts.map +1 -1
  33. package/dist/src/functions/collectibles.lua +0 -68
  34. package/dist/src/functions/playerIndex.d.ts +3 -3
  35. package/dist/src/functions/playerIndex.lua +3 -3
  36. package/dist/src/functions/utils.d.ts +2 -0
  37. package/dist/src/functions/utils.d.ts.map +1 -1
  38. package/dist/src/functions/utils.lua +2 -0
  39. package/dist/src/index.d.ts +0 -1
  40. package/dist/src/index.d.ts.map +1 -1
  41. package/dist/src/interfaces/private/AddCallbackParametersCustom.d.ts +0 -4
  42. package/dist/src/interfaces/private/AddCallbackParametersCustom.d.ts.map +1 -1
  43. package/dist/src/shouldFire.d.ts +0 -1
  44. package/dist/src/shouldFire.d.ts.map +1 -1
  45. package/dist/src/shouldFire.lua +0 -5
  46. package/package.json +2 -2
  47. package/src/callbackClasses.ts +0 -1
  48. package/src/callbacks.ts +0 -1
  49. package/src/classes/features/callbackLogic/EsauJrDetection.ts +2 -2
  50. package/src/classes/features/callbackLogic/FlipDetection.ts +2 -2
  51. package/src/classes/features/callbackLogic/GameReorderedCallbacks.ts +2 -2
  52. package/src/classes/features/callbackLogic/PlayerCollectibleDetection.ts +2 -2
  53. package/src/classes/features/other/PickupIndexCreation.ts +4 -0
  54. package/src/classes/features/other/PreventCollectibleRotation.ts +108 -49
  55. package/src/enums/ModCallbackCustom.ts +0 -19
  56. package/src/features.ts +7 -5
  57. package/src/functions/collectibles.ts +0 -79
  58. package/src/functions/playerIndex.ts +3 -3
  59. package/src/functions/utils.ts +2 -0
  60. package/src/index.ts +0 -1
  61. package/src/interfaces/private/AddCallbackParametersCustom.ts +0 -5
  62. package/src/shouldFire.ts +0 -13
  63. package/dist/src/classes/callbacks/PostCollectibleInitFirst.d.ts +0 -15
  64. package/dist/src/classes/callbacks/PostCollectibleInitFirst.d.ts.map +0 -1
  65. package/dist/src/classes/callbacks/PostCollectibleInitFirst.lua +0 -36
  66. package/dist/src/types/CollectibleIndex.d.ts +0 -18
  67. package/dist/src/types/CollectibleIndex.d.ts.map +0 -1
  68. package/dist/src/types/CollectibleIndex.lua +0 -2
  69. package/src/classes/callbacks/PostCollectibleInitFirst.ts +0 -44
  70. package/src/types/CollectibleIndex.ts +0 -17
@@ -1,6 +1,6 @@
1
1
  --[[
2
2
 
3
- isaacscript-common 29.5.0
3
+ isaacscript-common 29.5.2
4
4
 
5
5
  This is the "isaacscript-common" library, which was created with the IsaacScript tool.
6
6
 
@@ -2542,259 +2542,257 @@ ____exports.ModCallbackCustom.POST_BONE_SWING = 11
2542
2542
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_BONE_SWING] = "POST_BONE_SWING"
2543
2543
  ____exports.ModCallbackCustom.POST_COLLECTIBLE_EMPTY = 12
2544
2544
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_COLLECTIBLE_EMPTY] = "POST_COLLECTIBLE_EMPTY"
2545
- ____exports.ModCallbackCustom.POST_COLLECTIBLE_INIT_FIRST = 13
2546
- ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_COLLECTIBLE_INIT_FIRST] = "POST_COLLECTIBLE_INIT_FIRST"
2547
- ____exports.ModCallbackCustom.POST_CURSED_TELEPORT = 14
2545
+ ____exports.ModCallbackCustom.POST_CURSED_TELEPORT = 13
2548
2546
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_CURSED_TELEPORT] = "POST_CURSED_TELEPORT"
2549
- ____exports.ModCallbackCustom.POST_CUSTOM_REVIVE = 15
2547
+ ____exports.ModCallbackCustom.POST_CUSTOM_REVIVE = 14
2550
2548
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_CUSTOM_REVIVE] = "POST_CUSTOM_REVIVE"
2551
- ____exports.ModCallbackCustom.POST_DICE_ROOM_ACTIVATED = 16
2549
+ ____exports.ModCallbackCustom.POST_DICE_ROOM_ACTIVATED = 15
2552
2550
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_DICE_ROOM_ACTIVATED] = "POST_DICE_ROOM_ACTIVATED"
2553
- ____exports.ModCallbackCustom.POST_DOOR_RENDER = 17
2551
+ ____exports.ModCallbackCustom.POST_DOOR_RENDER = 16
2554
2552
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_DOOR_RENDER] = "POST_DOOR_RENDER"
2555
- ____exports.ModCallbackCustom.POST_DOOR_UPDATE = 18
2553
+ ____exports.ModCallbackCustom.POST_DOOR_UPDATE = 17
2556
2554
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_DOOR_UPDATE] = "POST_DOOR_UPDATE"
2557
- ____exports.ModCallbackCustom.POST_EFFECT_INIT_FILTER = 19
2555
+ ____exports.ModCallbackCustom.POST_EFFECT_INIT_FILTER = 18
2558
2556
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_EFFECT_INIT_FILTER] = "POST_EFFECT_INIT_FILTER"
2559
- ____exports.ModCallbackCustom.POST_EFFECT_INIT_LATE = 20
2557
+ ____exports.ModCallbackCustom.POST_EFFECT_INIT_LATE = 19
2560
2558
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_EFFECT_INIT_LATE] = "POST_EFFECT_INIT_LATE"
2561
- ____exports.ModCallbackCustom.POST_EFFECT_RENDER_FILTER = 21
2559
+ ____exports.ModCallbackCustom.POST_EFFECT_RENDER_FILTER = 20
2562
2560
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_EFFECT_RENDER_FILTER] = "POST_EFFECT_RENDER_FILTER"
2563
- ____exports.ModCallbackCustom.POST_EFFECT_STATE_CHANGED = 22
2561
+ ____exports.ModCallbackCustom.POST_EFFECT_STATE_CHANGED = 21
2564
2562
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_EFFECT_STATE_CHANGED] = "POST_EFFECT_STATE_CHANGED"
2565
- ____exports.ModCallbackCustom.POST_EFFECT_UPDATE_FILTER = 23
2563
+ ____exports.ModCallbackCustom.POST_EFFECT_UPDATE_FILTER = 22
2566
2564
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_EFFECT_UPDATE_FILTER] = "POST_EFFECT_UPDATE_FILTER"
2567
- ____exports.ModCallbackCustom.POST_ENTITY_KILL_FILTER = 24
2565
+ ____exports.ModCallbackCustom.POST_ENTITY_KILL_FILTER = 23
2568
2566
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_ENTITY_KILL_FILTER] = "POST_ENTITY_KILL_FILTER"
2569
- ____exports.ModCallbackCustom.POST_ESAU_JR = 25
2567
+ ____exports.ModCallbackCustom.POST_ESAU_JR = 24
2570
2568
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_ESAU_JR] = "POST_ESAU_JR"
2571
- ____exports.ModCallbackCustom.POST_FAMILIAR_INIT_FILTER = 26
2569
+ ____exports.ModCallbackCustom.POST_FAMILIAR_INIT_FILTER = 25
2572
2570
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_FAMILIAR_INIT_FILTER] = "POST_FAMILIAR_INIT_FILTER"
2573
- ____exports.ModCallbackCustom.POST_FAMILIAR_INIT_LATE = 27
2571
+ ____exports.ModCallbackCustom.POST_FAMILIAR_INIT_LATE = 26
2574
2572
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_FAMILIAR_INIT_LATE] = "POST_FAMILIAR_INIT_LATE"
2575
- ____exports.ModCallbackCustom.POST_FAMILIAR_RENDER_FILTER = 28
2573
+ ____exports.ModCallbackCustom.POST_FAMILIAR_RENDER_FILTER = 27
2576
2574
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_FAMILIAR_RENDER_FILTER] = "POST_FAMILIAR_RENDER_FILTER"
2577
- ____exports.ModCallbackCustom.POST_FAMILIAR_STATE_CHANGED = 29
2575
+ ____exports.ModCallbackCustom.POST_FAMILIAR_STATE_CHANGED = 28
2578
2576
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_FAMILIAR_STATE_CHANGED] = "POST_FAMILIAR_STATE_CHANGED"
2579
- ____exports.ModCallbackCustom.POST_FAMILIAR_UPDATE_FILTER = 30
2577
+ ____exports.ModCallbackCustom.POST_FAMILIAR_UPDATE_FILTER = 29
2580
2578
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_FAMILIAR_UPDATE_FILTER] = "POST_FAMILIAR_UPDATE_FILTER"
2581
- ____exports.ModCallbackCustom.POST_FIRST_ESAU_JR = 31
2579
+ ____exports.ModCallbackCustom.POST_FIRST_ESAU_JR = 30
2582
2580
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_FIRST_ESAU_JR] = "POST_FIRST_ESAU_JR"
2583
- ____exports.ModCallbackCustom.POST_FIRST_FLIP = 32
2581
+ ____exports.ModCallbackCustom.POST_FIRST_FLIP = 31
2584
2582
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_FIRST_FLIP] = "POST_FIRST_FLIP"
2585
- ____exports.ModCallbackCustom.POST_FLIP = 33
2583
+ ____exports.ModCallbackCustom.POST_FLIP = 32
2586
2584
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_FLIP] = "POST_FLIP"
2587
- ____exports.ModCallbackCustom.POST_GAME_END_FILTER = 34
2585
+ ____exports.ModCallbackCustom.POST_GAME_END_FILTER = 33
2588
2586
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_GAME_END_FILTER] = "POST_GAME_END_FILTER"
2589
- ____exports.ModCallbackCustom.POST_GAME_STARTED_REORDERED = 35
2587
+ ____exports.ModCallbackCustom.POST_GAME_STARTED_REORDERED = 34
2590
2588
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_GAME_STARTED_REORDERED] = "POST_GAME_STARTED_REORDERED"
2591
- ____exports.ModCallbackCustom.POST_GAME_STARTED_REORDERED_LAST = 36
2589
+ ____exports.ModCallbackCustom.POST_GAME_STARTED_REORDERED_LAST = 35
2592
2590
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_GAME_STARTED_REORDERED_LAST] = "POST_GAME_STARTED_REORDERED_LAST"
2593
- ____exports.ModCallbackCustom.POST_GREED_MODE_WAVE = 37
2591
+ ____exports.ModCallbackCustom.POST_GREED_MODE_WAVE = 36
2594
2592
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_GREED_MODE_WAVE] = "POST_GREED_MODE_WAVE"
2595
- ____exports.ModCallbackCustom.POST_GRID_ENTITY_BROKEN = 38
2593
+ ____exports.ModCallbackCustom.POST_GRID_ENTITY_BROKEN = 37
2596
2594
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_GRID_ENTITY_BROKEN] = "POST_GRID_ENTITY_BROKEN"
2597
- ____exports.ModCallbackCustom.POST_GRID_ENTITY_COLLISION = 39
2595
+ ____exports.ModCallbackCustom.POST_GRID_ENTITY_COLLISION = 38
2598
2596
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_GRID_ENTITY_COLLISION] = "POST_GRID_ENTITY_COLLISION"
2599
- ____exports.ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_BROKEN = 40
2597
+ ____exports.ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_BROKEN = 39
2600
2598
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_BROKEN] = "POST_GRID_ENTITY_CUSTOM_BROKEN"
2601
- ____exports.ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_COLLISION = 41
2599
+ ____exports.ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_COLLISION = 40
2602
2600
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_COLLISION] = "POST_GRID_ENTITY_CUSTOM_COLLISION"
2603
- ____exports.ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_INIT = 42
2601
+ ____exports.ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_INIT = 41
2604
2602
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_INIT] = "POST_GRID_ENTITY_CUSTOM_INIT"
2605
- ____exports.ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_REMOVE = 43
2603
+ ____exports.ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_REMOVE = 42
2606
2604
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_REMOVE] = "POST_GRID_ENTITY_CUSTOM_REMOVE"
2607
- ____exports.ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_RENDER = 44
2605
+ ____exports.ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_RENDER = 43
2608
2606
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_RENDER] = "POST_GRID_ENTITY_CUSTOM_RENDER"
2609
- ____exports.ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_STATE_CHANGED = 45
2607
+ ____exports.ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_STATE_CHANGED = 44
2610
2608
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_STATE_CHANGED] = "POST_GRID_ENTITY_CUSTOM_STATE_CHANGED"
2611
- ____exports.ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_UPDATE = 46
2609
+ ____exports.ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_UPDATE = 45
2612
2610
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_UPDATE] = "POST_GRID_ENTITY_CUSTOM_UPDATE"
2613
- ____exports.ModCallbackCustom.POST_GRID_ENTITY_INIT = 47
2611
+ ____exports.ModCallbackCustom.POST_GRID_ENTITY_INIT = 46
2614
2612
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_GRID_ENTITY_INIT] = "POST_GRID_ENTITY_INIT"
2615
- ____exports.ModCallbackCustom.POST_GRID_ENTITY_REMOVE = 48
2613
+ ____exports.ModCallbackCustom.POST_GRID_ENTITY_REMOVE = 47
2616
2614
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_GRID_ENTITY_REMOVE] = "POST_GRID_ENTITY_REMOVE"
2617
- ____exports.ModCallbackCustom.POST_GRID_ENTITY_RENDER = 49
2615
+ ____exports.ModCallbackCustom.POST_GRID_ENTITY_RENDER = 48
2618
2616
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_GRID_ENTITY_RENDER] = "POST_GRID_ENTITY_RENDER"
2619
- ____exports.ModCallbackCustom.POST_GRID_ENTITY_STATE_CHANGED = 50
2617
+ ____exports.ModCallbackCustom.POST_GRID_ENTITY_STATE_CHANGED = 49
2620
2618
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_GRID_ENTITY_STATE_CHANGED] = "POST_GRID_ENTITY_STATE_CHANGED"
2621
- ____exports.ModCallbackCustom.POST_GRID_ENTITY_UPDATE = 51
2619
+ ____exports.ModCallbackCustom.POST_GRID_ENTITY_UPDATE = 50
2622
2620
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_GRID_ENTITY_UPDATE] = "POST_GRID_ENTITY_UPDATE"
2623
- ____exports.ModCallbackCustom.POST_HOLY_MANTLE_REMOVED = 52
2621
+ ____exports.ModCallbackCustom.POST_HOLY_MANTLE_REMOVED = 51
2624
2622
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_HOLY_MANTLE_REMOVED] = "POST_HOLY_MANTLE_REMOVED"
2625
- ____exports.ModCallbackCustom.POST_ITEM_DISCHARGE = 53
2623
+ ____exports.ModCallbackCustom.POST_ITEM_DISCHARGE = 52
2626
2624
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_ITEM_DISCHARGE] = "POST_ITEM_DISCHARGE"
2627
- ____exports.ModCallbackCustom.POST_ITEM_PICKUP = 54
2625
+ ____exports.ModCallbackCustom.POST_ITEM_PICKUP = 53
2628
2626
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_ITEM_PICKUP] = "POST_ITEM_PICKUP"
2629
- ____exports.ModCallbackCustom.POST_KEYBOARD_CHANGED = 55
2627
+ ____exports.ModCallbackCustom.POST_KEYBOARD_CHANGED = 54
2630
2628
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_KEYBOARD_CHANGED] = "POST_KEYBOARD_CHANGED"
2631
- ____exports.ModCallbackCustom.POST_KNIFE_INIT_FILTER = 56
2629
+ ____exports.ModCallbackCustom.POST_KNIFE_INIT_FILTER = 55
2632
2630
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_KNIFE_INIT_FILTER] = "POST_KNIFE_INIT_FILTER"
2633
- ____exports.ModCallbackCustom.POST_KNIFE_INIT_LATE = 57
2631
+ ____exports.ModCallbackCustom.POST_KNIFE_INIT_LATE = 56
2634
2632
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_KNIFE_INIT_LATE] = "POST_KNIFE_INIT_LATE"
2635
- ____exports.ModCallbackCustom.POST_KNIFE_RENDER_FILTER = 58
2633
+ ____exports.ModCallbackCustom.POST_KNIFE_RENDER_FILTER = 57
2636
2634
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_KNIFE_RENDER_FILTER] = "POST_KNIFE_RENDER_FILTER"
2637
- ____exports.ModCallbackCustom.POST_KNIFE_UPDATE_FILTER = 59
2635
+ ____exports.ModCallbackCustom.POST_KNIFE_UPDATE_FILTER = 58
2638
2636
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_KNIFE_UPDATE_FILTER] = "POST_KNIFE_UPDATE_FILTER"
2639
- ____exports.ModCallbackCustom.POST_LASER_INIT_FILTER = 60
2637
+ ____exports.ModCallbackCustom.POST_LASER_INIT_FILTER = 59
2640
2638
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_LASER_INIT_FILTER] = "POST_LASER_INIT_FILTER"
2641
- ____exports.ModCallbackCustom.POST_LASER_INIT_LATE = 61
2639
+ ____exports.ModCallbackCustom.POST_LASER_INIT_LATE = 60
2642
2640
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_LASER_INIT_LATE] = "POST_LASER_INIT_LATE"
2643
- ____exports.ModCallbackCustom.POST_LASER_RENDER_FILTER = 62
2641
+ ____exports.ModCallbackCustom.POST_LASER_RENDER_FILTER = 61
2644
2642
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_LASER_RENDER_FILTER] = "POST_LASER_RENDER_FILTER"
2645
- ____exports.ModCallbackCustom.POST_LASER_UPDATE_FILTER = 63
2643
+ ____exports.ModCallbackCustom.POST_LASER_UPDATE_FILTER = 62
2646
2644
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_LASER_UPDATE_FILTER] = "POST_LASER_UPDATE_FILTER"
2647
- ____exports.ModCallbackCustom.POST_NEW_LEVEL_REORDERED = 64
2645
+ ____exports.ModCallbackCustom.POST_NEW_LEVEL_REORDERED = 63
2648
2646
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_NEW_LEVEL_REORDERED] = "POST_NEW_LEVEL_REORDERED"
2649
- ____exports.ModCallbackCustom.POST_NEW_ROOM_EARLY = 65
2647
+ ____exports.ModCallbackCustom.POST_NEW_ROOM_EARLY = 64
2650
2648
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_NEW_ROOM_EARLY] = "POST_NEW_ROOM_EARLY"
2651
- ____exports.ModCallbackCustom.POST_NEW_ROOM_REORDERED = 66
2649
+ ____exports.ModCallbackCustom.POST_NEW_ROOM_REORDERED = 65
2652
2650
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_NEW_ROOM_REORDERED] = "POST_NEW_ROOM_REORDERED"
2653
- ____exports.ModCallbackCustom.POST_NPC_DEATH_FILTER = 67
2651
+ ____exports.ModCallbackCustom.POST_NPC_DEATH_FILTER = 66
2654
2652
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_NPC_DEATH_FILTER] = "POST_NPC_DEATH_FILTER"
2655
- ____exports.ModCallbackCustom.POST_NPC_INIT_FILTER = 68
2653
+ ____exports.ModCallbackCustom.POST_NPC_INIT_FILTER = 67
2656
2654
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_NPC_INIT_FILTER] = "POST_NPC_INIT_FILTER"
2657
- ____exports.ModCallbackCustom.POST_NPC_INIT_LATE = 69
2655
+ ____exports.ModCallbackCustom.POST_NPC_INIT_LATE = 68
2658
2656
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_NPC_INIT_LATE] = "POST_NPC_INIT_LATE"
2659
- ____exports.ModCallbackCustom.POST_NPC_RENDER_FILTER = 70
2657
+ ____exports.ModCallbackCustom.POST_NPC_RENDER_FILTER = 69
2660
2658
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_NPC_RENDER_FILTER] = "POST_NPC_RENDER_FILTER"
2661
- ____exports.ModCallbackCustom.POST_NPC_STATE_CHANGED = 71
2659
+ ____exports.ModCallbackCustom.POST_NPC_STATE_CHANGED = 70
2662
2660
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_NPC_STATE_CHANGED] = "POST_NPC_STATE_CHANGED"
2663
- ____exports.ModCallbackCustom.POST_NPC_UPDATE_FILTER = 72
2661
+ ____exports.ModCallbackCustom.POST_NPC_UPDATE_FILTER = 71
2664
2662
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_NPC_UPDATE_FILTER] = "POST_NPC_UPDATE_FILTER"
2665
- ____exports.ModCallbackCustom.POST_PEFFECT_UPDATE_REORDERED = 73
2663
+ ____exports.ModCallbackCustom.POST_PEFFECT_UPDATE_REORDERED = 72
2666
2664
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PEFFECT_UPDATE_REORDERED] = "POST_PEFFECT_UPDATE_REORDERED"
2667
- ____exports.ModCallbackCustom.POST_PICKUP_CHANGED = 74
2665
+ ____exports.ModCallbackCustom.POST_PICKUP_CHANGED = 73
2668
2666
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PICKUP_CHANGED] = "POST_PICKUP_CHANGED"
2669
- ____exports.ModCallbackCustom.POST_PICKUP_COLLECT = 75
2667
+ ____exports.ModCallbackCustom.POST_PICKUP_COLLECT = 74
2670
2668
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PICKUP_COLLECT] = "POST_PICKUP_COLLECT"
2671
- ____exports.ModCallbackCustom.POST_PICKUP_INIT_FILTER = 76
2669
+ ____exports.ModCallbackCustom.POST_PICKUP_INIT_FILTER = 75
2672
2670
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PICKUP_INIT_FILTER] = "POST_PICKUP_INIT_FILTER"
2673
- ____exports.ModCallbackCustom.POST_PICKUP_INIT_FIRST = 77
2671
+ ____exports.ModCallbackCustom.POST_PICKUP_INIT_FIRST = 76
2674
2672
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PICKUP_INIT_FIRST] = "POST_PICKUP_INIT_FIRST"
2675
- ____exports.ModCallbackCustom.POST_PICKUP_INIT_LATE = 78
2673
+ ____exports.ModCallbackCustom.POST_PICKUP_INIT_LATE = 77
2676
2674
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PICKUP_INIT_LATE] = "POST_PICKUP_INIT_LATE"
2677
- ____exports.ModCallbackCustom.POST_PICKUP_RENDER_FILTER = 79
2675
+ ____exports.ModCallbackCustom.POST_PICKUP_RENDER_FILTER = 78
2678
2676
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PICKUP_RENDER_FILTER] = "POST_PICKUP_RENDER_FILTER"
2679
- ____exports.ModCallbackCustom.POST_PICKUP_SELECTION_FILTER = 80
2677
+ ____exports.ModCallbackCustom.POST_PICKUP_SELECTION_FILTER = 79
2680
2678
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PICKUP_SELECTION_FILTER] = "POST_PICKUP_SELECTION_FILTER"
2681
- ____exports.ModCallbackCustom.POST_PICKUP_STATE_CHANGED = 81
2679
+ ____exports.ModCallbackCustom.POST_PICKUP_STATE_CHANGED = 80
2682
2680
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PICKUP_STATE_CHANGED] = "POST_PICKUP_STATE_CHANGED"
2683
- ____exports.ModCallbackCustom.POST_PICKUP_UPDATE_FILTER = 82
2681
+ ____exports.ModCallbackCustom.POST_PICKUP_UPDATE_FILTER = 81
2684
2682
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PICKUP_UPDATE_FILTER] = "POST_PICKUP_UPDATE_FILTER"
2685
- ____exports.ModCallbackCustom.POST_PIT_RENDER = 83
2683
+ ____exports.ModCallbackCustom.POST_PIT_RENDER = 82
2686
2684
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PIT_RENDER] = "POST_PIT_RENDER"
2687
- ____exports.ModCallbackCustom.POST_PIT_UPDATE = 84
2685
+ ____exports.ModCallbackCustom.POST_PIT_UPDATE = 83
2688
2686
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PIT_UPDATE] = "POST_PIT_UPDATE"
2689
- ____exports.ModCallbackCustom.POST_PLAYER_CHANGE_HEALTH = 85
2687
+ ____exports.ModCallbackCustom.POST_PLAYER_CHANGE_HEALTH = 84
2690
2688
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PLAYER_CHANGE_HEALTH] = "POST_PLAYER_CHANGE_HEALTH"
2691
- ____exports.ModCallbackCustom.POST_PLAYER_CHANGE_STAT = 86
2689
+ ____exports.ModCallbackCustom.POST_PLAYER_CHANGE_STAT = 85
2692
2690
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PLAYER_CHANGE_STAT] = "POST_PLAYER_CHANGE_STAT"
2693
- ____exports.ModCallbackCustom.POST_PLAYER_CHANGE_TYPE = 87
2691
+ ____exports.ModCallbackCustom.POST_PLAYER_CHANGE_TYPE = 86
2694
2692
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PLAYER_CHANGE_TYPE] = "POST_PLAYER_CHANGE_TYPE"
2695
- ____exports.ModCallbackCustom.POST_PLAYER_COLLECTIBLE_ADDED = 88
2693
+ ____exports.ModCallbackCustom.POST_PLAYER_COLLECTIBLE_ADDED = 87
2696
2694
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PLAYER_COLLECTIBLE_ADDED] = "POST_PLAYER_COLLECTIBLE_ADDED"
2697
- ____exports.ModCallbackCustom.POST_PLAYER_COLLECTIBLE_REMOVED = 89
2695
+ ____exports.ModCallbackCustom.POST_PLAYER_COLLECTIBLE_REMOVED = 88
2698
2696
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PLAYER_COLLECTIBLE_REMOVED] = "POST_PLAYER_COLLECTIBLE_REMOVED"
2699
- ____exports.ModCallbackCustom.POST_PLAYER_FATAL_DAMAGE = 90
2697
+ ____exports.ModCallbackCustom.POST_PLAYER_FATAL_DAMAGE = 89
2700
2698
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PLAYER_FATAL_DAMAGE] = "POST_PLAYER_FATAL_DAMAGE"
2701
- ____exports.ModCallbackCustom.POST_PLAYER_INIT_FIRST = 91
2699
+ ____exports.ModCallbackCustom.POST_PLAYER_INIT_FIRST = 90
2702
2700
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PLAYER_INIT_FIRST] = "POST_PLAYER_INIT_FIRST"
2703
- ____exports.ModCallbackCustom.POST_PLAYER_INIT_LATE = 92
2701
+ ____exports.ModCallbackCustom.POST_PLAYER_INIT_LATE = 91
2704
2702
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PLAYER_INIT_LATE] = "POST_PLAYER_INIT_LATE"
2705
- ____exports.ModCallbackCustom.POST_PLAYER_RENDER_REORDERED = 93
2703
+ ____exports.ModCallbackCustom.POST_PLAYER_RENDER_REORDERED = 92
2706
2704
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PLAYER_RENDER_REORDERED] = "POST_PLAYER_RENDER_REORDERED"
2707
- ____exports.ModCallbackCustom.POST_PLAYER_UPDATE_REORDERED = 94
2705
+ ____exports.ModCallbackCustom.POST_PLAYER_UPDATE_REORDERED = 93
2708
2706
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PLAYER_UPDATE_REORDERED] = "POST_PLAYER_UPDATE_REORDERED"
2709
- ____exports.ModCallbackCustom.POST_POOP_RENDER = 95
2707
+ ____exports.ModCallbackCustom.POST_POOP_RENDER = 94
2710
2708
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_POOP_RENDER] = "POST_POOP_RENDER"
2711
- ____exports.ModCallbackCustom.POST_POOP_UPDATE = 96
2709
+ ____exports.ModCallbackCustom.POST_POOP_UPDATE = 95
2712
2710
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_POOP_UPDATE] = "POST_POOP_UPDATE"
2713
- ____exports.ModCallbackCustom.POST_PRESSURE_PLATE_RENDER = 97
2711
+ ____exports.ModCallbackCustom.POST_PRESSURE_PLATE_RENDER = 96
2714
2712
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PRESSURE_PLATE_RENDER] = "POST_PRESSURE_PLATE_RENDER"
2715
- ____exports.ModCallbackCustom.POST_PRESSURE_PLATE_UPDATE = 98
2713
+ ____exports.ModCallbackCustom.POST_PRESSURE_PLATE_UPDATE = 97
2716
2714
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PRESSURE_PLATE_UPDATE] = "POST_PRESSURE_PLATE_UPDATE"
2717
- ____exports.ModCallbackCustom.POST_PROJECTILE_INIT_FILTER = 99
2715
+ ____exports.ModCallbackCustom.POST_PROJECTILE_INIT_FILTER = 98
2718
2716
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PROJECTILE_INIT_FILTER] = "POST_PROJECTILE_INIT_FILTER"
2719
- ____exports.ModCallbackCustom.POST_PROJECTILE_INIT_LATE = 100
2717
+ ____exports.ModCallbackCustom.POST_PROJECTILE_INIT_LATE = 99
2720
2718
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PROJECTILE_INIT_LATE] = "POST_PROJECTILE_INIT_LATE"
2721
- ____exports.ModCallbackCustom.POST_PROJECTILE_RENDER_FILTER = 101
2719
+ ____exports.ModCallbackCustom.POST_PROJECTILE_RENDER_FILTER = 100
2722
2720
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PROJECTILE_RENDER_FILTER] = "POST_PROJECTILE_RENDER_FILTER"
2723
- ____exports.ModCallbackCustom.POST_PROJECTILE_UPDATE_FILTER = 102
2721
+ ____exports.ModCallbackCustom.POST_PROJECTILE_UPDATE_FILTER = 101
2724
2722
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PROJECTILE_UPDATE_FILTER] = "POST_PROJECTILE_UPDATE_FILTER"
2725
- ____exports.ModCallbackCustom.POST_PURCHASE = 103
2723
+ ____exports.ModCallbackCustom.POST_PURCHASE = 102
2726
2724
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_PURCHASE] = "POST_PURCHASE"
2727
- ____exports.ModCallbackCustom.POST_ROCK_RENDER = 104
2725
+ ____exports.ModCallbackCustom.POST_ROCK_RENDER = 103
2728
2726
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_ROCK_RENDER] = "POST_ROCK_RENDER"
2729
- ____exports.ModCallbackCustom.POST_ROCK_UPDATE = 105
2727
+ ____exports.ModCallbackCustom.POST_ROCK_UPDATE = 104
2730
2728
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_ROCK_UPDATE] = "POST_ROCK_UPDATE"
2731
- ____exports.ModCallbackCustom.POST_ROOM_CLEAR_CHANGED = 106
2729
+ ____exports.ModCallbackCustom.POST_ROOM_CLEAR_CHANGED = 105
2732
2730
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_ROOM_CLEAR_CHANGED] = "POST_ROOM_CLEAR_CHANGED"
2733
- ____exports.ModCallbackCustom.POST_SACRIFICE = 107
2731
+ ____exports.ModCallbackCustom.POST_SACRIFICE = 106
2734
2732
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_SACRIFICE] = "POST_SACRIFICE"
2735
- ____exports.ModCallbackCustom.POST_SLOT_ANIMATION_CHANGED = 108
2733
+ ____exports.ModCallbackCustom.POST_SLOT_ANIMATION_CHANGED = 107
2736
2734
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_SLOT_ANIMATION_CHANGED] = "POST_SLOT_ANIMATION_CHANGED"
2737
- ____exports.ModCallbackCustom.POST_SLOT_COLLISION = 109
2735
+ ____exports.ModCallbackCustom.POST_SLOT_COLLISION = 108
2738
2736
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_SLOT_COLLISION] = "POST_SLOT_COLLISION"
2739
- ____exports.ModCallbackCustom.POST_SLOT_DESTROYED = 110
2737
+ ____exports.ModCallbackCustom.POST_SLOT_DESTROYED = 109
2740
2738
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_SLOT_DESTROYED] = "POST_SLOT_DESTROYED"
2741
- ____exports.ModCallbackCustom.POST_SLOT_INIT = 111
2739
+ ____exports.ModCallbackCustom.POST_SLOT_INIT = 110
2742
2740
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_SLOT_INIT] = "POST_SLOT_INIT"
2743
- ____exports.ModCallbackCustom.POST_SLOT_RENDER = 112
2741
+ ____exports.ModCallbackCustom.POST_SLOT_RENDER = 111
2744
2742
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_SLOT_RENDER] = "POST_SLOT_RENDER"
2745
- ____exports.ModCallbackCustom.POST_SLOT_UPDATE = 113
2743
+ ____exports.ModCallbackCustom.POST_SLOT_UPDATE = 112
2746
2744
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_SLOT_UPDATE] = "POST_SLOT_UPDATE"
2747
- ____exports.ModCallbackCustom.POST_SPIKES_RENDER = 114
2745
+ ____exports.ModCallbackCustom.POST_SPIKES_RENDER = 113
2748
2746
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_SPIKES_RENDER] = "POST_SPIKES_RENDER"
2749
- ____exports.ModCallbackCustom.POST_SPIKES_UPDATE = 115
2747
+ ____exports.ModCallbackCustom.POST_SPIKES_UPDATE = 114
2750
2748
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_SPIKES_UPDATE] = "POST_SPIKES_UPDATE"
2751
- ____exports.ModCallbackCustom.POST_TEAR_INIT_FILTER = 116
2749
+ ____exports.ModCallbackCustom.POST_TEAR_INIT_FILTER = 115
2752
2750
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_TEAR_INIT_FILTER] = "POST_TEAR_INIT_FILTER"
2753
- ____exports.ModCallbackCustom.POST_TEAR_INIT_LATE = 117
2751
+ ____exports.ModCallbackCustom.POST_TEAR_INIT_LATE = 116
2754
2752
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_TEAR_INIT_LATE] = "POST_TEAR_INIT_LATE"
2755
- ____exports.ModCallbackCustom.POST_TEAR_INIT_VERY_LATE = 118
2753
+ ____exports.ModCallbackCustom.POST_TEAR_INIT_VERY_LATE = 117
2756
2754
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_TEAR_INIT_VERY_LATE] = "POST_TEAR_INIT_VERY_LATE"
2757
- ____exports.ModCallbackCustom.POST_TEAR_RENDER_FILTER = 119
2755
+ ____exports.ModCallbackCustom.POST_TEAR_RENDER_FILTER = 118
2758
2756
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_TEAR_RENDER_FILTER] = "POST_TEAR_RENDER_FILTER"
2759
- ____exports.ModCallbackCustom.POST_TEAR_UPDATE_FILTER = 120
2757
+ ____exports.ModCallbackCustom.POST_TEAR_UPDATE_FILTER = 119
2760
2758
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_TEAR_UPDATE_FILTER] = "POST_TEAR_UPDATE_FILTER"
2761
- ____exports.ModCallbackCustom.POST_TNT_RENDER = 121
2759
+ ____exports.ModCallbackCustom.POST_TNT_RENDER = 120
2762
2760
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_TNT_RENDER] = "POST_TNT_RENDER"
2763
- ____exports.ModCallbackCustom.POST_TNT_UPDATE = 122
2761
+ ____exports.ModCallbackCustom.POST_TNT_UPDATE = 121
2764
2762
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_TNT_UPDATE] = "POST_TNT_UPDATE"
2765
- ____exports.ModCallbackCustom.POST_TRANSFORMATION = 123
2763
+ ____exports.ModCallbackCustom.POST_TRANSFORMATION = 122
2766
2764
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_TRANSFORMATION] = "POST_TRANSFORMATION"
2767
- ____exports.ModCallbackCustom.POST_TRINKET_BREAK = 124
2765
+ ____exports.ModCallbackCustom.POST_TRINKET_BREAK = 123
2768
2766
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_TRINKET_BREAK] = "POST_TRINKET_BREAK"
2769
- ____exports.ModCallbackCustom.POST_USE_PILL_FILTER = 125
2767
+ ____exports.ModCallbackCustom.POST_USE_PILL_FILTER = 124
2770
2768
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.POST_USE_PILL_FILTER] = "POST_USE_PILL_FILTER"
2771
- ____exports.ModCallbackCustom.PRE_BERSERK_DEATH = 126
2769
+ ____exports.ModCallbackCustom.PRE_BERSERK_DEATH = 125
2772
2770
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.PRE_BERSERK_DEATH] = "PRE_BERSERK_DEATH"
2773
- ____exports.ModCallbackCustom.PRE_BOMB_COLLISION_FILTER = 127
2771
+ ____exports.ModCallbackCustom.PRE_BOMB_COLLISION_FILTER = 126
2774
2772
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.PRE_BOMB_COLLISION_FILTER] = "PRE_BOMB_COLLISION_FILTER"
2775
- ____exports.ModCallbackCustom.PRE_CUSTOM_REVIVE = 128
2773
+ ____exports.ModCallbackCustom.PRE_CUSTOM_REVIVE = 127
2776
2774
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.PRE_CUSTOM_REVIVE] = "PRE_CUSTOM_REVIVE"
2777
- ____exports.ModCallbackCustom.PRE_ENTITY_SPAWN_FILTER = 129
2775
+ ____exports.ModCallbackCustom.PRE_ENTITY_SPAWN_FILTER = 128
2778
2776
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.PRE_ENTITY_SPAWN_FILTER] = "PRE_ENTITY_SPAWN_FILTER"
2779
- ____exports.ModCallbackCustom.PRE_FAMILIAR_COLLISION_FILTER = 130
2777
+ ____exports.ModCallbackCustom.PRE_FAMILIAR_COLLISION_FILTER = 129
2780
2778
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.PRE_FAMILIAR_COLLISION_FILTER] = "PRE_FAMILIAR_COLLISION_FILTER"
2781
- ____exports.ModCallbackCustom.PRE_GET_PEDESTAL = 131
2779
+ ____exports.ModCallbackCustom.PRE_GET_PEDESTAL = 130
2782
2780
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.PRE_GET_PEDESTAL] = "PRE_GET_PEDESTAL"
2783
- ____exports.ModCallbackCustom.PRE_ITEM_PICKUP = 132
2781
+ ____exports.ModCallbackCustom.PRE_ITEM_PICKUP = 131
2784
2782
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.PRE_ITEM_PICKUP] = "PRE_ITEM_PICKUP"
2785
- ____exports.ModCallbackCustom.PRE_KNIFE_COLLISION_FILTER = 133
2783
+ ____exports.ModCallbackCustom.PRE_KNIFE_COLLISION_FILTER = 132
2786
2784
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.PRE_KNIFE_COLLISION_FILTER] = "PRE_KNIFE_COLLISION_FILTER"
2787
- ____exports.ModCallbackCustom.PRE_NEW_LEVEL = 134
2785
+ ____exports.ModCallbackCustom.PRE_NEW_LEVEL = 133
2788
2786
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.PRE_NEW_LEVEL] = "PRE_NEW_LEVEL"
2789
- ____exports.ModCallbackCustom.PRE_NPC_COLLISION_FILTER = 135
2787
+ ____exports.ModCallbackCustom.PRE_NPC_COLLISION_FILTER = 134
2790
2788
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.PRE_NPC_COLLISION_FILTER] = "PRE_NPC_COLLISION_FILTER"
2791
- ____exports.ModCallbackCustom.PRE_NPC_UPDATE_FILTER = 136
2789
+ ____exports.ModCallbackCustom.PRE_NPC_UPDATE_FILTER = 135
2792
2790
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.PRE_NPC_UPDATE_FILTER] = "PRE_NPC_UPDATE_FILTER"
2793
- ____exports.ModCallbackCustom.PRE_PROJECTILE_COLLISION_FILTER = 137
2791
+ ____exports.ModCallbackCustom.PRE_PROJECTILE_COLLISION_FILTER = 136
2794
2792
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.PRE_PROJECTILE_COLLISION_FILTER] = "PRE_PROJECTILE_COLLISION_FILTER"
2795
- ____exports.ModCallbackCustom.PRE_ROOM_ENTITY_SPAWN_FILTER = 138
2793
+ ____exports.ModCallbackCustom.PRE_ROOM_ENTITY_SPAWN_FILTER = 137
2796
2794
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.PRE_ROOM_ENTITY_SPAWN_FILTER] = "PRE_ROOM_ENTITY_SPAWN_FILTER"
2797
- ____exports.ModCallbackCustom.PRE_TEAR_COLLISION_FILTER = 139
2795
+ ____exports.ModCallbackCustom.PRE_TEAR_COLLISION_FILTER = 138
2798
2796
  ____exports.ModCallbackCustom[____exports.ModCallbackCustom.PRE_TEAR_COLLISION_FILTER] = "PRE_TEAR_COLLISION_FILTER"
2799
2797
  return ____exports
2800
2798
  end,
@@ -7096,6 +7094,11 @@ return ____exports
7096
7094
  end,
7097
7095
  ["lua_modules.isaac-typescript-definitions.dist.src.enums.GridRoom"] = function(...)
7098
7096
  local ____exports = {}
7097
+ --- Most rooms have a grid index corresponding to their position on the level layout grid. Valid grid
7098
+ -- indexes range from 0 through 168 (because the grid is 13x13). However, some rooms are not part of
7099
+ -- the level layout grid. For off-grid rooms, they are assigned special negative integers that
7100
+ -- correspond to what kind of room they are. This enum contains all of the special negative values
7101
+ -- that exist.
7099
7102
  ____exports.GridRoom = {}
7100
7103
  ____exports.GridRoom.DEVIL = -1
7101
7104
  ____exports.GridRoom[____exports.GridRoom.DEVIL] = "DEVIL"
@@ -15360,11 +15363,6 @@ function ____exports.shouldFireBoolean(self, fireArgs, optionalArgs)
15360
15363
  local optionalArg = table.unpack(optionalArgs)
15361
15364
  return optionalArg == nil or optionalArg == fireArg
15362
15365
  end
15363
- function ____exports.shouldFireCollectible(self, fireArgs, optionalArgs)
15364
- local collectible = table.unpack(fireArgs)
15365
- local callbackCollectibleType = table.unpack(optionalArgs)
15366
- return callbackCollectibleType == nil or callbackCollectibleType == collectible.SubType
15367
- end
15368
15366
  function ____exports.shouldFireCollectibleType(self, fireArgs, optionalArgs)
15369
15367
  local _player, collectibleType = table.unpack(fireArgs)
15370
15368
  local callbackCollectibleType = table.unpack(optionalArgs)
@@ -18593,6 +18591,455 @@ function PostCollectibleEmpty.prototype.collectibleTypeChanged(self, collectible
18593
18591
  self:fire(collectible, oldCollectibleType)
18594
18592
  end
18595
18593
  end
18594
+ return ____exports
18595
+ end,
18596
+ ["src.functions.playerDataStructures"] = function(...)
18597
+ local ____lualib = require("lualib_bundle")
18598
+ local Map = ____lualib.Map
18599
+ local Set = ____lualib.Set
18600
+ local ____exports = {}
18601
+ local ____playerIndex = require("src.functions.playerIndex")
18602
+ local getPlayerIndex = ____playerIndex.getPlayerIndex
18603
+ function ____exports.mapSetPlayer(self, map, player, value)
18604
+ local playerIndex = getPlayerIndex(nil, player)
18605
+ map:set(playerIndex, value)
18606
+ end
18607
+ function ____exports.defaultMapGetPlayer(self, map, player, ...)
18608
+ local playerIndex = getPlayerIndex(nil, player)
18609
+ return map:getAndSetDefault(playerIndex, ...)
18610
+ end
18611
+ function ____exports.defaultMapSetPlayer(self, map, player, value)
18612
+ ____exports.mapSetPlayer(nil, map, player, value)
18613
+ end
18614
+ function ____exports.mapDeletePlayer(self, map, player)
18615
+ local playerIndex = getPlayerIndex(nil, player)
18616
+ return map:delete(playerIndex)
18617
+ end
18618
+ function ____exports.mapGetPlayer(self, map, player)
18619
+ local playerIndex = getPlayerIndex(nil, player)
18620
+ return map:get(playerIndex)
18621
+ end
18622
+ function ____exports.mapHasPlayer(self, map, player)
18623
+ local playerIndex = getPlayerIndex(nil, player)
18624
+ return map:has(playerIndex)
18625
+ end
18626
+ function ____exports.setAddPlayer(self, set, player)
18627
+ local playerIndex = getPlayerIndex(nil, player)
18628
+ return set:add(playerIndex)
18629
+ end
18630
+ function ____exports.setDeletePlayer(self, set, player)
18631
+ local playerIndex = getPlayerIndex(nil, player)
18632
+ return set:delete(playerIndex)
18633
+ end
18634
+ function ____exports.setHasPlayer(self, set, player)
18635
+ local playerIndex = getPlayerIndex(nil, player)
18636
+ return set:has(playerIndex)
18637
+ end
18638
+ return ____exports
18639
+ end,
18640
+ ["src.arrays.cachedEnumValues"] = function(...)
18641
+ local ____exports = {}
18642
+ local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
18643
+ local ActiveSlot = ____isaac_2Dtypescript_2Ddefinitions.ActiveSlot
18644
+ local CacheFlag = ____isaac_2Dtypescript_2Ddefinitions.CacheFlag
18645
+ local ControllerIndex = ____isaac_2Dtypescript_2Ddefinitions.ControllerIndex
18646
+ local DoorSlot = ____isaac_2Dtypescript_2Ddefinitions.DoorSlot
18647
+ local DoorSlotFlag = ____isaac_2Dtypescript_2Ddefinitions.DoorSlotFlag
18648
+ local GridEntityType = ____isaac_2Dtypescript_2Ddefinitions.GridEntityType
18649
+ local GridEntityXMLType = ____isaac_2Dtypescript_2Ddefinitions.GridEntityXMLType
18650
+ local ItemConfigCardType = ____isaac_2Dtypescript_2Ddefinitions.ItemConfigCardType
18651
+ local ItemConfigTag = ____isaac_2Dtypescript_2Ddefinitions.ItemConfigTag
18652
+ local ItemPoolType = ____isaac_2Dtypescript_2Ddefinitions.ItemPoolType
18653
+ local Keyboard = ____isaac_2Dtypescript_2Ddefinitions.Keyboard
18654
+ local PillColor = ____isaac_2Dtypescript_2Ddefinitions.PillColor
18655
+ local PlayerForm = ____isaac_2Dtypescript_2Ddefinitions.PlayerForm
18656
+ local PocketItemSlot = ____isaac_2Dtypescript_2Ddefinitions.PocketItemSlot
18657
+ local RoomShape = ____isaac_2Dtypescript_2Ddefinitions.RoomShape
18658
+ local SoundEffect = ____isaac_2Dtypescript_2Ddefinitions.SoundEffect
18659
+ local TrinketSlot = ____isaac_2Dtypescript_2Ddefinitions.TrinketSlot
18660
+ local ____HealthType = require("src.enums.HealthType")
18661
+ local HealthType = ____HealthType.HealthType
18662
+ local ____SerializationBrand = require("src.enums.private.SerializationBrand")
18663
+ local SerializationBrand = ____SerializationBrand.SerializationBrand
18664
+ local ____StatType = require("src.enums.StatType")
18665
+ local StatType = ____StatType.StatType
18666
+ local ____enums = require("src.functions.enums")
18667
+ local getEnumValues = ____enums.getEnumValues
18668
+ ____exports.ACTIVE_SLOT_VALUES = getEnumValues(nil, ActiveSlot)
18669
+ ____exports.CACHE_FLAG_VALUES = getEnumValues(nil, CacheFlag)
18670
+ ____exports.CONTROLLER_INDEX_VALUES = getEnumValues(nil, ControllerIndex)
18671
+ ____exports.DOOR_SLOT_FLAG_VALUES = getEnumValues(nil, DoorSlotFlag)
18672
+ ____exports.DOOR_SLOT_VALUES = getEnumValues(nil, DoorSlot)
18673
+ ____exports.GRID_ENTITY_TYPE_VALUES = getEnumValues(nil, GridEntityType)
18674
+ ____exports.GRID_ENTITY_XML_TYPE_VALUES = getEnumValues(nil, GridEntityXMLType)
18675
+ ____exports.ITEM_CONFIG_TAG_VALUES = getEnumValues(nil, ItemConfigTag)
18676
+ ____exports.ITEM_CONFIG_CARD_TYPE_VALUES = getEnumValues(nil, ItemConfigCardType)
18677
+ ____exports.ITEM_POOL_TYPE_VALUES = getEnumValues(nil, ItemPoolType)
18678
+ ____exports.KEYBOARD_VALUES = getEnumValues(nil, Keyboard)
18679
+ ____exports.HEALTH_TYPE_VALUES = getEnumValues(nil, HealthType)
18680
+ ____exports.PILL_COLOR_VALUES = getEnumValues(nil, PillColor)
18681
+ ____exports.PLAYER_FORM_VALUES = getEnumValues(nil, PlayerForm)
18682
+ ____exports.POCKET_ITEM_SLOT_VALUES = getEnumValues(nil, PocketItemSlot)
18683
+ ____exports.ROOM_SHAPE_VALUES = getEnumValues(nil, RoomShape)
18684
+ ____exports.SERIALIZATION_BRAND_VALUES = getEnumValues(nil, SerializationBrand)
18685
+ ____exports.SOUND_EFFECT_VALUES = getEnumValues(nil, SoundEffect)
18686
+ ____exports.STAT_TYPE_VALUES = getEnumValues(nil, StatType)
18687
+ ____exports.TRINKET_SLOT_VALUES = getEnumValues(nil, TrinketSlot)
18688
+ return ____exports
18689
+ end,
18690
+ ["src.objects.characterDamageMultipliers"] = function(...)
18691
+ local ____exports = {}
18692
+ local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
18693
+ local PlayerType = ____isaac_2Dtypescript_2Ddefinitions.PlayerType
18694
+ ____exports.CHARACTER_DAMAGE_MULTIPLIERS = {
18695
+ [PlayerType.POSSESSOR] = 1,
18696
+ [PlayerType.ISAAC] = 1,
18697
+ [PlayerType.MAGDALENE] = 1,
18698
+ [PlayerType.CAIN] = 1.2,
18699
+ [PlayerType.JUDAS] = 1.35,
18700
+ [PlayerType.BLUE_BABY] = 1.05,
18701
+ [PlayerType.EVE] = 0.75,
18702
+ [PlayerType.SAMSON] = 1,
18703
+ [PlayerType.AZAZEL] = 1.5,
18704
+ [PlayerType.LAZARUS] = 1,
18705
+ [PlayerType.EDEN] = 1,
18706
+ [PlayerType.LOST] = 1,
18707
+ [PlayerType.LAZARUS_2] = 1.4,
18708
+ [PlayerType.DARK_JUDAS] = 2,
18709
+ [PlayerType.LILITH] = 1,
18710
+ [PlayerType.KEEPER] = 1.2,
18711
+ [PlayerType.APOLLYON] = 1,
18712
+ [PlayerType.FORGOTTEN] = 1.5,
18713
+ [PlayerType.SOUL] = 1,
18714
+ [PlayerType.BETHANY] = 1,
18715
+ [PlayerType.JACOB] = 1,
18716
+ [PlayerType.ESAU] = 1,
18717
+ [PlayerType.ISAAC_B] = 1,
18718
+ [PlayerType.MAGDALENE_B] = 0.75,
18719
+ [PlayerType.CAIN_B] = 1,
18720
+ [PlayerType.JUDAS_B] = 1,
18721
+ [PlayerType.BLUE_BABY_B] = 1,
18722
+ [PlayerType.EVE_B] = 1.2,
18723
+ [PlayerType.SAMSON_B] = 1,
18724
+ [PlayerType.AZAZEL_B] = 1.5,
18725
+ [PlayerType.LAZARUS_B] = 1,
18726
+ [PlayerType.EDEN_B] = 1,
18727
+ [PlayerType.LOST_B] = 1.3,
18728
+ [PlayerType.LILITH_B] = 1,
18729
+ [PlayerType.KEEPER_B] = 1,
18730
+ [PlayerType.APOLLYON_B] = 1,
18731
+ [PlayerType.FORGOTTEN_B] = 1.5,
18732
+ [PlayerType.BETHANY_B] = 1,
18733
+ [PlayerType.JACOB_B] = 1,
18734
+ [PlayerType.LAZARUS_2_B] = 1.5,
18735
+ [PlayerType.JACOB_2_B] = 1,
18736
+ [PlayerType.SOUL_B] = 1
18737
+ }
18738
+ return ____exports
18739
+ end,
18740
+ ["src.objects.characterNames"] = function(...)
18741
+ local ____exports = {}
18742
+ local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
18743
+ local PlayerType = ____isaac_2Dtypescript_2Ddefinitions.PlayerType
18744
+ ____exports.CHARACTER_NAMES = {
18745
+ [PlayerType.POSSESSOR] = "Possessor",
18746
+ [PlayerType.ISAAC] = "Isaac",
18747
+ [PlayerType.MAGDALENE] = "Magdalene",
18748
+ [PlayerType.CAIN] = "Cain",
18749
+ [PlayerType.JUDAS] = "Judas",
18750
+ [PlayerType.BLUE_BABY] = "Blue Baby",
18751
+ [PlayerType.EVE] = "Eve",
18752
+ [PlayerType.SAMSON] = "Samson",
18753
+ [PlayerType.AZAZEL] = "Azazel",
18754
+ [PlayerType.LAZARUS] = "Lazarus",
18755
+ [PlayerType.EDEN] = "Eden",
18756
+ [PlayerType.LOST] = "The Lost",
18757
+ [PlayerType.LAZARUS_2] = "Lazarus II",
18758
+ [PlayerType.DARK_JUDAS] = "Dark Judas",
18759
+ [PlayerType.LILITH] = "Lilith",
18760
+ [PlayerType.KEEPER] = "Keeper",
18761
+ [PlayerType.APOLLYON] = "Apollyon",
18762
+ [PlayerType.FORGOTTEN] = "The Forgotten",
18763
+ [PlayerType.SOUL] = "The Soul",
18764
+ [PlayerType.BETHANY] = "Bethany",
18765
+ [PlayerType.JACOB] = "Jacob",
18766
+ [PlayerType.ESAU] = "Esau",
18767
+ [PlayerType.ISAAC_B] = "Tainted Isaac",
18768
+ [PlayerType.MAGDALENE_B] = "Tainted Magdalene",
18769
+ [PlayerType.CAIN_B] = "Tainted Cain",
18770
+ [PlayerType.JUDAS_B] = "Tainted Judas",
18771
+ [PlayerType.BLUE_BABY_B] = "Tainted Blue Baby",
18772
+ [PlayerType.EVE_B] = "Tainted Eve",
18773
+ [PlayerType.SAMSON_B] = "Tainted Samson",
18774
+ [PlayerType.AZAZEL_B] = "Tainted Azazel",
18775
+ [PlayerType.LAZARUS_B] = "Tainted Lazarus",
18776
+ [PlayerType.EDEN_B] = "Tainted Eden",
18777
+ [PlayerType.LOST_B] = "Tainted Lost",
18778
+ [PlayerType.LILITH_B] = "Tainted Lilith",
18779
+ [PlayerType.KEEPER_B] = "Tainted Keeper",
18780
+ [PlayerType.APOLLYON_B] = "Tainted Apollyon",
18781
+ [PlayerType.FORGOTTEN_B] = "Tainted Forgotten",
18782
+ [PlayerType.BETHANY_B] = "Tainted Bethany",
18783
+ [PlayerType.JACOB_B] = "Tainted Jacob",
18784
+ [PlayerType.LAZARUS_2_B] = "Dead Tainted Lazarus",
18785
+ [PlayerType.JACOB_2_B] = "Dead Tainted Jacob",
18786
+ [PlayerType.SOUL_B] = "Tainted Soul"
18787
+ }
18788
+ return ____exports
18789
+ end,
18790
+ ["src.objects.characterStartingCollectibles"] = function(...)
18791
+ local ____exports = {}
18792
+ local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
18793
+ local CollectibleType = ____isaac_2Dtypescript_2Ddefinitions.CollectibleType
18794
+ local PlayerType = ____isaac_2Dtypescript_2Ddefinitions.PlayerType
18795
+ ____exports.CHARACTER_STARTING_COLLECTIBLES = {
18796
+ [PlayerType.POSSESSOR] = {},
18797
+ [PlayerType.ISAAC] = {CollectibleType.D6},
18798
+ [PlayerType.MAGDALENE] = {CollectibleType.YUM_HEART},
18799
+ [PlayerType.CAIN] = {CollectibleType.LUCKY_FOOT},
18800
+ [PlayerType.JUDAS] = {CollectibleType.BOOK_OF_BELIAL},
18801
+ [PlayerType.BLUE_BABY] = {CollectibleType.POOP},
18802
+ [PlayerType.EVE] = {CollectibleType.DEAD_BIRD, CollectibleType.WHORE_OF_BABYLON, CollectibleType.RAZOR_BLADE},
18803
+ [PlayerType.SAMSON] = {CollectibleType.BLOODY_LUST},
18804
+ [PlayerType.AZAZEL] = {},
18805
+ [PlayerType.LAZARUS] = {CollectibleType.ANEMIC},
18806
+ [PlayerType.EDEN] = {},
18807
+ [PlayerType.LOST] = {CollectibleType.ETERNAL_D6},
18808
+ [PlayerType.LAZARUS_2] = {CollectibleType.ANEMIC},
18809
+ [PlayerType.DARK_JUDAS] = {},
18810
+ [PlayerType.LILITH] = {CollectibleType.BOX_OF_FRIENDS, CollectibleType.CAMBION_CONCEPTION},
18811
+ [PlayerType.KEEPER] = {CollectibleType.WOODEN_NICKEL},
18812
+ [PlayerType.APOLLYON] = {CollectibleType.VOID},
18813
+ [PlayerType.FORGOTTEN] = {},
18814
+ [PlayerType.SOUL] = {},
18815
+ [PlayerType.BETHANY] = {CollectibleType.BOOK_OF_VIRTUES},
18816
+ [PlayerType.JACOB] = {},
18817
+ [PlayerType.ESAU] = {},
18818
+ [PlayerType.ISAAC_B] = {},
18819
+ [PlayerType.MAGDALENE_B] = {CollectibleType.YUM_HEART},
18820
+ [PlayerType.CAIN_B] = {CollectibleType.BAG_OF_CRAFTING},
18821
+ [PlayerType.JUDAS_B] = {CollectibleType.DARK_ARTS},
18822
+ [PlayerType.BLUE_BABY_B] = {CollectibleType.HOLD},
18823
+ [PlayerType.EVE_B] = {CollectibleType.SUMPTORIUM},
18824
+ [PlayerType.SAMSON_B] = {},
18825
+ [PlayerType.AZAZEL_B] = {},
18826
+ [PlayerType.LAZARUS_B] = {CollectibleType.FLIP},
18827
+ [PlayerType.EDEN_B] = {},
18828
+ [PlayerType.LOST_B] = {},
18829
+ [PlayerType.LILITH_B] = {},
18830
+ [PlayerType.KEEPER_B] = {},
18831
+ [PlayerType.APOLLYON_B] = {CollectibleType.ABYSS},
18832
+ [PlayerType.FORGOTTEN_B] = {},
18833
+ [PlayerType.BETHANY_B] = {CollectibleType.LEMEGETON},
18834
+ [PlayerType.JACOB_B] = {CollectibleType.ANIMA_SOLA},
18835
+ [PlayerType.LAZARUS_2_B] = {CollectibleType.FLIP},
18836
+ [PlayerType.JACOB_2_B] = {CollectibleType.ANIMA_SOLA},
18837
+ [PlayerType.SOUL_B] = {}
18838
+ }
18839
+ return ____exports
18840
+ end,
18841
+ ["src.sets.charactersThatStartWithAnActiveItemSet"] = function(...)
18842
+ local ____lualib = require("lualib_bundle")
18843
+ local __TS__New = ____lualib.__TS__New
18844
+ local ____exports = {}
18845
+ local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
18846
+ local PlayerType = ____isaac_2Dtypescript_2Ddefinitions.PlayerType
18847
+ local ____ReadonlySet = require("src.types.ReadonlySet")
18848
+ local ReadonlySet = ____ReadonlySet.ReadonlySet
18849
+ ____exports.CHARACTERS_THAT_START_WITH_AN_ACTIVE_ITEM_SET = __TS__New(ReadonlySet, {
18850
+ PlayerType.ISAAC,
18851
+ PlayerType.MAGDALENE,
18852
+ PlayerType.JUDAS,
18853
+ PlayerType.BLUE_BABY,
18854
+ PlayerType.EVE,
18855
+ PlayerType.EDEN,
18856
+ PlayerType.LOST,
18857
+ PlayerType.LILITH,
18858
+ PlayerType.KEEPER,
18859
+ PlayerType.APOLLYON,
18860
+ PlayerType.EDEN_B
18861
+ })
18862
+ return ____exports
18863
+ end,
18864
+ ["src.sets.charactersWithBlackHeartFromEternalHeartSet"] = function(...)
18865
+ local ____lualib = require("lualib_bundle")
18866
+ local __TS__New = ____lualib.__TS__New
18867
+ local ____exports = {}
18868
+ local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
18869
+ local PlayerType = ____isaac_2Dtypescript_2Ddefinitions.PlayerType
18870
+ local ____ReadonlySet = require("src.types.ReadonlySet")
18871
+ local ReadonlySet = ____ReadonlySet.ReadonlySet
18872
+ ____exports.CHARACTERS_WITH_BLACK_HEART_FROM_ETERNAL_HEART_SET = __TS__New(ReadonlySet, {PlayerType.DARK_JUDAS, PlayerType.JUDAS_B})
18873
+ return ____exports
18874
+ end,
18875
+ ["src.sets.charactersWithFreeDevilDealsSet"] = function(...)
18876
+ local ____lualib = require("lualib_bundle")
18877
+ local __TS__New = ____lualib.__TS__New
18878
+ local ____exports = {}
18879
+ local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
18880
+ local PlayerType = ____isaac_2Dtypescript_2Ddefinitions.PlayerType
18881
+ local ____ReadonlySet = require("src.types.ReadonlySet")
18882
+ local ReadonlySet = ____ReadonlySet.ReadonlySet
18883
+ ____exports.CHARACTERS_WITH_FREE_DEVIL_DEALS_SET = __TS__New(ReadonlySet, {PlayerType.LOST, PlayerType.LOST_B, PlayerType.JACOB_2_B})
18884
+ return ____exports
18885
+ end,
18886
+ ["src.sets.charactersWithNoRedHeartsSet"] = function(...)
18887
+ local ____lualib = require("lualib_bundle")
18888
+ local __TS__New = ____lualib.__TS__New
18889
+ local ____exports = {}
18890
+ local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
18891
+ local PlayerType = ____isaac_2Dtypescript_2Ddefinitions.PlayerType
18892
+ local ____ReadonlySet = require("src.types.ReadonlySet")
18893
+ local ReadonlySet = ____ReadonlySet.ReadonlySet
18894
+ ____exports.CHARACTERS_WITH_NO_RED_HEARTS_SET = __TS__New(ReadonlySet, {
18895
+ PlayerType.BLUE_BABY,
18896
+ PlayerType.LOST,
18897
+ PlayerType.DARK_JUDAS,
18898
+ PlayerType.JUDAS_B,
18899
+ PlayerType.BLUE_BABY_B,
18900
+ PlayerType.LOST_B,
18901
+ PlayerType.FORGOTTEN_B,
18902
+ PlayerType.BETHANY_B
18903
+ })
18904
+ return ____exports
18905
+ end,
18906
+ ["src.sets.charactersWithNoSoulHeartsSet"] = function(...)
18907
+ local ____lualib = require("lualib_bundle")
18908
+ local __TS__New = ____lualib.__TS__New
18909
+ local ____exports = {}
18910
+ local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
18911
+ local PlayerType = ____isaac_2Dtypescript_2Ddefinitions.PlayerType
18912
+ local ____ReadonlySet = require("src.types.ReadonlySet")
18913
+ local ReadonlySet = ____ReadonlySet.ReadonlySet
18914
+ ____exports.CHARACTERS_WITH_NO_SOUL_HEARTS_SET = __TS__New(ReadonlySet, {
18915
+ PlayerType.LOST,
18916
+ PlayerType.KEEPER,
18917
+ PlayerType.BETHANY,
18918
+ PlayerType.LOST_B,
18919
+ PlayerType.KEEPER_B
18920
+ })
18921
+ return ____exports
18922
+ end,
18923
+ ["src.sets.lostStyleCharactersSet"] = function(...)
18924
+ local ____lualib = require("lualib_bundle")
18925
+ local __TS__New = ____lualib.__TS__New
18926
+ local ____exports = {}
18927
+ local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
18928
+ local PlayerType = ____isaac_2Dtypescript_2Ddefinitions.PlayerType
18929
+ local ____ReadonlySet = require("src.types.ReadonlySet")
18930
+ local ReadonlySet = ____ReadonlySet.ReadonlySet
18931
+ ____exports.LOST_STYLE_CHARACTERS_SET = __TS__New(ReadonlySet, {
18932
+ PlayerType.LOST,
18933
+ PlayerType.SOUL,
18934
+ PlayerType.LOST_B,
18935
+ PlayerType.JACOB_2_B,
18936
+ PlayerType.SOUL_B
18937
+ })
18938
+ return ____exports
18939
+ end,
18940
+ ["src.functions.characters"] = function(...)
18941
+ local ____lualib = require("lualib_bundle")
18942
+ local __TS__New = ____lualib.__TS__New
18943
+ local ____exports = {}
18944
+ local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
18945
+ local PlayerType = ____isaac_2Dtypescript_2Ddefinitions.PlayerType
18946
+ local ____constantsFirstLast = require("src.core.constantsFirstLast")
18947
+ local LAST_VANILLA_CHARACTER = ____constantsFirstLast.LAST_VANILLA_CHARACTER
18948
+ local ____characterDamageMultipliers = require("src.objects.characterDamageMultipliers")
18949
+ local CHARACTER_DAMAGE_MULTIPLIERS = ____characterDamageMultipliers.CHARACTER_DAMAGE_MULTIPLIERS
18950
+ local ____characterNames = require("src.objects.characterNames")
18951
+ local CHARACTER_NAMES = ____characterNames.CHARACTER_NAMES
18952
+ local ____characterStartingCollectibles = require("src.objects.characterStartingCollectibles")
18953
+ local CHARACTER_STARTING_COLLECTIBLES = ____characterStartingCollectibles.CHARACTER_STARTING_COLLECTIBLES
18954
+ local ____charactersThatStartWithAnActiveItemSet = require("src.sets.charactersThatStartWithAnActiveItemSet")
18955
+ local CHARACTERS_THAT_START_WITH_AN_ACTIVE_ITEM_SET = ____charactersThatStartWithAnActiveItemSet.CHARACTERS_THAT_START_WITH_AN_ACTIVE_ITEM_SET
18956
+ local ____charactersWithBlackHeartFromEternalHeartSet = require("src.sets.charactersWithBlackHeartFromEternalHeartSet")
18957
+ local CHARACTERS_WITH_BLACK_HEART_FROM_ETERNAL_HEART_SET = ____charactersWithBlackHeartFromEternalHeartSet.CHARACTERS_WITH_BLACK_HEART_FROM_ETERNAL_HEART_SET
18958
+ local ____charactersWithFreeDevilDealsSet = require("src.sets.charactersWithFreeDevilDealsSet")
18959
+ local CHARACTERS_WITH_FREE_DEVIL_DEALS_SET = ____charactersWithFreeDevilDealsSet.CHARACTERS_WITH_FREE_DEVIL_DEALS_SET
18960
+ local ____charactersWithNoRedHeartsSet = require("src.sets.charactersWithNoRedHeartsSet")
18961
+ local CHARACTERS_WITH_NO_RED_HEARTS_SET = ____charactersWithNoRedHeartsSet.CHARACTERS_WITH_NO_RED_HEARTS_SET
18962
+ local ____charactersWithNoSoulHeartsSet = require("src.sets.charactersWithNoSoulHeartsSet")
18963
+ local CHARACTERS_WITH_NO_SOUL_HEARTS_SET = ____charactersWithNoSoulHeartsSet.CHARACTERS_WITH_NO_SOUL_HEARTS_SET
18964
+ local ____lostStyleCharactersSet = require("src.sets.lostStyleCharactersSet")
18965
+ local LOST_STYLE_CHARACTERS_SET = ____lostStyleCharactersSet.LOST_STYLE_CHARACTERS_SET
18966
+ local ____ReadonlySet = require("src.types.ReadonlySet")
18967
+ local ReadonlySet = ____ReadonlySet.ReadonlySet
18968
+ function ____exports.isModdedCharacter(self, character)
18969
+ return not ____exports.isVanillaCharacter(nil, character)
18970
+ end
18971
+ function ____exports.isVanillaCharacter(self, character)
18972
+ return character <= LAST_VANILLA_CHARACTER
18973
+ end
18974
+ local FLYING_CHARACTERS = __TS__New(ReadonlySet, {
18975
+ PlayerType.AZAZEL,
18976
+ PlayerType.LOST,
18977
+ PlayerType.SOUL,
18978
+ PlayerType.LOST_B,
18979
+ PlayerType.JACOB_2_B,
18980
+ PlayerType.SOUL_B
18981
+ })
18982
+ function ____exports.characterCanHaveRedHearts(self, character)
18983
+ return not CHARACTERS_WITH_NO_RED_HEARTS_SET:has(character)
18984
+ end
18985
+ function ____exports.characterCanHaveSoulHearts(self, character)
18986
+ return not CHARACTERS_WITH_NO_SOUL_HEARTS_SET:has(character)
18987
+ end
18988
+ function ____exports.characterCanTakeFreeDevilDeals(self, character)
18989
+ return CHARACTERS_WITH_FREE_DEVIL_DEALS_SET:has(character)
18990
+ end
18991
+ function ____exports.characterGetsBlackHeartFromEternalHeart(self, character)
18992
+ return CHARACTERS_WITH_BLACK_HEART_FROM_ETERNAL_HEART_SET:has(character)
18993
+ end
18994
+ function ____exports.characterStartsWithActiveItem(self, character)
18995
+ return CHARACTERS_THAT_START_WITH_AN_ACTIVE_ITEM_SET:has(character)
18996
+ end
18997
+ function ____exports.getCharacterDamageMultiplier(self, character, hasWhoreOfBabylon)
18998
+ if hasWhoreOfBabylon == nil then
18999
+ hasWhoreOfBabylon = false
19000
+ end
19001
+ if character == PlayerType.EVE and hasWhoreOfBabylon then
19002
+ return 1
19003
+ end
19004
+ return CHARACTER_DAMAGE_MULTIPLIERS[character]
19005
+ end
19006
+ function ____exports.getCharacterDeathAnimationName(self, character)
19007
+ if LOST_STYLE_CHARACTERS_SET:has(character) then
19008
+ return "LostDeath"
19009
+ end
19010
+ if character == PlayerType.FORGOTTEN_B then
19011
+ return "ForgottenDeath"
19012
+ end
19013
+ return "Death"
19014
+ end
19015
+ function ____exports.getCharacterMaxHeartContainers(self, character)
19016
+ if character == PlayerType.KEEPER then
19017
+ return 3
19018
+ end
19019
+ if character == PlayerType.FORGOTTEN then
19020
+ return 6
19021
+ end
19022
+ if character == PlayerType.SOUL then
19023
+ return 6
19024
+ end
19025
+ if character == PlayerType.KEEPER_B then
19026
+ return 2
19027
+ end
19028
+ return 12
19029
+ end
19030
+ function ____exports.getCharacterName(self, character)
19031
+ if ____exports.isModdedCharacter(nil, character) then
19032
+ return "Unknown"
19033
+ end
19034
+ return CHARACTER_NAMES[character]
19035
+ end
19036
+ function ____exports.getCharacterStartingCollectibles(self, character)
19037
+ return CHARACTER_STARTING_COLLECTIBLES[character]
19038
+ end
19039
+ function ____exports.isFlyingCharacter(self, player)
19040
+ local character = player:GetPlayerType()
19041
+ return FLYING_CHARACTERS:has(character)
19042
+ end
18596
19043
  return ____exports
18597
19044
  end,
18598
19045
  ["src.types.ReadonlyMap"] = function(...)
@@ -20082,10 +20529,6 @@ ____exports.SINGLE_USE_ACTIVE_COLLECTIBLE_TYPES_SET = __TS__New(ReadonlySet, {
20082
20529
  CollectibleType.DEATH_CERTIFICATE,
20083
20530
  CollectibleType.R_KEY
20084
20531
  })
20085
- return ____exports
20086
- end,
20087
- ["src.types.CollectibleIndex"] = function(...)
20088
- local ____exports = {}
20089
20532
  return ____exports
20090
20533
  end,
20091
20534
  ["src.sets.entitiesWithArmorSet"] = function(...)
@@ -20725,863 +21168,116 @@ function ____exports.isTrinket(self, pickup)
20725
21168
  end
20726
21169
  return ____exports
20727
21170
  end,
20728
- ["src.arrays.cachedEnumValues"] = function(...)
20729
- local ____exports = {}
20730
- local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
20731
- local ActiveSlot = ____isaac_2Dtypescript_2Ddefinitions.ActiveSlot
20732
- local CacheFlag = ____isaac_2Dtypescript_2Ddefinitions.CacheFlag
20733
- local ControllerIndex = ____isaac_2Dtypescript_2Ddefinitions.ControllerIndex
20734
- local DoorSlot = ____isaac_2Dtypescript_2Ddefinitions.DoorSlot
20735
- local DoorSlotFlag = ____isaac_2Dtypescript_2Ddefinitions.DoorSlotFlag
20736
- local GridEntityType = ____isaac_2Dtypescript_2Ddefinitions.GridEntityType
20737
- local GridEntityXMLType = ____isaac_2Dtypescript_2Ddefinitions.GridEntityXMLType
20738
- local ItemConfigCardType = ____isaac_2Dtypescript_2Ddefinitions.ItemConfigCardType
20739
- local ItemConfigTag = ____isaac_2Dtypescript_2Ddefinitions.ItemConfigTag
20740
- local ItemPoolType = ____isaac_2Dtypescript_2Ddefinitions.ItemPoolType
20741
- local Keyboard = ____isaac_2Dtypescript_2Ddefinitions.Keyboard
20742
- local PillColor = ____isaac_2Dtypescript_2Ddefinitions.PillColor
20743
- local PlayerForm = ____isaac_2Dtypescript_2Ddefinitions.PlayerForm
20744
- local PocketItemSlot = ____isaac_2Dtypescript_2Ddefinitions.PocketItemSlot
20745
- local RoomShape = ____isaac_2Dtypescript_2Ddefinitions.RoomShape
20746
- local SoundEffect = ____isaac_2Dtypescript_2Ddefinitions.SoundEffect
20747
- local TrinketSlot = ____isaac_2Dtypescript_2Ddefinitions.TrinketSlot
20748
- local ____HealthType = require("src.enums.HealthType")
20749
- local HealthType = ____HealthType.HealthType
20750
- local ____SerializationBrand = require("src.enums.private.SerializationBrand")
20751
- local SerializationBrand = ____SerializationBrand.SerializationBrand
20752
- local ____StatType = require("src.enums.StatType")
20753
- local StatType = ____StatType.StatType
20754
- local ____enums = require("src.functions.enums")
20755
- local getEnumValues = ____enums.getEnumValues
20756
- ____exports.ACTIVE_SLOT_VALUES = getEnumValues(nil, ActiveSlot)
20757
- ____exports.CACHE_FLAG_VALUES = getEnumValues(nil, CacheFlag)
20758
- ____exports.CONTROLLER_INDEX_VALUES = getEnumValues(nil, ControllerIndex)
20759
- ____exports.DOOR_SLOT_FLAG_VALUES = getEnumValues(nil, DoorSlotFlag)
20760
- ____exports.DOOR_SLOT_VALUES = getEnumValues(nil, DoorSlot)
20761
- ____exports.GRID_ENTITY_TYPE_VALUES = getEnumValues(nil, GridEntityType)
20762
- ____exports.GRID_ENTITY_XML_TYPE_VALUES = getEnumValues(nil, GridEntityXMLType)
20763
- ____exports.ITEM_CONFIG_TAG_VALUES = getEnumValues(nil, ItemConfigTag)
20764
- ____exports.ITEM_CONFIG_CARD_TYPE_VALUES = getEnumValues(nil, ItemConfigCardType)
20765
- ____exports.ITEM_POOL_TYPE_VALUES = getEnumValues(nil, ItemPoolType)
20766
- ____exports.KEYBOARD_VALUES = getEnumValues(nil, Keyboard)
20767
- ____exports.HEALTH_TYPE_VALUES = getEnumValues(nil, HealthType)
20768
- ____exports.PILL_COLOR_VALUES = getEnumValues(nil, PillColor)
20769
- ____exports.PLAYER_FORM_VALUES = getEnumValues(nil, PlayerForm)
20770
- ____exports.POCKET_ITEM_SLOT_VALUES = getEnumValues(nil, PocketItemSlot)
20771
- ____exports.ROOM_SHAPE_VALUES = getEnumValues(nil, RoomShape)
20772
- ____exports.SERIALIZATION_BRAND_VALUES = getEnumValues(nil, SerializationBrand)
20773
- ____exports.SOUND_EFFECT_VALUES = getEnumValues(nil, SoundEffect)
20774
- ____exports.STAT_TYPE_VALUES = getEnumValues(nil, StatType)
20775
- ____exports.TRINKET_SLOT_VALUES = getEnumValues(nil, TrinketSlot)
20776
- return ____exports
20777
- end,
20778
- ["src.objects.doorSlotFlagToDoorSlot"] = function(...)
20779
- local ____exports = {}
20780
- local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
20781
- local DoorSlot = ____isaac_2Dtypescript_2Ddefinitions.DoorSlot
20782
- local DoorSlotFlag = ____isaac_2Dtypescript_2Ddefinitions.DoorSlotFlag
20783
- ____exports.DEFAULT_DOOR_SLOT = DoorSlot.NO_DOOR_SLOT
20784
- ____exports.DOOR_SLOT_FLAG_TO_DOOR_SLOT = {
20785
- [DoorSlotFlag.LEFT_0] = DoorSlot.LEFT_0,
20786
- [DoorSlotFlag.UP_0] = DoorSlot.UP_0,
20787
- [DoorSlotFlag.RIGHT_0] = DoorSlot.RIGHT_0,
20788
- [DoorSlotFlag.DOWN_0] = DoorSlot.DOWN_0,
20789
- [DoorSlotFlag.LEFT_1] = DoorSlot.LEFT_1,
20790
- [DoorSlotFlag.UP_1] = DoorSlot.UP_1,
20791
- [DoorSlotFlag.RIGHT_1] = DoorSlot.RIGHT_1,
20792
- [DoorSlotFlag.DOWN_1] = DoorSlot.DOWN_1
20793
- }
20794
- return ____exports
20795
- end,
20796
- ["src.objects.doorSlotToDirection"] = function(...)
20797
- local ____exports = {}
20798
- local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
20799
- local Direction = ____isaac_2Dtypescript_2Ddefinitions.Direction
20800
- local DoorSlot = ____isaac_2Dtypescript_2Ddefinitions.DoorSlot
20801
- ____exports.DOOR_SLOT_TO_DIRECTION = {
20802
- [DoorSlot.NO_DOOR_SLOT] = Direction.NO_DIRECTION,
20803
- [DoorSlot.LEFT_0] = Direction.LEFT,
20804
- [DoorSlot.UP_0] = Direction.UP,
20805
- [DoorSlot.RIGHT_0] = Direction.RIGHT,
20806
- [DoorSlot.DOWN_0] = Direction.DOWN,
20807
- [DoorSlot.LEFT_1] = Direction.LEFT,
20808
- [DoorSlot.UP_1] = Direction.UP,
20809
- [DoorSlot.RIGHT_1] = Direction.RIGHT,
20810
- [DoorSlot.DOWN_1] = Direction.DOWN
20811
- }
20812
- return ____exports
20813
- end,
20814
- ["src.objects.doorSlotToDoorSlotFlag"] = function(...)
20815
- local ____exports = {}
20816
- local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
20817
- local DoorSlot = ____isaac_2Dtypescript_2Ddefinitions.DoorSlot
20818
- local DoorSlotFlag = ____isaac_2Dtypescript_2Ddefinitions.DoorSlotFlag
20819
- local DoorSlotFlagZero = ____isaac_2Dtypescript_2Ddefinitions.DoorSlotFlagZero
20820
- ____exports.DOOR_SLOT_TO_DOOR_SLOT_FLAG = {
20821
- [DoorSlot.NO_DOOR_SLOT] = DoorSlotFlagZero,
20822
- [DoorSlot.LEFT_0] = DoorSlotFlag.LEFT_0,
20823
- [DoorSlot.UP_0] = DoorSlotFlag.UP_0,
20824
- [DoorSlot.RIGHT_0] = DoorSlotFlag.RIGHT_0,
20825
- [DoorSlot.DOWN_0] = DoorSlotFlag.DOWN_0,
20826
- [DoorSlot.LEFT_1] = DoorSlotFlag.LEFT_1,
20827
- [DoorSlot.UP_1] = DoorSlotFlag.UP_1,
20828
- [DoorSlot.RIGHT_1] = DoorSlotFlag.RIGHT_1,
20829
- [DoorSlot.DOWN_1] = DoorSlotFlag.DOWN_1
20830
- }
20831
- return ____exports
20832
- end,
20833
- ["src.objects.oppositeDoorSlots"] = function(...)
20834
- local ____exports = {}
20835
- local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
20836
- local DoorSlot = ____isaac_2Dtypescript_2Ddefinitions.DoorSlot
20837
- ____exports.OPPOSITE_DOOR_SLOTS = {
20838
- [DoorSlot.NO_DOOR_SLOT] = nil,
20839
- [DoorSlot.LEFT_0] = DoorSlot.RIGHT_0,
20840
- [DoorSlot.UP_0] = DoorSlot.DOWN_0,
20841
- [DoorSlot.RIGHT_0] = DoorSlot.LEFT_0,
20842
- [DoorSlot.DOWN_0] = DoorSlot.UP_0,
20843
- [DoorSlot.LEFT_1] = DoorSlot.RIGHT_1,
20844
- [DoorSlot.UP_1] = DoorSlot.DOWN_1,
20845
- [DoorSlot.RIGHT_1] = DoorSlot.LEFT_1,
20846
- [DoorSlot.DOWN_1] = DoorSlot.UP_1
20847
- }
20848
- return ____exports
20849
- end,
20850
- ["src.objects.roomShapeToDoorSlotCoordinates"] = function(...)
20851
- local ____exports = {}
20852
- local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
20853
- local DoorSlot = ____isaac_2Dtypescript_2Ddefinitions.DoorSlot
20854
- local RoomShape = ____isaac_2Dtypescript_2Ddefinitions.RoomShape
20855
- ____exports.ROOM_SHAPE_TO_DOOR_SLOT_COORDINATES = {
20856
- [RoomShape.SHAPE_1x1] = {[DoorSlot.LEFT_0] = {-1, 3}, [DoorSlot.UP_0] = {6, -1}, [DoorSlot.RIGHT_0] = {13, 3}, [DoorSlot.DOWN_0] = {6, 7}},
20857
- [RoomShape.IH] = {[DoorSlot.LEFT_0] = {-1, 3}, [DoorSlot.RIGHT_0] = {13, 3}},
20858
- [RoomShape.IV] = {[DoorSlot.UP_0] = {6, -1}, [DoorSlot.DOWN_0] = {6, 7}},
20859
- [RoomShape.SHAPE_1x2] = {
20860
- [DoorSlot.LEFT_0] = {-1, 3},
20861
- [DoorSlot.UP_0] = {6, -1},
20862
- [DoorSlot.RIGHT_0] = {13, 3},
20863
- [DoorSlot.DOWN_0] = {6, 14},
20864
- [DoorSlot.LEFT_1] = {-1, 10},
20865
- [DoorSlot.RIGHT_1] = {13, 10}
20866
- },
20867
- [RoomShape.IIV] = {[DoorSlot.UP_0] = {6, -1}, [DoorSlot.DOWN_0] = {6, 14}},
20868
- [RoomShape.SHAPE_2x1] = {
20869
- [DoorSlot.LEFT_0] = {-1, 3},
20870
- [DoorSlot.UP_0] = {6, -1},
20871
- [DoorSlot.RIGHT_0] = {26, 3},
20872
- [DoorSlot.DOWN_0] = {6, 7},
20873
- [DoorSlot.UP_1] = {19, -1},
20874
- [DoorSlot.DOWN_1] = {19, 7}
20875
- },
20876
- [RoomShape.IIH] = {[DoorSlot.LEFT_0] = {-1, 3}, [DoorSlot.RIGHT_0] = {26, 3}},
20877
- [RoomShape.SHAPE_2x2] = {
20878
- [DoorSlot.LEFT_0] = {-1, 3},
20879
- [DoorSlot.UP_0] = {6, -1},
20880
- [DoorSlot.RIGHT_0] = {26, 3},
20881
- [DoorSlot.DOWN_0] = {6, 14},
20882
- [DoorSlot.LEFT_1] = {-1, 10},
20883
- [DoorSlot.UP_1] = {19, -1},
20884
- [DoorSlot.RIGHT_1] = {26, 10},
20885
- [DoorSlot.DOWN_1] = {19, 14}
20886
- },
20887
- [RoomShape.LTL] = {
20888
- [DoorSlot.LEFT_0] = {12, 3},
20889
- [DoorSlot.UP_0] = {6, 6},
20890
- [DoorSlot.RIGHT_0] = {26, 3},
20891
- [DoorSlot.DOWN_0] = {6, 14},
20892
- [DoorSlot.LEFT_1] = {-1, 10},
20893
- [DoorSlot.UP_1] = {19, -1},
20894
- [DoorSlot.RIGHT_1] = {26, 10},
20895
- [DoorSlot.DOWN_1] = {19, 14}
20896
- },
20897
- [RoomShape.LTR] = {
20898
- [DoorSlot.LEFT_0] = {-1, 3},
20899
- [DoorSlot.UP_0] = {6, -1},
20900
- [DoorSlot.RIGHT_0] = {13, 3},
20901
- [DoorSlot.DOWN_0] = {6, 14},
20902
- [DoorSlot.LEFT_1] = {-1, 10},
20903
- [DoorSlot.UP_1] = {19, 6},
20904
- [DoorSlot.RIGHT_1] = {26, 10},
20905
- [DoorSlot.DOWN_1] = {19, 14}
20906
- },
20907
- [RoomShape.LBL] = {
20908
- [DoorSlot.LEFT_0] = {-1, 3},
20909
- [DoorSlot.UP_0] = {6, -1},
20910
- [DoorSlot.RIGHT_0] = {26, 3},
20911
- [DoorSlot.DOWN_0] = {6, 7},
20912
- [DoorSlot.LEFT_1] = {12, 10},
20913
- [DoorSlot.UP_1] = {19, -1},
20914
- [DoorSlot.RIGHT_1] = {26, 10},
20915
- [DoorSlot.DOWN_1] = {19, 14}
20916
- },
20917
- [RoomShape.LBR] = {
20918
- [DoorSlot.LEFT_0] = {-1, 3},
20919
- [DoorSlot.UP_0] = {6, -1},
20920
- [DoorSlot.RIGHT_0] = {26, 3},
20921
- [DoorSlot.DOWN_0] = {6, 14},
20922
- [DoorSlot.LEFT_1] = {-1, 10},
20923
- [DoorSlot.UP_1] = {19, -1},
20924
- [DoorSlot.RIGHT_1] = {13, 10},
20925
- [DoorSlot.DOWN_1] = {19, 7}
20926
- }
20927
- }
20928
- return ____exports
20929
- end,
20930
- ["src.objects.roomShapeToDoorSlots"] = function(...)
20931
- local ____lualib = require("lualib_bundle")
20932
- local __TS__New = ____lualib.__TS__New
20933
- local ____exports = {}
20934
- local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
20935
- local DoorSlot = ____isaac_2Dtypescript_2Ddefinitions.DoorSlot
20936
- local RoomShape = ____isaac_2Dtypescript_2Ddefinitions.RoomShape
20937
- local ____ReadonlySet = require("src.types.ReadonlySet")
20938
- local ReadonlySet = ____ReadonlySet.ReadonlySet
20939
- local ALL_DOOR_SLOTS_SET = __TS__New(ReadonlySet, {
20940
- DoorSlot.LEFT_0,
20941
- DoorSlot.UP_0,
20942
- DoorSlot.RIGHT_0,
20943
- DoorSlot.DOWN_0,
20944
- DoorSlot.LEFT_1,
20945
- DoorSlot.UP_1,
20946
- DoorSlot.RIGHT_1,
20947
- DoorSlot.DOWN_1
20948
- })
20949
- ____exports.ROOM_SHAPE_TO_DOOR_SLOTS = {
20950
- [RoomShape.SHAPE_1x1] = __TS__New(ReadonlySet, {DoorSlot.LEFT_0, DoorSlot.UP_0, DoorSlot.RIGHT_0, DoorSlot.DOWN_0}),
20951
- [RoomShape.IH] = __TS__New(ReadonlySet, {DoorSlot.LEFT_0, DoorSlot.RIGHT_0}),
20952
- [RoomShape.IV] = __TS__New(ReadonlySet, {DoorSlot.UP_0, DoorSlot.DOWN_0}),
20953
- [RoomShape.SHAPE_1x2] = __TS__New(ReadonlySet, {
20954
- DoorSlot.LEFT_0,
20955
- DoorSlot.UP_0,
20956
- DoorSlot.RIGHT_0,
20957
- DoorSlot.DOWN_0,
20958
- DoorSlot.LEFT_1,
20959
- DoorSlot.RIGHT_1
20960
- }),
20961
- [RoomShape.IIV] = __TS__New(ReadonlySet, {DoorSlot.UP_0, DoorSlot.DOWN_0}),
20962
- [RoomShape.SHAPE_2x1] = __TS__New(ReadonlySet, {
20963
- DoorSlot.LEFT_0,
20964
- DoorSlot.UP_0,
20965
- DoorSlot.RIGHT_0,
20966
- DoorSlot.DOWN_0,
20967
- DoorSlot.UP_1,
20968
- DoorSlot.DOWN_1
20969
- }),
20970
- [RoomShape.IIH] = __TS__New(ReadonlySet, {DoorSlot.LEFT_0, DoorSlot.RIGHT_0}),
20971
- [RoomShape.SHAPE_2x2] = ALL_DOOR_SLOTS_SET,
20972
- [RoomShape.LTL] = ALL_DOOR_SLOTS_SET,
20973
- [RoomShape.LTR] = ALL_DOOR_SLOTS_SET,
20974
- [RoomShape.LBL] = ALL_DOOR_SLOTS_SET,
20975
- [RoomShape.LBR] = ALL_DOOR_SLOTS_SET
20976
- }
20977
- return ____exports
20978
- end,
20979
- ["src.functions.bitwise"] = function(...)
20980
- local ____lualib = require("lualib_bundle")
20981
- local __TS__ParseInt = ____lualib.__TS__ParseInt
20982
- local __TS__NumberToString = ____lualib.__TS__NumberToString
20983
- local __TS__Iterator = ____lualib.__TS__Iterator
20984
- local __TS__ArrayUnshift = ____lualib.__TS__ArrayUnshift
20985
- local ____exports = {}
20986
- local ____flag = require("src.functions.flag")
20987
- local addFlag = ____flag.addFlag
20988
- function ____exports.arrayToBitFlags(self, array)
20989
- local flags = 0
20990
- for ____, flag in ipairs(array) do
20991
- flags = addFlag(nil, flags, flag)
20992
- end
20993
- return flags
20994
- end
20995
- function ____exports.convertBinaryToDecimal(self, bits)
20996
- local bitsString = table.concat(bits, "")
20997
- return __TS__ParseInt(bitsString, 2)
20998
- end
20999
- function ____exports.convertDecimalToBinary(self, number, minLength)
21000
- local bits = {}
21001
- local bitsString = __TS__NumberToString(number, 2)
21002
- for ____, bitString in __TS__Iterator(bitsString) do
21003
- local bit = tonumber(bitString)
21004
- if bit == nil then
21005
- error("Failed to convert the following number to binary: " .. tostring(number))
21006
- end
21007
- bits[#bits + 1] = bit
21008
- end
21009
- if minLength ~= nil then
21010
- while #bits < minLength do
21011
- __TS__ArrayUnshift(bits, 0)
21012
- end
21013
- end
21014
- return bits
21015
- end
21016
- function ____exports.countSetBits(self, n)
21017
- local count = 0
21018
- while n > 0 do
21019
- n = n & n - 1
21020
- count = count + 1
21021
- end
21022
- return count
21023
- end
21024
- function ____exports.getKBitOfN(self, k, n)
21025
- return n >> k & 1
21026
- end
21027
- function ____exports.getNumBitsOfN(self, n)
21028
- local numBits = 0
21029
- while n > 0 do
21030
- numBits = numBits + 1
21031
- n = n >> 1
21032
- end
21033
- return numBits
21034
- end
21035
- function ____exports.setToBitFlags(self, set)
21036
- local flags = 0
21037
- for ____, flag in __TS__Iterator(set:values()) do
21038
- flags = addFlag(nil, flags, flag)
21039
- end
21040
- return flags
21041
- end
21042
- return ____exports
21043
- end,
21044
- ["src.functions.doors"] = function(...)
21045
- local ____lualib = require("lualib_bundle")
21046
- local Set = ____lualib.Set
21047
- local __TS__Spread = ____lualib.__TS__Spread
21048
- local __TS__ArrayMap = ____lualib.__TS__ArrayMap
21049
- local __TS__ArrayFind = ____lualib.__TS__ArrayFind
21050
- local __TS__New = ____lualib.__TS__New
21051
- local __TS__Iterator = ____lualib.__TS__Iterator
21052
- local __TS__ArrayFilter = ____lualib.__TS__ArrayFilter
21053
- local __TS__ObjectEntries = ____lualib.__TS__ObjectEntries
21054
- local __TS__ArraySome = ____lualib.__TS__ArraySome
21171
+ ["src.functions.collectibles"] = function(...)
21055
21172
  local ____exports = {}
21173
+ local initQuestionMarkSprite, getCollectibleTypeFromArg
21056
21174
  local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
21057
- local DoorSlot = ____isaac_2Dtypescript_2Ddefinitions.DoorSlot
21058
- local DoorState = ____isaac_2Dtypescript_2Ddefinitions.DoorState
21059
- local DoorVariant = ____isaac_2Dtypescript_2Ddefinitions.DoorVariant
21060
- local GridEntityType = ____isaac_2Dtypescript_2Ddefinitions.GridEntityType
21061
- local GridRoom = ____isaac_2Dtypescript_2Ddefinitions.GridRoom
21062
- local RoomType = ____isaac_2Dtypescript_2Ddefinitions.RoomType
21063
- local ____cachedEnumValues = require("src.arrays.cachedEnumValues")
21064
- local DOOR_SLOT_FLAG_VALUES = ____cachedEnumValues.DOOR_SLOT_FLAG_VALUES
21065
- local DOOR_SLOT_VALUES = ____cachedEnumValues.DOOR_SLOT_VALUES
21175
+ local CollectibleSpriteLayer = ____isaac_2Dtypescript_2Ddefinitions.CollectibleSpriteLayer
21176
+ local CollectibleType = ____isaac_2Dtypescript_2Ddefinitions.CollectibleType
21177
+ local EntityType = ____isaac_2Dtypescript_2Ddefinitions.EntityType
21178
+ local ItemConfigChargeType = ____isaac_2Dtypescript_2Ddefinitions.ItemConfigChargeType
21179
+ local ItemConfigTagZero = ____isaac_2Dtypescript_2Ddefinitions.ItemConfigTagZero
21180
+ local ItemType = ____isaac_2Dtypescript_2Ddefinitions.ItemType
21181
+ local PickupPrice = ____isaac_2Dtypescript_2Ddefinitions.PickupPrice
21182
+ local PickupVariant = ____isaac_2Dtypescript_2Ddefinitions.PickupVariant
21183
+ local RenderMode = ____isaac_2Dtypescript_2Ddefinitions.RenderMode
21066
21184
  local ____cachedClasses = require("src.core.cachedClasses")
21067
21185
  local game = ____cachedClasses.game
21186
+ local itemConfig = ____cachedClasses.itemConfig
21068
21187
  local ____constants = require("src.core.constants")
21069
- local DISTANCE_OF_GRID_TILE = ____constants.DISTANCE_OF_GRID_TILE
21070
- local ____doorSlotFlagToDoorSlot = require("src.objects.doorSlotFlagToDoorSlot")
21071
- local DEFAULT_DOOR_SLOT = ____doorSlotFlagToDoorSlot.DEFAULT_DOOR_SLOT
21072
- local DOOR_SLOT_FLAG_TO_DOOR_SLOT = ____doorSlotFlagToDoorSlot.DOOR_SLOT_FLAG_TO_DOOR_SLOT
21073
- local ____doorSlotToDirection = require("src.objects.doorSlotToDirection")
21074
- local DOOR_SLOT_TO_DIRECTION = ____doorSlotToDirection.DOOR_SLOT_TO_DIRECTION
21075
- local ____doorSlotToDoorSlotFlag = require("src.objects.doorSlotToDoorSlotFlag")
21076
- local DOOR_SLOT_TO_DOOR_SLOT_FLAG = ____doorSlotToDoorSlotFlag.DOOR_SLOT_TO_DOOR_SLOT_FLAG
21077
- local ____oppositeDoorSlots = require("src.objects.oppositeDoorSlots")
21078
- local OPPOSITE_DOOR_SLOTS = ____oppositeDoorSlots.OPPOSITE_DOOR_SLOTS
21079
- local ____roomShapeToDoorSlotCoordinates = require("src.objects.roomShapeToDoorSlotCoordinates")
21080
- local ROOM_SHAPE_TO_DOOR_SLOT_COORDINATES = ____roomShapeToDoorSlotCoordinates.ROOM_SHAPE_TO_DOOR_SLOT_COORDINATES
21081
- local ____roomShapeToDoorSlots = require("src.objects.roomShapeToDoorSlots")
21082
- local ROOM_SHAPE_TO_DOOR_SLOTS = ____roomShapeToDoorSlots.ROOM_SHAPE_TO_DOOR_SLOTS
21083
- local ____ReadonlySet = require("src.types.ReadonlySet")
21084
- local ReadonlySet = ____ReadonlySet.ReadonlySet
21085
- local ____bitwise = require("src.functions.bitwise")
21086
- local arrayToBitFlags = ____bitwise.arrayToBitFlags
21087
- local ____direction = require("src.functions.direction")
21088
- local directionToVector = ____direction.directionToVector
21188
+ local BLIND_ITEM_PNG_PATH = ____constants.BLIND_ITEM_PNG_PATH
21189
+ local DEFAULT_ITEM_POOL_TYPE = ____constants.DEFAULT_ITEM_POOL_TYPE
21190
+ local ____constantsFirstLast = require("src.core.constantsFirstLast")
21191
+ local FIRST_COLLECTIBLE_TYPE = ____constantsFirstLast.FIRST_COLLECTIBLE_TYPE
21192
+ local LAST_VANILLA_COLLECTIBLE_TYPE = ____constantsFirstLast.LAST_VANILLA_COLLECTIBLE_TYPE
21193
+ local ____collectibleDescriptionMap = require("src.maps.collectibleDescriptionMap")
21194
+ local COLLECTIBLE_DESCRIPTION_MAP = ____collectibleDescriptionMap.COLLECTIBLE_DESCRIPTION_MAP
21195
+ local DEFAULT_COLLECTIBLE_DESCRIPTION = ____collectibleDescriptionMap.DEFAULT_COLLECTIBLE_DESCRIPTION
21196
+ local ____collectibleTypeToNameMap = require("src.maps.collectibleTypeToNameMap")
21197
+ local COLLECTIBLE_TYPE_TO_NAME_MAP = ____collectibleTypeToNameMap.COLLECTIBLE_TYPE_TO_NAME_MAP
21198
+ local DEFAULT_COLLECTIBLE_NAME = ____collectibleTypeToNameMap.DEFAULT_COLLECTIBLE_NAME
21199
+ local ____singleUseActiveCollectibleTypesSet = require("src.sets.singleUseActiveCollectibleTypesSet")
21200
+ local SINGLE_USE_ACTIVE_COLLECTIBLE_TYPES_SET = ____singleUseActiveCollectibleTypesSet.SINGLE_USE_ACTIVE_COLLECTIBLE_TYPES_SET
21201
+ local ____entities = require("src.functions.entities")
21202
+ local getEntityID = ____entities.getEntityID
21089
21203
  local ____flag = require("src.functions.flag")
21090
21204
  local hasFlag = ____flag.hasFlag
21091
- local ____tstlClass = require("src.functions.tstlClass")
21092
- local isTSTLSet = ____tstlClass.isTSTLSet
21205
+ local ____pickupVariants = require("src.functions.pickupVariants")
21206
+ local isCollectible = ____pickupVariants.isCollectible
21207
+ local ____sprites = require("src.functions.sprites")
21208
+ local clearSprite = ____sprites.clearSprite
21209
+ local spriteEquals = ____sprites.spriteEquals
21093
21210
  local ____types = require("src.functions.types")
21094
- local asNumber = ____types.asNumber
21095
- function ____exports.doorSlotToDirection(self, doorSlot)
21096
- return DOOR_SLOT_TO_DIRECTION[doorSlot]
21097
- end
21098
- function ____exports.getDoorSlotEnterPositionOffset(self, doorSlot)
21099
- local direction = ____exports.doorSlotToDirection(nil, doorSlot)
21100
- local vector = directionToVector(nil, direction)
21101
- local oppositeVector = vector * -1
21102
- return oppositeVector * DISTANCE_OF_GRID_TILE
21103
- end
21104
- function ____exports.getDoorSlotsForRoomShape(self, roomShape)
21105
- return ROOM_SHAPE_TO_DOOR_SLOTS[roomShape]
21211
+ local isNumber = ____types.isNumber
21212
+ local ____utils = require("src.functions.utils")
21213
+ local iRange = ____utils.iRange
21214
+ function initQuestionMarkSprite(self)
21215
+ local sprite = Sprite()
21216
+ sprite:Load("gfx/005.100_collectible.anm2", false)
21217
+ sprite:ReplaceSpritesheet(1, "gfx/items/collectibles/questionmark.png")
21218
+ sprite:LoadGraphics()
21219
+ return sprite
21106
21220
  end
21107
- function ____exports.getDoors(self, ...)
21108
- local roomTypes = {...}
21109
- local room = game:GetRoom()
21110
- local roomShape = room:GetRoomShape()
21111
- local roomTypesSet = __TS__New(ReadonlySet, roomTypes)
21112
- local possibleDoorSlots = ____exports.getDoorSlotsForRoomShape(nil, roomShape)
21113
- local doors = {}
21114
- for ____, doorSlot in __TS__Iterator(possibleDoorSlots) do
21115
- do
21116
- local door = room:GetDoor(doorSlot)
21117
- if door == nil then
21118
- goto __continue25
21119
- end
21120
- local gridEntityType = door:GetType()
21121
- if gridEntityType ~= GridEntityType.DOOR then
21122
- goto __continue25
21123
- end
21124
- if roomTypesSet.size == 0 or roomTypesSet:has(door.TargetRoomType) then
21125
- doors[#doors + 1] = door
21126
- end
21127
- end
21128
- ::__continue25::
21221
+ function ____exports.clearCollectibleSprite(self, collectible)
21222
+ if not isCollectible(nil, collectible) then
21223
+ local entityID = getEntityID(nil, collectible)
21224
+ error("The \"clearCollectibleSprite\" function was given a non-collectible: " .. entityID)
21129
21225
  end
21130
- return doors
21131
- end
21132
- function ____exports.isBlueWombDoor(self, door)
21133
- return door.TargetRoomIndex == asNumber(nil, GridRoom.BLUE_WOMB)
21226
+ ____exports.setCollectibleSprite(nil, collectible, nil)
21134
21227
  end
21135
- function ____exports.isRepentanceDoor(self, door)
21136
- return door.TargetRoomIndex == asNumber(nil, GridRoom.SECRET_EXIT)
21228
+ function ____exports.isVanillaCollectibleType(self, collectibleType)
21229
+ return collectibleType <= LAST_VANILLA_COLLECTIBLE_TYPE
21137
21230
  end
21138
- function ____exports.isSecretRoomDoor(self, door)
21139
- local sprite = door:GetSprite()
21140
- local fileName = sprite:GetFilename()
21141
- return string.lower(fileName) == "gfx/grid/door_08_holeinwall.anm2"
21231
+ function ____exports.setCollectibleEmpty(self, collectible)
21232
+ if not isCollectible(nil, collectible) then
21233
+ local entityID = getEntityID(nil, collectible)
21234
+ error("The \"setCollectibleEmpty\" function was given a non-collectible: " .. entityID)
21235
+ end
21236
+ collectible.SubType = CollectibleType.NULL
21237
+ ____exports.clearCollectibleSprite(nil, collectible)
21142
21238
  end
21143
- function ____exports.removeDoor(self, door)
21144
- local room = game:GetRoom()
21145
- room:RemoveDoor(door.Slot)
21239
+ function ____exports.setCollectibleSprite(self, collectible, pngPath)
21240
+ if not isCollectible(nil, collectible) then
21241
+ local entityID = getEntityID(nil, collectible)
21242
+ error("The \"setCollectibleSprite\" function was given a non-collectible: " .. entityID)
21243
+ end
21244
+ local sprite = collectible:GetSprite()
21245
+ if pngPath == nil then
21246
+ clearSprite(nil, sprite, CollectibleSpriteLayer.HEAD, CollectibleSpriteLayer.ITEM_SHADOW)
21247
+ else
21248
+ sprite:ReplaceSpritesheet(CollectibleSpriteLayer.HEAD, pngPath)
21249
+ sprite:LoadGraphics()
21250
+ end
21146
21251
  end
21147
- function ____exports.removeDoors(self, ...)
21148
- local doors = {...}
21149
- for ____, door in ipairs(doors) do
21150
- ____exports.removeDoor(nil, door)
21252
+ function ____exports.setCollectibleSubType(self, collectible, newCollectibleType)
21253
+ if not isCollectible(nil, collectible) then
21254
+ local entityID = getEntityID(nil, collectible)
21255
+ error("The \"setCollectibleSubType\" function was given a non-collectible: " .. entityID)
21256
+ end
21257
+ if newCollectibleType == CollectibleType.NULL then
21258
+ ____exports.setCollectibleEmpty(nil, collectible)
21259
+ return
21151
21260
  end
21261
+ collectible:Morph(
21262
+ EntityType.PICKUP,
21263
+ PickupVariant.COLLECTIBLE,
21264
+ newCollectibleType,
21265
+ true,
21266
+ true,
21267
+ true
21268
+ )
21152
21269
  end
21153
- function ____exports.closeAllDoors(self)
21154
- for ____, door in ipairs(____exports.getDoors(nil)) do
21155
- door:Close(true)
21270
+ function getCollectibleTypeFromArg(self, collectibleOrCollectibleType, functionName)
21271
+ if isNumber(nil, collectibleOrCollectibleType) then
21272
+ local collectibleType = collectibleOrCollectibleType
21273
+ return collectibleType
21274
+ end
21275
+ local collectible = collectibleOrCollectibleType
21276
+ if not isCollectible(nil, collectible) then
21277
+ local entityID = getEntityID(nil, collectible)
21278
+ error((("The \"" .. functionName) .. "\" function was given a non-collectible: ") .. entityID)
21156
21279
  end
21157
- end
21158
- function ____exports.closeDoorFast(self, door)
21159
- door.State = DoorState.CLOSED
21160
- local sprite = door:GetSprite()
21161
- sprite:Play("Closed", true)
21162
- end
21163
- function ____exports.doorSlotFlagToDoorSlot(self, doorSlotFlag)
21164
- local doorSlot = DOOR_SLOT_FLAG_TO_DOOR_SLOT[doorSlotFlag]
21165
- return doorSlot == nil and DEFAULT_DOOR_SLOT or doorSlot
21166
- end
21167
- function ____exports.doorSlotFlagsToDoorSlots(self, doorSlotFlags)
21168
- local doorSlots = {}
21169
- for ____, doorSlotFlag in ipairs(DOOR_SLOT_FLAG_VALUES) do
21170
- if hasFlag(nil, doorSlotFlags, doorSlotFlag) then
21171
- local doorSlot = ____exports.doorSlotFlagToDoorSlot(nil, doorSlotFlag)
21172
- doorSlots[#doorSlots + 1] = doorSlot
21173
- end
21174
- end
21175
- return doorSlots
21176
- end
21177
- function ____exports.doorSlotToDoorSlotFlag(self, doorSlot)
21178
- return DOOR_SLOT_TO_DOOR_SLOT_FLAG[doorSlot]
21179
- end
21180
- function ____exports.doorSlotsToDoorSlotFlags(self, doorSlots)
21181
- local doorSlotArray = isTSTLSet(nil, doorSlots) and ({__TS__Spread(doorSlots:values())}) or doorSlots
21182
- local doorSlotFlagArray = __TS__ArrayMap(
21183
- doorSlotArray,
21184
- function(____, doorSlot) return ____exports.doorSlotToDoorSlotFlag(nil, doorSlot) end
21185
- )
21186
- return arrayToBitFlags(nil, doorSlotFlagArray)
21187
- end
21188
- function ____exports.getAngelRoomDoor(self)
21189
- local angelRoomDoors = ____exports.getDoors(nil, RoomType.ANGEL)
21190
- local ____temp_0
21191
- if #angelRoomDoors == 0 then
21192
- ____temp_0 = nil
21193
- else
21194
- ____temp_0 = angelRoomDoors[1]
21195
- end
21196
- return ____temp_0
21197
- end
21198
- function ____exports.getBlueWombDoor(self)
21199
- local doors = ____exports.getDoors(nil)
21200
- return __TS__ArrayFind(
21201
- doors,
21202
- function(____, door) return ____exports.isBlueWombDoor(nil, door) end
21203
- )
21204
- end
21205
- function ____exports.getDevilRoomDoor(self)
21206
- local devilRoomDoors = ____exports.getDoors(nil, RoomType.DEVIL)
21207
- local ____temp_1
21208
- if #devilRoomDoors == 0 then
21209
- ____temp_1 = nil
21210
- else
21211
- ____temp_1 = devilRoomDoors[1]
21212
- end
21213
- return ____temp_1
21214
- end
21215
- function ____exports.getDevilRoomOrAngelRoomDoor(self)
21216
- local devilRoomOrAngelRoomDoors = ____exports.getDoors(nil, RoomType.DEVIL, RoomType.ANGEL)
21217
- local ____temp_2
21218
- if #devilRoomOrAngelRoomDoors == 0 then
21219
- ____temp_2 = nil
21220
- else
21221
- ____temp_2 = devilRoomOrAngelRoomDoors[1]
21222
- end
21223
- return ____temp_2
21224
- end
21225
- function ____exports.getDoorEnterPosition(self, door)
21226
- local offset = ____exports.getDoorSlotEnterPositionOffset(nil, door.Slot)
21227
- return door.Position + offset
21228
- end
21229
- function ____exports.getDoorSlotEnterPosition(self, doorSlot)
21230
- local room = game:GetRoom()
21231
- local position = room:GetDoorSlotPosition(doorSlot)
21232
- local offset = ____exports.getDoorSlotEnterPositionOffset(nil, doorSlot)
21233
- return position + offset
21234
- end
21235
- function ____exports.getDoorsToRoomIndex(self, ...)
21236
- local roomGridIndex = {...}
21237
- local roomGridIndexesSet = __TS__New(ReadonlySet, roomGridIndex)
21238
- local doors = ____exports.getDoors(nil)
21239
- return __TS__ArrayFilter(
21240
- doors,
21241
- function(____, door) return roomGridIndexesSet:has(door.TargetRoomIndex) end
21242
- )
21243
- end
21244
- function ____exports.getOppositeDoorSlot(self, doorSlot)
21245
- return OPPOSITE_DOOR_SLOTS[doorSlot]
21246
- end
21247
- function ____exports.getRepentanceDoor(self)
21248
- local doors = ____exports.getDoors(nil)
21249
- return __TS__ArrayFind(
21250
- doors,
21251
- function(____, door) return ____exports.isRepentanceDoor(nil, door) end
21252
- )
21253
- end
21254
- function ____exports.getRoomShapeDoorSlot(self, roomShape, x, y)
21255
- local doorSlotCoordinates = ROOM_SHAPE_TO_DOOR_SLOT_COORDINATES[roomShape]
21256
- for ____, ____value in ipairs(__TS__ObjectEntries(doorSlotCoordinates)) do
21257
- local doorSlotString = ____value[1]
21258
- local coordinates = ____value[2]
21259
- local doorSlot = tonumber(doorSlotString)
21260
- local doorX, doorY = table.unpack(coordinates)
21261
- if x == doorX and y == doorY then
21262
- return doorSlot
21263
- end
21264
- end
21265
- return nil
21266
- end
21267
- function ____exports.getRoomShapeDoorSlotCoordinates(self, roomShape, doorSlot)
21268
- local doorSlotCoordinates = ROOM_SHAPE_TO_DOOR_SLOT_COORDINATES[roomShape]
21269
- return doorSlotCoordinates[doorSlot]
21270
- end
21271
- function ____exports.getUnusedDoorSlots(self)
21272
- local room = game:GetRoom()
21273
- return __TS__ArrayFilter(
21274
- DOOR_SLOT_VALUES,
21275
- function(____, doorSlot) return doorSlot ~= DoorSlot.NO_DOOR_SLOT and room:IsDoorSlotAllowed(doorSlot) and room:GetDoor(doorSlot) == nil end
21276
- )
21277
- end
21278
- function ____exports.hasDoorType(self, ...)
21279
- local roomTypes = {...}
21280
- local doors = ____exports.getDoors(nil)
21281
- local doorsOfThisRoomType = __TS__ArrayFilter(
21282
- doors,
21283
- function(____, door) return __TS__ArraySome(
21284
- roomTypes,
21285
- function(____, roomType) return door:IsRoomType(roomType) end
21286
- ) end
21287
- )
21288
- return #doorsOfThisRoomType > 0
21289
- end
21290
- function ____exports.hasUnusedDoorSlot(self)
21291
- local unusedDoorSlots = ____exports.getUnusedDoorSlots(nil)
21292
- return #unusedDoorSlots > 0
21293
- end
21294
- function ____exports.isAngelRoomDoor(self, door)
21295
- return door.TargetRoomType == RoomType.ANGEL
21296
- end
21297
- function ____exports.isDevilRoomDoor(self, door)
21298
- return door.TargetRoomType == RoomType.DEVIL
21299
- end
21300
- function ____exports.isDoorSlotInRoomShape(self, doorSlot, roomShape)
21301
- local doorSlots = ____exports.getDoorSlotsForRoomShape(nil, roomShape)
21302
- return doorSlots:has(doorSlot)
21303
- end
21304
- function ____exports.isDoorToDownpour(self, door)
21305
- if not ____exports.isRepentanceDoor(nil, door) then
21306
- return false
21307
- end
21308
- local sprite = door:GetSprite()
21309
- local fileName = sprite:GetFilename()
21310
- return string.lower(fileName) == "gfx/grid/door_downpour.anm2"
21311
- end
21312
- function ____exports.isDoorToMausoleum(self, door)
21313
- if not ____exports.isRepentanceDoor(nil, door) then
21314
- return false
21315
- end
21316
- local sprite = door:GetSprite()
21317
- local fileName = sprite:GetFilename()
21318
- return string.lower(fileName) == "gfx/grid/door_mausoleum.anm2"
21319
- end
21320
- function ____exports.isDoorToMausoleumAscent(self, door)
21321
- if not ____exports.isRepentanceDoor(nil, door) then
21322
- return false
21323
- end
21324
- local sprite = door:GetSprite()
21325
- local fileName = sprite:GetFilename()
21326
- return string.lower(fileName) == "gfx/grid/door_mausoleum_alt.anm2"
21327
- end
21328
- function ____exports.isDoorToMines(self, door)
21329
- if not ____exports.isRepentanceDoor(nil, door) then
21330
- return false
21331
- end
21332
- local sprite = door:GetSprite()
21333
- local fileName = sprite:GetFilename()
21334
- return string.lower(fileName) == "gfx/grid/door_mines.anm2"
21335
- end
21336
- function ____exports.isDoorToMomsHeart(self, door)
21337
- if not ____exports.isRepentanceDoor(nil, door) then
21338
- return false
21339
- end
21340
- local sprite = door:GetSprite()
21341
- local fileName = sprite:GetFilename()
21342
- return string.lower(fileName) == "gfx/grid/door_momsheart.anm2"
21343
- end
21344
- function ____exports.isHiddenSecretRoomDoor(self, door)
21345
- local sprite = door:GetSprite()
21346
- local animation = sprite:GetAnimation()
21347
- return ____exports.isSecretRoomDoor(nil, door) and animation == "Hidden"
21348
- end
21349
- function ____exports.lockDoor(self, door)
21350
- local level = game:GetLevel()
21351
- local roomDescriptor = level:GetRoomByIdx(door.TargetRoomIndex)
21352
- roomDescriptor.VisitedCount = 0
21353
- door:SetVariant(DoorVariant.LOCKED)
21354
- door:SetLocked(true)
21355
- door:Close(true)
21356
- end
21357
- function ____exports.openAllDoors(self)
21358
- for ____, door in ipairs(____exports.getDoors(nil)) do
21359
- door:Open()
21360
- end
21361
- end
21362
- function ____exports.openDoorFast(self, door)
21363
- door.State = DoorState.OPEN
21364
- local sprite = door:GetSprite()
21365
- sprite:Play("Opened", true)
21366
- end
21367
- function ____exports.removeAllDoors(self, ...)
21368
- local doors = ____exports.getDoors(nil, ...)
21369
- ____exports.removeDoors(
21370
- nil,
21371
- table.unpack(doors)
21372
- )
21373
- return #doors
21374
- end
21375
- return ____exports
21376
- end,
21377
- ["src.functions.roomData"] = function(...)
21378
- local ____lualib = require("lualib_bundle")
21379
- local Set = ____lualib.Set
21380
- local __TS__New = ____lualib.__TS__New
21381
- local ____exports = {}
21382
- local ____cachedEnumValues = require("src.arrays.cachedEnumValues")
21383
- local DOOR_SLOT_FLAG_VALUES = ____cachedEnumValues.DOOR_SLOT_FLAG_VALUES
21384
- local ____cachedClasses = require("src.core.cachedClasses")
21385
- local game = ____cachedClasses.game
21386
- local ____doors = require("src.functions.doors")
21387
- local doorSlotFlagToDoorSlot = ____doors.doorSlotFlagToDoorSlot
21388
- local ____flag = require("src.functions.flag")
21389
- local hasFlag = ____flag.hasFlag
21390
- function ____exports.getRoomData(self, roomGridIndex)
21391
- local roomDescriptor = ____exports.getRoomDescriptor(nil, roomGridIndex)
21392
- return roomDescriptor.Data
21393
- end
21394
- function ____exports.getRoomDescriptor(self, roomGridIndex)
21395
- local level = game:GetLevel()
21396
- if roomGridIndex == nil then
21397
- roomGridIndex = ____exports.getRoomGridIndex(nil)
21398
- end
21399
- return level:GetRoomByIdx(roomGridIndex)
21400
- end
21401
- function ____exports.getRoomDescriptorReadOnly(self)
21402
- local level = game:GetLevel()
21403
- return level:GetCurrentRoomDesc()
21404
- end
21405
- function ____exports.getRoomGridIndex(self)
21406
- local level = game:GetLevel()
21407
- local currentRoomIndex = level:GetCurrentRoomIndex()
21408
- if currentRoomIndex < 0 then
21409
- return currentRoomIndex
21410
- end
21411
- local roomDescriptor = ____exports.getRoomDescriptorReadOnly(nil)
21412
- return roomDescriptor.SafeGridIndex
21413
- end
21414
- function ____exports.getRoomAllowedDoors(self, roomGridIndex)
21415
- local allowedDoors = __TS__New(Set)
21416
- local roomData = ____exports.getRoomData(nil, roomGridIndex)
21417
- if roomData == nil then
21418
- return allowedDoors
21419
- end
21420
- for ____, doorSlotFlag in ipairs(DOOR_SLOT_FLAG_VALUES) do
21421
- if hasFlag(nil, roomData.Doors, doorSlotFlag) then
21422
- local doorSlot = doorSlotFlagToDoorSlot(nil, doorSlotFlag)
21423
- allowedDoors:add(doorSlot)
21424
- end
21425
- end
21426
- return allowedDoors
21427
- end
21428
- function ____exports.getRoomListIndex(self, roomGridIndex)
21429
- local roomDescriptor = ____exports.getRoomDescriptor(nil, roomGridIndex)
21430
- return roomDescriptor.ListIndex
21431
- end
21432
- function ____exports.getRoomName(self, roomGridIndex)
21433
- local roomData = ____exports.getRoomData(nil, roomGridIndex)
21434
- return roomData == nil and "Unknown" or roomData.Name
21435
- end
21436
- function ____exports.getRoomShape(self, roomGridIndex)
21437
- local roomData = ____exports.getRoomData(nil, roomGridIndex)
21438
- local ____temp_0
21439
- if roomData == nil then
21440
- ____temp_0 = nil
21441
- else
21442
- ____temp_0 = roomData.Shape
21443
- end
21444
- return ____temp_0
21445
- end
21446
- function ____exports.getRoomStageID(self, roomGridIndex)
21447
- local roomData = ____exports.getRoomData(nil, roomGridIndex)
21448
- return roomData == nil and -1 or roomData.StageID
21449
- end
21450
- function ____exports.getRoomSubType(self, roomGridIndex)
21451
- local roomData = ____exports.getRoomData(nil, roomGridIndex)
21452
- return roomData == nil and -1 or roomData.Subtype
21453
- end
21454
- function ____exports.getRoomType(self, roomGridIndex)
21455
- local roomData = ____exports.getRoomData(nil, roomGridIndex)
21456
- return roomData == nil and -1 or roomData.Type
21457
- end
21458
- function ____exports.getRoomVariant(self, roomGridIndex)
21459
- local roomData = ____exports.getRoomData(nil, roomGridIndex)
21460
- return roomData == nil and -1 or roomData.Variant
21461
- end
21462
- function ____exports.getRoomVisitedCount(self, roomGridIndex)
21463
- local roomDescriptor = ____exports.getRoomDescriptor(nil, roomGridIndex)
21464
- return roomDescriptor.VisitedCount
21465
- end
21466
- function ____exports.setRoomData(self, roomGridIndex, roomData)
21467
- local roomDescriptor = ____exports.getRoomDescriptor(nil, roomGridIndex)
21468
- roomDescriptor.Data = roomData
21469
- end
21470
- return ____exports
21471
- end,
21472
- ["src.functions.collectibles"] = function(...)
21473
- local ____exports = {}
21474
- local initQuestionMarkSprite, getCollectibleTypeFromArg
21475
- local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
21476
- local CollectibleSpriteLayer = ____isaac_2Dtypescript_2Ddefinitions.CollectibleSpriteLayer
21477
- local CollectibleType = ____isaac_2Dtypescript_2Ddefinitions.CollectibleType
21478
- local EntityType = ____isaac_2Dtypescript_2Ddefinitions.EntityType
21479
- local ItemConfigChargeType = ____isaac_2Dtypescript_2Ddefinitions.ItemConfigChargeType
21480
- local ItemConfigTagZero = ____isaac_2Dtypescript_2Ddefinitions.ItemConfigTagZero
21481
- local ItemType = ____isaac_2Dtypescript_2Ddefinitions.ItemType
21482
- local PickupPrice = ____isaac_2Dtypescript_2Ddefinitions.PickupPrice
21483
- local PickupVariant = ____isaac_2Dtypescript_2Ddefinitions.PickupVariant
21484
- local RenderMode = ____isaac_2Dtypescript_2Ddefinitions.RenderMode
21485
- local RoomType = ____isaac_2Dtypescript_2Ddefinitions.RoomType
21486
- local ____cachedClasses = require("src.core.cachedClasses")
21487
- local game = ____cachedClasses.game
21488
- local itemConfig = ____cachedClasses.itemConfig
21489
- local ____constants = require("src.core.constants")
21490
- local BLIND_ITEM_PNG_PATH = ____constants.BLIND_ITEM_PNG_PATH
21491
- local DEFAULT_ITEM_POOL_TYPE = ____constants.DEFAULT_ITEM_POOL_TYPE
21492
- local ____constantsFirstLast = require("src.core.constantsFirstLast")
21493
- local FIRST_COLLECTIBLE_TYPE = ____constantsFirstLast.FIRST_COLLECTIBLE_TYPE
21494
- local LAST_VANILLA_COLLECTIBLE_TYPE = ____constantsFirstLast.LAST_VANILLA_COLLECTIBLE_TYPE
21495
- local ____collectibleDescriptionMap = require("src.maps.collectibleDescriptionMap")
21496
- local COLLECTIBLE_DESCRIPTION_MAP = ____collectibleDescriptionMap.COLLECTIBLE_DESCRIPTION_MAP
21497
- local DEFAULT_COLLECTIBLE_DESCRIPTION = ____collectibleDescriptionMap.DEFAULT_COLLECTIBLE_DESCRIPTION
21498
- local ____collectibleTypeToNameMap = require("src.maps.collectibleTypeToNameMap")
21499
- local COLLECTIBLE_TYPE_TO_NAME_MAP = ____collectibleTypeToNameMap.COLLECTIBLE_TYPE_TO_NAME_MAP
21500
- local DEFAULT_COLLECTIBLE_NAME = ____collectibleTypeToNameMap.DEFAULT_COLLECTIBLE_NAME
21501
- local ____singleUseActiveCollectibleTypesSet = require("src.sets.singleUseActiveCollectibleTypesSet")
21502
- local SINGLE_USE_ACTIVE_COLLECTIBLE_TYPES_SET = ____singleUseActiveCollectibleTypesSet.SINGLE_USE_ACTIVE_COLLECTIBLE_TYPES_SET
21503
- local ____entities = require("src.functions.entities")
21504
- local getEntityID = ____entities.getEntityID
21505
- local ____flag = require("src.functions.flag")
21506
- local hasFlag = ____flag.hasFlag
21507
- local ____pickupVariants = require("src.functions.pickupVariants")
21508
- local isCollectible = ____pickupVariants.isCollectible
21509
- local ____roomData = require("src.functions.roomData")
21510
- local getRoomListIndex = ____roomData.getRoomListIndex
21511
- local ____sprites = require("src.functions.sprites")
21512
- local clearSprite = ____sprites.clearSprite
21513
- local spriteEquals = ____sprites.spriteEquals
21514
- local ____types = require("src.functions.types")
21515
- local isNumber = ____types.isNumber
21516
- local ____utils = require("src.functions.utils")
21517
- local iRange = ____utils.iRange
21518
- function initQuestionMarkSprite(self)
21519
- local sprite = Sprite()
21520
- sprite:Load("gfx/005.100_collectible.anm2", false)
21521
- sprite:ReplaceSpritesheet(1, "gfx/items/collectibles/questionmark.png")
21522
- sprite:LoadGraphics()
21523
- return sprite
21524
- end
21525
- function ____exports.clearCollectibleSprite(self, collectible)
21526
- if not isCollectible(nil, collectible) then
21527
- local entityID = getEntityID(nil, collectible)
21528
- error("The \"clearCollectibleSprite\" function was given a non-collectible: " .. entityID)
21529
- end
21530
- ____exports.setCollectibleSprite(nil, collectible, nil)
21531
- end
21532
- function ____exports.isVanillaCollectibleType(self, collectibleType)
21533
- return collectibleType <= LAST_VANILLA_COLLECTIBLE_TYPE
21534
- end
21535
- function ____exports.setCollectibleEmpty(self, collectible)
21536
- if not isCollectible(nil, collectible) then
21537
- local entityID = getEntityID(nil, collectible)
21538
- error("The \"setCollectibleEmpty\" function was given a non-collectible: " .. entityID)
21539
- end
21540
- collectible.SubType = CollectibleType.NULL
21541
- ____exports.clearCollectibleSprite(nil, collectible)
21542
- end
21543
- function ____exports.setCollectibleSprite(self, collectible, pngPath)
21544
- if not isCollectible(nil, collectible) then
21545
- local entityID = getEntityID(nil, collectible)
21546
- error("The \"setCollectibleSprite\" function was given a non-collectible: " .. entityID)
21547
- end
21548
- local sprite = collectible:GetSprite()
21549
- if pngPath == nil then
21550
- clearSprite(nil, sprite, CollectibleSpriteLayer.HEAD, CollectibleSpriteLayer.ITEM_SHADOW)
21551
- else
21552
- sprite:ReplaceSpritesheet(CollectibleSpriteLayer.HEAD, pngPath)
21553
- sprite:LoadGraphics()
21554
- end
21555
- end
21556
- function ____exports.setCollectibleSubType(self, collectible, newCollectibleType)
21557
- if not isCollectible(nil, collectible) then
21558
- local entityID = getEntityID(nil, collectible)
21559
- error("The \"setCollectibleSubType\" function was given a non-collectible: " .. entityID)
21560
- end
21561
- if newCollectibleType == CollectibleType.NULL then
21562
- ____exports.setCollectibleEmpty(nil, collectible)
21563
- return
21564
- end
21565
- collectible:Morph(
21566
- EntityType.PICKUP,
21567
- PickupVariant.COLLECTIBLE,
21568
- newCollectibleType,
21569
- true,
21570
- true,
21571
- true
21572
- )
21573
- end
21574
- function getCollectibleTypeFromArg(self, collectibleOrCollectibleType, functionName)
21575
- if isNumber(nil, collectibleOrCollectibleType) then
21576
- local collectibleType = collectibleOrCollectibleType
21577
- return collectibleType
21578
- end
21579
- local collectible = collectibleOrCollectibleType
21580
- if not isCollectible(nil, collectible) then
21581
- local entityID = getEntityID(nil, collectible)
21582
- error((("The \"" .. functionName) .. "\" function was given a non-collectible: ") .. entityID)
21583
- end
21584
- return collectible.SubType
21280
+ return collectible.SubType
21585
21281
  end
21586
21282
  local COLLECTIBLE_ANM2_PATH = "gfx/005.100_collectible.anm2"
21587
21283
  local DEFAULT_COLLECTIBLE_PRICE = 15
@@ -21671,23 +21367,6 @@ function ____exports.getCollectibleGfxFilename(self, collectibleOrCollectibleTyp
21671
21367
  end
21672
21368
  return itemConfigItem.GfxFileName
21673
21369
  end
21674
- function ____exports.getCollectibleIndex(self, collectible)
21675
- if not isCollectible(nil, collectible) then
21676
- local entityID = getEntityID(nil, collectible)
21677
- error("The \"getCollectibleIndex\" function was given a non-collectible: " .. entityID)
21678
- end
21679
- local level = game:GetLevel()
21680
- local stage = level:GetStage()
21681
- local stageType = level:GetStageType()
21682
- local room = game:GetRoom()
21683
- local roomType = room:GetType()
21684
- local gridIndex = room:GetGridIndex(collectible.Position)
21685
- local roomListIndex = getRoomListIndex(nil)
21686
- if roomType == RoomType.TREASURE or roomType == RoomType.BOSS then
21687
- return (((((((tostring(stage) .. ",") .. tostring(stageType)) .. ",") .. tostring(gridIndex)) .. ",") .. tostring(collectible.SubType)) .. ",") .. tostring(collectible.InitSeed)
21688
- end
21689
- return (((((tostring(roomListIndex) .. ",") .. tostring(gridIndex)) .. ",") .. tostring(collectible.SubType)) .. ",") .. tostring(collectible.InitSeed)
21690
- end
21691
21370
  function ____exports.getCollectibleInitCharge(self, collectibleOrCollectibleType)
21692
21371
  local collectibleType = getCollectibleTypeFromArg(nil, collectibleOrCollectibleType, "getCollectibleInitCharge")
21693
21372
  local itemConfigItem = itemConfig:GetCollectible(collectibleType)
@@ -21855,497 +21534,60 @@ function ____exports.setCollectiblesRerolledForItemTracker(self)
21855
21534
  end
21856
21535
  return ____exports
21857
21536
  end,
21858
- ["src.classes.callbacks.PostCollectibleInitFirst"] = function(...)
21537
+ ["src.functions.players"] = function(...)
21859
21538
  local ____lualib = require("lualib_bundle")
21860
- local Set = ____lualib.Set
21539
+ local __TS__ArraySome = ____lualib.__TS__ArraySome
21861
21540
  local __TS__New = ____lualib.__TS__New
21862
- local __TS__Class = ____lualib.__TS__Class
21863
- local __TS__ClassExtends = ____lualib.__TS__ClassExtends
21541
+ local __TS__ArrayFilter = ____lualib.__TS__ArrayFilter
21542
+ local __TS__ArrayMap = ____lualib.__TS__ArrayMap
21543
+ local __TS__ArrayFind = ____lualib.__TS__ArrayFind
21544
+ local __TS__ArrayEvery = ____lualib.__TS__ArrayEvery
21864
21545
  local ____exports = {}
21865
21546
  local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
21866
- local ModCallback = ____isaac_2Dtypescript_2Ddefinitions.ModCallback
21867
- local PickupVariant = ____isaac_2Dtypescript_2Ddefinitions.PickupVariant
21547
+ local ActiveSlot = ____isaac_2Dtypescript_2Ddefinitions.ActiveSlot
21548
+ local Challenge = ____isaac_2Dtypescript_2Ddefinitions.Challenge
21549
+ local CollectibleType = ____isaac_2Dtypescript_2Ddefinitions.CollectibleType
21550
+ local ControllerIndex = ____isaac_2Dtypescript_2Ddefinitions.ControllerIndex
21551
+ local NullItemID = ____isaac_2Dtypescript_2Ddefinitions.NullItemID
21552
+ local PlayerForm = ____isaac_2Dtypescript_2Ddefinitions.PlayerForm
21553
+ local PlayerType = ____isaac_2Dtypescript_2Ddefinitions.PlayerType
21554
+ local TrinketType = ____isaac_2Dtypescript_2Ddefinitions.TrinketType
21555
+ local ____cachedEnumValues = require("src.arrays.cachedEnumValues")
21556
+ local ACTIVE_SLOT_VALUES = ____cachedEnumValues.ACTIVE_SLOT_VALUES
21557
+ local TRINKET_SLOT_VALUES = ____cachedEnumValues.TRINKET_SLOT_VALUES
21558
+ local ____cachedClasses = require("src.core.cachedClasses")
21559
+ local game = ____cachedClasses.game
21560
+ local itemConfig = ____cachedClasses.itemConfig
21561
+ local ____ReadonlySet = require("src.types.ReadonlySet")
21562
+ local ReadonlySet = ____ReadonlySet.ReadonlySet
21563
+ local ____array = require("src.functions.array")
21564
+ local getLastElement = ____array.getLastElement
21565
+ local sumArray = ____array.sumArray
21566
+ local ____characters = require("src.functions.characters")
21567
+ local getCharacterName = ____characters.getCharacterName
21568
+ local isVanillaCharacter = ____characters.isVanillaCharacter
21868
21569
  local ____collectibles = require("src.functions.collectibles")
21869
- local getCollectibleIndex = ____collectibles.getCollectibleIndex
21870
- local ____shouldFire = require("src.shouldFire")
21871
- local shouldFireCollectible = ____shouldFire.shouldFireCollectible
21872
- local ____CustomCallback = require("src.classes.private.CustomCallback")
21873
- local CustomCallback = ____CustomCallback.CustomCallback
21874
- local v = {run = {seenCollectibles = __TS__New(Set)}}
21875
- ____exports.PostCollectibleInitFirst = __TS__Class()
21876
- local PostCollectibleInitFirst = ____exports.PostCollectibleInitFirst
21877
- PostCollectibleInitFirst.name = "PostCollectibleInitFirst"
21878
- __TS__ClassExtends(PostCollectibleInitFirst, CustomCallback)
21879
- function PostCollectibleInitFirst.prototype.____constructor(self)
21880
- CustomCallback.prototype.____constructor(self)
21881
- self.v = v
21882
- self.shouldFire = shouldFireCollectible
21883
- self.postPickupInitCollectible = function(____, pickup)
21884
- local collectible = pickup
21885
- local collectibleIndex = getCollectibleIndex(nil, collectible)
21886
- if v.run.seenCollectibles:has(collectibleIndex) then
21887
- return
21888
- end
21889
- v.run.seenCollectibles:add(collectibleIndex)
21890
- self:fire(collectible)
21891
- end
21892
- self.callbacksUsed = {{ModCallback.POST_PICKUP_INIT, self.postPickupInitCollectible, {PickupVariant.COLLECTIBLE}}}
21893
- end
21894
- return ____exports
21895
- end,
21896
- ["src.functions.playerDataStructures"] = function(...)
21897
- local ____lualib = require("lualib_bundle")
21898
- local Map = ____lualib.Map
21899
- local Set = ____lualib.Set
21900
- local ____exports = {}
21570
+ local getCollectibleMaxCharges = ____collectibles.getCollectibleMaxCharges
21901
21571
  local ____playerIndex = require("src.functions.playerIndex")
21902
- local getPlayerIndex = ____playerIndex.getPlayerIndex
21903
- function ____exports.mapSetPlayer(self, map, player, value)
21904
- local playerIndex = getPlayerIndex(nil, player)
21905
- map:set(playerIndex, value)
21572
+ local getAllPlayers = ____playerIndex.getAllPlayers
21573
+ local getPlayerIndexVanilla = ____playerIndex.getPlayerIndexVanilla
21574
+ local getPlayers = ____playerIndex.getPlayers
21575
+ local ____types = require("src.functions.types")
21576
+ local isNumber = ____types.isNumber
21577
+ local ____utils = require("src.functions.utils")
21578
+ local ____repeat = ____utils["repeat"]
21579
+ function ____exports.getCharacters(self)
21580
+ local players = getPlayers(nil)
21581
+ return __TS__ArrayMap(
21582
+ players,
21583
+ function(____, player) return player:GetPlayerType() end
21584
+ )
21906
21585
  end
21907
- function ____exports.defaultMapGetPlayer(self, map, player, ...)
21908
- local playerIndex = getPlayerIndex(nil, player)
21909
- return map:getAndSetDefault(playerIndex, ...)
21910
- end
21911
- function ____exports.defaultMapSetPlayer(self, map, player, value)
21912
- ____exports.mapSetPlayer(nil, map, player, value)
21913
- end
21914
- function ____exports.mapDeletePlayer(self, map, player)
21915
- local playerIndex = getPlayerIndex(nil, player)
21916
- return map:delete(playerIndex)
21917
- end
21918
- function ____exports.mapGetPlayer(self, map, player)
21919
- local playerIndex = getPlayerIndex(nil, player)
21920
- return map:get(playerIndex)
21921
- end
21922
- function ____exports.mapHasPlayer(self, map, player)
21923
- local playerIndex = getPlayerIndex(nil, player)
21924
- return map:has(playerIndex)
21925
- end
21926
- function ____exports.setAddPlayer(self, set, player)
21927
- local playerIndex = getPlayerIndex(nil, player)
21928
- return set:add(playerIndex)
21929
- end
21930
- function ____exports.setDeletePlayer(self, set, player)
21931
- local playerIndex = getPlayerIndex(nil, player)
21932
- return set:delete(playerIndex)
21933
- end
21934
- function ____exports.setHasPlayer(self, set, player)
21935
- local playerIndex = getPlayerIndex(nil, player)
21936
- return set:has(playerIndex)
21937
- end
21938
- return ____exports
21939
- end,
21940
- ["src.objects.characterDamageMultipliers"] = function(...)
21941
- local ____exports = {}
21942
- local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
21943
- local PlayerType = ____isaac_2Dtypescript_2Ddefinitions.PlayerType
21944
- ____exports.CHARACTER_DAMAGE_MULTIPLIERS = {
21945
- [PlayerType.POSSESSOR] = 1,
21946
- [PlayerType.ISAAC] = 1,
21947
- [PlayerType.MAGDALENE] = 1,
21948
- [PlayerType.CAIN] = 1.2,
21949
- [PlayerType.JUDAS] = 1.35,
21950
- [PlayerType.BLUE_BABY] = 1.05,
21951
- [PlayerType.EVE] = 0.75,
21952
- [PlayerType.SAMSON] = 1,
21953
- [PlayerType.AZAZEL] = 1.5,
21954
- [PlayerType.LAZARUS] = 1,
21955
- [PlayerType.EDEN] = 1,
21956
- [PlayerType.LOST] = 1,
21957
- [PlayerType.LAZARUS_2] = 1.4,
21958
- [PlayerType.DARK_JUDAS] = 2,
21959
- [PlayerType.LILITH] = 1,
21960
- [PlayerType.KEEPER] = 1.2,
21961
- [PlayerType.APOLLYON] = 1,
21962
- [PlayerType.FORGOTTEN] = 1.5,
21963
- [PlayerType.SOUL] = 1,
21964
- [PlayerType.BETHANY] = 1,
21965
- [PlayerType.JACOB] = 1,
21966
- [PlayerType.ESAU] = 1,
21967
- [PlayerType.ISAAC_B] = 1,
21968
- [PlayerType.MAGDALENE_B] = 0.75,
21969
- [PlayerType.CAIN_B] = 1,
21970
- [PlayerType.JUDAS_B] = 1,
21971
- [PlayerType.BLUE_BABY_B] = 1,
21972
- [PlayerType.EVE_B] = 1.2,
21973
- [PlayerType.SAMSON_B] = 1,
21974
- [PlayerType.AZAZEL_B] = 1.5,
21975
- [PlayerType.LAZARUS_B] = 1,
21976
- [PlayerType.EDEN_B] = 1,
21977
- [PlayerType.LOST_B] = 1.3,
21978
- [PlayerType.LILITH_B] = 1,
21979
- [PlayerType.KEEPER_B] = 1,
21980
- [PlayerType.APOLLYON_B] = 1,
21981
- [PlayerType.FORGOTTEN_B] = 1.5,
21982
- [PlayerType.BETHANY_B] = 1,
21983
- [PlayerType.JACOB_B] = 1,
21984
- [PlayerType.LAZARUS_2_B] = 1.5,
21985
- [PlayerType.JACOB_2_B] = 1,
21986
- [PlayerType.SOUL_B] = 1
21987
- }
21988
- return ____exports
21989
- end,
21990
- ["src.objects.characterNames"] = function(...)
21991
- local ____exports = {}
21992
- local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
21993
- local PlayerType = ____isaac_2Dtypescript_2Ddefinitions.PlayerType
21994
- ____exports.CHARACTER_NAMES = {
21995
- [PlayerType.POSSESSOR] = "Possessor",
21996
- [PlayerType.ISAAC] = "Isaac",
21997
- [PlayerType.MAGDALENE] = "Magdalene",
21998
- [PlayerType.CAIN] = "Cain",
21999
- [PlayerType.JUDAS] = "Judas",
22000
- [PlayerType.BLUE_BABY] = "Blue Baby",
22001
- [PlayerType.EVE] = "Eve",
22002
- [PlayerType.SAMSON] = "Samson",
22003
- [PlayerType.AZAZEL] = "Azazel",
22004
- [PlayerType.LAZARUS] = "Lazarus",
22005
- [PlayerType.EDEN] = "Eden",
22006
- [PlayerType.LOST] = "The Lost",
22007
- [PlayerType.LAZARUS_2] = "Lazarus II",
22008
- [PlayerType.DARK_JUDAS] = "Dark Judas",
22009
- [PlayerType.LILITH] = "Lilith",
22010
- [PlayerType.KEEPER] = "Keeper",
22011
- [PlayerType.APOLLYON] = "Apollyon",
22012
- [PlayerType.FORGOTTEN] = "The Forgotten",
22013
- [PlayerType.SOUL] = "The Soul",
22014
- [PlayerType.BETHANY] = "Bethany",
22015
- [PlayerType.JACOB] = "Jacob",
22016
- [PlayerType.ESAU] = "Esau",
22017
- [PlayerType.ISAAC_B] = "Tainted Isaac",
22018
- [PlayerType.MAGDALENE_B] = "Tainted Magdalene",
22019
- [PlayerType.CAIN_B] = "Tainted Cain",
22020
- [PlayerType.JUDAS_B] = "Tainted Judas",
22021
- [PlayerType.BLUE_BABY_B] = "Tainted Blue Baby",
22022
- [PlayerType.EVE_B] = "Tainted Eve",
22023
- [PlayerType.SAMSON_B] = "Tainted Samson",
22024
- [PlayerType.AZAZEL_B] = "Tainted Azazel",
22025
- [PlayerType.LAZARUS_B] = "Tainted Lazarus",
22026
- [PlayerType.EDEN_B] = "Tainted Eden",
22027
- [PlayerType.LOST_B] = "Tainted Lost",
22028
- [PlayerType.LILITH_B] = "Tainted Lilith",
22029
- [PlayerType.KEEPER_B] = "Tainted Keeper",
22030
- [PlayerType.APOLLYON_B] = "Tainted Apollyon",
22031
- [PlayerType.FORGOTTEN_B] = "Tainted Forgotten",
22032
- [PlayerType.BETHANY_B] = "Tainted Bethany",
22033
- [PlayerType.JACOB_B] = "Tainted Jacob",
22034
- [PlayerType.LAZARUS_2_B] = "Dead Tainted Lazarus",
22035
- [PlayerType.JACOB_2_B] = "Dead Tainted Jacob",
22036
- [PlayerType.SOUL_B] = "Tainted Soul"
22037
- }
22038
- return ____exports
22039
- end,
22040
- ["src.objects.characterStartingCollectibles"] = function(...)
22041
- local ____exports = {}
22042
- local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
22043
- local CollectibleType = ____isaac_2Dtypescript_2Ddefinitions.CollectibleType
22044
- local PlayerType = ____isaac_2Dtypescript_2Ddefinitions.PlayerType
22045
- ____exports.CHARACTER_STARTING_COLLECTIBLES = {
22046
- [PlayerType.POSSESSOR] = {},
22047
- [PlayerType.ISAAC] = {CollectibleType.D6},
22048
- [PlayerType.MAGDALENE] = {CollectibleType.YUM_HEART},
22049
- [PlayerType.CAIN] = {CollectibleType.LUCKY_FOOT},
22050
- [PlayerType.JUDAS] = {CollectibleType.BOOK_OF_BELIAL},
22051
- [PlayerType.BLUE_BABY] = {CollectibleType.POOP},
22052
- [PlayerType.EVE] = {CollectibleType.DEAD_BIRD, CollectibleType.WHORE_OF_BABYLON, CollectibleType.RAZOR_BLADE},
22053
- [PlayerType.SAMSON] = {CollectibleType.BLOODY_LUST},
22054
- [PlayerType.AZAZEL] = {},
22055
- [PlayerType.LAZARUS] = {CollectibleType.ANEMIC},
22056
- [PlayerType.EDEN] = {},
22057
- [PlayerType.LOST] = {CollectibleType.ETERNAL_D6},
22058
- [PlayerType.LAZARUS_2] = {CollectibleType.ANEMIC},
22059
- [PlayerType.DARK_JUDAS] = {},
22060
- [PlayerType.LILITH] = {CollectibleType.BOX_OF_FRIENDS, CollectibleType.CAMBION_CONCEPTION},
22061
- [PlayerType.KEEPER] = {CollectibleType.WOODEN_NICKEL},
22062
- [PlayerType.APOLLYON] = {CollectibleType.VOID},
22063
- [PlayerType.FORGOTTEN] = {},
22064
- [PlayerType.SOUL] = {},
22065
- [PlayerType.BETHANY] = {CollectibleType.BOOK_OF_VIRTUES},
22066
- [PlayerType.JACOB] = {},
22067
- [PlayerType.ESAU] = {},
22068
- [PlayerType.ISAAC_B] = {},
22069
- [PlayerType.MAGDALENE_B] = {CollectibleType.YUM_HEART},
22070
- [PlayerType.CAIN_B] = {CollectibleType.BAG_OF_CRAFTING},
22071
- [PlayerType.JUDAS_B] = {CollectibleType.DARK_ARTS},
22072
- [PlayerType.BLUE_BABY_B] = {CollectibleType.HOLD},
22073
- [PlayerType.EVE_B] = {CollectibleType.SUMPTORIUM},
22074
- [PlayerType.SAMSON_B] = {},
22075
- [PlayerType.AZAZEL_B] = {},
22076
- [PlayerType.LAZARUS_B] = {CollectibleType.FLIP},
22077
- [PlayerType.EDEN_B] = {},
22078
- [PlayerType.LOST_B] = {},
22079
- [PlayerType.LILITH_B] = {},
22080
- [PlayerType.KEEPER_B] = {},
22081
- [PlayerType.APOLLYON_B] = {CollectibleType.ABYSS},
22082
- [PlayerType.FORGOTTEN_B] = {},
22083
- [PlayerType.BETHANY_B] = {CollectibleType.LEMEGETON},
22084
- [PlayerType.JACOB_B] = {CollectibleType.ANIMA_SOLA},
22085
- [PlayerType.LAZARUS_2_B] = {CollectibleType.FLIP},
22086
- [PlayerType.JACOB_2_B] = {CollectibleType.ANIMA_SOLA},
22087
- [PlayerType.SOUL_B] = {}
22088
- }
22089
- return ____exports
22090
- end,
22091
- ["src.sets.charactersThatStartWithAnActiveItemSet"] = function(...)
22092
- local ____lualib = require("lualib_bundle")
22093
- local __TS__New = ____lualib.__TS__New
22094
- local ____exports = {}
22095
- local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
22096
- local PlayerType = ____isaac_2Dtypescript_2Ddefinitions.PlayerType
22097
- local ____ReadonlySet = require("src.types.ReadonlySet")
22098
- local ReadonlySet = ____ReadonlySet.ReadonlySet
22099
- ____exports.CHARACTERS_THAT_START_WITH_AN_ACTIVE_ITEM_SET = __TS__New(ReadonlySet, {
22100
- PlayerType.ISAAC,
22101
- PlayerType.MAGDALENE,
22102
- PlayerType.JUDAS,
22103
- PlayerType.BLUE_BABY,
22104
- PlayerType.EVE,
22105
- PlayerType.EDEN,
22106
- PlayerType.LOST,
22107
- PlayerType.LILITH,
22108
- PlayerType.KEEPER,
22109
- PlayerType.APOLLYON,
22110
- PlayerType.EDEN_B
22111
- })
22112
- return ____exports
22113
- end,
22114
- ["src.sets.charactersWithBlackHeartFromEternalHeartSet"] = function(...)
22115
- local ____lualib = require("lualib_bundle")
22116
- local __TS__New = ____lualib.__TS__New
22117
- local ____exports = {}
22118
- local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
22119
- local PlayerType = ____isaac_2Dtypescript_2Ddefinitions.PlayerType
22120
- local ____ReadonlySet = require("src.types.ReadonlySet")
22121
- local ReadonlySet = ____ReadonlySet.ReadonlySet
22122
- ____exports.CHARACTERS_WITH_BLACK_HEART_FROM_ETERNAL_HEART_SET = __TS__New(ReadonlySet, {PlayerType.DARK_JUDAS, PlayerType.JUDAS_B})
22123
- return ____exports
22124
- end,
22125
- ["src.sets.charactersWithFreeDevilDealsSet"] = function(...)
22126
- local ____lualib = require("lualib_bundle")
22127
- local __TS__New = ____lualib.__TS__New
22128
- local ____exports = {}
22129
- local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
22130
- local PlayerType = ____isaac_2Dtypescript_2Ddefinitions.PlayerType
22131
- local ____ReadonlySet = require("src.types.ReadonlySet")
22132
- local ReadonlySet = ____ReadonlySet.ReadonlySet
22133
- ____exports.CHARACTERS_WITH_FREE_DEVIL_DEALS_SET = __TS__New(ReadonlySet, {PlayerType.LOST, PlayerType.LOST_B, PlayerType.JACOB_2_B})
22134
- return ____exports
22135
- end,
22136
- ["src.sets.charactersWithNoRedHeartsSet"] = function(...)
22137
- local ____lualib = require("lualib_bundle")
22138
- local __TS__New = ____lualib.__TS__New
22139
- local ____exports = {}
22140
- local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
22141
- local PlayerType = ____isaac_2Dtypescript_2Ddefinitions.PlayerType
22142
- local ____ReadonlySet = require("src.types.ReadonlySet")
22143
- local ReadonlySet = ____ReadonlySet.ReadonlySet
22144
- ____exports.CHARACTERS_WITH_NO_RED_HEARTS_SET = __TS__New(ReadonlySet, {
22145
- PlayerType.BLUE_BABY,
22146
- PlayerType.LOST,
22147
- PlayerType.DARK_JUDAS,
22148
- PlayerType.JUDAS_B,
22149
- PlayerType.BLUE_BABY_B,
22150
- PlayerType.LOST_B,
22151
- PlayerType.FORGOTTEN_B,
22152
- PlayerType.BETHANY_B
22153
- })
22154
- return ____exports
22155
- end,
22156
- ["src.sets.charactersWithNoSoulHeartsSet"] = function(...)
22157
- local ____lualib = require("lualib_bundle")
22158
- local __TS__New = ____lualib.__TS__New
22159
- local ____exports = {}
22160
- local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
22161
- local PlayerType = ____isaac_2Dtypescript_2Ddefinitions.PlayerType
22162
- local ____ReadonlySet = require("src.types.ReadonlySet")
22163
- local ReadonlySet = ____ReadonlySet.ReadonlySet
22164
- ____exports.CHARACTERS_WITH_NO_SOUL_HEARTS_SET = __TS__New(ReadonlySet, {
22165
- PlayerType.LOST,
22166
- PlayerType.KEEPER,
22167
- PlayerType.BETHANY,
22168
- PlayerType.LOST_B,
22169
- PlayerType.KEEPER_B
22170
- })
22171
- return ____exports
22172
- end,
22173
- ["src.sets.lostStyleCharactersSet"] = function(...)
22174
- local ____lualib = require("lualib_bundle")
22175
- local __TS__New = ____lualib.__TS__New
22176
- local ____exports = {}
22177
- local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
22178
- local PlayerType = ____isaac_2Dtypescript_2Ddefinitions.PlayerType
22179
- local ____ReadonlySet = require("src.types.ReadonlySet")
22180
- local ReadonlySet = ____ReadonlySet.ReadonlySet
22181
- ____exports.LOST_STYLE_CHARACTERS_SET = __TS__New(ReadonlySet, {
22182
- PlayerType.LOST,
22183
- PlayerType.SOUL,
22184
- PlayerType.LOST_B,
22185
- PlayerType.JACOB_2_B,
22186
- PlayerType.SOUL_B
22187
- })
22188
- return ____exports
22189
- end,
22190
- ["src.functions.characters"] = function(...)
22191
- local ____lualib = require("lualib_bundle")
22192
- local __TS__New = ____lualib.__TS__New
22193
- local ____exports = {}
22194
- local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
22195
- local PlayerType = ____isaac_2Dtypescript_2Ddefinitions.PlayerType
22196
- local ____constantsFirstLast = require("src.core.constantsFirstLast")
22197
- local LAST_VANILLA_CHARACTER = ____constantsFirstLast.LAST_VANILLA_CHARACTER
22198
- local ____characterDamageMultipliers = require("src.objects.characterDamageMultipliers")
22199
- local CHARACTER_DAMAGE_MULTIPLIERS = ____characterDamageMultipliers.CHARACTER_DAMAGE_MULTIPLIERS
22200
- local ____characterNames = require("src.objects.characterNames")
22201
- local CHARACTER_NAMES = ____characterNames.CHARACTER_NAMES
22202
- local ____characterStartingCollectibles = require("src.objects.characterStartingCollectibles")
22203
- local CHARACTER_STARTING_COLLECTIBLES = ____characterStartingCollectibles.CHARACTER_STARTING_COLLECTIBLES
22204
- local ____charactersThatStartWithAnActiveItemSet = require("src.sets.charactersThatStartWithAnActiveItemSet")
22205
- local CHARACTERS_THAT_START_WITH_AN_ACTIVE_ITEM_SET = ____charactersThatStartWithAnActiveItemSet.CHARACTERS_THAT_START_WITH_AN_ACTIVE_ITEM_SET
22206
- local ____charactersWithBlackHeartFromEternalHeartSet = require("src.sets.charactersWithBlackHeartFromEternalHeartSet")
22207
- local CHARACTERS_WITH_BLACK_HEART_FROM_ETERNAL_HEART_SET = ____charactersWithBlackHeartFromEternalHeartSet.CHARACTERS_WITH_BLACK_HEART_FROM_ETERNAL_HEART_SET
22208
- local ____charactersWithFreeDevilDealsSet = require("src.sets.charactersWithFreeDevilDealsSet")
22209
- local CHARACTERS_WITH_FREE_DEVIL_DEALS_SET = ____charactersWithFreeDevilDealsSet.CHARACTERS_WITH_FREE_DEVIL_DEALS_SET
22210
- local ____charactersWithNoRedHeartsSet = require("src.sets.charactersWithNoRedHeartsSet")
22211
- local CHARACTERS_WITH_NO_RED_HEARTS_SET = ____charactersWithNoRedHeartsSet.CHARACTERS_WITH_NO_RED_HEARTS_SET
22212
- local ____charactersWithNoSoulHeartsSet = require("src.sets.charactersWithNoSoulHeartsSet")
22213
- local CHARACTERS_WITH_NO_SOUL_HEARTS_SET = ____charactersWithNoSoulHeartsSet.CHARACTERS_WITH_NO_SOUL_HEARTS_SET
22214
- local ____lostStyleCharactersSet = require("src.sets.lostStyleCharactersSet")
22215
- local LOST_STYLE_CHARACTERS_SET = ____lostStyleCharactersSet.LOST_STYLE_CHARACTERS_SET
22216
- local ____ReadonlySet = require("src.types.ReadonlySet")
22217
- local ReadonlySet = ____ReadonlySet.ReadonlySet
22218
- function ____exports.isModdedCharacter(self, character)
22219
- return not ____exports.isVanillaCharacter(nil, character)
22220
- end
22221
- function ____exports.isVanillaCharacter(self, character)
22222
- return character <= LAST_VANILLA_CHARACTER
22223
- end
22224
- local FLYING_CHARACTERS = __TS__New(ReadonlySet, {
22225
- PlayerType.AZAZEL,
22226
- PlayerType.LOST,
22227
- PlayerType.SOUL,
22228
- PlayerType.LOST_B,
22229
- PlayerType.JACOB_2_B,
22230
- PlayerType.SOUL_B
22231
- })
22232
- function ____exports.characterCanHaveRedHearts(self, character)
22233
- return not CHARACTERS_WITH_NO_RED_HEARTS_SET:has(character)
22234
- end
22235
- function ____exports.characterCanHaveSoulHearts(self, character)
22236
- return not CHARACTERS_WITH_NO_SOUL_HEARTS_SET:has(character)
22237
- end
22238
- function ____exports.characterCanTakeFreeDevilDeals(self, character)
22239
- return CHARACTERS_WITH_FREE_DEVIL_DEALS_SET:has(character)
22240
- end
22241
- function ____exports.characterGetsBlackHeartFromEternalHeart(self, character)
22242
- return CHARACTERS_WITH_BLACK_HEART_FROM_ETERNAL_HEART_SET:has(character)
22243
- end
22244
- function ____exports.characterStartsWithActiveItem(self, character)
22245
- return CHARACTERS_THAT_START_WITH_AN_ACTIVE_ITEM_SET:has(character)
22246
- end
22247
- function ____exports.getCharacterDamageMultiplier(self, character, hasWhoreOfBabylon)
22248
- if hasWhoreOfBabylon == nil then
22249
- hasWhoreOfBabylon = false
22250
- end
22251
- if character == PlayerType.EVE and hasWhoreOfBabylon then
22252
- return 1
22253
- end
22254
- return CHARACTER_DAMAGE_MULTIPLIERS[character]
22255
- end
22256
- function ____exports.getCharacterDeathAnimationName(self, character)
22257
- if LOST_STYLE_CHARACTERS_SET:has(character) then
22258
- return "LostDeath"
22259
- end
22260
- if character == PlayerType.FORGOTTEN_B then
22261
- return "ForgottenDeath"
22262
- end
22263
- return "Death"
22264
- end
22265
- function ____exports.getCharacterMaxHeartContainers(self, character)
22266
- if character == PlayerType.KEEPER then
22267
- return 3
22268
- end
22269
- if character == PlayerType.FORGOTTEN then
22270
- return 6
22271
- end
22272
- if character == PlayerType.SOUL then
22273
- return 6
22274
- end
22275
- if character == PlayerType.KEEPER_B then
22276
- return 2
22277
- end
22278
- return 12
22279
- end
22280
- function ____exports.getCharacterName(self, character)
22281
- if ____exports.isModdedCharacter(nil, character) then
22282
- return "Unknown"
22283
- end
22284
- return CHARACTER_NAMES[character]
22285
- end
22286
- function ____exports.getCharacterStartingCollectibles(self, character)
22287
- return CHARACTER_STARTING_COLLECTIBLES[character]
22288
- end
22289
- function ____exports.isFlyingCharacter(self, player)
22290
- local character = player:GetPlayerType()
22291
- return FLYING_CHARACTERS:has(character)
22292
- end
22293
- return ____exports
22294
- end,
22295
- ["src.functions.players"] = function(...)
22296
- local ____lualib = require("lualib_bundle")
22297
- local __TS__ArraySome = ____lualib.__TS__ArraySome
22298
- local __TS__New = ____lualib.__TS__New
22299
- local __TS__ArrayFilter = ____lualib.__TS__ArrayFilter
22300
- local __TS__ArrayMap = ____lualib.__TS__ArrayMap
22301
- local __TS__ArrayFind = ____lualib.__TS__ArrayFind
22302
- local __TS__ArrayEvery = ____lualib.__TS__ArrayEvery
22303
- local ____exports = {}
22304
- local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
22305
- local ActiveSlot = ____isaac_2Dtypescript_2Ddefinitions.ActiveSlot
22306
- local Challenge = ____isaac_2Dtypescript_2Ddefinitions.Challenge
22307
- local CollectibleType = ____isaac_2Dtypescript_2Ddefinitions.CollectibleType
22308
- local ControllerIndex = ____isaac_2Dtypescript_2Ddefinitions.ControllerIndex
22309
- local NullItemID = ____isaac_2Dtypescript_2Ddefinitions.NullItemID
22310
- local PlayerForm = ____isaac_2Dtypescript_2Ddefinitions.PlayerForm
22311
- local PlayerType = ____isaac_2Dtypescript_2Ddefinitions.PlayerType
22312
- local TrinketType = ____isaac_2Dtypescript_2Ddefinitions.TrinketType
22313
- local ____cachedEnumValues = require("src.arrays.cachedEnumValues")
22314
- local ACTIVE_SLOT_VALUES = ____cachedEnumValues.ACTIVE_SLOT_VALUES
22315
- local TRINKET_SLOT_VALUES = ____cachedEnumValues.TRINKET_SLOT_VALUES
22316
- local ____cachedClasses = require("src.core.cachedClasses")
22317
- local game = ____cachedClasses.game
22318
- local itemConfig = ____cachedClasses.itemConfig
22319
- local ____ReadonlySet = require("src.types.ReadonlySet")
22320
- local ReadonlySet = ____ReadonlySet.ReadonlySet
22321
- local ____array = require("src.functions.array")
22322
- local getLastElement = ____array.getLastElement
22323
- local sumArray = ____array.sumArray
22324
- local ____characters = require("src.functions.characters")
22325
- local getCharacterName = ____characters.getCharacterName
22326
- local isVanillaCharacter = ____characters.isVanillaCharacter
22327
- local ____collectibles = require("src.functions.collectibles")
22328
- local getCollectibleMaxCharges = ____collectibles.getCollectibleMaxCharges
22329
- local ____playerIndex = require("src.functions.playerIndex")
22330
- local getAllPlayers = ____playerIndex.getAllPlayers
22331
- local getPlayerIndexVanilla = ____playerIndex.getPlayerIndexVanilla
22332
- local getPlayers = ____playerIndex.getPlayers
22333
- local ____types = require("src.functions.types")
22334
- local isNumber = ____types.isNumber
22335
- local ____utils = require("src.functions.utils")
22336
- local ____repeat = ____utils["repeat"]
22337
- function ____exports.getCharacters(self)
22338
- local players = getPlayers(nil)
22339
- return __TS__ArrayMap(
22340
- players,
22341
- function(____, player) return player:GetPlayerType() end
22342
- )
22343
- end
22344
- function ____exports.isCharacter(self, player, ...)
22345
- local characters = {...}
22346
- local characterSet = __TS__New(ReadonlySet, characters)
22347
- local character = player:GetPlayerType()
22348
- return characterSet:has(character)
21586
+ function ____exports.isCharacter(self, player, ...)
21587
+ local characters = {...}
21588
+ local characterSet = __TS__New(ReadonlySet, characters)
21589
+ local character = player:GetPlayerType()
21590
+ return characterSet:has(character)
22349
21591
  end
22350
21592
  function ____exports.isModdedPlayer(self, player)
22351
21593
  return not ____exports.isVanillaPlayer(nil, player)
@@ -22922,229 +22164,828 @@ function PostCursedTeleport.prototype.____constructor(self)
22922
22164
  mapSetPlayer(nil, v.run.playersDamageFrameMap, player, newTrackingArray)
22923
22165
  self:fire(player)
22924
22166
  end
22925
- self.customCallbacksUsed = {{ModCallbackCustom.ENTITY_TAKE_DMG_PLAYER, self.entityTakeDmgPlayer}, {ModCallbackCustom.POST_PLAYER_RENDER_REORDERED, self.postPlayerRenderReorderedPlayer, {PlayerVariant.PLAYER}}}
22167
+ self.customCallbacksUsed = {{ModCallbackCustom.ENTITY_TAKE_DMG_PLAYER, self.entityTakeDmgPlayer}, {ModCallbackCustom.POST_PLAYER_RENDER_REORDERED, self.postPlayerRenderReorderedPlayer, {PlayerVariant.PLAYER}}}
22168
+ end
22169
+ function PostCursedTeleport.prototype.incrementNumSacrifices(self, damageFlags)
22170
+ local room = game:GetRoom()
22171
+ local roomType = room:GetType()
22172
+ local isSpikeDamage = hasFlag(nil, damageFlags, DamageFlag.SPIKES)
22173
+ if roomType == RoomType.SACRIFICE and isSpikeDamage then
22174
+ local ____v_level_0, ____numSacrifices_1 = v.level, "numSacrifices"
22175
+ ____v_level_0[____numSacrifices_1] = ____v_level_0[____numSacrifices_1] + 1
22176
+ end
22177
+ end
22178
+ function PostCursedTeleport.prototype.setDamageFrame(self, player, damageFlags)
22179
+ local gameFrameCount = game:GetFrameCount()
22180
+ local trackingArray = mapGetPlayer(nil, v.run.playersDamageFrameMap, player)
22181
+ if trackingArray ~= nil then
22182
+ local lastDamageFrame, callbackFiredOnThisFrame = table.unpack(trackingArray)
22183
+ if lastDamageFrame == gameFrameCount and callbackFiredOnThisFrame then
22184
+ return
22185
+ end
22186
+ end
22187
+ if self:isPotentialNaturalTeleportFromSacrificeRoom(damageFlags) then
22188
+ return
22189
+ end
22190
+ local newTrackingArray = {gameFrameCount, false}
22191
+ mapSetPlayer(nil, v.run.playersDamageFrameMap, player, newTrackingArray)
22192
+ end
22193
+ function PostCursedTeleport.prototype.isPotentialNaturalTeleportFromSacrificeRoom(self, damageFlags)
22194
+ local room = game:GetRoom()
22195
+ local roomType = room:GetType()
22196
+ local isSpikeDamage = hasFlag(nil, damageFlags, DamageFlag.SPIKES)
22197
+ return roomType == RoomType.SACRIFICE and isSpikeDamage and (v.level.numSacrifices == 6 or v.level.numSacrifices >= 12)
22198
+ end
22199
+ function PostCursedTeleport.prototype.playerIsTeleportingFromCursedTeleport(self, player, lastDamageFrame)
22200
+ local gameFrameCount = game:GetFrameCount()
22201
+ if gameFrameCount ~= lastDamageFrame then
22202
+ return false
22203
+ end
22204
+ local sprite = player:GetSprite()
22205
+ if not sprite:IsPlaying("TeleportUp") or sprite:GetFrame() ~= 1 then
22206
+ return false
22207
+ end
22208
+ if player:HasCollectible(CollectibleType.CURSED_EYE) then
22209
+ return true
22210
+ end
22211
+ local numHitsRemaining = getPlayerNumHitsRemaining(nil, player)
22212
+ if player:HasTrinket(TrinketType.CURSED_SKULL) and numHitsRemaining == 1 then
22213
+ return true
22214
+ end
22215
+ return false
22216
+ end
22217
+ return ____exports
22218
+ end,
22219
+ ["src.classes.callbacks.PostCustomRevive"] = function(...)
22220
+ local ____lualib = require("lualib_bundle")
22221
+ local __TS__Class = ____lualib.__TS__Class
22222
+ local __TS__ClassExtends = ____lualib.__TS__ClassExtends
22223
+ local ____exports = {}
22224
+ local ____ISCFeature = require("src.enums.ISCFeature")
22225
+ local ISCFeature = ____ISCFeature.ISCFeature
22226
+ local ____CustomCallback = require("src.classes.private.CustomCallback")
22227
+ local CustomCallback = ____CustomCallback.CustomCallback
22228
+ ____exports.PostCustomRevive = __TS__Class()
22229
+ local PostCustomRevive = ____exports.PostCustomRevive
22230
+ PostCustomRevive.name = "PostCustomRevive"
22231
+ __TS__ClassExtends(PostCustomRevive, CustomCallback)
22232
+ function PostCustomRevive.prototype.____constructor(self)
22233
+ CustomCallback.prototype.____constructor(self)
22234
+ self.shouldFire = function(____, fireArgs, optionalArgs)
22235
+ local _player, revivalType = table.unpack(fireArgs)
22236
+ local callbackRevivalType = table.unpack(optionalArgs)
22237
+ return callbackRevivalType == nil or revivalType == callbackRevivalType
22238
+ end
22239
+ self.featuresUsed = {ISCFeature.CUSTOM_REVIVE}
22240
+ end
22241
+ return ____exports
22242
+ end,
22243
+ ["src.functions.math"] = function(...)
22244
+ local ____exports = {}
22245
+ local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
22246
+ local Direction = ____isaac_2Dtypescript_2Ddefinitions.Direction
22247
+ local ____direction = require("src.functions.direction")
22248
+ local directionToVector = ____direction.directionToVector
22249
+ function ____exports.clamp(self, x, min, max)
22250
+ return math.max(
22251
+ min,
22252
+ math.min(x, max)
22253
+ )
22254
+ end
22255
+ function ____exports.getAngleDifference(self, angle1, angle2)
22256
+ local subtractedAngle = angle1 - angle2
22257
+ return (subtractedAngle + 180) % 360 - 180
22258
+ end
22259
+ function ____exports.getCircleDiscretizedPoints(self, centerPos, radius, numPoints, xMultiplier, yMultiplier, initialDirection)
22260
+ if xMultiplier == nil then
22261
+ xMultiplier = 1
22262
+ end
22263
+ if yMultiplier == nil then
22264
+ yMultiplier = 1
22265
+ end
22266
+ if initialDirection == nil then
22267
+ initialDirection = Direction.UP
22268
+ end
22269
+ local vector = directionToVector(nil, initialDirection)
22270
+ local initialPosition = vector * radius
22271
+ local positions = {}
22272
+ do
22273
+ local i = 0
22274
+ while i < numPoints do
22275
+ local rotatedPosition = initialPosition:Rotated(i * 360 / numPoints)
22276
+ rotatedPosition.X = rotatedPosition.X * xMultiplier
22277
+ rotatedPosition.Y = rotatedPosition.Y * yMultiplier
22278
+ local positionFromCenter = centerPos + rotatedPosition
22279
+ positions[#positions + 1] = positionFromCenter
22280
+ i = i + 1
22281
+ end
22282
+ end
22283
+ return positions
22284
+ end
22285
+ function ____exports.inRectangle(self, position, topLeft, bottomRight)
22286
+ return position.X >= topLeft.X and position.X <= bottomRight.X and position.Y >= topLeft.Y and position.Y <= bottomRight.Y
22287
+ end
22288
+ function ____exports.isCircleIntersectingRectangle(self, circleCenter, circleRadius, rectangleTopLeft, rectangleBottomRight)
22289
+ local nearestX = math.max(
22290
+ rectangleTopLeft.X,
22291
+ math.min(circleCenter.X, rectangleBottomRight.X)
22292
+ )
22293
+ local nearestY = math.max(
22294
+ rectangleTopLeft.Y,
22295
+ math.min(circleCenter.Y, rectangleBottomRight.Y)
22296
+ )
22297
+ local nearestPointToCircleOnRectangle = Vector(nearestX, nearestY)
22298
+ local distanceToCenterOfCircle = nearestPointToCircleOnRectangle:Distance(circleCenter)
22299
+ return distanceToCenterOfCircle <= circleRadius
22300
+ end
22301
+ function ____exports.isEven(self, num)
22302
+ return num & 1 == 0
22303
+ end
22304
+ function ____exports.isOdd(self, num)
22305
+ return num & 1 == 1
22306
+ end
22307
+ function ____exports.lerp(self, a, b, pos)
22308
+ return a + (b - a) * pos
22309
+ end
22310
+ function ____exports.lerpAngleDegrees(self, aStart, aEnd, percent)
22311
+ return aStart + ____exports.getAngleDifference(nil, aStart, aEnd) * percent
22312
+ end
22313
+ function ____exports.round(self, num, numDecimalPlaces)
22314
+ if numDecimalPlaces == nil then
22315
+ numDecimalPlaces = 0
22316
+ end
22317
+ local roundedNum = tonumber(string.format(
22318
+ ("%." .. tostring(numDecimalPlaces)) .. "f",
22319
+ num
22320
+ ))
22321
+ return roundedNum == nil and 0 or roundedNum
22322
+ end
22323
+ function ____exports.sign(self, n)
22324
+ if n > 0 then
22325
+ return 1
22326
+ end
22327
+ if n < 0 then
22328
+ return -1
22329
+ end
22330
+ return 0
22331
+ end
22332
+ function ____exports.tanh(self, x)
22333
+ return (math.exp(x) - math.exp(-x)) / (math.exp(x) + math.exp(-x))
22334
+ end
22335
+ return ____exports
22336
+ end,
22337
+ ["src.functions.effects"] = function(...)
22338
+ local ____exports = {}
22339
+ local ____math = require("src.functions.math")
22340
+ local inRectangle = ____math.inRectangle
22341
+ ____exports.DICE_FLOOR_TRIGGER_SQUARE_SIZE = 75
22342
+ function ____exports.isCloseEnoughToTriggerDiceFloor(self, player, diceFloor)
22343
+ local topLeft = diceFloor.Position + Vector(-____exports.DICE_FLOOR_TRIGGER_SQUARE_SIZE, -____exports.DICE_FLOOR_TRIGGER_SQUARE_SIZE)
22344
+ local bottomRight = diceFloor.Position + Vector(____exports.DICE_FLOOR_TRIGGER_SQUARE_SIZE, ____exports.DICE_FLOOR_TRIGGER_SQUARE_SIZE)
22345
+ return inRectangle(nil, player.Position, topLeft, bottomRight)
22346
+ end
22347
+ return ____exports
22348
+ end,
22349
+ ["src.classes.callbacks.PostDiceRoomActivated"] = function(...)
22350
+ local ____lualib = require("lualib_bundle")
22351
+ local __TS__Class = ____lualib.__TS__Class
22352
+ local __TS__ClassExtends = ____lualib.__TS__ClassExtends
22353
+ local ____exports = {}
22354
+ local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
22355
+ local EffectVariant = ____isaac_2Dtypescript_2Ddefinitions.EffectVariant
22356
+ local ModCallback = ____isaac_2Dtypescript_2Ddefinitions.ModCallback
22357
+ local ____effects = require("src.functions.effects")
22358
+ local isCloseEnoughToTriggerDiceFloor = ____effects.isCloseEnoughToTriggerDiceFloor
22359
+ local ____players = require("src.functions.players")
22360
+ local getClosestPlayer = ____players.getClosestPlayer
22361
+ local ____CustomCallback = require("src.classes.private.CustomCallback")
22362
+ local CustomCallback = ____CustomCallback.CustomCallback
22363
+ local v = {room = {diceRoomActivated = false}}
22364
+ ____exports.PostDiceRoomActivated = __TS__Class()
22365
+ local PostDiceRoomActivated = ____exports.PostDiceRoomActivated
22366
+ PostDiceRoomActivated.name = "PostDiceRoomActivated"
22367
+ __TS__ClassExtends(PostDiceRoomActivated, CustomCallback)
22368
+ function PostDiceRoomActivated.prototype.____constructor(self)
22369
+ CustomCallback.prototype.____constructor(self)
22370
+ self.v = v
22371
+ self.shouldFire = function(____, fireArgs, optionalArgs)
22372
+ local _player, diceFloorSubType = table.unpack(fireArgs)
22373
+ local callbackDiceFloorSubType = table.unpack(optionalArgs)
22374
+ return callbackDiceFloorSubType == nil or diceFloorSubType == callbackDiceFloorSubType
22375
+ end
22376
+ self.postEffectUpdateDiceFloor = function(____, effect)
22377
+ if v.room.diceRoomActivated then
22378
+ return
22379
+ end
22380
+ if effect.FrameCount == 0 then
22381
+ return
22382
+ end
22383
+ local closestPlayer = getClosestPlayer(nil, effect.Position)
22384
+ if isCloseEnoughToTriggerDiceFloor(nil, closestPlayer, effect) then
22385
+ v.room.diceRoomActivated = true
22386
+ self:fire(closestPlayer, effect.SubType)
22387
+ end
22388
+ end
22389
+ self.callbacksUsed = {{ModCallback.POST_EFFECT_UPDATE, self.postEffectUpdateDiceFloor, {EffectVariant.DICE_FLOOR}}}
22390
+ end
22391
+ return ____exports
22392
+ end,
22393
+ ["src.objects.doorSlotFlagToDoorSlot"] = function(...)
22394
+ local ____exports = {}
22395
+ local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
22396
+ local DoorSlot = ____isaac_2Dtypescript_2Ddefinitions.DoorSlot
22397
+ local DoorSlotFlag = ____isaac_2Dtypescript_2Ddefinitions.DoorSlotFlag
22398
+ ____exports.DEFAULT_DOOR_SLOT = DoorSlot.NO_DOOR_SLOT
22399
+ ____exports.DOOR_SLOT_FLAG_TO_DOOR_SLOT = {
22400
+ [DoorSlotFlag.LEFT_0] = DoorSlot.LEFT_0,
22401
+ [DoorSlotFlag.UP_0] = DoorSlot.UP_0,
22402
+ [DoorSlotFlag.RIGHT_0] = DoorSlot.RIGHT_0,
22403
+ [DoorSlotFlag.DOWN_0] = DoorSlot.DOWN_0,
22404
+ [DoorSlotFlag.LEFT_1] = DoorSlot.LEFT_1,
22405
+ [DoorSlotFlag.UP_1] = DoorSlot.UP_1,
22406
+ [DoorSlotFlag.RIGHT_1] = DoorSlot.RIGHT_1,
22407
+ [DoorSlotFlag.DOWN_1] = DoorSlot.DOWN_1
22408
+ }
22409
+ return ____exports
22410
+ end,
22411
+ ["src.objects.doorSlotToDirection"] = function(...)
22412
+ local ____exports = {}
22413
+ local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
22414
+ local Direction = ____isaac_2Dtypescript_2Ddefinitions.Direction
22415
+ local DoorSlot = ____isaac_2Dtypescript_2Ddefinitions.DoorSlot
22416
+ ____exports.DOOR_SLOT_TO_DIRECTION = {
22417
+ [DoorSlot.NO_DOOR_SLOT] = Direction.NO_DIRECTION,
22418
+ [DoorSlot.LEFT_0] = Direction.LEFT,
22419
+ [DoorSlot.UP_0] = Direction.UP,
22420
+ [DoorSlot.RIGHT_0] = Direction.RIGHT,
22421
+ [DoorSlot.DOWN_0] = Direction.DOWN,
22422
+ [DoorSlot.LEFT_1] = Direction.LEFT,
22423
+ [DoorSlot.UP_1] = Direction.UP,
22424
+ [DoorSlot.RIGHT_1] = Direction.RIGHT,
22425
+ [DoorSlot.DOWN_1] = Direction.DOWN
22426
+ }
22427
+ return ____exports
22428
+ end,
22429
+ ["src.objects.doorSlotToDoorSlotFlag"] = function(...)
22430
+ local ____exports = {}
22431
+ local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
22432
+ local DoorSlot = ____isaac_2Dtypescript_2Ddefinitions.DoorSlot
22433
+ local DoorSlotFlag = ____isaac_2Dtypescript_2Ddefinitions.DoorSlotFlag
22434
+ local DoorSlotFlagZero = ____isaac_2Dtypescript_2Ddefinitions.DoorSlotFlagZero
22435
+ ____exports.DOOR_SLOT_TO_DOOR_SLOT_FLAG = {
22436
+ [DoorSlot.NO_DOOR_SLOT] = DoorSlotFlagZero,
22437
+ [DoorSlot.LEFT_0] = DoorSlotFlag.LEFT_0,
22438
+ [DoorSlot.UP_0] = DoorSlotFlag.UP_0,
22439
+ [DoorSlot.RIGHT_0] = DoorSlotFlag.RIGHT_0,
22440
+ [DoorSlot.DOWN_0] = DoorSlotFlag.DOWN_0,
22441
+ [DoorSlot.LEFT_1] = DoorSlotFlag.LEFT_1,
22442
+ [DoorSlot.UP_1] = DoorSlotFlag.UP_1,
22443
+ [DoorSlot.RIGHT_1] = DoorSlotFlag.RIGHT_1,
22444
+ [DoorSlot.DOWN_1] = DoorSlotFlag.DOWN_1
22445
+ }
22446
+ return ____exports
22447
+ end,
22448
+ ["src.objects.oppositeDoorSlots"] = function(...)
22449
+ local ____exports = {}
22450
+ local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
22451
+ local DoorSlot = ____isaac_2Dtypescript_2Ddefinitions.DoorSlot
22452
+ ____exports.OPPOSITE_DOOR_SLOTS = {
22453
+ [DoorSlot.NO_DOOR_SLOT] = nil,
22454
+ [DoorSlot.LEFT_0] = DoorSlot.RIGHT_0,
22455
+ [DoorSlot.UP_0] = DoorSlot.DOWN_0,
22456
+ [DoorSlot.RIGHT_0] = DoorSlot.LEFT_0,
22457
+ [DoorSlot.DOWN_0] = DoorSlot.UP_0,
22458
+ [DoorSlot.LEFT_1] = DoorSlot.RIGHT_1,
22459
+ [DoorSlot.UP_1] = DoorSlot.DOWN_1,
22460
+ [DoorSlot.RIGHT_1] = DoorSlot.LEFT_1,
22461
+ [DoorSlot.DOWN_1] = DoorSlot.UP_1
22462
+ }
22463
+ return ____exports
22464
+ end,
22465
+ ["src.objects.roomShapeToDoorSlotCoordinates"] = function(...)
22466
+ local ____exports = {}
22467
+ local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
22468
+ local DoorSlot = ____isaac_2Dtypescript_2Ddefinitions.DoorSlot
22469
+ local RoomShape = ____isaac_2Dtypescript_2Ddefinitions.RoomShape
22470
+ ____exports.ROOM_SHAPE_TO_DOOR_SLOT_COORDINATES = {
22471
+ [RoomShape.SHAPE_1x1] = {[DoorSlot.LEFT_0] = {-1, 3}, [DoorSlot.UP_0] = {6, -1}, [DoorSlot.RIGHT_0] = {13, 3}, [DoorSlot.DOWN_0] = {6, 7}},
22472
+ [RoomShape.IH] = {[DoorSlot.LEFT_0] = {-1, 3}, [DoorSlot.RIGHT_0] = {13, 3}},
22473
+ [RoomShape.IV] = {[DoorSlot.UP_0] = {6, -1}, [DoorSlot.DOWN_0] = {6, 7}},
22474
+ [RoomShape.SHAPE_1x2] = {
22475
+ [DoorSlot.LEFT_0] = {-1, 3},
22476
+ [DoorSlot.UP_0] = {6, -1},
22477
+ [DoorSlot.RIGHT_0] = {13, 3},
22478
+ [DoorSlot.DOWN_0] = {6, 14},
22479
+ [DoorSlot.LEFT_1] = {-1, 10},
22480
+ [DoorSlot.RIGHT_1] = {13, 10}
22481
+ },
22482
+ [RoomShape.IIV] = {[DoorSlot.UP_0] = {6, -1}, [DoorSlot.DOWN_0] = {6, 14}},
22483
+ [RoomShape.SHAPE_2x1] = {
22484
+ [DoorSlot.LEFT_0] = {-1, 3},
22485
+ [DoorSlot.UP_0] = {6, -1},
22486
+ [DoorSlot.RIGHT_0] = {26, 3},
22487
+ [DoorSlot.DOWN_0] = {6, 7},
22488
+ [DoorSlot.UP_1] = {19, -1},
22489
+ [DoorSlot.DOWN_1] = {19, 7}
22490
+ },
22491
+ [RoomShape.IIH] = {[DoorSlot.LEFT_0] = {-1, 3}, [DoorSlot.RIGHT_0] = {26, 3}},
22492
+ [RoomShape.SHAPE_2x2] = {
22493
+ [DoorSlot.LEFT_0] = {-1, 3},
22494
+ [DoorSlot.UP_0] = {6, -1},
22495
+ [DoorSlot.RIGHT_0] = {26, 3},
22496
+ [DoorSlot.DOWN_0] = {6, 14},
22497
+ [DoorSlot.LEFT_1] = {-1, 10},
22498
+ [DoorSlot.UP_1] = {19, -1},
22499
+ [DoorSlot.RIGHT_1] = {26, 10},
22500
+ [DoorSlot.DOWN_1] = {19, 14}
22501
+ },
22502
+ [RoomShape.LTL] = {
22503
+ [DoorSlot.LEFT_0] = {12, 3},
22504
+ [DoorSlot.UP_0] = {6, 6},
22505
+ [DoorSlot.RIGHT_0] = {26, 3},
22506
+ [DoorSlot.DOWN_0] = {6, 14},
22507
+ [DoorSlot.LEFT_1] = {-1, 10},
22508
+ [DoorSlot.UP_1] = {19, -1},
22509
+ [DoorSlot.RIGHT_1] = {26, 10},
22510
+ [DoorSlot.DOWN_1] = {19, 14}
22511
+ },
22512
+ [RoomShape.LTR] = {
22513
+ [DoorSlot.LEFT_0] = {-1, 3},
22514
+ [DoorSlot.UP_0] = {6, -1},
22515
+ [DoorSlot.RIGHT_0] = {13, 3},
22516
+ [DoorSlot.DOWN_0] = {6, 14},
22517
+ [DoorSlot.LEFT_1] = {-1, 10},
22518
+ [DoorSlot.UP_1] = {19, 6},
22519
+ [DoorSlot.RIGHT_1] = {26, 10},
22520
+ [DoorSlot.DOWN_1] = {19, 14}
22521
+ },
22522
+ [RoomShape.LBL] = {
22523
+ [DoorSlot.LEFT_0] = {-1, 3},
22524
+ [DoorSlot.UP_0] = {6, -1},
22525
+ [DoorSlot.RIGHT_0] = {26, 3},
22526
+ [DoorSlot.DOWN_0] = {6, 7},
22527
+ [DoorSlot.LEFT_1] = {12, 10},
22528
+ [DoorSlot.UP_1] = {19, -1},
22529
+ [DoorSlot.RIGHT_1] = {26, 10},
22530
+ [DoorSlot.DOWN_1] = {19, 14}
22531
+ },
22532
+ [RoomShape.LBR] = {
22533
+ [DoorSlot.LEFT_0] = {-1, 3},
22534
+ [DoorSlot.UP_0] = {6, -1},
22535
+ [DoorSlot.RIGHT_0] = {26, 3},
22536
+ [DoorSlot.DOWN_0] = {6, 14},
22537
+ [DoorSlot.LEFT_1] = {-1, 10},
22538
+ [DoorSlot.UP_1] = {19, -1},
22539
+ [DoorSlot.RIGHT_1] = {13, 10},
22540
+ [DoorSlot.DOWN_1] = {19, 7}
22541
+ }
22542
+ }
22543
+ return ____exports
22544
+ end,
22545
+ ["src.objects.roomShapeToDoorSlots"] = function(...)
22546
+ local ____lualib = require("lualib_bundle")
22547
+ local __TS__New = ____lualib.__TS__New
22548
+ local ____exports = {}
22549
+ local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
22550
+ local DoorSlot = ____isaac_2Dtypescript_2Ddefinitions.DoorSlot
22551
+ local RoomShape = ____isaac_2Dtypescript_2Ddefinitions.RoomShape
22552
+ local ____ReadonlySet = require("src.types.ReadonlySet")
22553
+ local ReadonlySet = ____ReadonlySet.ReadonlySet
22554
+ local ALL_DOOR_SLOTS_SET = __TS__New(ReadonlySet, {
22555
+ DoorSlot.LEFT_0,
22556
+ DoorSlot.UP_0,
22557
+ DoorSlot.RIGHT_0,
22558
+ DoorSlot.DOWN_0,
22559
+ DoorSlot.LEFT_1,
22560
+ DoorSlot.UP_1,
22561
+ DoorSlot.RIGHT_1,
22562
+ DoorSlot.DOWN_1
22563
+ })
22564
+ ____exports.ROOM_SHAPE_TO_DOOR_SLOTS = {
22565
+ [RoomShape.SHAPE_1x1] = __TS__New(ReadonlySet, {DoorSlot.LEFT_0, DoorSlot.UP_0, DoorSlot.RIGHT_0, DoorSlot.DOWN_0}),
22566
+ [RoomShape.IH] = __TS__New(ReadonlySet, {DoorSlot.LEFT_0, DoorSlot.RIGHT_0}),
22567
+ [RoomShape.IV] = __TS__New(ReadonlySet, {DoorSlot.UP_0, DoorSlot.DOWN_0}),
22568
+ [RoomShape.SHAPE_1x2] = __TS__New(ReadonlySet, {
22569
+ DoorSlot.LEFT_0,
22570
+ DoorSlot.UP_0,
22571
+ DoorSlot.RIGHT_0,
22572
+ DoorSlot.DOWN_0,
22573
+ DoorSlot.LEFT_1,
22574
+ DoorSlot.RIGHT_1
22575
+ }),
22576
+ [RoomShape.IIV] = __TS__New(ReadonlySet, {DoorSlot.UP_0, DoorSlot.DOWN_0}),
22577
+ [RoomShape.SHAPE_2x1] = __TS__New(ReadonlySet, {
22578
+ DoorSlot.LEFT_0,
22579
+ DoorSlot.UP_0,
22580
+ DoorSlot.RIGHT_0,
22581
+ DoorSlot.DOWN_0,
22582
+ DoorSlot.UP_1,
22583
+ DoorSlot.DOWN_1
22584
+ }),
22585
+ [RoomShape.IIH] = __TS__New(ReadonlySet, {DoorSlot.LEFT_0, DoorSlot.RIGHT_0}),
22586
+ [RoomShape.SHAPE_2x2] = ALL_DOOR_SLOTS_SET,
22587
+ [RoomShape.LTL] = ALL_DOOR_SLOTS_SET,
22588
+ [RoomShape.LTR] = ALL_DOOR_SLOTS_SET,
22589
+ [RoomShape.LBL] = ALL_DOOR_SLOTS_SET,
22590
+ [RoomShape.LBR] = ALL_DOOR_SLOTS_SET
22591
+ }
22592
+ return ____exports
22593
+ end,
22594
+ ["src.functions.bitwise"] = function(...)
22595
+ local ____lualib = require("lualib_bundle")
22596
+ local __TS__ParseInt = ____lualib.__TS__ParseInt
22597
+ local __TS__NumberToString = ____lualib.__TS__NumberToString
22598
+ local __TS__Iterator = ____lualib.__TS__Iterator
22599
+ local __TS__ArrayUnshift = ____lualib.__TS__ArrayUnshift
22600
+ local ____exports = {}
22601
+ local ____flag = require("src.functions.flag")
22602
+ local addFlag = ____flag.addFlag
22603
+ function ____exports.arrayToBitFlags(self, array)
22604
+ local flags = 0
22605
+ for ____, flag in ipairs(array) do
22606
+ flags = addFlag(nil, flags, flag)
22607
+ end
22608
+ return flags
22609
+ end
22610
+ function ____exports.convertBinaryToDecimal(self, bits)
22611
+ local bitsString = table.concat(bits, "")
22612
+ return __TS__ParseInt(bitsString, 2)
22613
+ end
22614
+ function ____exports.convertDecimalToBinary(self, number, minLength)
22615
+ local bits = {}
22616
+ local bitsString = __TS__NumberToString(number, 2)
22617
+ for ____, bitString in __TS__Iterator(bitsString) do
22618
+ local bit = tonumber(bitString)
22619
+ if bit == nil then
22620
+ error("Failed to convert the following number to binary: " .. tostring(number))
22621
+ end
22622
+ bits[#bits + 1] = bit
22623
+ end
22624
+ if minLength ~= nil then
22625
+ while #bits < minLength do
22626
+ __TS__ArrayUnshift(bits, 0)
22627
+ end
22628
+ end
22629
+ return bits
22630
+ end
22631
+ function ____exports.countSetBits(self, n)
22632
+ local count = 0
22633
+ while n > 0 do
22634
+ n = n & n - 1
22635
+ count = count + 1
22636
+ end
22637
+ return count
22638
+ end
22639
+ function ____exports.getKBitOfN(self, k, n)
22640
+ return n >> k & 1
22641
+ end
22642
+ function ____exports.getNumBitsOfN(self, n)
22643
+ local numBits = 0
22644
+ while n > 0 do
22645
+ numBits = numBits + 1
22646
+ n = n >> 1
22647
+ end
22648
+ return numBits
22649
+ end
22650
+ function ____exports.setToBitFlags(self, set)
22651
+ local flags = 0
22652
+ for ____, flag in __TS__Iterator(set:values()) do
22653
+ flags = addFlag(nil, flags, flag)
22654
+ end
22655
+ return flags
22656
+ end
22657
+ return ____exports
22658
+ end,
22659
+ ["src.functions.doors"] = function(...)
22660
+ local ____lualib = require("lualib_bundle")
22661
+ local Set = ____lualib.Set
22662
+ local __TS__Spread = ____lualib.__TS__Spread
22663
+ local __TS__ArrayMap = ____lualib.__TS__ArrayMap
22664
+ local __TS__ArrayFind = ____lualib.__TS__ArrayFind
22665
+ local __TS__New = ____lualib.__TS__New
22666
+ local __TS__Iterator = ____lualib.__TS__Iterator
22667
+ local __TS__ArrayFilter = ____lualib.__TS__ArrayFilter
22668
+ local __TS__ObjectEntries = ____lualib.__TS__ObjectEntries
22669
+ local __TS__ArraySome = ____lualib.__TS__ArraySome
22670
+ local ____exports = {}
22671
+ local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
22672
+ local DoorSlot = ____isaac_2Dtypescript_2Ddefinitions.DoorSlot
22673
+ local DoorState = ____isaac_2Dtypescript_2Ddefinitions.DoorState
22674
+ local DoorVariant = ____isaac_2Dtypescript_2Ddefinitions.DoorVariant
22675
+ local GridEntityType = ____isaac_2Dtypescript_2Ddefinitions.GridEntityType
22676
+ local GridRoom = ____isaac_2Dtypescript_2Ddefinitions.GridRoom
22677
+ local RoomType = ____isaac_2Dtypescript_2Ddefinitions.RoomType
22678
+ local ____cachedEnumValues = require("src.arrays.cachedEnumValues")
22679
+ local DOOR_SLOT_FLAG_VALUES = ____cachedEnumValues.DOOR_SLOT_FLAG_VALUES
22680
+ local DOOR_SLOT_VALUES = ____cachedEnumValues.DOOR_SLOT_VALUES
22681
+ local ____cachedClasses = require("src.core.cachedClasses")
22682
+ local game = ____cachedClasses.game
22683
+ local ____constants = require("src.core.constants")
22684
+ local DISTANCE_OF_GRID_TILE = ____constants.DISTANCE_OF_GRID_TILE
22685
+ local ____doorSlotFlagToDoorSlot = require("src.objects.doorSlotFlagToDoorSlot")
22686
+ local DEFAULT_DOOR_SLOT = ____doorSlotFlagToDoorSlot.DEFAULT_DOOR_SLOT
22687
+ local DOOR_SLOT_FLAG_TO_DOOR_SLOT = ____doorSlotFlagToDoorSlot.DOOR_SLOT_FLAG_TO_DOOR_SLOT
22688
+ local ____doorSlotToDirection = require("src.objects.doorSlotToDirection")
22689
+ local DOOR_SLOT_TO_DIRECTION = ____doorSlotToDirection.DOOR_SLOT_TO_DIRECTION
22690
+ local ____doorSlotToDoorSlotFlag = require("src.objects.doorSlotToDoorSlotFlag")
22691
+ local DOOR_SLOT_TO_DOOR_SLOT_FLAG = ____doorSlotToDoorSlotFlag.DOOR_SLOT_TO_DOOR_SLOT_FLAG
22692
+ local ____oppositeDoorSlots = require("src.objects.oppositeDoorSlots")
22693
+ local OPPOSITE_DOOR_SLOTS = ____oppositeDoorSlots.OPPOSITE_DOOR_SLOTS
22694
+ local ____roomShapeToDoorSlotCoordinates = require("src.objects.roomShapeToDoorSlotCoordinates")
22695
+ local ROOM_SHAPE_TO_DOOR_SLOT_COORDINATES = ____roomShapeToDoorSlotCoordinates.ROOM_SHAPE_TO_DOOR_SLOT_COORDINATES
22696
+ local ____roomShapeToDoorSlots = require("src.objects.roomShapeToDoorSlots")
22697
+ local ROOM_SHAPE_TO_DOOR_SLOTS = ____roomShapeToDoorSlots.ROOM_SHAPE_TO_DOOR_SLOTS
22698
+ local ____ReadonlySet = require("src.types.ReadonlySet")
22699
+ local ReadonlySet = ____ReadonlySet.ReadonlySet
22700
+ local ____bitwise = require("src.functions.bitwise")
22701
+ local arrayToBitFlags = ____bitwise.arrayToBitFlags
22702
+ local ____direction = require("src.functions.direction")
22703
+ local directionToVector = ____direction.directionToVector
22704
+ local ____flag = require("src.functions.flag")
22705
+ local hasFlag = ____flag.hasFlag
22706
+ local ____tstlClass = require("src.functions.tstlClass")
22707
+ local isTSTLSet = ____tstlClass.isTSTLSet
22708
+ local ____types = require("src.functions.types")
22709
+ local asNumber = ____types.asNumber
22710
+ function ____exports.doorSlotToDirection(self, doorSlot)
22711
+ return DOOR_SLOT_TO_DIRECTION[doorSlot]
22712
+ end
22713
+ function ____exports.getDoorSlotEnterPositionOffset(self, doorSlot)
22714
+ local direction = ____exports.doorSlotToDirection(nil, doorSlot)
22715
+ local vector = directionToVector(nil, direction)
22716
+ local oppositeVector = vector * -1
22717
+ return oppositeVector * DISTANCE_OF_GRID_TILE
22718
+ end
22719
+ function ____exports.getDoorSlotsForRoomShape(self, roomShape)
22720
+ return ROOM_SHAPE_TO_DOOR_SLOTS[roomShape]
22721
+ end
22722
+ function ____exports.getDoors(self, ...)
22723
+ local roomTypes = {...}
22724
+ local room = game:GetRoom()
22725
+ local roomShape = room:GetRoomShape()
22726
+ local roomTypesSet = __TS__New(ReadonlySet, roomTypes)
22727
+ local possibleDoorSlots = ____exports.getDoorSlotsForRoomShape(nil, roomShape)
22728
+ local doors = {}
22729
+ for ____, doorSlot in __TS__Iterator(possibleDoorSlots) do
22730
+ do
22731
+ local door = room:GetDoor(doorSlot)
22732
+ if door == nil then
22733
+ goto __continue25
22734
+ end
22735
+ local gridEntityType = door:GetType()
22736
+ if gridEntityType ~= GridEntityType.DOOR then
22737
+ goto __continue25
22738
+ end
22739
+ if roomTypesSet.size == 0 or roomTypesSet:has(door.TargetRoomType) then
22740
+ doors[#doors + 1] = door
22741
+ end
22742
+ end
22743
+ ::__continue25::
22744
+ end
22745
+ return doors
22746
+ end
22747
+ function ____exports.isBlueWombDoor(self, door)
22748
+ return door.TargetRoomIndex == asNumber(nil, GridRoom.BLUE_WOMB)
22749
+ end
22750
+ function ____exports.isRepentanceDoor(self, door)
22751
+ return door.TargetRoomIndex == asNumber(nil, GridRoom.SECRET_EXIT)
22752
+ end
22753
+ function ____exports.isSecretRoomDoor(self, door)
22754
+ local sprite = door:GetSprite()
22755
+ local fileName = sprite:GetFilename()
22756
+ return string.lower(fileName) == "gfx/grid/door_08_holeinwall.anm2"
22757
+ end
22758
+ function ____exports.removeDoor(self, door)
22759
+ local room = game:GetRoom()
22760
+ room:RemoveDoor(door.Slot)
22761
+ end
22762
+ function ____exports.removeDoors(self, ...)
22763
+ local doors = {...}
22764
+ for ____, door in ipairs(doors) do
22765
+ ____exports.removeDoor(nil, door)
22766
+ end
22767
+ end
22768
+ function ____exports.closeAllDoors(self)
22769
+ for ____, door in ipairs(____exports.getDoors(nil)) do
22770
+ door:Close(true)
22771
+ end
22926
22772
  end
22927
- function PostCursedTeleport.prototype.incrementNumSacrifices(self, damageFlags)
22928
- local room = game:GetRoom()
22929
- local roomType = room:GetType()
22930
- local isSpikeDamage = hasFlag(nil, damageFlags, DamageFlag.SPIKES)
22931
- if roomType == RoomType.SACRIFICE and isSpikeDamage then
22932
- local ____v_level_0, ____numSacrifices_1 = v.level, "numSacrifices"
22933
- ____v_level_0[____numSacrifices_1] = ____v_level_0[____numSacrifices_1] + 1
22934
- end
22773
+ function ____exports.closeDoorFast(self, door)
22774
+ door.State = DoorState.CLOSED
22775
+ local sprite = door:GetSprite()
22776
+ sprite:Play("Closed", true)
22935
22777
  end
22936
- function PostCursedTeleport.prototype.setDamageFrame(self, player, damageFlags)
22937
- local gameFrameCount = game:GetFrameCount()
22938
- local trackingArray = mapGetPlayer(nil, v.run.playersDamageFrameMap, player)
22939
- if trackingArray ~= nil then
22940
- local lastDamageFrame, callbackFiredOnThisFrame = table.unpack(trackingArray)
22941
- if lastDamageFrame == gameFrameCount and callbackFiredOnThisFrame then
22942
- return
22778
+ function ____exports.doorSlotFlagToDoorSlot(self, doorSlotFlag)
22779
+ local doorSlot = DOOR_SLOT_FLAG_TO_DOOR_SLOT[doorSlotFlag]
22780
+ return doorSlot == nil and DEFAULT_DOOR_SLOT or doorSlot
22781
+ end
22782
+ function ____exports.doorSlotFlagsToDoorSlots(self, doorSlotFlags)
22783
+ local doorSlots = {}
22784
+ for ____, doorSlotFlag in ipairs(DOOR_SLOT_FLAG_VALUES) do
22785
+ if hasFlag(nil, doorSlotFlags, doorSlotFlag) then
22786
+ local doorSlot = ____exports.doorSlotFlagToDoorSlot(nil, doorSlotFlag)
22787
+ doorSlots[#doorSlots + 1] = doorSlot
22943
22788
  end
22944
22789
  end
22945
- if self:isPotentialNaturalTeleportFromSacrificeRoom(damageFlags) then
22946
- return
22947
- end
22948
- local newTrackingArray = {gameFrameCount, false}
22949
- mapSetPlayer(nil, v.run.playersDamageFrameMap, player, newTrackingArray)
22790
+ return doorSlots
22950
22791
  end
22951
- function PostCursedTeleport.prototype.isPotentialNaturalTeleportFromSacrificeRoom(self, damageFlags)
22952
- local room = game:GetRoom()
22953
- local roomType = room:GetType()
22954
- local isSpikeDamage = hasFlag(nil, damageFlags, DamageFlag.SPIKES)
22955
- return roomType == RoomType.SACRIFICE and isSpikeDamage and (v.level.numSacrifices == 6 or v.level.numSacrifices >= 12)
22792
+ function ____exports.doorSlotToDoorSlotFlag(self, doorSlot)
22793
+ return DOOR_SLOT_TO_DOOR_SLOT_FLAG[doorSlot]
22956
22794
  end
22957
- function PostCursedTeleport.prototype.playerIsTeleportingFromCursedTeleport(self, player, lastDamageFrame)
22958
- local gameFrameCount = game:GetFrameCount()
22959
- if gameFrameCount ~= lastDamageFrame then
22960
- return false
22961
- end
22962
- local sprite = player:GetSprite()
22963
- if not sprite:IsPlaying("TeleportUp") or sprite:GetFrame() ~= 1 then
22964
- return false
22965
- end
22966
- if player:HasCollectible(CollectibleType.CURSED_EYE) then
22967
- return true
22795
+ function ____exports.doorSlotsToDoorSlotFlags(self, doorSlots)
22796
+ local doorSlotArray = isTSTLSet(nil, doorSlots) and ({__TS__Spread(doorSlots:values())}) or doorSlots
22797
+ local doorSlotFlagArray = __TS__ArrayMap(
22798
+ doorSlotArray,
22799
+ function(____, doorSlot) return ____exports.doorSlotToDoorSlotFlag(nil, doorSlot) end
22800
+ )
22801
+ return arrayToBitFlags(nil, doorSlotFlagArray)
22802
+ end
22803
+ function ____exports.getAngelRoomDoor(self)
22804
+ local angelRoomDoors = ____exports.getDoors(nil, RoomType.ANGEL)
22805
+ local ____temp_0
22806
+ if #angelRoomDoors == 0 then
22807
+ ____temp_0 = nil
22808
+ else
22809
+ ____temp_0 = angelRoomDoors[1]
22968
22810
  end
22969
- local numHitsRemaining = getPlayerNumHitsRemaining(nil, player)
22970
- if player:HasTrinket(TrinketType.CURSED_SKULL) and numHitsRemaining == 1 then
22971
- return true
22811
+ return ____temp_0
22812
+ end
22813
+ function ____exports.getBlueWombDoor(self)
22814
+ local doors = ____exports.getDoors(nil)
22815
+ return __TS__ArrayFind(
22816
+ doors,
22817
+ function(____, door) return ____exports.isBlueWombDoor(nil, door) end
22818
+ )
22819
+ end
22820
+ function ____exports.getDevilRoomDoor(self)
22821
+ local devilRoomDoors = ____exports.getDoors(nil, RoomType.DEVIL)
22822
+ local ____temp_1
22823
+ if #devilRoomDoors == 0 then
22824
+ ____temp_1 = nil
22825
+ else
22826
+ ____temp_1 = devilRoomDoors[1]
22972
22827
  end
22973
- return false
22828
+ return ____temp_1
22974
22829
  end
22975
- return ____exports
22976
- end,
22977
- ["src.classes.callbacks.PostCustomRevive"] = function(...)
22978
- local ____lualib = require("lualib_bundle")
22979
- local __TS__Class = ____lualib.__TS__Class
22980
- local __TS__ClassExtends = ____lualib.__TS__ClassExtends
22981
- local ____exports = {}
22982
- local ____ISCFeature = require("src.enums.ISCFeature")
22983
- local ISCFeature = ____ISCFeature.ISCFeature
22984
- local ____CustomCallback = require("src.classes.private.CustomCallback")
22985
- local CustomCallback = ____CustomCallback.CustomCallback
22986
- ____exports.PostCustomRevive = __TS__Class()
22987
- local PostCustomRevive = ____exports.PostCustomRevive
22988
- PostCustomRevive.name = "PostCustomRevive"
22989
- __TS__ClassExtends(PostCustomRevive, CustomCallback)
22990
- function PostCustomRevive.prototype.____constructor(self)
22991
- CustomCallback.prototype.____constructor(self)
22992
- self.shouldFire = function(____, fireArgs, optionalArgs)
22993
- local _player, revivalType = table.unpack(fireArgs)
22994
- local callbackRevivalType = table.unpack(optionalArgs)
22995
- return callbackRevivalType == nil or revivalType == callbackRevivalType
22830
+ function ____exports.getDevilRoomOrAngelRoomDoor(self)
22831
+ local devilRoomOrAngelRoomDoors = ____exports.getDoors(nil, RoomType.DEVIL, RoomType.ANGEL)
22832
+ local ____temp_2
22833
+ if #devilRoomOrAngelRoomDoors == 0 then
22834
+ ____temp_2 = nil
22835
+ else
22836
+ ____temp_2 = devilRoomOrAngelRoomDoors[1]
22996
22837
  end
22997
- self.featuresUsed = {ISCFeature.CUSTOM_REVIVE}
22838
+ return ____temp_2
22998
22839
  end
22999
- return ____exports
23000
- end,
23001
- ["src.functions.math"] = function(...)
23002
- local ____exports = {}
23003
- local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
23004
- local Direction = ____isaac_2Dtypescript_2Ddefinitions.Direction
23005
- local ____direction = require("src.functions.direction")
23006
- local directionToVector = ____direction.directionToVector
23007
- function ____exports.clamp(self, x, min, max)
23008
- return math.max(
23009
- min,
23010
- math.min(x, max)
22840
+ function ____exports.getDoorEnterPosition(self, door)
22841
+ local offset = ____exports.getDoorSlotEnterPositionOffset(nil, door.Slot)
22842
+ return door.Position + offset
22843
+ end
22844
+ function ____exports.getDoorSlotEnterPosition(self, doorSlot)
22845
+ local room = game:GetRoom()
22846
+ local position = room:GetDoorSlotPosition(doorSlot)
22847
+ local offset = ____exports.getDoorSlotEnterPositionOffset(nil, doorSlot)
22848
+ return position + offset
22849
+ end
22850
+ function ____exports.getDoorsToRoomIndex(self, ...)
22851
+ local roomGridIndex = {...}
22852
+ local roomGridIndexesSet = __TS__New(ReadonlySet, roomGridIndex)
22853
+ local doors = ____exports.getDoors(nil)
22854
+ return __TS__ArrayFilter(
22855
+ doors,
22856
+ function(____, door) return roomGridIndexesSet:has(door.TargetRoomIndex) end
23011
22857
  )
23012
22858
  end
23013
- function ____exports.getAngleDifference(self, angle1, angle2)
23014
- local subtractedAngle = angle1 - angle2
23015
- return (subtractedAngle + 180) % 360 - 180
22859
+ function ____exports.getOppositeDoorSlot(self, doorSlot)
22860
+ return OPPOSITE_DOOR_SLOTS[doorSlot]
23016
22861
  end
23017
- function ____exports.getCircleDiscretizedPoints(self, centerPos, radius, numPoints, xMultiplier, yMultiplier, initialDirection)
23018
- if xMultiplier == nil then
23019
- xMultiplier = 1
23020
- end
23021
- if yMultiplier == nil then
23022
- yMultiplier = 1
23023
- end
23024
- if initialDirection == nil then
23025
- initialDirection = Direction.UP
23026
- end
23027
- local vector = directionToVector(nil, initialDirection)
23028
- local initialPosition = vector * radius
23029
- local positions = {}
23030
- do
23031
- local i = 0
23032
- while i < numPoints do
23033
- local rotatedPosition = initialPosition:Rotated(i * 360 / numPoints)
23034
- rotatedPosition.X = rotatedPosition.X * xMultiplier
23035
- rotatedPosition.Y = rotatedPosition.Y * yMultiplier
23036
- local positionFromCenter = centerPos + rotatedPosition
23037
- positions[#positions + 1] = positionFromCenter
23038
- i = i + 1
22862
+ function ____exports.getRepentanceDoor(self)
22863
+ local doors = ____exports.getDoors(nil)
22864
+ return __TS__ArrayFind(
22865
+ doors,
22866
+ function(____, door) return ____exports.isRepentanceDoor(nil, door) end
22867
+ )
22868
+ end
22869
+ function ____exports.getRoomShapeDoorSlot(self, roomShape, x, y)
22870
+ local doorSlotCoordinates = ROOM_SHAPE_TO_DOOR_SLOT_COORDINATES[roomShape]
22871
+ for ____, ____value in ipairs(__TS__ObjectEntries(doorSlotCoordinates)) do
22872
+ local doorSlotString = ____value[1]
22873
+ local coordinates = ____value[2]
22874
+ local doorSlot = tonumber(doorSlotString)
22875
+ local doorX, doorY = table.unpack(coordinates)
22876
+ if x == doorX and y == doorY then
22877
+ return doorSlot
23039
22878
  end
23040
22879
  end
23041
- return positions
22880
+ return nil
23042
22881
  end
23043
- function ____exports.inRectangle(self, position, topLeft, bottomRight)
23044
- return position.X >= topLeft.X and position.X <= bottomRight.X and position.Y >= topLeft.Y and position.Y <= bottomRight.Y
22882
+ function ____exports.getRoomShapeDoorSlotCoordinates(self, roomShape, doorSlot)
22883
+ local doorSlotCoordinates = ROOM_SHAPE_TO_DOOR_SLOT_COORDINATES[roomShape]
22884
+ return doorSlotCoordinates[doorSlot]
23045
22885
  end
23046
- function ____exports.isCircleIntersectingRectangle(self, circleCenter, circleRadius, rectangleTopLeft, rectangleBottomRight)
23047
- local nearestX = math.max(
23048
- rectangleTopLeft.X,
23049
- math.min(circleCenter.X, rectangleBottomRight.X)
22886
+ function ____exports.getUnusedDoorSlots(self)
22887
+ local room = game:GetRoom()
22888
+ return __TS__ArrayFilter(
22889
+ DOOR_SLOT_VALUES,
22890
+ function(____, doorSlot) return doorSlot ~= DoorSlot.NO_DOOR_SLOT and room:IsDoorSlotAllowed(doorSlot) and room:GetDoor(doorSlot) == nil end
23050
22891
  )
23051
- local nearestY = math.max(
23052
- rectangleTopLeft.Y,
23053
- math.min(circleCenter.Y, rectangleBottomRight.Y)
22892
+ end
22893
+ function ____exports.hasDoorType(self, ...)
22894
+ local roomTypes = {...}
22895
+ local doors = ____exports.getDoors(nil)
22896
+ local doorsOfThisRoomType = __TS__ArrayFilter(
22897
+ doors,
22898
+ function(____, door) return __TS__ArraySome(
22899
+ roomTypes,
22900
+ function(____, roomType) return door:IsRoomType(roomType) end
22901
+ ) end
23054
22902
  )
23055
- local nearestPointToCircleOnRectangle = Vector(nearestX, nearestY)
23056
- local distanceToCenterOfCircle = nearestPointToCircleOnRectangle:Distance(circleCenter)
23057
- return distanceToCenterOfCircle <= circleRadius
22903
+ return #doorsOfThisRoomType > 0
23058
22904
  end
23059
- function ____exports.isEven(self, num)
23060
- return num & 1 == 0
22905
+ function ____exports.hasUnusedDoorSlot(self)
22906
+ local unusedDoorSlots = ____exports.getUnusedDoorSlots(nil)
22907
+ return #unusedDoorSlots > 0
23061
22908
  end
23062
- function ____exports.isOdd(self, num)
23063
- return num & 1 == 1
22909
+ function ____exports.isAngelRoomDoor(self, door)
22910
+ return door.TargetRoomType == RoomType.ANGEL
23064
22911
  end
23065
- function ____exports.lerp(self, a, b, pos)
23066
- return a + (b - a) * pos
22912
+ function ____exports.isDevilRoomDoor(self, door)
22913
+ return door.TargetRoomType == RoomType.DEVIL
23067
22914
  end
23068
- function ____exports.lerpAngleDegrees(self, aStart, aEnd, percent)
23069
- return aStart + ____exports.getAngleDifference(nil, aStart, aEnd) * percent
22915
+ function ____exports.isDoorSlotInRoomShape(self, doorSlot, roomShape)
22916
+ local doorSlots = ____exports.getDoorSlotsForRoomShape(nil, roomShape)
22917
+ return doorSlots:has(doorSlot)
23070
22918
  end
23071
- function ____exports.round(self, num, numDecimalPlaces)
23072
- if numDecimalPlaces == nil then
23073
- numDecimalPlaces = 0
22919
+ function ____exports.isDoorToDownpour(self, door)
22920
+ if not ____exports.isRepentanceDoor(nil, door) then
22921
+ return false
23074
22922
  end
23075
- local roundedNum = tonumber(string.format(
23076
- ("%." .. tostring(numDecimalPlaces)) .. "f",
23077
- num
23078
- ))
23079
- return roundedNum == nil and 0 or roundedNum
22923
+ local sprite = door:GetSprite()
22924
+ local fileName = sprite:GetFilename()
22925
+ return string.lower(fileName) == "gfx/grid/door_downpour.anm2"
23080
22926
  end
23081
- function ____exports.sign(self, n)
23082
- if n > 0 then
23083
- return 1
23084
- end
23085
- if n < 0 then
23086
- return -1
22927
+ function ____exports.isDoorToMausoleum(self, door)
22928
+ if not ____exports.isRepentanceDoor(nil, door) then
22929
+ return false
23087
22930
  end
23088
- return 0
22931
+ local sprite = door:GetSprite()
22932
+ local fileName = sprite:GetFilename()
22933
+ return string.lower(fileName) == "gfx/grid/door_mausoleum.anm2"
23089
22934
  end
23090
- function ____exports.tanh(self, x)
23091
- return (math.exp(x) - math.exp(-x)) / (math.exp(x) + math.exp(-x))
22935
+ function ____exports.isDoorToMausoleumAscent(self, door)
22936
+ if not ____exports.isRepentanceDoor(nil, door) then
22937
+ return false
22938
+ end
22939
+ local sprite = door:GetSprite()
22940
+ local fileName = sprite:GetFilename()
22941
+ return string.lower(fileName) == "gfx/grid/door_mausoleum_alt.anm2"
23092
22942
  end
23093
- return ____exports
23094
- end,
23095
- ["src.functions.effects"] = function(...)
23096
- local ____exports = {}
23097
- local ____math = require("src.functions.math")
23098
- local inRectangle = ____math.inRectangle
23099
- ____exports.DICE_FLOOR_TRIGGER_SQUARE_SIZE = 75
23100
- function ____exports.isCloseEnoughToTriggerDiceFloor(self, player, diceFloor)
23101
- local topLeft = diceFloor.Position + Vector(-____exports.DICE_FLOOR_TRIGGER_SQUARE_SIZE, -____exports.DICE_FLOOR_TRIGGER_SQUARE_SIZE)
23102
- local bottomRight = diceFloor.Position + Vector(____exports.DICE_FLOOR_TRIGGER_SQUARE_SIZE, ____exports.DICE_FLOOR_TRIGGER_SQUARE_SIZE)
23103
- return inRectangle(nil, player.Position, topLeft, bottomRight)
22943
+ function ____exports.isDoorToMines(self, door)
22944
+ if not ____exports.isRepentanceDoor(nil, door) then
22945
+ return false
22946
+ end
22947
+ local sprite = door:GetSprite()
22948
+ local fileName = sprite:GetFilename()
22949
+ return string.lower(fileName) == "gfx/grid/door_mines.anm2"
23104
22950
  end
23105
- return ____exports
23106
- end,
23107
- ["src.classes.callbacks.PostDiceRoomActivated"] = function(...)
23108
- local ____lualib = require("lualib_bundle")
23109
- local __TS__Class = ____lualib.__TS__Class
23110
- local __TS__ClassExtends = ____lualib.__TS__ClassExtends
23111
- local ____exports = {}
23112
- local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
23113
- local EffectVariant = ____isaac_2Dtypescript_2Ddefinitions.EffectVariant
23114
- local ModCallback = ____isaac_2Dtypescript_2Ddefinitions.ModCallback
23115
- local ____effects = require("src.functions.effects")
23116
- local isCloseEnoughToTriggerDiceFloor = ____effects.isCloseEnoughToTriggerDiceFloor
23117
- local ____players = require("src.functions.players")
23118
- local getClosestPlayer = ____players.getClosestPlayer
23119
- local ____CustomCallback = require("src.classes.private.CustomCallback")
23120
- local CustomCallback = ____CustomCallback.CustomCallback
23121
- local v = {room = {diceRoomActivated = false}}
23122
- ____exports.PostDiceRoomActivated = __TS__Class()
23123
- local PostDiceRoomActivated = ____exports.PostDiceRoomActivated
23124
- PostDiceRoomActivated.name = "PostDiceRoomActivated"
23125
- __TS__ClassExtends(PostDiceRoomActivated, CustomCallback)
23126
- function PostDiceRoomActivated.prototype.____constructor(self)
23127
- CustomCallback.prototype.____constructor(self)
23128
- self.v = v
23129
- self.shouldFire = function(____, fireArgs, optionalArgs)
23130
- local _player, diceFloorSubType = table.unpack(fireArgs)
23131
- local callbackDiceFloorSubType = table.unpack(optionalArgs)
23132
- return callbackDiceFloorSubType == nil or diceFloorSubType == callbackDiceFloorSubType
22951
+ function ____exports.isDoorToMomsHeart(self, door)
22952
+ if not ____exports.isRepentanceDoor(nil, door) then
22953
+ return false
23133
22954
  end
23134
- self.postEffectUpdateDiceFloor = function(____, effect)
23135
- if v.room.diceRoomActivated then
23136
- return
23137
- end
23138
- if effect.FrameCount == 0 then
23139
- return
23140
- end
23141
- local closestPlayer = getClosestPlayer(nil, effect.Position)
23142
- if isCloseEnoughToTriggerDiceFloor(nil, closestPlayer, effect) then
23143
- v.room.diceRoomActivated = true
23144
- self:fire(closestPlayer, effect.SubType)
23145
- end
22955
+ local sprite = door:GetSprite()
22956
+ local fileName = sprite:GetFilename()
22957
+ return string.lower(fileName) == "gfx/grid/door_momsheart.anm2"
22958
+ end
22959
+ function ____exports.isHiddenSecretRoomDoor(self, door)
22960
+ local sprite = door:GetSprite()
22961
+ local animation = sprite:GetAnimation()
22962
+ return ____exports.isSecretRoomDoor(nil, door) and animation == "Hidden"
22963
+ end
22964
+ function ____exports.lockDoor(self, door)
22965
+ local level = game:GetLevel()
22966
+ local roomDescriptor = level:GetRoomByIdx(door.TargetRoomIndex)
22967
+ roomDescriptor.VisitedCount = 0
22968
+ door:SetVariant(DoorVariant.LOCKED)
22969
+ door:SetLocked(true)
22970
+ door:Close(true)
22971
+ end
22972
+ function ____exports.openAllDoors(self)
22973
+ for ____, door in ipairs(____exports.getDoors(nil)) do
22974
+ door:Open()
23146
22975
  end
23147
- self.callbacksUsed = {{ModCallback.POST_EFFECT_UPDATE, self.postEffectUpdateDiceFloor, {EffectVariant.DICE_FLOOR}}}
22976
+ end
22977
+ function ____exports.openDoorFast(self, door)
22978
+ door.State = DoorState.OPEN
22979
+ local sprite = door:GetSprite()
22980
+ sprite:Play("Opened", true)
22981
+ end
22982
+ function ____exports.removeAllDoors(self, ...)
22983
+ local doors = ____exports.getDoors(nil, ...)
22984
+ ____exports.removeDoors(
22985
+ nil,
22986
+ table.unpack(doors)
22987
+ )
22988
+ return #doors
23148
22989
  end
23149
22990
  return ____exports
23150
22991
  end,
@@ -26486,6 +26327,101 @@ ____exports.MINE_SHAFT_ROOM_SUB_TYPE_SET = __TS__New(ReadonlySet, {
26486
26327
  MinesRoomSubType.MINESHAFT_ROOM_PRE_CHASE,
26487
26328
  MinesRoomSubType.MINESHAFT_ROOM_POST_CHASE
26488
26329
  })
26330
+ return ____exports
26331
+ end,
26332
+ ["src.functions.roomData"] = function(...)
26333
+ local ____lualib = require("lualib_bundle")
26334
+ local Set = ____lualib.Set
26335
+ local __TS__New = ____lualib.__TS__New
26336
+ local ____exports = {}
26337
+ local ____cachedEnumValues = require("src.arrays.cachedEnumValues")
26338
+ local DOOR_SLOT_FLAG_VALUES = ____cachedEnumValues.DOOR_SLOT_FLAG_VALUES
26339
+ local ____cachedClasses = require("src.core.cachedClasses")
26340
+ local game = ____cachedClasses.game
26341
+ local ____doors = require("src.functions.doors")
26342
+ local doorSlotFlagToDoorSlot = ____doors.doorSlotFlagToDoorSlot
26343
+ local ____flag = require("src.functions.flag")
26344
+ local hasFlag = ____flag.hasFlag
26345
+ function ____exports.getRoomData(self, roomGridIndex)
26346
+ local roomDescriptor = ____exports.getRoomDescriptor(nil, roomGridIndex)
26347
+ return roomDescriptor.Data
26348
+ end
26349
+ function ____exports.getRoomDescriptor(self, roomGridIndex)
26350
+ local level = game:GetLevel()
26351
+ if roomGridIndex == nil then
26352
+ roomGridIndex = ____exports.getRoomGridIndex(nil)
26353
+ end
26354
+ return level:GetRoomByIdx(roomGridIndex)
26355
+ end
26356
+ function ____exports.getRoomDescriptorReadOnly(self)
26357
+ local level = game:GetLevel()
26358
+ return level:GetCurrentRoomDesc()
26359
+ end
26360
+ function ____exports.getRoomGridIndex(self)
26361
+ local level = game:GetLevel()
26362
+ local currentRoomIndex = level:GetCurrentRoomIndex()
26363
+ if currentRoomIndex < 0 then
26364
+ return currentRoomIndex
26365
+ end
26366
+ local roomDescriptor = ____exports.getRoomDescriptorReadOnly(nil)
26367
+ return roomDescriptor.SafeGridIndex
26368
+ end
26369
+ function ____exports.getRoomAllowedDoors(self, roomGridIndex)
26370
+ local allowedDoors = __TS__New(Set)
26371
+ local roomData = ____exports.getRoomData(nil, roomGridIndex)
26372
+ if roomData == nil then
26373
+ return allowedDoors
26374
+ end
26375
+ for ____, doorSlotFlag in ipairs(DOOR_SLOT_FLAG_VALUES) do
26376
+ if hasFlag(nil, roomData.Doors, doorSlotFlag) then
26377
+ local doorSlot = doorSlotFlagToDoorSlot(nil, doorSlotFlag)
26378
+ allowedDoors:add(doorSlot)
26379
+ end
26380
+ end
26381
+ return allowedDoors
26382
+ end
26383
+ function ____exports.getRoomListIndex(self, roomGridIndex)
26384
+ local roomDescriptor = ____exports.getRoomDescriptor(nil, roomGridIndex)
26385
+ return roomDescriptor.ListIndex
26386
+ end
26387
+ function ____exports.getRoomName(self, roomGridIndex)
26388
+ local roomData = ____exports.getRoomData(nil, roomGridIndex)
26389
+ return roomData == nil and "Unknown" or roomData.Name
26390
+ end
26391
+ function ____exports.getRoomShape(self, roomGridIndex)
26392
+ local roomData = ____exports.getRoomData(nil, roomGridIndex)
26393
+ local ____temp_0
26394
+ if roomData == nil then
26395
+ ____temp_0 = nil
26396
+ else
26397
+ ____temp_0 = roomData.Shape
26398
+ end
26399
+ return ____temp_0
26400
+ end
26401
+ function ____exports.getRoomStageID(self, roomGridIndex)
26402
+ local roomData = ____exports.getRoomData(nil, roomGridIndex)
26403
+ return roomData == nil and -1 or roomData.StageID
26404
+ end
26405
+ function ____exports.getRoomSubType(self, roomGridIndex)
26406
+ local roomData = ____exports.getRoomData(nil, roomGridIndex)
26407
+ return roomData == nil and -1 or roomData.Subtype
26408
+ end
26409
+ function ____exports.getRoomType(self, roomGridIndex)
26410
+ local roomData = ____exports.getRoomData(nil, roomGridIndex)
26411
+ return roomData == nil and -1 or roomData.Type
26412
+ end
26413
+ function ____exports.getRoomVariant(self, roomGridIndex)
26414
+ local roomData = ____exports.getRoomData(nil, roomGridIndex)
26415
+ return roomData == nil and -1 or roomData.Variant
26416
+ end
26417
+ function ____exports.getRoomVisitedCount(self, roomGridIndex)
26418
+ local roomDescriptor = ____exports.getRoomDescriptor(nil, roomGridIndex)
26419
+ return roomDescriptor.VisitedCount
26420
+ end
26421
+ function ____exports.setRoomData(self, roomGridIndex, roomData)
26422
+ local roomDescriptor = ____exports.getRoomDescriptor(nil, roomGridIndex)
26423
+ roomDescriptor.Data = roomData
26424
+ end
26489
26425
  return ____exports
26490
26426
  end,
26491
26427
  ["src.functions.dimensions"] = function(...)
@@ -32768,11 +32704,6 @@ do
32768
32704
  local PostCollectibleEmpty = ____PostCollectibleEmpty.PostCollectibleEmpty
32769
32705
  ____exports.PostCollectibleEmpty = PostCollectibleEmpty
32770
32706
  end
32771
- do
32772
- local ____PostCollectibleInitFirst = require("src.classes.callbacks.PostCollectibleInitFirst")
32773
- local PostCollectibleInitFirst = ____PostCollectibleInitFirst.PostCollectibleInitFirst
32774
- ____exports.PostCollectibleInitFirst = PostCollectibleInitFirst
32775
- end
32776
32707
  do
32777
32708
  local ____PostCursedTeleport = require("src.classes.callbacks.PostCursedTeleport")
32778
32709
  local PostCursedTeleport = ____PostCursedTeleport.PostCursedTeleport
@@ -33432,7 +33363,6 @@ local MOD_CALLBACK_CUSTOM_TO_CLASS = {
33432
33363
  [ModCallbackCustom.POST_BOMB_UPDATE_FILTER] = cc.PostBombUpdateFilter,
33433
33364
  [ModCallbackCustom.POST_BONE_SWING] = cc.PostBoneSwing,
33434
33365
  [ModCallbackCustom.POST_COLLECTIBLE_EMPTY] = cc.PostCollectibleEmpty,
33435
- [ModCallbackCustom.POST_COLLECTIBLE_INIT_FIRST] = cc.PostCollectibleInitFirst,
33436
33366
  [ModCallbackCustom.POST_CURSED_TELEPORT] = cc.PostCursedTeleport,
33437
33367
  [ModCallbackCustom.POST_CUSTOM_REVIVE] = cc.PostCustomRevive,
33438
33368
  [ModCallbackCustom.POST_DICE_ROOM_ACTIVATED] = cc.PostDiceRoomActivated,
@@ -34314,13 +34244,13 @@ function EsauJrDetection.prototype.____constructor(self, postEsauJr, postFirstEs
34314
34244
  end
34315
34245
  self.postEsauJr:fire(player)
34316
34246
  end
34317
- self.useItemEsauJr = function(____, _collectibleType, _rng, player, _useFlags, _activeSlot, _customVarData)
34247
+ self.postUseItemEsauJr = function(____, _collectibleType, _rng, player, _useFlags, _activeSlot, _customVarData)
34318
34248
  local gameFrameCount = game:GetFrameCount()
34319
34249
  v.run.usedEsauJrFrame = gameFrameCount + 1
34320
34250
  v.run.usedEsauJrControllerIndex = player.ControllerIndex
34321
34251
  return nil
34322
34252
  end
34323
- self.callbacksUsed = {{ModCallback.POST_UPDATE, self.postUpdate}, {ModCallback.POST_USE_ITEM, self.useItemEsauJr, {CollectibleType.ESAU_JR}}}
34253
+ self.callbacksUsed = {{ModCallback.POST_UPDATE, self.postUpdate}, {ModCallback.POST_USE_ITEM, self.postUseItemEsauJr, {CollectibleType.ESAU_JR}}}
34324
34254
  self.postEsauJr = postEsauJr
34325
34255
  self.postFirstEsauJr = postFirstEsauJr
34326
34256
  end
@@ -34366,7 +34296,7 @@ __TS__ClassExtends(FlipDetection, Feature)
34366
34296
  function FlipDetection.prototype.____constructor(self, postFlip, postFirstFlip)
34367
34297
  Feature.prototype.____constructor(self)
34368
34298
  self.v = v
34369
- self.useItemFlip = function(____, _collectibleType, _rng, player, _useFlags, _activeSlot, _customVarData)
34299
+ self.postUseItemFlip = function(____, _collectibleType, _rng, player, _useFlags, _activeSlot, _customVarData)
34370
34300
  if not isTaintedLazarus(nil, player) then
34371
34301
  return nil
34372
34302
  end
@@ -34381,7 +34311,7 @@ function FlipDetection.prototype.____constructor(self, postFlip, postFirstFlip)
34381
34311
  self.postFlip:fire(newLazarus, player)
34382
34312
  return nil
34383
34313
  end
34384
- self.callbacksUsed = {{ModCallback.POST_USE_ITEM, self.useItemFlip, {CollectibleType.FLIP}}}
34314
+ self.callbacksUsed = {{ModCallback.POST_USE_ITEM, self.postUseItemFlip, {CollectibleType.FLIP}}}
34385
34315
  self.postFlip = postFlip
34386
34316
  self.postFirstFlip = postFirstFlip
34387
34317
  end
@@ -34413,7 +34343,7 @@ function GameReorderedCallbacks.prototype.____constructor(self, postGameStartedR
34413
34343
  self.usedGlowingHourGlass = false
34414
34344
  self.forceNewLevel = false
34415
34345
  self.forceNewRoom = false
34416
- self.useItemGlowingHourGlass = function()
34346
+ self.postUseItemGlowingHourGlass = function()
34417
34347
  self.usedGlowingHourGlass = true
34418
34348
  return nil
34419
34349
  end
@@ -34466,7 +34396,7 @@ function GameReorderedCallbacks.prototype.____constructor(self, postGameStartedR
34466
34396
  self.forceNewRoom = false
34467
34397
  self.postNewRoomReordered:fire(roomType)
34468
34398
  end
34469
- self.callbacksUsed = {{ModCallback.POST_USE_ITEM, self.useItemGlowingHourGlass, {CollectibleType.GLOWING_HOUR_GLASS}}, {ModCallback.POST_GAME_STARTED, self.postGameStarted}, {ModCallback.POST_NEW_LEVEL, self.postNewLevel}, {ModCallback.POST_NEW_ROOM, self.postNewRoom}}
34399
+ self.callbacksUsed = {{ModCallback.POST_USE_ITEM, self.postUseItemGlowingHourGlass, {CollectibleType.GLOWING_HOUR_GLASS}}, {ModCallback.POST_GAME_STARTED, self.postGameStarted}, {ModCallback.POST_NEW_LEVEL, self.postNewLevel}, {ModCallback.POST_NEW_ROOM, self.postNewRoom}}
34470
34400
  self.postGameStartedReordered = postGameStartedReordered
34471
34401
  self.postNewLevelReordered = postNewLevelReordered
34472
34402
  self.postNewRoomReordered = postNewRoomReordered
@@ -38190,7 +38120,7 @@ __TS__ClassExtends(PlayerCollectibleDetection, Feature)
38190
38120
  function PlayerCollectibleDetection.prototype.____constructor(self, postPlayerCollectibleAdded, postPlayerCollectibleRemoved, moddedElementSets, runInNFrames)
38191
38121
  Feature.prototype.____constructor(self)
38192
38122
  self.v = v
38193
- self.useItemD4 = function(____, _collectibleType, _rng, player)
38123
+ self.postUseItemD4 = function(____, _collectibleType, _rng, player)
38194
38124
  self:updateCollectibleMapAndFire(player, nil)
38195
38125
  return nil
38196
38126
  end
@@ -38233,7 +38163,7 @@ function PlayerCollectibleDetection.prototype.____constructor(self, postPlayerCo
38233
38163
  end
38234
38164
  end
38235
38165
  self.featuresUsed = {ISCFeature.MODDED_ELEMENT_SETS, ISCFeature.RUN_IN_N_FRAMES}
38236
- self.callbacksUsed = {{ModCallback.POST_USE_ITEM, self.useItemD4, {CollectibleType.D4}}}
38166
+ self.callbacksUsed = {{ModCallback.POST_USE_ITEM, self.postUseItemD4, {CollectibleType.D4}}}
38237
38167
  self.customCallbacksUsed = {{ModCallbackCustom.ENTITY_TAKE_DMG_PLAYER, self.entityTakeDmgPlayer}, {ModCallbackCustom.POST_ITEM_PICKUP, self.postItemPickup}, {ModCallbackCustom.POST_PEFFECT_UPDATE_REORDERED, self.postPEffectUpdateReordered}}
38238
38168
  self.postPlayerCollectibleAdded = postPlayerCollectibleAdded
38239
38169
  self.postPlayerCollectibleRemoved = postPlayerCollectibleRemoved
@@ -46177,70 +46107,111 @@ return ____exports
46177
46107
  end,
46178
46108
  ["src.classes.features.other.PreventCollectibleRotation"] = function(...)
46179
46109
  local ____lualib = require("lualib_bundle")
46180
- local Map = ____lualib.Map
46181
46110
  local __TS__New = ____lualib.__TS__New
46111
+ local Map = ____lualib.Map
46182
46112
  local __TS__Class = ____lualib.__TS__Class
46183
46113
  local __TS__ClassExtends = ____lualib.__TS__ClassExtends
46184
46114
  local __TS__Decorate = ____lualib.__TS__Decorate
46185
46115
  local ____exports = {}
46186
- local getMapIndex
46116
+ local markRollFrame, v
46187
46117
  local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
46188
46118
  local CardType = ____isaac_2Dtypescript_2Ddefinitions.CardType
46189
46119
  local CollectibleType = ____isaac_2Dtypescript_2Ddefinitions.CollectibleType
46120
+ local DiceFloorSubType = ____isaac_2Dtypescript_2Ddefinitions.DiceFloorSubType
46190
46121
  local ModCallback = ____isaac_2Dtypescript_2Ddefinitions.ModCallback
46191
46122
  local PickupVariant = ____isaac_2Dtypescript_2Ddefinitions.PickupVariant
46192
46123
  local ____cachedClasses = require("src.core.cachedClasses")
46193
46124
  local game = ____cachedClasses.game
46194
46125
  local ____decorators = require("src.decorators")
46195
46126
  local Exported = ____decorators.Exported
46127
+ local ____ISCFeature = require("src.enums.ISCFeature")
46128
+ local ISCFeature = ____ISCFeature.ISCFeature
46129
+ local ____ModCallbackCustom = require("src.enums.ModCallbackCustom")
46130
+ local ModCallbackCustom = ____ModCallbackCustom.ModCallbackCustom
46196
46131
  local ____collectibles = require("src.functions.collectibles")
46197
46132
  local setCollectibleSubType = ____collectibles.setCollectibleSubType
46198
46133
  local ____entities = require("src.functions.entities")
46199
46134
  local getEntityID = ____entities.getEntityID
46135
+ local ____pickupsSpecific = require("src.functions.pickupsSpecific")
46136
+ local getCollectibles = ____pickupsSpecific.getCollectibles
46200
46137
  local ____pickupVariants = require("src.functions.pickupVariants")
46201
46138
  local isCollectible = ____pickupVariants.isCollectible
46139
+ local ____types = require("src.functions.types")
46140
+ local asCollectibleType = ____types.asCollectibleType
46141
+ local ____ReadonlySet = require("src.types.ReadonlySet")
46142
+ local ReadonlySet = ____ReadonlySet.ReadonlySet
46202
46143
  local ____Feature = require("src.classes.private.Feature")
46203
46144
  local Feature = ____Feature.Feature
46204
- function getMapIndex(self, collectible)
46205
- local room = game:GetRoom()
46206
- local gridIndex = room:GetGridIndex(collectible.Position)
46207
- return (tostring(gridIndex) .. ",") .. tostring(collectible.InitSeed)
46208
- end
46209
- local v = {room = {trackedCollectibles = __TS__New(Map)}}
46145
+ function markRollFrame(self)
46146
+ v.run.rollGameFrame = game:GetFrameCount()
46147
+ end
46148
+ local ROLL_COLLECTIBLE_TYPES = __TS__New(ReadonlySet, {CollectibleType.D6, CollectibleType.ETERNAL_D6, CollectibleType.SPINDOWN_DICE})
46149
+ local ROLL_FLOOR_DICE_FLOOR_SUB_TYPES = __TS__New(ReadonlySet, {DiceFloorSubType.FOUR_PIP, DiceFloorSubType.SIX_PIP})
46150
+ v = {run = {
46151
+ trackedCollectibles = __TS__New(Map),
46152
+ rollGameFrame = nil
46153
+ }}
46210
46154
  ____exports.PreventCollectibleRotation = __TS__Class()
46211
46155
  local PreventCollectibleRotation = ____exports.PreventCollectibleRotation
46212
46156
  PreventCollectibleRotation.name = "PreventCollectibleRotation"
46213
46157
  __TS__ClassExtends(PreventCollectibleRotation, Feature)
46214
- function PreventCollectibleRotation.prototype.____constructor(self)
46158
+ function PreventCollectibleRotation.prototype.____constructor(self, pickupIndexCreation)
46215
46159
  Feature.prototype.____constructor(self)
46216
46160
  self.v = v
46217
- self.useCardSoulOfIsaac = function()
46218
- v.room.trackedCollectibles:clear()
46161
+ self.preUseItem = function(____, collectibleType)
46162
+ if ROLL_COLLECTIBLE_TYPES:has(collectibleType) then
46163
+ markRollFrame(nil)
46164
+ end
46165
+ return nil
46219
46166
  end
46220
- self.postPickupUpdateCollectible = function(____, pickup)
46221
- local collectible = pickup
46222
- self:checkCollectibleRotated(collectible)
46167
+ self.postUseCardSoulOfIsaac = function()
46168
+ local collectibles = getCollectibles(nil)
46169
+ for ____, collectible in ipairs(collectibles) do
46170
+ local pickupIndex = self.pickupIndexCreation:getPickupIndex(collectible)
46171
+ v.run.trackedCollectibles:delete(pickupIndex)
46172
+ end
46223
46173
  end
46224
- self.callbacksUsed = {{ModCallback.POST_USE_CARD, self.useCardSoulOfIsaac, {CardType.SOUL_ISAAC}}, {ModCallback.POST_PICKUP_UPDATE, self.postPickupUpdateCollectible, {PickupVariant.COLLECTIBLE}}}
46225
- end
46226
- function PreventCollectibleRotation.prototype.checkCollectibleRotated(self, collectible)
46227
- if collectible.SubType == CollectibleType.NULL then
46228
- return
46174
+ self.postDiceRoomActivated = function(____, _player, diceFloorSubType)
46175
+ if ROLL_FLOOR_DICE_FLOOR_SUB_TYPES:has(diceFloorSubType) then
46176
+ v.run.trackedCollectibles:clear()
46177
+ end
46229
46178
  end
46230
- local index = getMapIndex(nil, collectible)
46231
- local trackedCollectibleType = v.room.trackedCollectibles:get(index)
46232
- if trackedCollectibleType ~= nil and collectible.SubType ~= trackedCollectibleType then
46233
- setCollectibleSubType(nil, collectible, trackedCollectibleType)
46179
+ self.postPickupChanged = function(____, pickup, oldVariant, _oldSubType, newVariant, newSubType)
46180
+ if oldVariant ~= PickupVariant.COLLECTIBLE or newVariant ~= PickupVariant.COLLECTIBLE then
46181
+ return
46182
+ end
46183
+ if asCollectibleType(nil, newSubType) == CollectibleType.NULL then
46184
+ return
46185
+ end
46186
+ local pickupIndex = self.pickupIndexCreation:getPickupIndex(pickup)
46187
+ local trackedCollectibleType = v.run.trackedCollectibles:get(pickupIndex)
46188
+ if trackedCollectibleType == nil then
46189
+ return
46190
+ end
46191
+ local gameFrameCount = game:GetFrameCount()
46192
+ if gameFrameCount == v.run.rollGameFrame then
46193
+ v.run.trackedCollectibles:delete(pickupIndex)
46194
+ return
46195
+ end
46196
+ if trackedCollectibleType ~= asCollectibleType(nil, newSubType) then
46197
+ setCollectibleSubType(nil, pickup, trackedCollectibleType)
46198
+ end
46234
46199
  end
46200
+ self.featuresUsed = {ISCFeature.PICKUP_INDEX_CREATION}
46201
+ self.callbacksUsed = {{ModCallback.POST_USE_CARD, self.postUseCardSoulOfIsaac, {CardType.SOUL_ISAAC}}, {ModCallback.PRE_USE_ITEM, self.preUseItem}}
46202
+ self.customCallbacksUsed = {{ModCallbackCustom.POST_DICE_ROOM_ACTIVATED, self.postDiceRoomActivated}, {ModCallbackCustom.POST_PICKUP_CHANGED, self.postPickupChanged}}
46203
+ self.pickupIndexCreation = pickupIndexCreation
46235
46204
  end
46236
46205
  function PreventCollectibleRotation.prototype.preventCollectibleRotation(self, collectible, collectibleType)
46237
46206
  if not isCollectible(nil, collectible) then
46238
46207
  local entityID = getEntityID(nil, collectible)
46239
46208
  error("The \"preventCollectibleRotate\" function was given a non-collectible: " .. entityID)
46240
46209
  end
46241
- local index = getMapIndex(nil, collectible)
46242
- v.room.trackedCollectibles:set(index, collectibleType)
46243
- self:checkCollectibleRotated(collectible)
46210
+ local pickupIndex = self.pickupIndexCreation:getPickupIndex(collectible)
46211
+ v.run.trackedCollectibles:set(pickupIndex, collectibleType)
46212
+ if collectible.SubType ~= collectibleType then
46213
+ setCollectibleSubType(nil, collectible, collectibleType)
46214
+ end
46244
46215
  end
46245
46216
  __TS__Decorate({Exported}, PreventCollectibleRotation.prototype, "preventCollectibleRotation", true)
46246
46217
  return ____exports
@@ -51542,18 +51513,18 @@ function ____exports.getFeatures(self, mod, callbacks)
51542
51513
  local moddedElementDetection = __TS__New(ModdedElementDetection)
51543
51514
  local ponyDetection = __TS__New(PonyDetection)
51544
51515
  local pressInput = __TS__New(PressInput)
51545
- local preventCollectibleRotation = __TS__New(PreventCollectibleRotation)
51546
51516
  local roomClearFrame = __TS__New(RoomClearFrame)
51547
51517
  local roomHistory = __TS__New(RoomHistory)
51548
51518
  local runNextRoom = __TS__New(RunNextRoom)
51549
51519
  local saveDataManager = __TS__New(SaveDataManager, mod)
51550
51520
  local stageHistory = __TS__New(StageHistory)
51551
51521
  local runInNFrames = __TS__New(RunInNFrames, roomHistory)
51522
+ local pickupIndexCreation = __TS__New(PickupIndexCreation, roomHistory, saveDataManager)
51523
+ local preventCollectibleRotation = __TS__New(PreventCollectibleRotation, pickupIndexCreation)
51552
51524
  local customGridEntities = __TS__New(CustomGridEntities, runInNFrames)
51553
51525
  local moddedElementSets = __TS__New(ModdedElementSets, moddedElementDetection)
51554
51526
  local itemPoolDetection = __TS__New(ItemPoolDetection, moddedElementSets)
51555
51527
  local pause = __TS__New(Pause, disableInputs)
51556
- local pickupIndexCreation = __TS__New(PickupIndexCreation, roomHistory, saveDataManager)
51557
51528
  local preventGridEntityRespawn = __TS__New(PreventGridEntityRespawn, runInNFrames)
51558
51529
  local spawnCollectible = __TS__New(SpawnCollectible, preventCollectibleRotation)
51559
51530
  local customTrapdoors = __TS__New(