isaacscript-common 57.7.0 → 57.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9722,6 +9722,13 @@ export declare function isStageWithStoryBoss(stage: LevelStage): boolean;
9722
9722
  */
9723
9723
  export declare function isStoryBoss(entityType: EntityType): boolean;
9724
9724
 
9725
+ /**
9726
+ * Helper function to determine if the specified boss ID is an end-game story boss, like Isaac, Blue
9727
+ * Baby, Mega Satan, The Beast, and so on. This is useful because certain effects should only apply
9728
+ * to non-story bosses, like Vanishing Twin.
9729
+ */
9730
+ export declare function isStoryBossID(bossID: BossID): boolean;
9731
+
9725
9732
  export declare function isString(variable: unknown): variable is string;
9726
9733
 
9727
9734
  /** Returns true for card types that have `ItemConfigCardType.SUIT`. */
@@ -1,6 +1,6 @@
1
1
  --[[
2
2
 
3
- isaacscript-common 57.7.0
3
+ isaacscript-common 57.8.0
4
4
 
5
5
  This is the "isaacscript-common" library, which was created with the IsaacScript tool.
6
6
 
@@ -21493,31 +21493,6 @@ ____exports.ENTITIES_WITH_ARMOR_SET = __TS__New(
21493
21493
  (tostring(EntityType.BEAST) .. ".") .. tostring(BeastVariant.ULTRA_DEATH)
21494
21494
  }
21495
21495
  )
21496
- return ____exports
21497
- end,
21498
- ["src.sets.storyBossEntityTypesSet"] = function(...)
21499
- local ____lualib = require("lualib_bundle")
21500
- local __TS__New = ____lualib.__TS__New
21501
- local ____exports = {}
21502
- local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
21503
- local EntityType = ____isaac_2Dtypescript_2Ddefinitions.EntityType
21504
- local ____ReadonlySet = require("src.types.ReadonlySet")
21505
- local ReadonlySet = ____ReadonlySet.ReadonlySet
21506
- ____exports.STORY_BOSS_ENTITY_TYPES_SET = __TS__New(ReadonlySet, {
21507
- EntityType.MOM,
21508
- EntityType.MOMS_HEART,
21509
- EntityType.SATAN,
21510
- EntityType.ISAAC,
21511
- EntityType.LAMB,
21512
- EntityType.MEGA_SATAN,
21513
- EntityType.MEGA_SATAN_2,
21514
- EntityType.ULTRA_GREED,
21515
- EntityType.HUSH,
21516
- EntityType.DELIRIUM,
21517
- EntityType.MOTHER,
21518
- EntityType.DOGMA,
21519
- EntityType.BEAST
21520
- })
21521
21496
  return ____exports
21522
21497
  end,
21523
21498
  ["src.types.AnyEntity"] = function(...)
@@ -21633,8 +21608,6 @@ local ____constants = require("src.core.constants")
21633
21608
  local VectorZero = ____constants.VectorZero
21634
21609
  local ____entitiesWithArmorSet = require("src.sets.entitiesWithArmorSet")
21635
21610
  local ENTITIES_WITH_ARMOR_SET = ____entitiesWithArmorSet.ENTITIES_WITH_ARMOR_SET
21636
- local ____storyBossEntityTypesSet = require("src.sets.storyBossEntityTypesSet")
21637
- local STORY_BOSS_ENTITY_TYPES_SET = ____storyBossEntityTypesSet.STORY_BOSS_ENTITY_TYPES_SET
21638
21611
  local ____isaacAPIClass = require("src.functions.isaacAPIClass")
21639
21612
  local getIsaacAPIClassName = ____isaacAPIClass.getIsaacAPIClassName
21640
21613
  local ____random = require("src.functions.random")
@@ -21875,9 +21848,6 @@ function ____exports.isEntityMoving(self, entity, threshold)
21875
21848
  end
21876
21849
  return doesVectorHaveLength(nil, entity.Velocity, threshold)
21877
21850
  end
21878
- function ____exports.isStoryBoss(self, entityType)
21879
- return STORY_BOSS_ENTITY_TYPES_SET:has(entityType)
21880
- end
21881
21851
  function ____exports.parseEntityID(self, entityID)
21882
21852
  local entityIDArray = __TS__StringSplit(entityID, ".")
21883
21853
  if #entityIDArray ~= 3 then
@@ -44194,6 +44164,7 @@ local __TS__Spread = ____lualib.__TS__Spread
44194
44164
  local ____exports = {}
44195
44165
  local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
44196
44166
  local BossID = ____isaac_2Dtypescript_2Ddefinitions.BossID
44167
+ local EntityType = ____isaac_2Dtypescript_2Ddefinitions.EntityType
44197
44168
  local LevelStage = ____isaac_2Dtypescript_2Ddefinitions.LevelStage
44198
44169
  local StageType = ____isaac_2Dtypescript_2Ddefinitions.StageType
44199
44170
  local ____cachedEnumValues = require("src.arrays.cachedEnumValues")
@@ -44510,7 +44481,7 @@ ____exports.ALL_BOSSES_SET = __TS__New(
44510
44481
  function(____, bossID) return bossID ~= BossID.RAGLICH end
44511
44482
  )
44512
44483
  )
