isaacscript-common 51.4.0 → 51.5.1

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.
@@ -8120,6 +8120,12 @@ export declare function includes<T>(array: T[], element: T): boolean;
8120
8120
  */
8121
8121
  export declare function inCrawlSpace(): boolean;
8122
8122
 
8123
+ /**
8124
+ * Helper function for checking whether the current room is a crawl space with a door corresponding
8125
+ * to `DoorSlotFlag.RIGHT_0` (1 << 2).
8126
+ */
8127
+ export declare function inCrawlSpaceWithBlackMarketEntrance(): boolean;
8128
+
8123
8129
  /**
8124
8130
  * Helper type to add one to a number type.
8125
8131
  *
@@ -8714,6 +8720,12 @@ export declare function isCopyableIsaacAPIClass(object: unknown): object is Copy
8714
8720
  */
8715
8721
  export declare function isCrawlSpace(roomData: RoomConfig): boolean;
8716
8722
 
8723
+ /**
8724
+ * Helper function for checking whether the provided room is a crawl space with a door corresponding
8725
+ * to `DoorSlotFlag.RIGHT_0` (1 << 2).
8726
+ */
8727
+ export declare function isCrawlSpaceWithBlackMarketEntrance(roomData: RoomConfig): boolean;
8728
+
8717
8729
  /**
8718
8730
  * Helper function to distinguish between a normal Daddy Long Legs / Triachnid and the child entity
8719
8731
  * that is spawned when the boss does the multi-stomp attack.
@@ -1,6 +1,6 @@
1
1
  --[[
2
2
 
3
- isaacscript-common 51.4.0
3
+ isaacscript-common 51.5.1
4
4
 
5
5
  This is the "isaacscript-common" library, which was created with the IsaacScript tool.
6
6
 
@@ -5073,7 +5073,7 @@ ____exports.LaserVariant.GIANT_BRIMSTONE_TECHNOLOGY = 15
5073
5073
  ____exports.LaserVariant[____exports.LaserVariant.GIANT_BRIMSTONE_TECHNOLOGY] = "GIANT_BRIMSTONE_TECHNOLOGY"
5074
5074
  --- For `EntityType.KNIFE` (8).
5075
5075
  ____exports.KnifeVariant = {}
5076
- ____exports.KnifeVariant.MOMS_KNIFE = 8
5076
+ ____exports.KnifeVariant.MOMS_KNIFE = 0
5077
5077
  ____exports.KnifeVariant[____exports.KnifeVariant.MOMS_KNIFE] = "MOMS_KNIFE"
5078
5078
  ____exports.KnifeVariant.BONE_CLUB = 1
5079
5079
  ____exports.KnifeVariant[____exports.KnifeVariant.BONE_CLUB] = "BONE_CLUB"
@@ -27887,6 +27887,7 @@ local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescri
27887
27887
  local AngelRoomSubType = ____isaac_2Dtypescript_2Ddefinitions.AngelRoomSubType
27888
27888
  local Dimension = ____isaac_2Dtypescript_2Ddefinitions.Dimension
27889
27889
  local DoorSlot = ____isaac_2Dtypescript_2Ddefinitions.DoorSlot
27890
+ local DoorSlotFlag = ____isaac_2Dtypescript_2Ddefinitions.DoorSlotFlag
27890
27891
  local DownpourRoomSubType = ____isaac_2Dtypescript_2Ddefinitions.DownpourRoomSubType
27891
27892
  local DungeonSubType = ____isaac_2Dtypescript_2Ddefinitions.DungeonSubType
27892
27893
  local GridRoom = ____isaac_2Dtypescript_2Ddefinitions.GridRoom
@@ -28000,6 +28001,9 @@ end
28000
28001
  function ____exports.isCrawlSpace(self, roomData)
28001
28002
  return roomData.Type == RoomType.DUNGEON and roomData.Subtype == asNumber(nil, DungeonSubType.NORMAL)
28002
28003
  end
28004
+ function ____exports.isCrawlSpaceWithBlackMarketEntrance(self, roomData)
28005
+ return ____exports.isCrawlSpace(nil, roomData) and hasFlag(nil, roomData.Doors, DoorSlotFlag.RIGHT_0)
28006
+ end
28003
28007
  function ____exports.isDeathCertificateArea(self, roomData)
28004
28008
  return roomData.StageID == StageID.HOME and (roomData.Subtype == asNumber(nil, HomeRoomSubType.DEATH_CERTIFICATE_ENTRANCE) or roomData.Subtype == asNumber(nil, HomeRoomSubType.DEATH_CERTIFICATE_ITEMS))
28005
28009
  end
@@ -28130,6 +28134,10 @@ function ____exports.inCrawlSpace(self)
28130
28134
  local roomData = getRoomData(nil)
28131
28135
  return ____exports.isCrawlSpace(nil, roomData)
28132
28136
  end
28137
+ function ____exports.inCrawlSpaceWithBlackMarketEntrance(self)
28138
+ local roomData = getRoomData(nil)
28139
+ return ____exports.isCrawlSpaceWithBlackMarketEntrance(nil, roomData)
28140
+ end
28133
28141
  function ____exports.inDeathCertificateArea(self)
28134
28142
  local roomData = getRoomData(nil)
28135
28143
  return ____exports.isDeathCertificateArea(nil, roomData)
@@ -28253,12 +28261,12 @@ function ____exports.setRoomCleared(self)
28253
28261
  for ____, door in ipairs(getDoors(nil)) do
28254
28262
  do
28255
28263
  if isHiddenSecretRoomDoor(nil, door) then
28256
- goto __continue78
28264
+ goto __continue80
28257
28265
  end
28258
28266
  openDoorFast(nil, door)
28259
28267
  door.ExtraVisible = false
28260
28268
  end
28261
- ::__continue78::
28269
+ ::__continue80::
28262
28270
  end
28263
28271
  sfxManager:Stop(SoundEffect.DOOR_HEAVY_OPEN)
28264
28272
  game:ShakeScreen(0)
@@ -49560,10 +49568,11 @@ local __TS__Iterator = ____lualib.__TS__Iterator
49560
49568
  local __TS__StringTrim = ____lualib.__TS__StringTrim
49561
49569
  local __TS__StringSplit = ____lualib.__TS__StringSplit
49562
49570
  local ____exports = {}
49563
- local getEntityLogLine, getGridEntityLogLine
49571
+ local getEntityLogLine, getBombVariantName, getEffectVariantName, getFamiliarVariantName, getKnifeVariantName, getLaserVariantName, getEntityTypeName, getPickupVariantName, getPlayerVariantName, getProjectileVariantName, getTearVariantName, getGridEntityLogLine
49564
49572
  local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
49565
49573
  local BombVariant = ____isaac_2Dtypescript_2Ddefinitions.BombVariant
49566
49574
  local EffectVariant = ____isaac_2Dtypescript_2Ddefinitions.EffectVariant
49575
+ local EntityType = ____isaac_2Dtypescript_2Ddefinitions.EntityType
49567
49576
  local FamiliarVariant = ____isaac_2Dtypescript_2Ddefinitions.FamiliarVariant
49568
49577
  local GridEntityType = ____isaac_2Dtypescript_2Ddefinitions.GridEntityType
49569
49578
  local KnifeVariant = ____isaac_2Dtypescript_2Ddefinitions.KnifeVariant
@@ -49592,43 +49601,43 @@ function getEntityLogLine(entity, num)
49592
49601
  msg = msg .. getEntityID(nil, entity)
49593
49602
  local bomb = entity:ToBomb()
49594
49603
  if bomb ~= nil then
49595
- msg = msg .. (" (bomb - BombVariant." .. BombVariant[bomb.Variant]) .. ")"
49604
+ msg = msg .. (" (bomb - " .. getBombVariantName(nil, bomb)) .. ")"
49596
49605
  end
49597
49606
  local effect = entity:ToEffect()
49598
49607
  if effect ~= nil then
49599
- msg = msg .. (((" (effect - EffectVariant." .. EffectVariant[effect.Variant]) .. ") (State: ") .. tostring(effect.State)) .. ")"
49608
+ msg = msg .. (((" (effect - " .. getEffectVariantName(nil, effect)) .. ") (State: ") .. tostring(effect.State)) .. ")"
49600
49609
  end
49601
49610
  local familiar = entity:ToFamiliar()
49602
49611
  if familiar ~= nil then
49603
- msg = msg .. (((" (familiar - FamiliarVariant." .. FamiliarVariant[familiar.Variant]) .. ") (State: ") .. tostring(familiar.State)) .. ")"
49612
+ msg = msg .. (((" (familiar - " .. getFamiliarVariantName(nil, familiar)) .. ") (State: ") .. tostring(familiar.State)) .. ")"
49604
49613
  end
49605
49614
  local knife = entity:ToKnife()
49606
49615
  if knife ~= nil then
49607
- msg = msg .. (" (knife - KnifeVariant." .. KnifeVariant[knife.Variant]) .. ")"
49616
+ msg = msg .. (" (knife - " .. getKnifeVariantName(nil, knife)) .. ")"
49608
49617
  end
49609
49618
  local laser = entity:ToLaser()
49610
49619
  if laser ~= nil then
49611
- msg = msg .. (" (laser - LaserVariant." .. LaserVariant[laser.Variant]) .. ")"
49620
+ msg = msg .. (" (laser - " .. getLaserVariantName(nil, laser)) .. ")"
49612
49621
  end
49613
49622
  local npc = entity:ToNPC()
49614
49623
  if npc ~= nil then
49615
- msg = msg .. (" (NPC) (State: " .. tostring(npc.State)) .. ")"
49624
+ msg = msg .. (((" (NPC - " .. getEntityTypeName(nil, npc)) .. ") (State: ") .. tostring(npc.State)) .. ")"
49616
49625
  end
49617
49626
  local pickup = entity:ToPickup()
49618
49627
  if pickup ~= nil then
49619
- msg = msg .. (((" (pickup - PickupVariant." .. PickupVariant[pickup.Variant]) .. ") (State: ") .. tostring(pickup.State)) .. ")"
49628
+ msg = msg .. (((" (pickup - " .. getPickupVariantName(nil, pickup)) .. ") (State: ") .. tostring(pickup.State)) .. ")"
49620
49629
  end
49621
49630
  local player = entity:ToPlayer()
49622
49631
  if player ~= nil then
49623
- msg = msg .. (" (player - PlayerVariant." .. PlayerVariant[player.Variant]) .. ")"
49632
+ msg = msg .. (" (player - " .. getPlayerVariantName(nil, player)) .. ")"
49624
49633
  end
49625
49634
  local projectile = entity:ToProjectile()
49626
49635
  if projectile ~= nil then
49627
- msg = msg .. (" (projectile - ProjectileVariant." .. ProjectileVariant[projectile.Variant]) .. "))"
49636
+ msg = msg .. (" (projectile - " .. getProjectileVariantName(nil, projectile)) .. ")"
49628
49637
  end
49629
49638
  local tear = entity:ToTear()
49630
49639
  if tear ~= nil then
49631
- msg = msg .. (" (tear - TearVariant." .. TearVariant[tear.Variant]) .. "))"
49640
+ msg = msg .. (" (tear - " .. getTearVariantName(nil, tear)) .. ")"
49632
49641
  end
49633
49642
  msg = msg .. "\n"
49634
49643
  msg = msg .. (" - Index: " .. tostring(entity.Index)) .. "\n"
@@ -49647,6 +49656,46 @@ function getEntityLogLine(entity, num)
49647
49656
  end
49648
49657
  return msg
49649
49658
  end
49659
+ function getBombVariantName(self, bomb)
49660
+ local enumName = BombVariant[bomb.Variant]
49661
+ return enumName == nil and "unknown" or "BombVariant." .. enumName
49662
+ end
49663
+ function getEffectVariantName(self, effect)
49664
+ local enumName = EffectVariant[effect.Variant]
49665
+ return enumName == nil and "unknown" or "EffectVariant." .. enumName
49666
+ end
49667
+ function getFamiliarVariantName(self, familiar)
49668
+ local enumName = FamiliarVariant[familiar.Variant]
49669
+ return enumName == nil and "unknown" or "FamiliarVariant." .. enumName
49670
+ end
49671
+ function getKnifeVariantName(self, knife)
49672
+ local enumName = KnifeVariant[knife.Variant]
49673
+ return enumName == nil and "unknown" or "KnifeVariant." .. enumName
49674
+ end
49675
+ function getLaserVariantName(self, laser)
49676
+ local enumName = LaserVariant[laser.Variant]
49677
+ return enumName == nil and "unknown" or "LaserVariant." .. enumName
49678
+ end
49679
+ function getEntityTypeName(self, npc)
49680
+ local enumName = EntityType[npc.Type]
49681
+ return enumName == nil and "unknown" or "EntityType." .. enumName
49682
+ end
49683
+ function getPickupVariantName(self, pickup)
49684
+ local enumName = PickupVariant[pickup.Variant]
49685
+ return enumName == nil and "unknown" or "PickupVariant." .. enumName
49686
+ end
49687
+ function getPlayerVariantName(self, player)
49688
+ local enumName = PlayerVariant[player.Variant]
49689
+ return enumName == nil and "unknown" or "PlayerVariant." .. enumName
49690
+ end
49691
+ function getProjectileVariantName(self, projectile)
49692
+ local enumName = ProjectileVariant[projectile.Variant]
49693
+ return enumName == nil and "unknown" or "ProjectileVariant." .. enumName
49694
+ end
49695
+ function getTearVariantName(self, tear)
49696
+ local enumName = TearVariant[tear.Variant]
49697
+ return enumName == nil and "unknown" or "TearVariant." .. enumName
49698
+ end
49650
49699
  function ____exports.logGridEntity(gridEntity)
49651
49700
  local msg = getGridEntityLogLine(gridEntity)
49652
49701
  log(msg)
@@ -1,5 +1,4 @@
1
- import type { EntityType } from "isaac-typescript-definitions";
2
- import { GridEntityType } from "isaac-typescript-definitions";
1
+ import { EntityType, GridEntityType } from "isaac-typescript-definitions";
3
2
  /** Helper function for printing out every entity (or filtered entity) in the current room. */