44513
- local STORY_BOSS_IDS_SET = __TS__New(ReadonlySet, {
44484
+ ____exports.STORY_BOSS_IDS_SET = __TS__New(ReadonlySet, {
44514
44485
  BossID.MOM,
44515
44486
  BossID.MOMS_HEART,
44516
44487
  BossID.SATAN,
@@ -44529,11 +44500,26 @@ local STORY_BOSS_IDS_SET = __TS__New(ReadonlySet, {
44529
44500
  BossID.DOGMA,
44530
44501
  BossID.BEAST
44531
44502
  })
44503
+ ____exports.STORY_BOSS_ENTITY_TYPES_SET = __TS__New(ReadonlySet, {
44504
+ EntityType.MOM,
44505
+ EntityType.MOMS_HEART,
44506
+ EntityType.SATAN,
44507
+ EntityType.ISAAC,
44508
+ EntityType.LAMB,
44509
+ EntityType.MEGA_SATAN,
44510
+ EntityType.MEGA_SATAN_2,
44511
+ EntityType.ULTRA_GREED,
44512
+ EntityType.HUSH,
44513
+ EntityType.DELIRIUM,
44514
+ EntityType.MOTHER,
44515
+ EntityType.DOGMA,
44516
+ EntityType.BEAST
44517
+ })
44532
44518
  ____exports.ALL_BOSSES_EXCLUDING_STORY_BOSSES_SET = __TS__New(
44533
44519
  ReadonlySet,
44534
44520
  __TS__ArrayFilter(
44535
44521
  {__TS__Spread(____exports.ALL_BOSSES_SET)},
44536
- function(____, bossID) return not STORY_BOSS_IDS_SET:has(bossID) end
44522
+ function(____, bossID) return not ____exports.STORY_BOSS_IDS_SET:has(bossID) end
44537
44523
  )
44538
44524
  )
44539
44525
  return ____exports
@@ -44733,6 +44719,8 @@ local ALL_BOSSES_EXCLUDING_STORY_BOSSES_SET = ____bossSets.ALL_BOSSES_EXCLUDING_
44733
44719
  local ALL_BOSSES_SET = ____bossSets.ALL_BOSSES_SET
44734
44720
  local STAGE_TO_COMBINED_BOSS_SET_MAP = ____bossSets.STAGE_TO_COMBINED_BOSS_SET_MAP
44735
44721
  local STAGE_TO_STAGE_TYPE_TO_BOSS_SET_MAP = ____bossSets.STAGE_TO_STAGE_TYPE_TO_BOSS_SET_MAP
44722
+ local STORY_BOSS_ENTITY_TYPES_SET = ____bossSets.STORY_BOSS_ENTITY_TYPES_SET
44723
+ local STORY_BOSS_IDS_SET = ____bossSets.STORY_BOSS_IDS_SET
44736
44724
  local ____repentanceBossIDsSet = require("src.sets.repentanceBossIDsSet")
44737
44725
  local REPENTANCE_ONLY_BOSS_IDS_SET = ____repentanceBossIDsSet.REPENTANCE_ONLY_BOSS_IDS_SET
44738
44726
  local ____sinEntityTypesSet = require("src.sets.sinEntityTypesSet")
@@ -44841,26 +44829,29 @@ end
44841
44829
  function ____exports.isRepentanceBoss(self, bossID)
44842
44830
  return REPENTANCE_ONLY_BOSS_IDS_SET:has(bossID)
44843
44831
  end
44832
+ function ____exports.isSin(self, npc)
44833
+ return SIN_ENTITY_TYPES_SET:has(npc.Type)
44834
+ end
44844
44835
  local function getNumBossSegments(self, entityType, variant, numSegments)
44845
44836
  if numSegments ~= nil then
44846
44837
  return numSegments
44847
44838
  end
44848
44839
  repeat
44849
- local ____switch19 = entityType
44850
- local ____cond19 = ____switch19 == EntityType.CHUB
44851
- if ____cond19 then
44840
+ local ____switch20 = entityType
44841
+ local ____cond20 = ____switch20 == EntityType.CHUB
44842
+ if ____cond20 then
44852
44843
  do
44853
44844
  return 3
44854
44845
  end
44855
44846
  end
44856
- ____cond19 = ____cond19 or ____switch19 == EntityType.LOKI
44857
- if ____cond19 then
44847
+ ____cond20 = ____cond20 or ____switch20 == EntityType.LOKI
44848
+ if ____cond20 then
44858
44849
  do
44859
44850
  return variant == asNumber(nil, LokiVariant.LOKII) and 2 or 1
44860
44851
  end
44861
44852
  end
44862
- ____cond19 = ____cond19 or ____switch19 == EntityType.GURGLING
44863
- if ____cond19 then
44853
+ ____cond20 = ____cond20 or ____switch20 == EntityType.GURGLING
44854
+ if ____cond20 then
44864
44855
  do
44865
44856
  return 2
44866
44857
  end
@@ -44872,8 +44863,11 @@ local function getNumBossSegments(self, entityType, variant, numSegments)
44872
44863
  end
44873
44864
  until true
44874
44865
  end
44875
- function ____exports.isSin(self, npc)
44876
- return SIN_ENTITY_TYPES_SET:has(npc.Type)
44866
+ function ____exports.isStoryBoss(self, entityType)
44867
+ return STORY_BOSS_ENTITY_TYPES_SET:has(entityType)
44868
+ end
44869
+ function ____exports.isStoryBossID(self, bossID)
44870
+ return STORY_BOSS_IDS_SET:has(bossID)
44877
44871
  end
44878
44872
  function ____exports.spawnBoss(self, entityType, variant, subType, positionOrGridIndex, velocity, spawner, seedOrRNG, numSegments)
44879
44873
  if velocity == nil then
@@ -88,6 +88,18 @@ export declare function getEntityTypeVariantFromBossID(bossID: BossID): readonly
88
88
  export declare function isRepentanceBoss(bossID: BossID): boolean;
89
89
  /** Helper function to check if the provided NPC is a Sin miniboss, such as Sloth or Lust. */
90
90
  export declare function isSin(npc: EntityNPC): boolean;
91
+ /**
92
+ * Helper function to determine if the specified entity type is an end-game story boss, like Isaac,
93
+ * Blue Baby, Mega Satan, The Beast, and so on. This is useful because certain effects should only
94
+ * apply to non-story bosses, like Vanishing Twin.
95
+ */
96
+ export declare function isStoryBoss(entityType: EntityType): boolean;
97
+ /**
98
+ * Helper function to determine if the specified boss ID is an end-game story boss, like Isaac, Blue
99
+ * Baby, Mega Satan, The Beast, and so on. This is useful because certain effects should only apply
100
+ * to non-story bosses, like Vanishing Twin.
101
+ */
102
+ export declare function isStoryBossID(bossID: BossID): boolean;
91
103
  /**
92
104
  * Helper function to spawn a boss.
93
105
  *
@@ -1 +1 @@
1
- {"version":3,"file":"bosses.d.ts","sourceRoot":"","sources":["../../../src/functions/bosses.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,UAAU,EAAe,MAAM,8BAA8B,CAAC;AAgC/E;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAC5B,UAAU,GAAE,UAAU,GAAG,CAAC,CAAM,EAChC,OAAO,SAAK,EACZ,OAAO,SAAK,EACZ,cAAc,UAAQ,GACrB,SAAS,EAAE,CAGb;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,eAAe,CAC7B,kBAAkB,UAAO,GACxB,WAAW,CAAC,MAAM,CAAC,CAIrB;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,IAAI,MAAM,GAAG,CAAC,CAWtC;AAED,wBAAgB,8BAA8B,CAC5C,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,GAAG,GACX,MAAM,GAAG,SAAS,CAGpB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAIlD;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,UAAU,EACjB,SAAS,EAAE,SAAS,GACnB,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,CAOjC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CACvB,UAAU,CAAC,EAAE,UAAU,EACvB,OAAO,CAAC,EAAE,GAAG,EACb,OAAO,CAAC,EAAE,GAAG,EACb,cAAc,UAAQ,GACrB,SAAS,EAAE,CAGb;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,UAAU,GAChB,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,CAEjC;AAED,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,MAAM,GACb,SAAS,CAAC,UAAU,EAAE,GAAG,CAAC,CAE5B;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAExD;AAmCD,6FAA6F;AAC7F,wBAAgB,KAAK,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAE7C;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CACvB,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,GAAG,EACZ,OAAO,EAAE,GAAG,EACZ,mBAAmB,EAAE,MAAM,GAAG,GAAG,EACjC,QAAQ,GAAE,MAAmB,EAC7B,OAAO,GAAE,MAAM,GAAG,SAAqB,EACvC,SAAS,GAAE,IAAI,GAAG,GAAG,GAAG,SAAqB,EAC7C,WAAW,CAAC,EAAE,GAAG,GAChB,SAAS,CAiCX;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,GAAG,EACZ,OAAO,EAAE,GAAG,EACZ,mBAAmB,EAAE,MAAM,GAAG,GAAG,EACjC,SAAS,EAAE,IAAI,GAAG,GAAG,EACrB,QAAQ,GAAE,MAAmB,EAC7B,OAAO,GAAE,MAAM,GAAG,SAAqB,EACvC,WAAW,CAAC,EAAE,GAAG,GAChB,SAAS,CAYX"}
1
+ {"version":3,"file":"bosses.d.ts","sourceRoot":"","sources":["../../../src/functions/bosses.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,UAAU,EAAe,MAAM,8BAA8B,CAAC;AAkC/E;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAC5B,UAAU,GAAE,UAAU,GAAG,CAAC,CAAM,EAChC,OAAO,SAAK,EACZ,OAAO,SAAK,EACZ,cAAc,UAAQ,GACrB,SAAS,EAAE,CAGb;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,eAAe,CAC7B,kBAAkB,UAAO,GACxB,WAAW,CAAC,MAAM,CAAC,CAIrB;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,IAAI,MAAM,GAAG,CAAC,CAWtC;AAED,wBAAgB,8BAA8B,CAC5C,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,GAAG,GACX,MAAM,GAAG,SAAS,CAGpB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAIlD;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,UAAU,EACjB,SAAS,EAAE,SAAS,GACnB,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,CAOjC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CACvB,UAAU,CAAC,EAAE,UAAU,EACvB,OAAO,CAAC,EAAE,GAAG,EACb,OAAO,CAAC,EAAE,GAAG,EACb,cAAc,UAAQ,GACrB,SAAS,EAAE,CAGb;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,UAAU,GAChB,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,CAEjC;AAED,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,MAAM,GACb,SAAS,CAAC,UAAU,EAAE,GAAG,CAAC,CAE5B;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,6FAA6F;AAC7F,wBAAgB,KAAK,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAE7C;AAmCD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAE3D;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CACvB,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,GAAG,EACZ,OAAO,EAAE,GAAG,EACZ,mBAAmB,EAAE,MAAM,GAAG,GAAG,EACjC,QAAQ,GAAE,MAAmB,EAC7B,OAAO,GAAE,MAAM,GAAG,SAAqB,EACvC,SAAS,GAAE,IAAI,GAAG,GAAG,GAAG,SAAqB,EAC7C,WAAW,CAAC,EAAE,GAAG,GAChB,SAAS,CAiCX;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,GAAG,EACZ,OAAO,EAAE,GAAG,EACZ,mBAAmB,EAAE,MAAM,GAAG,GAAG,EACjC,SAAS,EAAE,IAAI,GAAG,GAAG,EACrB,QAAQ,GAAE,MAAmB,EAC7B,OAAO,GAAE,MAAM,GAAG,SAAqB,EACvC,WAAW,CAAC,EAAE,GAAG,GAChB,SAAS,CAYX"}
@@ -22,6 +22,8 @@ local ALL_BOSSES_EXCLUDING_STORY_BOSSES_SET = ____bossSets.ALL_BOSSES_EXCLUDING_
22
22
  local ALL_BOSSES_SET = ____bossSets.ALL_BOSSES_SET
23
23
  local STAGE_TO_COMBINED_BOSS_SET_MAP = ____bossSets.STAGE_TO_COMBINED_BOSS_SET_MAP
24
24
  local STAGE_TO_STAGE_TYPE_TO_BOSS_SET_MAP = ____bossSets.STAGE_TO_STAGE_TYPE_TO_BOSS_SET_MAP
25
+ local STORY_BOSS_ENTITY_TYPES_SET = ____bossSets.STORY_BOSS_ENTITY_TYPES_SET
26
+ local STORY_BOSS_IDS_SET = ____bossSets.STORY_BOSS_IDS_SET
25
27
  local ____repentanceBossIDsSet = require("src.sets.repentanceBossIDsSet")
26
28
  local REPENTANCE_ONLY_BOSS_IDS_SET = ____repentanceBossIDsSet.REPENTANCE_ONLY_BOSS_IDS_SET
27
29
  local ____sinEntityTypesSet = require("src.sets.sinEntityTypesSet")
@@ -190,26 +192,30 @@ end
190
192
  function ____exports.isRepentanceBoss(self, bossID)
191
193
  return REPENTANCE_ONLY_BOSS_IDS_SET:has(bossID)
192
194
  end
195
+ --- Helper function to check if the provided NPC is a Sin miniboss, such as Sloth or Lust.
196
+ function ____exports.isSin(self, npc)
197
+ return SIN_ENTITY_TYPES_SET:has(npc.Type)
198
+ end
193
199
  local function getNumBossSegments(self, entityType, variant, numSegments)
194
200
  if numSegments ~= nil then
195
201
  return numSegments
196
202
  end
197
203
  repeat
198
- local ____switch19 = entityType
199
- local ____cond19 = ____switch19 == EntityType.CHUB
200
- if ____cond19 then
204
+ local ____switch20 = entityType
205
+ local ____cond20 = ____switch20 == EntityType.CHUB
206
+ if ____cond20 then
201
207
  do
202
208
  return 3
203
209
  end
204
210
  end
205
- ____cond19 = ____cond19 or ____switch19 == EntityType.LOKI
206
- if ____cond19 then
211
+ ____cond20 = ____cond20 or ____switch20 == EntityType.LOKI
212
+ if ____cond20 then
207
213
  do
208
214
  return variant == asNumber(nil, LokiVariant.LOKII) and 2 or 1
209
215
  end
210
216
  end
211
- ____cond19 = ____cond19 or ____switch19 == EntityType.GURGLING
212
- if ____cond19 then
217
+ ____cond20 = ____cond20 or ____switch20 == EntityType.GURGLING
218
+ if ____cond20 then
213
219
  do
214
220
  return 2
215
221
  end
@@ -221,9 +227,17 @@ local function getNumBossSegments(self, entityType, variant, numSegments)
221
227
  end
222
228
  until true
223
229
  end
224
- --- Helper function to check if the provided NPC is a Sin miniboss, such as Sloth or Lust.
225
- function ____exports.isSin(self, npc)
226
- return SIN_ENTITY_TYPES_SET:has(npc.Type)
230
+ --- Helper function to determine if the specified entity type is an end-game story boss, like Isaac,
231
+ -- Blue Baby, Mega Satan, The Beast, and so on. This is useful because certain effects should only
232
+ -- apply to non-story bosses, like Vanishing Twin.
233
+ function ____exports.isStoryBoss(self, entityType)
234
+ return STORY_BOSS_ENTITY_TYPES_SET:has(entityType)
235
+ end
236
+ --- Helper function to determine if the specified boss ID is an end-game story boss, like Isaac, Blue
237
+ -- Baby, Mega Satan, The Beast, and so on. This is useful because certain effects should only apply
238
+ -- to non-story bosses, like Vanishing Twin.
239
+ function ____exports.isStoryBossID(self, bossID)
240
+ return STORY_BOSS_IDS_SET:has(bossID)
227
241
  end
228
242
  --- Helper function to spawn a boss.
229
243
  --
@@ -124,12 +124,6 @@ export declare function hasArmor(entity: Entity): boolean;
124
124
  * @param threshold Optional. The threshold from 0 to consider to be moving. Default is 0.01.
125
125
  */
126
126
  export declare function isEntityMoving(entity: Entity, threshold?: number): boolean;
127
- /**
128
- * Helper function to determine if the specified entity type is an end-game story boss, like Isaac,
129
- * Blue Baby, Mega Satan, The Beast, and so on. This is useful because certain effects should only
130
- * apply to non-story bosses, like Vanishing Twin.
131
- */
132
- export declare function isStoryBoss(entityType: EntityType): boolean;
133
127
  /**
134
128
  * Helper function to parse a string that contains an entity type, a variant, and a sub-type,
135
129
  * separated by periods.
@@ -1 +1 @@
1
- {"version":3,"file":"entities.d.ts","sourceRoot":"","sources":["../../../src/functions/entities.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAM/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAsBlD;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,UAAU,GAAE,UAAU,GAAG,CAAC,CAAM,EAChC,OAAO,SAAK,EACZ,OAAO,SAAK,EACZ,cAAc,UAAQ,GACrB,GAAG,CA4BL;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EACP,UAAU,EAAE,GACZ,SAAS,UAAU,EAAE,GACrB,GAAG,CAAC,UAAU,CAAC,GACf,WAAW,CAAC,UAAU,CAAC,EAC3B,cAAc,UAAQ,GACrB,OAAO,CAQT;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,UAAU,GAAE,UAAU,GAAG,CAAC,CAAM,EAChC,OAAO,SAAK,EACZ,OAAO,SAAK,EACZ,cAAc,UAAQ,GACrB,OAAO,CAGT;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,SAAS,EACpD,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,CAAC,EAAE,EACb,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,OAAO,GAClC,CAAC,GAAG,SAAS,CAgBf;AAED,wFAAwF;AACxF,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,QAAQ,GACjB,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,CA2BtD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,WAAW,CACzB,UAAU,GAAE,UAAU,GAAG,CAAC,CAAM,EAChC,OAAO,SAAK,EACZ,OAAO,SAAK,EACZ,cAAc,UAAQ,GACrB,MAAM,EAAE,CAMV;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,CA6B3C;AA2BD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAGzE;AAED,2FAA2F;AAC3F,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAEpD;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,GAAG,EACZ,OAAO,EAAE,GAAG,GACX,QAAQ,CAEV;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,SAAS,EACxD,WAAW,EAAE,CAAC,EAAE,EAChB,WAAW,EAAE,CAAC,EAAE,GACf,CAAC,EAAE,CAWL;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAGhD;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,SAAO,GAAG,OAAO,CAExE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAE3D;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,GACf,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,SAAS,CAwBlE;AAED;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAC1C,uBAAuB,EAAE,MAAM,GAC9B,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,SAAS,CAmBpD;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,UAAU,EACtB,aAAa,SAAK,EAClB,aAAa,SAAK,EAClB,GAAG,GAAE,GAAG,GAAG,SAAqB,GAC/B,MAAM,EAAE,CAGV;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,SAAS,EAChD,QAAQ,EAAE,CAAC,EAAE,EACb,GAAG,CAAC,EAAE,GAAG,GACR,CAAC,EAAE,CAgBL;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAgB9D;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAEzD;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CAGnE;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAUzD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,KAAK,CACnB,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,GAAG,EACZ,OAAO,EAAE,GAAG,EACZ,mBAAmB,EAAE,MAAM,GAAG,GAAG,EACjC,QAAQ,GAAE,MAAmB,EAC7B,OAAO,GAAE,MAAM,GAAG,SAAqB,EACvC,SAAS,GAAE,IAAI,GAAG,GAAG,GAAG,SAAqB,GAC5C,MAAM,CAoCR;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,QAAQ,EAClB,mBAAmB,EAAE,MAAM,GAAG,GAAG,EACjC,QAAQ,GAAE,MAAmB,EAC7B,OAAO,GAAE,MAAM,GAAG,SAAqB,EACvC,SAAS,GAAE,IAAI,GAAG,GAAG,GAAG,SAAqB,GAC5C,MAAM,CAWR;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,GAAG,EACZ,OAAO,EAAE,GAAG,EACZ,mBAAmB,EAAE,MAAM,GAAG,GAAG,EACjC,SAAS,EAAE,IAAI,GAAG,GAAG,EACrB,QAAQ,GAAE,MAAmB,EAC7B,OAAO,GAAE,MAAM,GAAG,SAAqB,GACtC,MAAM,CAUR"}
1
+ {"version":3,"file":"entities.d.ts","sourceRoot":"","sources":["../../../src/functions/entities.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAK/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAsBlD;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,UAAU,GAAE,UAAU,GAAG,CAAC,CAAM,EAChC,OAAO,SAAK,EACZ,OAAO,SAAK,EACZ,cAAc,UAAQ,GACrB,GAAG,CA4BL;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EACP,UAAU,EAAE,GACZ,SAAS,UAAU,EAAE,GACrB,GAAG,CAAC,UAAU,CAAC,GACf,WAAW,CAAC,UAAU,CAAC,EAC3B,cAAc,UAAQ,GACrB,OAAO,CAQT;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,UAAU,GAAE,UAAU,GAAG,CAAC,CAAM,EAChC,OAAO,SAAK,EACZ,OAAO,SAAK,EACZ,cAAc,UAAQ,GACrB,OAAO,CAGT;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,SAAS,EACpD,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,CAAC,EAAE,EACb,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,OAAO,GAClC,CAAC,GAAG,SAAS,CAgBf;AAED,wFAAwF;AACxF,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,QAAQ,GACjB,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,CA2BtD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,WAAW,CACzB,UAAU,GAAE,UAAU,GAAG,CAAC,CAAM,EAChC,OAAO,SAAK,EACZ,OAAO,SAAK,EACZ,cAAc,UAAQ,GACrB,MAAM,EAAE,CAMV;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,CA6B3C;AA2BD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAGzE;AAED,2FAA2F;AAC3F,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAEpD;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,GAAG,EACZ,OAAO,EAAE,GAAG,GACX,QAAQ,CAEV;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,SAAS,EACxD,WAAW,EAAE,CAAC,EAAE,EAChB,WAAW,EAAE,CAAC,EAAE,GACf,CAAC,EAAE,CAWL;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAGhD;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,SAAO,GAAG,OAAO,CAExE;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,GACf,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,SAAS,CAwBlE;AAED;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAC1C,uBAAuB,EAAE,MAAM,GAC9B,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,SAAS,CAmBpD;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,UAAU,EACtB,aAAa,SAAK,EAClB,aAAa,SAAK,EAClB,GAAG,GAAE,GAAG,GAAG,SAAqB,GAC/B,MAAM,EAAE,CAGV;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,SAAS,EAChD,QAAQ,EAAE,CAAC,EAAE,EACb,GAAG,CAAC,EAAE,GAAG,GACR,CAAC,EAAE,CAgBL;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAgB9D;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAEzD;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CAGnE;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAUzD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,KAAK,CACnB,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,GAAG,EACZ,OAAO,EAAE,GAAG,EACZ,mBAAmB,EAAE,MAAM,GAAG,GAAG,EACjC,QAAQ,GAAE,MAAmB,EAC7B,OAAO,GAAE,MAAM,GAAG,SAAqB,EACvC,SAAS,GAAE,IAAI,GAAG,GAAG,GAAG,SAAqB,GAC5C,MAAM,CAoCR;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,QAAQ,EAClB,mBAAmB,EAAE,MAAM,GAAG,GAAG,EACjC,QAAQ,GAAE,MAAmB,EAC7B,OAAO,GAAE,MAAM,GAAG,SAAqB,EACvC,SAAS,GAAE,IAAI,GAAG,GAAG,GAAG,SAAqB,GAC5C,MAAM,CAWR;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,GAAG,EACZ,OAAO,EAAE,GAAG,EACZ,mBAAmB,EAAE,MAAM,GAAG,GAAG,EACjC,SAAS,EAAE,IAAI,GAAG,GAAG,EACrB,QAAQ,GAAE,MAAmB,EAC7B,OAAO,GAAE,MAAM,GAAG,SAAqB,GACtC,MAAM,CAUR"}
@@ -16,8 +16,6 @@ local ____constants = require("src.core.constants")
16
16
  local VectorZero = ____constants.VectorZero
17
17
  local ____entitiesWithArmorSet = require("src.sets.entitiesWithArmorSet")
18
18
  local ENTITIES_WITH_ARMOR_SET = ____entitiesWithArmorSet.ENTITIES_WITH_ARMOR_SET
19
- local ____storyBossEntityTypesSet = require("src.sets.storyBossEntityTypesSet")
20
- local STORY_BOSS_ENTITY_TYPES_SET = ____storyBossEntityTypesSet.STORY_BOSS_ENTITY_TYPES_SET
21
19
  local ____isaacAPIClass = require("src.functions.isaacAPIClass")
22
20
  local getIsaacAPIClassName = ____isaacAPIClass.getIsaacAPIClassName
23
21
  local ____random = require("src.functions.random")
@@ -351,12 +349,6 @@ function ____exports.isEntityMoving(self, entity, threshold)
351
349
  end
352
350
  return doesVectorHaveLength(nil, entity.Velocity, threshold)
353
351
  end
354
- --- Helper function to determine if the specified entity type is an end-game story boss, like Isaac,
355
- -- Blue Baby, Mega Satan, The Beast, and so on. This is useful because certain effects should only
356
- -- apply to non-story bosses, like Vanishing Twin.
357
- function ____exports.isStoryBoss(self, entityType)
358
- return STORY_BOSS_ENTITY_TYPES_SET:has(entityType)
359
- end
360
352
  --- Helper function to parse a string that contains an entity type, a variant, and a sub-type,
361
353
  -- separated by periods.
362
354
  --
@@ -1,6 +1,8 @@
1
- import { BossID, LevelStage } from "isaac-typescript-definitions";
1
+ import { BossID, EntityType, LevelStage } from "isaac-typescript-definitions";
2
2
  export declare const STAGE_TO_STAGE_TYPE_TO_BOSS_SET_MAP: ReadonlyMap<LevelStage, ReadonlyMap<int, ReadonlySet<BossID>>>;
3
3
  export declare const STAGE_TO_COMBINED_BOSS_SET_MAP: ReadonlyMap<LevelStage, ReadonlySet<BossID>>;
4
4
  export declare const ALL_BOSSES_SET: ReadonlySet<BossID>;
5
+ export declare const STORY_BOSS_IDS_SET: ReadonlySet<BossID>;
6
+ export declare const STORY_BOSS_ENTITY_TYPES_SET: ReadonlySet<EntityType>;
5
7
  export declare const ALL_BOSSES_EXCLUDING_STORY_BOSSES_SET: ReadonlySet<BossID>;
6
8
  //# sourceMappingURL=bossSets.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bossSets.d.ts","sourceRoot":"","sources":["../../../src/sets/bossSets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAa,MAAM,8BAA8B,CAAC;AA6e7E,eAAO,MAAM,mCAAmC,gEAiB9C,CAAC;AAEH,eAAO,MAAM,8BAA8B,8CAiBzC,CAAC;AAEH,eAAO,MAAM,cAAc,qBAE1B,CAAC;AAsBF,eAAO,MAAM,qCAAqC,qBAEjD,CAAC"}
1
+ {"version":3,"file":"bossSets.d.ts","sourceRoot":"","sources":["../../../src/sets/bossSets.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,UAAU,EACV,UAAU,EAEX,MAAM,8BAA8B,CAAC;AA6etC,eAAO,MAAM,mCAAmC,gEAiB9C,CAAC;AAEH,eAAO,MAAM,8BAA8B,8CAiBzC,CAAC;AAEH,eAAO,MAAM,cAAc,qBAE1B,CAAC;AAEF,eAAO,MAAM,kBAAkB,qBAkB7B,CAAC;AAEH,eAAO,MAAM,2BAA2B,yBActC,CAAC;AAEH,eAAO,MAAM,qCAAqC,qBAEjD,CAAC"}
@@ -5,6 +5,7 @@ local __TS__Spread = ____lualib.__TS__Spread
5
5
  local ____exports = {}
6
6
  local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
7
7
  local BossID = ____isaac_2Dtypescript_2Ddefinitions.BossID
8
+ local EntityType = ____isaac_2Dtypescript_2Ddefinitions.EntityType
8
9
  local LevelStage = ____isaac_2Dtypescript_2Ddefinitions.LevelStage
9
10
  local StageType = ____isaac_2Dtypescript_2Ddefinitions.StageType
10
11
  local ____cachedEnumValues = require("src.arrays.cachedEnumValues")
@@ -368,7 +369,7 @@ ____exports.ALL_BOSSES_SET = __TS__New(
368
369
  function(____, bossID) return bossID ~= BossID.RAGLICH end
369
370
  )
370
371
  )
371
- local STORY_BOSS_IDS_SET = __TS__New(ReadonlySet, {
372
+ ____exports.STORY_BOSS_IDS_SET = __TS__New(ReadonlySet, {
372
373
  BossID.MOM,
373
374
  BossID.MOMS_HEART,
374
375
  BossID.SATAN,
@@ -387,11 +388,26 @@ local STORY_BOSS_IDS_SET = __TS__New(ReadonlySet, {
387
388
  BossID.DOGMA,
388
389
  BossID.BEAST
389
390
  })
391
+ ____exports.STORY_BOSS_ENTITY_TYPES_SET = __TS__New(ReadonlySet, {
392
+ EntityType.MOM,
393
+ EntityType.MOMS_HEART,
394
+ EntityType.SATAN,
395
+ EntityType.ISAAC,
396
+ EntityType.LAMB,
397
+ EntityType.MEGA_SATAN,
398
+ EntityType.MEGA_SATAN_2,
399
+ EntityType.ULTRA_GREED,
400
+ EntityType.HUSH,
401
+ EntityType.DELIRIUM,
402
+ EntityType.MOTHER,
403
+ EntityType.DOGMA,
404
+ EntityType.BEAST
405
+ })
390
406
  ____exports.ALL_BOSSES_EXCLUDING_STORY_BOSSES_SET = __TS__New(
391
407
  ReadonlySet,
392
408
  __TS__ArrayFilter(
393
409
  {__TS__Spread(____exports.ALL_BOSSES_SET)},
394
- function(____, bossID) return not STORY_BOSS_IDS_SET:has(bossID) end
410
+ function(____, bossID) return not ____exports.STORY_BOSS_IDS_SET:has(bossID) end
395
411
  )
396
412
  )
397
413
  return ____exports
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "isaacscript-common",
3
- "version": "57.7.0",
3
+ "version": "57.8.0",
4
4
  "description": "Helper functions and features for IsaacScript mods.",
5
5
  "keywords": [
6
6
  "isaac",
@@ -10,6 +10,8 @@ import {
10
10
  ALL_BOSSES_SET,
11
11
  STAGE_TO_COMBINED_BOSS_SET_MAP,
12
12
  STAGE_TO_STAGE_TYPE_TO_BOSS_SET_MAP,
13
+ STORY_BOSS_ENTITY_TYPES_SET,
14
+ STORY_BOSS_IDS_SET,
13
15
  } from "../sets/bossSets";
14
16
  import { REPENTANCE_ONLY_BOSS_IDS_SET } from "../sets/repentanceBossIDsSet";
15
17
  import { SIN_ENTITY_TYPES_SET } from "../sets/sinEntityTypesSet";
@@ -190,6 +192,11 @@ export function isRepentanceBoss(bossID: BossID): boolean {
190
192
  return REPENTANCE_ONLY_BOSS_IDS_SET.has(bossID);
191
193
  }
192
194
 
195
+ /** Helper function to check if the provided NPC is a Sin miniboss, such as Sloth or Lust. */
196
+ export function isSin(npc: EntityNPC): boolean {
197
+ return SIN_ENTITY_TYPES_SET.has(npc.Type);
198
+ }
199
+
193
200
  function getNumBossSegments(
194
201
  entityType: EntityType,
195
202
  variant: int,
@@ -223,9 +230,22 @@ function getNumBossSegments(
223
230
  }
224
231
  }
225
232
 
226
- /** Helper function to check if the provided NPC is a Sin miniboss, such as Sloth or Lust. */
227
- export function isSin(npc: EntityNPC): boolean {
228
- return SIN_ENTITY_TYPES_SET.has(npc.Type);
233
+ /**
234
+ * Helper function to determine if the specified entity type is an end-game story boss, like Isaac,
235
+ * Blue Baby, Mega Satan, The Beast, and so on. This is useful because certain effects should only
236
+ * apply to non-story bosses, like Vanishing Twin.
237
+ */
238
+ export function isStoryBoss(entityType: EntityType): boolean {
239
+ return STORY_BOSS_ENTITY_TYPES_SET.has(entityType);
240
+ }
241
+
242
+ /**
243
+ * Helper function to determine if the specified boss ID is an end-game story boss, like Isaac, Blue
244
+ * Baby, Mega Satan, The Beast, and so on. This is useful because certain effects should only apply
245
+ * to non-story bosses, like Vanishing Twin.
246
+ */
247
+ export function isStoryBossID(bossID: BossID): boolean {
248
+ return STORY_BOSS_IDS_SET.has(bossID);
229
249
  }
230
250
 
231
251
  /**
@@ -3,7 +3,6 @@ import { EntityFlag } from "isaac-typescript-definitions";
3
3
  import { game } from "../core/cachedClasses";
4
4
  import { VectorZero } from "../core/constants";
5
5
  import { ENTITIES_WITH_ARMOR_SET } from "../sets/entitiesWithArmorSet";
6
- import { STORY_BOSS_ENTITY_TYPES_SET } from "../sets/storyBossEntityTypesSet";
7
6
  import type { AnyEntity } from "../types/AnyEntity";
8
7
  import type { EntityID } from "../types/EntityID";
9
8
  import { getIsaacAPIClassName } from "./isaacAPIClass";
@@ -364,15 +363,6 @@ export function isEntityMoving(entity: Entity, threshold = 0.01): boolean {
364
363
  return doesVectorHaveLength(entity.Velocity, threshold);
365
364
  }
366
365
 
367
- /**
368
- * Helper function to determine if the specified entity type is an end-game story boss, like Isaac,
369
- * Blue Baby, Mega Satan, The Beast, and so on. This is useful because certain effects should only
370
- * apply to non-story bosses, like Vanishing Twin.
371
- */
372
- export function isStoryBoss(entityType: EntityType): boolean {
373
- return STORY_BOSS_ENTITY_TYPES_SET.has(entityType);
374
- }
375
-
376
366
  /**
377
367
  * Helper function to parse a string that contains an entity type, a variant, and a sub-type,
378
368
  * separated by periods.
@@ -1,4 +1,9 @@
1
- import { BossID, LevelStage, StageType } from "isaac-typescript-definitions";
1
+ import {
2
+ BossID,
3
+ EntityType,
4
+ LevelStage,
5
+ StageType,
6
+ } from "isaac-typescript-definitions";
2
7
  import { BOSS_IDS } from "../arrays/cachedEnumValues";
3
8
  import { combineSets } from "../functions/set";
4
9
  import { ReadonlyMap } from "../types/ReadonlyMap";
@@ -533,7 +538,7 @@ export const ALL_BOSSES_SET = new ReadonlySet<BossID>(
533
538
  BOSS_IDS.filter((bossID) => bossID !== BossID.RAGLICH),
534
539
  );
535
540
 
536
- const STORY_BOSS_IDS_SET = new ReadonlySet([
541
+ export const STORY_BOSS_IDS_SET = new ReadonlySet([
537
542
  BossID.MOM, // 6
538
543
  BossID.MOMS_HEART, // 8
539
544
  BossID.SATAN, // 24
@@ -553,6 +558,22 @@ const STORY_BOSS_IDS_SET = new ReadonlySet([
553
558
  BossID.BEAST, // 100
554
559
  ]);
555
560
 
561
+ export const STORY_BOSS_ENTITY_TYPES_SET = new ReadonlySet<EntityType>([
562
+ EntityType.MOM, // 45
563
+ EntityType.MOMS_HEART, // 78
564
+ EntityType.SATAN, // 84
565
+ EntityType.ISAAC, // 102
566
+ EntityType.LAMB, // 273
567
+ EntityType.MEGA_SATAN, // 274
568
+ EntityType.MEGA_SATAN_2, // 275
569
+ EntityType.ULTRA_GREED, // 406 (includes Ultra Greedier)
570
+ EntityType.HUSH, // 407
571
+ EntityType.DELIRIUM, // 412
572
+ EntityType.MOTHER, // 912
573
+ EntityType.DOGMA, // 950
574
+ EntityType.BEAST, // 951
575
+ ]);
576
+
556
577
  export const ALL_BOSSES_EXCLUDING_STORY_BOSSES_SET = new ReadonlySet(
557
578
  [...ALL_BOSSES_SET].filter((bossID) => !STORY_BOSS_IDS_SET.has(bossID)),
558
579
  );
@@ -1,3 +0,0 @@
1
- import { EntityType } from "isaac-typescript-definitions";
2
- export declare const STORY_BOSS_ENTITY_TYPES_SET: ReadonlySet<EntityType>;
3
- //# sourceMappingURL=storyBossEntityTypesSet.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"storyBossEntityTypesSet.d.ts","sourceRoot":"","sources":["../../../src/sets/storyBossEntityTypesSet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAG1D,eAAO,MAAM,2BAA2B,yBActC,CAAC"}
@@ -1,23 +0,0 @@
1
- local ____lualib = require("lualib_bundle")
2
- local __TS__New = ____lualib.__TS__New
3
- local ____exports = {}
4
- local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
5
- local EntityType = ____isaac_2Dtypescript_2Ddefinitions.EntityType
6
- local ____ReadonlySet = require("src.types.ReadonlySet")
7
- local ReadonlySet = ____ReadonlySet.ReadonlySet
8
- ____exports.STORY_BOSS_ENTITY_TYPES_SET = __TS__New(ReadonlySet, {
9
- EntityType.MOM,
10
- EntityType.MOMS_HEART,
11
- EntityType.SATAN,
12
- EntityType.ISAAC,
13
- EntityType.LAMB,
14
- EntityType.MEGA_SATAN,
15
- EntityType.MEGA_SATAN_2,
16
- EntityType.ULTRA_GREED,
17
- EntityType.HUSH,
18
- EntityType.DELIRIUM,
19
- EntityType.MOTHER,
20
- EntityType.DOGMA,
21
- EntityType.BEAST
22
- })
23
- return ____exports
@@ -1,18 +0,0 @@
1
- import { EntityType } from "isaac-typescript-definitions";
2
- import { ReadonlySet } from "../types/ReadonlySet";
3
-
4
- export const STORY_BOSS_ENTITY_TYPES_SET = new ReadonlySet<EntityType>([
5
- EntityType.MOM, // 45
6
- EntityType.MOMS_HEART, // 78
7
- EntityType.SATAN, // 84
8
- EntityType.ISAAC, // 102
9
- EntityType.LAMB, // 273
10
- EntityType.MEGA_SATAN, // 274
11
- EntityType.MEGA_SATAN_2, // 275
12
- EntityType.ULTRA_GREED, // 406
13
- EntityType.HUSH, // 407
14
- EntityType.DELIRIUM, // 412
15
- EntityType.MOTHER, // 912
16
- EntityType.DOGMA, // 950
17
- EntityType.BEAST, // 951
18
- ]);