4
3
  export declare function logAllEntities(this: void, includeBackgroundEffects: boolean, entityTypeFilter?: EntityType): void;
5
4
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"logEntities.d.ts","sourceRoot":"","sources":["../../../src/functions/logEntities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAIL,cAAc,EAOf,MAAM,8BAA8B,CAAC;AAkBtC,8FAA8F;AAC9F,wBAAgB,cAAc,CAC5B,IAAI,EAAE,IAAI,EACV,wBAAwB,EAAE,OAAO,EACjC,gBAAgB,CAAC,EAAE,UAAU,GAC5B,IAAI,CA2CN;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,IAAI,EACV,YAAY,UAAQ,EACpB,oBAAoB,CAAC,EAAE,cAAc,GACpC,IAAI,CA+CN;AAED,iEAAiE;AACjE,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAIhE;AAED,kEAAkE;AAClE,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAG1D;AAoFD,sEAAsE;AACtE,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,IAAI,CAI5E;AAED,wEAAwE;AACxE,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI,CAGtE;AA+DD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAQ7D;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI,CAInE"}
1
+ {"version":3,"file":"logEntities.d.ts","sourceRoot":"","sources":["../../../src/functions/logEntities.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,UAAU,EAEV,cAAc,EAOf,MAAM,8BAA8B,CAAC;AAkBtC,8FAA8F;AAC9F,wBAAgB,cAAc,CAC5B,IAAI,EAAE,IAAI,EACV,wBAAwB,EAAE,OAAO,EACjC,gBAAgB,CAAC,EAAE,UAAU,GAC5B,IAAI,CA2CN;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,IAAI,EACV,YAAY,UAAQ,EACpB,oBAAoB,CAAC,EAAE,cAAc,GACpC,IAAI,CA+CN;AAED,iEAAiE;AACjE,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAIhE;AAED,kEAAkE;AAClE,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAG1D;AA8ID,sEAAsE;AACtE,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,IAAI,CAI5E;AAED,wEAAwE;AACxE,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI,CAGtE;AA+DD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAQ7D;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI,CAInE"}
@@ -5,10 +5,11 @@ local __TS__Iterator = ____lualib.__TS__Iterator
5
5
  local __TS__StringTrim = ____lualib.__TS__StringTrim
6
6
  local __TS__StringSplit = ____lualib.__TS__StringSplit
7
7
  local ____exports = {}
8
- local getEntityLogLine, getGridEntityLogLine
8
+ local getEntityLogLine, getBombVariantName, getEffectVariantName, getFamiliarVariantName, getKnifeVariantName, getLaserVariantName, getEntityTypeName, getPickupVariantName, getPlayerVariantName, getProjectileVariantName, getTearVariantName, getGridEntityLogLine
9
9
  local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
10
10
  local BombVariant = ____isaac_2Dtypescript_2Ddefinitions.BombVariant
11
11
  local EffectVariant = ____isaac_2Dtypescript_2Ddefinitions.EffectVariant
12
+ local EntityType = ____isaac_2Dtypescript_2Ddefinitions.EntityType
12
13
  local FamiliarVariant = ____isaac_2Dtypescript_2Ddefinitions.FamiliarVariant
13
14
  local GridEntityType = ____isaac_2Dtypescript_2Ddefinitions.GridEntityType
14
15
  local KnifeVariant = ____isaac_2Dtypescript_2Ddefinitions.KnifeVariant
@@ -38,43 +39,43 @@ function getEntityLogLine(entity, num)
38
39
  msg = msg .. getEntityID(nil, entity)
39
40
  local bomb = entity:ToBomb()
40
41
  if bomb ~= nil then
41
- msg = msg .. (" (bomb - BombVariant." .. BombVariant[bomb.Variant]) .. ")"
42
+ msg = msg .. (" (bomb - " .. getBombVariantName(nil, bomb)) .. ")"
42
43
  end
43
44
  local effect = entity:ToEffect()
44
45
  if effect ~= nil then
45
- msg = msg .. (((" (effect - EffectVariant." .. EffectVariant[effect.Variant]) .. ") (State: ") .. tostring(effect.State)) .. ")"
46
+ msg = msg .. (((" (effect - " .. getEffectVariantName(nil, effect)) .. ") (State: ") .. tostring(effect.State)) .. ")"
46
47
  end
47
48
  local familiar = entity:ToFamiliar()
48
49
  if familiar ~= nil then
49
- msg = msg .. (((" (familiar - FamiliarVariant." .. FamiliarVariant[familiar.Variant]) .. ") (State: ") .. tostring(familiar.State)) .. ")"
50
+ msg = msg .. (((" (familiar - " .. getFamiliarVariantName(nil, familiar)) .. ") (State: ") .. tostring(familiar.State)) .. ")"
50
51
  end
51
52
  local knife = entity:ToKnife()
52
53
  if knife ~= nil then
53
- msg = msg .. (" (knife - KnifeVariant." .. KnifeVariant[knife.Variant]) .. ")"
54
+ msg = msg .. (" (knife - " .. getKnifeVariantName(nil, knife)) .. ")"
54
55
  end
55
56
  local laser = entity:ToLaser()
56
57
  if laser ~= nil then
57
- msg = msg .. (" (laser - LaserVariant." .. LaserVariant[laser.Variant]) .. ")"
58
+ msg = msg .. (" (laser - " .. getLaserVariantName(nil, laser)) .. ")"
58
59
  end
59
60
  local npc = entity:ToNPC()
60
61
  if npc ~= nil then
61
- msg = msg .. (" (NPC) (State: " .. tostring(npc.State)) .. ")"
62
+ msg = msg .. (((" (NPC - " .. getEntityTypeName(nil, npc)) .. ") (State: ") .. tostring(npc.State)) .. ")"
62
63
  end
63
64
  local pickup = entity:ToPickup()
64
65
  if pickup ~= nil then
65
- msg = msg .. (((" (pickup - PickupVariant." .. PickupVariant[pickup.Variant]) .. ") (State: ") .. tostring(pickup.State)) .. ")"
66
+ msg = msg .. (((" (pickup - " .. getPickupVariantName(nil, pickup)) .. ") (State: ") .. tostring(pickup.State)) .. ")"
66
67
  end
67
68
  local player = entity:ToPlayer()
68
69
  if player ~= nil then
69
- msg = msg .. (" (player - PlayerVariant." .. PlayerVariant[player.Variant]) .. ")"
70
+ msg = msg .. (" (player - " .. getPlayerVariantName(nil, player)) .. ")"
70
71
  end
71
72
  local projectile = entity:ToProjectile()
72
73
  if projectile ~= nil then
73
- msg = msg .. (" (projectile - ProjectileVariant." .. ProjectileVariant[projectile.Variant]) .. "))"
74
+ msg = msg .. (" (projectile - " .. getProjectileVariantName(nil, projectile)) .. ")"
74
75
  end
75
76
  local tear = entity:ToTear()
76
77
  if tear ~= nil then
77
- msg = msg .. (" (tear - TearVariant." .. TearVariant[tear.Variant]) .. "))"
78
+ msg = msg .. (" (tear - " .. getTearVariantName(nil, tear)) .. ")"
78
79
  end
79
80
  msg = msg .. "\n"
80
81
  msg = msg .. (" - Index: " .. tostring(entity.Index)) .. "\n"
@@ -93,6 +94,46 @@ function getEntityLogLine(entity, num)
93
94
  end
94
95
  return msg
95
96
  end
97
+ function getBombVariantName(self, bomb)
98
+ local enumName = BombVariant[bomb.Variant]
99
+ return enumName == nil and "unknown" or "BombVariant." .. enumName
100
+ end
101
+ function getEffectVariantName(self, effect)
102
+ local enumName = EffectVariant[effect.Variant]
103
+ return enumName == nil and "unknown" or "EffectVariant." .. enumName
104
+ end
105
+ function getFamiliarVariantName(self, familiar)
106
+ local enumName = FamiliarVariant[familiar.Variant]
107
+ return enumName == nil and "unknown" or "FamiliarVariant." .. enumName
108
+ end
109
+ function getKnifeVariantName(self, knife)
110
+ local enumName = KnifeVariant[knife.Variant]
111
+ return enumName == nil and "unknown" or "KnifeVariant." .. enumName
112
+ end
113
+ function getLaserVariantName(self, laser)
114
+ local enumName = LaserVariant[laser.Variant]
115
+ return enumName == nil and "unknown" or "LaserVariant." .. enumName
116
+ end
117
+ function getEntityTypeName(self, npc)
118
+ local enumName = EntityType[npc.Type]
119
+ return enumName == nil and "unknown" or "EntityType." .. enumName
120
+ end
121
+ function getPickupVariantName(self, pickup)
122
+ local enumName = PickupVariant[pickup.Variant]
123
+ return enumName == nil and "unknown" or "PickupVariant." .. enumName
124
+ end
125
+ function getPlayerVariantName(self, player)
126
+ local enumName = PlayerVariant[player.Variant]
127
+ return enumName == nil and "unknown" or "PlayerVariant." .. enumName
128
+ end
129
+ function getProjectileVariantName(self, projectile)
130
+ local enumName = ProjectileVariant[projectile.Variant]
131
+ return enumName == nil and "unknown" or "ProjectileVariant." .. enumName
132
+ end
133
+ function getTearVariantName(self, tear)
134
+ local enumName = TearVariant[tear.Variant]
135
+ return enumName == nil and "unknown" or "TearVariant." .. enumName
136
+ end
96
137
  --- Helper function for log information about a specific grid entity.
97
138
  function ____exports.logGridEntity(gridEntity)
98
139
  local msg = getGridEntityLogLine(gridEntity)
@@ -121,6 +121,11 @@ export declare function inBossRoomOf(bossID: BossID): boolean;
121
121
  * player being in a boss fight that takes place in a dungeon.
122
122
  */
123
123
  export declare function inCrawlSpace(): boolean;
124
+ /**
125
+ * Helper function for checking whether the current room is a crawl space with a door corresponding
126
+ * to `DoorSlotFlag.RIGHT_0` (1 << 2).
127
+ */
128
+ export declare function inCrawlSpaceWithBlackMarketEntrance(): boolean;
124
129
  /**
125
130
  * Helper function to detect if the current room is one of the rooms in the Death Certificate area.
126
131
  */
@@ -241,6 +246,11 @@ export declare function isBossRoomOf(roomData: RoomConfig, bossID: BossID): bool
241
246
  * the player being in a boss fight that takes place in a dungeon.
242
247
  */
243
248
  export declare function isCrawlSpace(roomData: RoomConfig): boolean;
249
+ /**
250
+ * Helper function for checking whether the provided room is a crawl space with a door corresponding
251
+ * to `DoorSlotFlag.RIGHT_0` (1 << 2).
252
+ */
253
+ export declare function isCrawlSpaceWithBlackMarketEntrance(roomData: RoomConfig): boolean;
244
254
  /**
245
255
  * Helper function to detect if the provided room is one of the rooms in the Death Certificate area.
246
256
  */
@@ -1 +1 @@
1
- {"version":3,"file":"rooms.d.ts","sourceRoot":"","sources":["../../../src/functions/rooms.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rooms.d.ts","sourceRoot":"","sources":["../../../src/functions/rooms.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@ local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitio
15
15
  local AngelRoomSubType = ____isaac_2Dtypescript_2Ddefinitions.AngelRoomSubType
16
16
  local Dimension = ____isaac_2Dtypescript_2Ddefinitions.Dimension
17
17
  local DoorSlot = ____isaac_2Dtypescript_2Ddefinitions.DoorSlot
18
+ local DoorSlotFlag = ____isaac_2Dtypescript_2Ddefinitions.DoorSlotFlag
18
19
  local DownpourRoomSubType = ____isaac_2Dtypescript_2Ddefinitions.DownpourRoomSubType
19
20
  local DungeonSubType = ____isaac_2Dtypescript_2Ddefinitions.DungeonSubType
20
21
  local GridRoom = ____isaac_2Dtypescript_2Ddefinitions.GridRoom
@@ -159,6 +160,11 @@ end
159
160
  function ____exports.isCrawlSpace(self, roomData)
160
161
  return roomData.Type == RoomType.DUNGEON and roomData.Subtype == asNumber(nil, DungeonSubType.NORMAL)
161
162
  end
163
+ --- Helper function for checking whether the provided room is a crawl space with a door corresponding
164
+ -- to `DoorSlotFlag.RIGHT_0` (1 << 2).
165
+ function ____exports.isCrawlSpaceWithBlackMarketEntrance(self, roomData)
166
+ return ____exports.isCrawlSpace(nil, roomData) and hasFlag(nil, roomData.Doors, DoorSlotFlag.RIGHT_0)
167
+ end
162
168
  --- Helper function to detect if the provided room is one of the rooms in the Death Certificate area.
163
169
  function ____exports.isDeathCertificateArea(self, roomData)
164
170
  return roomData.StageID == StageID.HOME and (roomData.Subtype == asNumber(nil, HomeRoomSubType.DEATH_CERTIFICATE_ENTRANCE) or roomData.Subtype == asNumber(nil, HomeRoomSubType.DEATH_CERTIFICATE_ITEMS))
@@ -388,6 +394,12 @@ function ____exports.inCrawlSpace(self)
388
394
  local roomData = getRoomData(nil)
389
395
  return ____exports.isCrawlSpace(nil, roomData)
390
396
  end
397
+ --- Helper function for checking whether the current room is a crawl space with a door corresponding
398
+ -- to `DoorSlotFlag.RIGHT_0` (1 << 2).
399
+ function ____exports.inCrawlSpaceWithBlackMarketEntrance(self)
400
+ local roomData = getRoomData(nil)
401
+ return ____exports.isCrawlSpaceWithBlackMarketEntrance(nil, roomData)
402
+ end
391
403
  --- Helper function to detect if the current room is one of the rooms in the Death Certificate area.
392
404
  function ____exports.inDeathCertificateArea(self)
393
405
  local roomData = getRoomData(nil)
@@ -577,12 +589,12 @@ function ____exports.setRoomCleared(self)
577
589
  for ____, door in ipairs(getDoors(nil)) do
578
590
  do
579
591
  if isHiddenSecretRoomDoor(nil, door) then
580
- goto __continue78
592
+ goto __continue80
581
593
  end
582
594
  openDoorFast(nil, door)
583
595
  door.ExtraVisible = false
584
596
  end
585
- ::__continue78::
597
+ ::__continue80::
586
598
  end
587
599
  sfxManager:Stop(SoundEffect.DOOR_HEAVY_OPEN)
588
600
  game:ShakeScreen(0)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "isaacscript-common",
3
- "version": "51.4.0",
3
+ "version": "51.5.1",
4
4
  "description": "Helper functions and features for IsaacScript mods.",
5
5
  "keywords": [
6
6
  "isaac",
@@ -25,6 +25,6 @@
25
25
  "main": "dist/src/index",
26
26
  "types": "dist/index.rollup.d.ts",
27
27
  "dependencies": {
28
- "isaac-typescript-definitions": "^21.0.0"
28
+ "isaac-typescript-definitions": "^21.0.1"
29
29
  }
30
30
  }
@@ -1,7 +1,7 @@
1
- import type { EntityType } from "isaac-typescript-definitions";
2
1
  import {
3
2
  BombVariant,
4
3
  EffectVariant,
4
+ EntityType,
5
5
  FamiliarVariant,
6
6
  GridEntityType,
7
7
  KnifeVariant,
@@ -158,60 +158,58 @@ function getEntityLogLine(this: void, entity: Entity, num?: int): string {
158
158
 
159
159
  const bomb = entity.ToBomb();
160
160
  if (bomb !== undefined) {
161
- msg += ` (bomb - BombVariant.${BombVariant[bomb.Variant]})`;
161
+ msg += ` (bomb - ${getBombVariantName(bomb)})`;
162
162
  }
163
163
 
164
164
  const effect = entity.ToEffect();
165
165
  if (effect !== undefined) {
166
- msg += ` (effect - EffectVariant.${
167
- EffectVariant[effect.Variant]
168
- }) (State: ${effect.State})`;
166
+ msg += ` (effect - ${getEffectVariantName(effect)}) (State: ${
167
+ effect.State
168
+ })`;
169
169
  }
170
170
 
171
171
  const familiar = entity.ToFamiliar();
172
172
  if (familiar !== undefined) {
173
- msg += ` (familiar - FamiliarVariant.${
174
- FamiliarVariant[familiar.Variant]
175
- }) (State: ${familiar.State})`;
173
+ msg += ` (familiar - ${getFamiliarVariantName(familiar)}) (State: ${
174
+ familiar.State
175
+ })`;
176
176
  }
177
177
 
178
178
  const knife = entity.ToKnife();
179
179
  if (knife !== undefined) {
180
- msg += ` (knife - KnifeVariant.${KnifeVariant[knife.Variant]})`;
180
+ msg += ` (knife - ${getKnifeVariantName(knife)})`;
181
181
  }
182
182
 
183
183
  const laser = entity.ToLaser();
184
184
  if (laser !== undefined) {
185
- msg += ` (laser - LaserVariant.${LaserVariant[laser.Variant]})`;
185
+ msg += ` (laser - ${getLaserVariantName(laser)})`;
186
186
  }
187
187
 
188
188
  const npc = entity.ToNPC();
189
189
  if (npc !== undefined) {
190
- msg += ` (NPC) (State: ${npc.State})`;
190
+ msg += ` (NPC - ${getEntityTypeName(npc)}) (State: ${npc.State})`;
191
191
  }
192
192
 
193
193
  const pickup = entity.ToPickup();
194
194
  if (pickup !== undefined) {
195
- msg += ` (pickup - PickupVariant.${
196
- PickupVariant[pickup.Variant]
197
- }) (State: ${pickup.State})`;
195
+ msg += ` (pickup - ${getPickupVariantName(pickup)}) (State: ${
196
+ pickup.State
197
+ })`;
198
198
  }
199
199
 
200
200
  const player = entity.ToPlayer();
201
201
  if (player !== undefined) {
202
- msg += ` (player - PlayerVariant.${PlayerVariant[player.Variant]})`;
202
+ msg += ` (player - ${getPlayerVariantName(player)})`;
203
203
  }
204
204
 
205
205
  const projectile = entity.ToProjectile();
206
206
  if (projectile !== undefined) {
207
- msg += ` (projectile - ProjectileVariant.${
208
- ProjectileVariant[projectile.Variant]
209
- }))`;
207
+ msg += ` (projectile - ${getProjectileVariantName(projectile)})`;
210
208
  }
211
209
 
212
210
  const tear = entity.ToTear();
213
211
  if (tear !== undefined) {
214
- msg += ` (tear - TearVariant.${TearVariant[tear.Variant]}))`;
212
+ msg += ` (tear - ${getTearVariantName(tear)})`;
215
213
  }
216
214
 
217
215
  msg += "\n";
@@ -233,6 +231,66 @@ function getEntityLogLine(this: void, entity: Entity, num?: int): string {
233
231
  return msg;
234
232
  }
235
233
 
234
+ function getBombVariantName(bomb: EntityBomb) {
235
+ // Handle modded entities.
236
+ const enumName = BombVariant[bomb.Variant] as string | undefined;
237
+ return enumName === undefined ? "unknown" : `BombVariant.${enumName}`;
238
+ }
239
+
240
+ function getEffectVariantName(effect: EntityEffect) {
241
+ // Handle modded entities.
242
+ const enumName = EffectVariant[effect.Variant] as string | undefined;
243
+ return enumName === undefined ? "unknown" : `EffectVariant.${enumName}`;
244
+ }
245
+
246
+ function getFamiliarVariantName(familiar: EntityFamiliar) {
247
+ // Handle modded entities.
248
+ const enumName = FamiliarVariant[familiar.Variant] as string | undefined;
249
+ return enumName === undefined ? "unknown" : `FamiliarVariant.${enumName}`;
250
+ }
251
+
252
+ function getKnifeVariantName(knife: EntityKnife) {
253
+ // Handle modded entities.
254
+ const enumName = KnifeVariant[knife.Variant] as string | undefined;
255
+ return enumName === undefined ? "unknown" : `KnifeVariant.${enumName}`;
256
+ }
257
+
258
+ function getLaserVariantName(laser: EntityLaser) {
259
+ // Handle modded entities.
260
+ const enumName = LaserVariant[laser.Variant] as string | undefined;
261
+ return enumName === undefined ? "unknown" : `LaserVariant.${enumName}`;
262
+ }
263
+
264
+ function getEntityTypeName(npc: EntityNPC) {
265
+ // Handle modded entities.
266
+ const enumName = EntityType[npc.Type] as string | undefined;
267
+ return enumName === undefined ? "unknown" : `EntityType.${enumName}`;
268
+ }
269
+
270
+ function getPickupVariantName(pickup: EntityPickup) {
271
+ // Handle modded entities.
272
+ const enumName = PickupVariant[pickup.Variant] as string | undefined;
273
+ return enumName === undefined ? "unknown" : `PickupVariant.${enumName}`;
274
+ }
275
+
276
+ function getPlayerVariantName(player: EntityPlayer) {
277
+ // Handle modded entities.
278
+ const enumName = PlayerVariant[player.Variant] as string | undefined;
279
+ return enumName === undefined ? "unknown" : `PlayerVariant.${enumName}`;
280
+ }
281
+
282
+ function getProjectileVariantName(projectile: EntityProjectile) {
283
+ // Handle modded entities.
284
+ const enumName = ProjectileVariant[projectile.Variant] as string | undefined;
285
+ return enumName === undefined ? "unknown" : `ProjectileVariant.${enumName}`;
286
+ }
287
+
288
+ function getTearVariantName(tear: EntityTear) {
289
+ // Handle modded entities.
290
+ const enumName = TearVariant[tear.Variant] as string | undefined;
291
+ return enumName === undefined ? "unknown" : `TearVariant.${enumName}`;
292
+ }
293
+
236
294
  /** Helper function for logging an array of specific grid entities. */
237
295
  export function logGridEntities(this: void, gridEntities: GridEntity[]): void {
238
296
  for (const gridEntity of gridEntities) {
@@ -8,6 +8,7 @@ import {
8
8
  AngelRoomSubType,
9
9
  Dimension,
10
10
  DoorSlot,
11
+ DoorSlotFlag,
11
12
  DownpourRoomSubType,
12
13
  DungeonSubType,
13
14
  GridRoom,
@@ -327,6 +328,15 @@ export function inCrawlSpace(): boolean {
327
328
  return isCrawlSpace(roomData);
328
329
  }
329
330
 
331
+ /**
332
+ * Helper function for checking whether the current room is a crawl space with a door corresponding
333
+ * to `DoorSlotFlag.RIGHT_0` (1 << 2).
334
+ */
335
+ export function inCrawlSpaceWithBlackMarketEntrance(): boolean {
336
+ const roomData = getRoomData();
337
+ return isCrawlSpaceWithBlackMarketEntrance(roomData);
338
+ }
339
+
330
340
  /**
331
341
  * Helper function to detect if the current room is one of the rooms in the Death Certificate area.
332
342
  */
@@ -579,6 +589,18 @@ export function isCrawlSpace(roomData: RoomConfig): boolean {
579
589
  );
580
590
  }
581
591
 
592
+ /**
593
+ * Helper function for checking whether the provided room is a crawl space with a door corresponding
594
+ * to `DoorSlotFlag.RIGHT_0` (1 << 2).
595
+ */
596
+ export function isCrawlSpaceWithBlackMarketEntrance(
597
+ roomData: RoomConfig,
598
+ ): boolean {
599
+ return (
600
+ isCrawlSpace(roomData) && hasFlag(roomData.Doors, DoorSlotFlag.RIGHT_0)
601
+ );
602
+ }
603
+
582
604
  /**
583
605
  * Helper function to detect if the provided room is one of the rooms in the Death Certificate area.
584
606
  */