isaacscript-common 82.0.1 → 83.0.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.
@@ -1,6 +1,6 @@
1
1
  --[[
2
2
 
3
- isaacscript-common 82.0.0
3
+ isaacscript-common 82.0.2
4
4
 
5
5
  This is the "isaacscript-common" library, which was created with the IsaacScript tool.
6
6
 
@@ -10043,6 +10043,9 @@ ____exports.TreasureRoomSubType[____exports.TreasureRoomSubType.KNIFE_PIECE] = "
10043
10043
  -- The enum is named `BossID` instead of `BossRoomSubType` in order to match the `Entity.GetBossID`,
10044
10044
  -- `Room.GetBossID` and `Room.GetSecondBossID` methods.
10045
10045
  --
10046
+ -- There is no BossID with a value of 0 because this is the default return value for "no boss ID"
10047
+ -- when using the `Room.GetBossID` method.
10048
+ --
10046
10049
  -- This enum is contiguous. (Every value is satisfied between 1 and 102, inclusive.)
10047
10050
  --
10048
10051
  -- Also see the `MinibossID` enum.
@@ -50694,10 +50697,13 @@ return ____exports
50694
50697
  end,
50695
50698
  ["sets.bossSets"] = function(...)
50696
50699
  local ____lualib = require("lualib_bundle")
50700
+ local __TS__SparseArrayNew = ____lualib.__TS__SparseArrayNew
50701
+ local __TS__SparseArrayPush = ____lualib.__TS__SparseArrayPush
50702
+ local __TS__SparseArraySpread = ____lualib.__TS__SparseArraySpread
50697
50703
  local __TS__New = ____lualib.__TS__New
50698
50704
  local __TS__ArrayFilter = ____lualib.__TS__ArrayFilter
50699
- local __TS__Spread = ____lualib.__TS__Spread
50700
50705
  local Set = ____lualib.Set
50706
+ local __TS__ArrayIncludes = ____lualib.__TS__ArrayIncludes
50701
50707
  local __TS__Iterator = ____lualib.__TS__Iterator
50702
50708
  local ____exports = {}
50703
50709
  local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.index")
@@ -50706,8 +50712,6 @@ local LevelStage = ____isaac_2Dtypescript_2Ddefinitions.LevelStage
50706
50712
  local StageID = ____isaac_2Dtypescript_2Ddefinitions.StageID
50707
50713
  local ____cachedEnumValues = require("arrays.cachedEnumValues")
50708
50714
  local BOSS_ID_VALUES = ____cachedEnumValues.BOSS_ID_VALUES
50709
- local ____set = require("functions.set")
50710
- local combineSets = ____set.combineSets
50711
50715
  local ____storyBosses = require("functions.storyBosses")
50712
50716
  local isStoryBossID = ____storyBosses.isStoryBossID
50713
50717
  local ____ReadonlyMap = require("types.ReadonlyMap")
@@ -50715,7 +50719,7 @@ local ReadonlyMap = ____ReadonlyMap.ReadonlyMap
50715
50719
  local ____ReadonlySet = require("types.ReadonlySet")
50716
50720
  local ReadonlySet = ____ReadonlySet.ReadonlySet
50717
50721
  --- For `StageID.BASEMENT` (1).
50718
- local BASEMENT_BOSSES_SET = __TS__New(ReadonlySet, {
50722
+ local BASEMENT_BOSSES = {
50719
50723
  BossID.MONSTRO,
50720
50724
  BossID.LARRY_JR,
50721
50725
  BossID.FAMINE,
@@ -50730,9 +50734,9 @@ local BASEMENT_BOSSES_SET = __TS__New(ReadonlySet, {
50730
50734
  BossID.DANGLE,
50731
50735
  BossID.TURDLING,
50732
50736
  BossID.BABY_PLUM
50733
- })
50737
+ }
50734
50738
  --- For `StageID.CELLAR` (2).
50735
- local CELLAR_BOSSES_SET = __TS__New(ReadonlySet, {
50739
+ local CELLAR_BOSSES = {
50736
50740
  BossID.FAMINE,
50737
50741
  BossID.DUKE_OF_FLIES,
50738
50742
  BossID.HEADLESS_HORSEMAN,
@@ -50744,9 +50748,9 @@ local CELLAR_BOSSES_SET = __TS__New(ReadonlySet, {
50744
50748
  BossID.LITTLE_HORN,
50745
50749
  BossID.RAG_MAN,
50746
50750
  BossID.BABY_PLUM
50747
- })
50751
+ }
50748
50752
  --- For `StageID.BURNING_BASEMENT` (3).
50749
- local BURNING_BASEMENT_BOSSES_SET = __TS__New(ReadonlySet, {
50753
+ local BURNING_BASEMENT_BOSSES = {
50750
50754
  BossID.MONSTRO,
50751
50755
  BossID.LARRY_JR,
50752
50756
  BossID.FAMINE,
@@ -50762,28 +50766,42 @@ local BURNING_BASEMENT_BOSSES_SET = __TS__New(ReadonlySet, {
50762
50766
  BossID.DANGLE,
50763
50767
  BossID.TURDLING,
50764
50768
  BossID.BABY_PLUM
50765
- })
50769
+ }
50766
50770
  --- For `StageID.DOWNPOUR` (27).
50767
- local DOWNPOUR_BOSSES_SET = __TS__New(ReadonlySet, {BossID.LIL_BLUB, BossID.WORMWOOD, BossID.RAINMAKER, BossID.MIN_MIN})
50771
+ local DOWNPOUR_BOSSES = {BossID.LIL_BLUB, BossID.WORMWOOD, BossID.RAINMAKER, BossID.MIN_MIN}
50768
50772
  --- For `StageID.DROSS` (28).
50769
- local DROSS_BOSSES_SET = __TS__New(ReadonlySet, {
50773
+ local DROSS_BOSSES = {
50770
50774
  BossID.LIL_BLUB,
50771
50775
  BossID.WORMWOOD,
50772
50776
  BossID.CLOG,
50773
50777
  BossID.COLOSTOMIA,
50774
50778
  BossID.TURDLET
50775
- })
50779
+ }
50780
+ local ____ReadonlySet_1 = ReadonlySet
50781
+ local ____array_0 = __TS__SparseArrayNew(table.unpack(BASEMENT_BOSSES))
50782
+ __TS__SparseArrayPush(
50783
+ ____array_0,
50784
+ table.unpack(CELLAR_BOSSES)
50785
+ )
50786
+ __TS__SparseArrayPush(
50787
+ ____array_0,
50788
+ table.unpack(BURNING_BASEMENT_BOSSES)
50789
+ )
50790
+ __TS__SparseArrayPush(
50791
+ ____array_0,
50792
+ table.unpack(DOWNPOUR_BOSSES)
50793
+ )
50794
+ __TS__SparseArrayPush(
50795
+ ____array_0,
50796
+ table.unpack(DROSS_BOSSES)
50797
+ )
50776
50798
  --- The set of unique bosses for Basement, Cellar, Burning Basement, Downpour, and Dross.
50777
- local ALL_BASEMENT_BOSSES_SET = combineSets(
50778
- nil,
50779
- BASEMENT_BOSSES_SET,
50780
- CELLAR_BOSSES_SET,
50781
- BURNING_BASEMENT_BOSSES_SET,
50782
- DOWNPOUR_BOSSES_SET,
50783
- DROSS_BOSSES_SET
50799
+ local ALL_BASEMENT_BOSSES_SET = __TS__New(
50800
+ ____ReadonlySet_1,
50801
+ {__TS__SparseArraySpread(____array_0)}
50784
50802
  )
50785
50803
  --- For `StageID.CAVES` (4).
50786
- local CAVES_BOSSES_SET = __TS__New(ReadonlySet, {
50804
+ local CAVES_BOSSES = {
50787
50805
  BossID.CHUB,
50788
50806
  BossID.GURDY,
50789
50807
  BossID.PESTILENCE,
@@ -50799,9 +50817,9 @@ local CAVES_BOSSES_SET = __TS__New(ReadonlySet, {
50799
50817
  BossID.RAG_MEGA,
50800
50818
  BossID.BIG_HORN,
50801
50819
  BossID.BUMBINO
50802
- })
50820
+ }
50803
50821
  --- For `StageID.CATACOMBS` (5).
50804
- local CATACOMBS_BOSSES_SET = __TS__New(ReadonlySet, {
50822
+ local CATACOMBS_BOSSES = {
50805
50823
  BossID.PESTILENCE,
50806
50824
  BossID.PEEP,
50807
50825
  BossID.HEADLESS_HORSEMAN,
@@ -50818,9 +50836,9 @@ local CATACOMBS_BOSSES_SET = __TS__New(ReadonlySet, {
50818
50836
  BossID.RAG_MEGA,
50819
50837
  BossID.BIG_HORN,
50820
50838
  BossID.BUMBINO
50821
- })
50839
+ }
50822
50840
  --- For `StageID.FLOODED_CAVES` (6).
50823
- local FLOODED_CAVES_BOSSES_SET = __TS__New(ReadonlySet, {
50841
+ local FLOODED_CAVES_BOSSES = {
50824
50842
  BossID.CHUB,
50825
50843
  BossID.GURDY,
50826
50844
  BossID.PESTILENCE,
@@ -50838,30 +50856,44 @@ local FLOODED_CAVES_BOSSES_SET = __TS__New(ReadonlySet, {
50838
50856
  BossID.RAG_MEGA,
50839
50857
  BossID.BIG_HORN,
50840
50858
  BossID.BUMBINO
50841
- })
50859
+ }
50842
50860
  --- For `StageID.MINES` (29).
50843
- local MINES_BOSSES_SET = __TS__New(ReadonlySet, {BossID.REAP_CREEP, BossID.TUFF_TWINS, BossID.HORNFEL, BossID.GREAT_GIDEON})
50861
+ local MINES_BOSSES = {BossID.REAP_CREEP, BossID.TUFF_TWINS, BossID.HORNFEL, BossID.GREAT_GIDEON}
50844
50862
  --- For `StageID.ASHPIT` (30).
50845
- local ASHPIT_BOSSES_SET = __TS__New(ReadonlySet, {
50863
+ local ASHPIT_BOSSES = {
50846
50864
  BossID.PILE,
50847
50865
  BossID.GREAT_GIDEON,
50848
50866
  BossID.SINGE,
50849
50867
  BossID.SHELL,
50850
50868
  BossID.CLUTCH
50851
- })
50869
+ }
50870
+ local ____ReadonlySet_3 = ReadonlySet
50871
+ local ____array_2 = __TS__SparseArrayNew(table.unpack(CAVES_BOSSES))
50872
+ __TS__SparseArrayPush(
50873
+ ____array_2,
50874
+ table.unpack(CATACOMBS_BOSSES)
50875
+ )
50876
+ __TS__SparseArrayPush(
50877
+ ____array_2,
50878
+ table.unpack(FLOODED_CAVES_BOSSES)
50879
+ )
50880
+ __TS__SparseArrayPush(
50881
+ ____array_2,
50882
+ table.unpack(MINES_BOSSES)
50883
+ )
50884
+ __TS__SparseArrayPush(
50885
+ ____array_2,
50886
+ table.unpack(ASHPIT_BOSSES)
50887
+ )
50852
50888
  --- The set of unique bosses for Caves, Catacombs, Flooded Caves, Mines, and Ashpit.
50853
- local ALL_CAVES_BOSSES_SET = combineSets(
50854
- nil,
50855
- CAVES_BOSSES_SET,
50856
- CATACOMBS_BOSSES_SET,
50857
- FLOODED_CAVES_BOSSES_SET,
50858
- MINES_BOSSES_SET,
50859
- ASHPIT_BOSSES_SET
50889
+ local ALL_CAVES_BOSSES_SET = __TS__New(
50890
+ ____ReadonlySet_3,
50891
+ {__TS__SparseArraySpread(____array_2)}
50860
50892
  )
50861
50893
  --- For `StageID.DEPTHS` (7).
50862
50894
  --
50863
50895
  -- Note that this set includes Mom, even though they are not technically in the boss pool.
50864
- local DEPTHS_BOSSES_SET = __TS__New(ReadonlySet, {
50896
+ local DEPTHS_BOSSES = {
50865
50897
  BossID.MONSTRO_2,
50866
50898
  BossID.MOM,
50867
50899
  BossID.WAR,
@@ -50874,11 +50906,11 @@ local DEPTHS_BOSSES_SET = __TS__New(ReadonlySet, {
50874
50906
  BossID.BROWNIE,
50875
50907
  BossID.SISTERS_VIS,
50876
50908
  BossID.REAP_CREEP
50877
- })
50909
+ }
50878
50910
  --- For `StageID.NECROPOLIS` (8).
50879
50911
  --
50880
50912
  -- Note that this set includes Mom, even though they are not technically in the boss pool.
50881
- local NECROPOLIS_BOSSES_SET = __TS__New(ReadonlySet, {
50913
+ local NECROPOLIS_BOSSES = {
50882
50914
  BossID.MOM,
50883
50915
  BossID.WAR,
50884
50916
  BossID.LOKI,
@@ -50890,11 +50922,11 @@ local NECROPOLIS_BOSSES_SET = __TS__New(ReadonlySet, {
50890
50922
  BossID.BROWNIE,
50891
50923
  BossID.SISTERS_VIS,
50892
50924
  BossID.PILE
50893
- })
50925
+ }
50894
50926
  --- For `StageID.DANK_DEPTHS` (9).
50895
50927
  --
50896
50928
  -- Note that this set includes Mom, even though they are not technically in the boss pool.
50897
- local DANK_DEPTHS_BOSSES_SET = __TS__New(ReadonlySet, {
50929
+ local DANK_DEPTHS_BOSSES = {
50898
50930
  BossID.MONSTRO_2,
50899
50931
  BossID.MOM,
50900
50932
  BossID.WAR,
@@ -50907,29 +50939,43 @@ local DANK_DEPTHS_BOSSES_SET = __TS__New(ReadonlySet, {
50907
50939
  BossID.BROWNIE,
50908
50940
  BossID.SISTERS_VIS,
50909
50941
  BossID.REAP_CREEP
50910
- })
50942
+ }
50911
50943
  --- For `StageID.MAUSOLEUM` (31).
50912
50944
  --
50913
50945
  -- Note that this set includes Mausoleum Mom, even though they are not technically in the boss pool.
50914
- local MAUSOLEUM_BOSSES_SET = __TS__New(ReadonlySet, {BossID.SIREN, BossID.HERETIC, BossID.MAUSOLEUM_MOM})
50946
+ local MAUSOLEUM_BOSSES = {BossID.SIREN, BossID.HERETIC, BossID.MAUSOLEUM_MOM}
50915
50947
  --- For `StageID.GEHENNA` (32).
50916
50948
  --
50917
50949
  -- Note that this set includes Mausoleum Mom, even though they are not technically in the boss pool.
50918
- local GEHENNA_BOSSES_SET = __TS__New(ReadonlySet, {BossID.VISAGE, BossID.MAUSOLEUM_MOM, BossID.HORNY_BOYS})
50950
+ local GEHENNA_BOSSES = {BossID.VISAGE, BossID.MAUSOLEUM_MOM, BossID.HORNY_BOYS}
50951
+ local ____ReadonlySet_5 = ReadonlySet
50952
+ local ____array_4 = __TS__SparseArrayNew(table.unpack(DEPTHS_BOSSES))
50953
+ __TS__SparseArrayPush(
50954
+ ____array_4,
50955
+ table.unpack(NECROPOLIS_BOSSES)
50956
+ )
50957
+ __TS__SparseArrayPush(
50958
+ ____array_4,
50959
+ table.unpack(DANK_DEPTHS_BOSSES)
50960
+ )
50961
+ __TS__SparseArrayPush(
50962
+ ____array_4,
50963
+ table.unpack(MAUSOLEUM_BOSSES)
50964
+ )
50965
+ __TS__SparseArrayPush(
50966
+ ____array_4,
50967
+ table.unpack(GEHENNA_BOSSES)
50968
+ )
50919
50969
  --- The set of unique bosses for Depths, Necropolis, Dank Depths, Mausoleum, and Gehenna.
50920
- local ALL_DEPTHS_BOSSES_SET = combineSets(
50921
- nil,
50922
- DEPTHS_BOSSES_SET,
50923
- NECROPOLIS_BOSSES_SET,
50924
- DANK_DEPTHS_BOSSES_SET,
50925
- MAUSOLEUM_BOSSES_SET,
50926
- GEHENNA_BOSSES_SET
50970
+ local ALL_DEPTHS_BOSSES_SET = __TS__New(
50971
+ ____ReadonlySet_5,
50972
+ {__TS__SparseArraySpread(____array_4)}
50927
50973
  )
50928
50974
  --- For `StageID.WOMB` (10).
50929
50975
  --
50930
50976
  -- Note that this set includes Mom's Heart & It Lives, even though they are not technically in the
50931
50977
  -- boss pool.
50932
- local WOMB_BOSSES_SET = __TS__New(ReadonlySet, {
50978
+ local WOMB_BOSSES = {
50933
50979
  BossID.SCOLEX,
50934
50980
  BossID.MOMS_HEART,
50935
50981
  BossID.DEATH,
@@ -50942,12 +50988,12 @@ local WOMB_BOSSES_SET = __TS__New(ReadonlySet, {
50942
50988
  BossID.MAMA_GURDY,
50943
50989
  BossID.MR_FRED,
50944
50990
  BossID.MATRIARCH
50945
- })
50991
+ }
50946
50992
  --- For `StageID.UTERO` (11).
50947
50993
  --
50948
50994
  -- Note that this set includes Mom's Heart & It Lives, even though they are not technically in the
50949
50995
  -- boss pool.
50950
- local UTERO_BOSSES_SET = __TS__New(ReadonlySet, {
50996
+ local UTERO_BOSSES = {
50951
50997
  BossID.MOMS_HEART,
50952
50998
  BossID.DEATH,
50953
50999
  BossID.HEADLESS_HORSEMAN,
@@ -50959,12 +51005,12 @@ local UTERO_BOSSES_SET = __TS__New(ReadonlySet, {
50959
51005
  BossID.CONQUEST,
50960
51006
  BossID.DADDY_LONG_LEGS,
50961
51007
  BossID.TRIACHNID
50962
- })
51008
+ }
50963
51009
  --- For `StageID.SCARRED_WOMB` (12).
50964
51010
  --
50965
51011
  -- Note that this set includes Mom's Heart & It Lives, even though they are not technically in the
50966
51012
  -- boss pool.
50967
- local SCARRED_WOMB_BOSSES_SET = __TS__New(ReadonlySet, {
51013
+ local SCARRED_WOMB_BOSSES = {
50968
51014
  BossID.SCOLEX,
50969
51015
  BossID.MOMS_HEART,
50970
51016
  BossID.DEATH,
@@ -50978,59 +51024,100 @@ local SCARRED_WOMB_BOSSES_SET = __TS__New(ReadonlySet, {
50978
51024
  BossID.MAMA_GURDY,
50979
51025
  BossID.MR_FRED,
50980
51026
  BossID.MATRIARCH
50981
- })
51027
+ }
50982
51028
  --- For `StageID.CORPSE` (33).
50983
51029
  --
50984
51030
  -- Note that this set includes Mother, even though she is not technically in the boss pool.
50985
- local CORPSE_BOSSES_SET = __TS__New(ReadonlySet, {BossID.SCOURGE, BossID.CHIMERA, BossID.ROTGUT, BossID.MOTHER})
51031
+ local CORPSE_BOSSES = {BossID.SCOURGE, BossID.CHIMERA, BossID.ROTGUT, BossID.MOTHER}
51032
+ local ____ReadonlySet_7 = ReadonlySet
51033
+ local ____array_6 = __TS__SparseArrayNew(table.unpack(WOMB_BOSSES))
51034
+ __TS__SparseArrayPush(
51035
+ ____array_6,
51036
+ table.unpack(UTERO_BOSSES)
51037
+ )
51038
+ __TS__SparseArrayPush(
51039
+ ____array_6,
51040
+ table.unpack(SCARRED_WOMB_BOSSES)
51041
+ )
51042
+ __TS__SparseArrayPush(
51043
+ ____array_6,
51044
+ table.unpack(CORPSE_BOSSES)
51045
+ )
50986
51046
  --- The set of unique bosses for Womb, Utero, Scarred Womb, and Corpse.
50987
- local ALL_WOMB_BOSSES_SET = combineSets(
50988
- nil,
50989
- WOMB_BOSSES_SET,
50990
- UTERO_BOSSES_SET,
50991
- SCARRED_WOMB_BOSSES_SET,
50992
- CORPSE_BOSSES_SET
51047
+ local ALL_WOMB_BOSSES_SET = __TS__New(
51048
+ ____ReadonlySet_7,
51049
+ {__TS__SparseArraySpread(____array_6)}
51050
+ )
51051
+ local BLUE_WOMB_BOSSES = {BossID.HUSH}
51052
+ local ALL_BLUE_WOMB_BOSSES_SET = __TS__New(
51053
+ ReadonlySet,
51054
+ {table.unpack(BLUE_WOMB_BOSSES)}
51055
+ )
51056
+ local SHEOL_BOSSES = {BossID.SATAN}
51057
+ local CATHEDRAL_BOSSES = {BossID.ISAAC}
51058
+ local ____ReadonlySet_9 = ReadonlySet
51059
+ local ____array_8 = __TS__SparseArrayNew(table.unpack(SHEOL_BOSSES))
51060
+ __TS__SparseArrayPush(
51061
+ ____array_8,
51062
+ table.unpack(CATHEDRAL_BOSSES)
51063
+ )
51064
+ local ALL_STAGE_10_BOSSES_SET = __TS__New(
51065
+ ____ReadonlySet_9,
51066
+ {__TS__SparseArraySpread(____array_8)}
50993
51067
  )
50994
- local BLUE_WOMB_BOSSES_SET = __TS__New(ReadonlySet, {BossID.HUSH})
50995
- local SHEOL_BOSSES_SET = __TS__New(ReadonlySet, {BossID.SATAN})
50996
- local CATHEDRAL_BOSSES_SET = __TS__New(ReadonlySet, {BossID.ISAAC})
50997
- local ALL_STAGE_10_BOSSES_SET = combineSets(nil, SHEOL_BOSSES_SET, CATHEDRAL_BOSSES_SET)
50998
51068
  --- Note that this set includes Mega Satan, even though they are not technically in the boss pool.
50999
- local DARK_ROOM_BOSSES_SET = __TS__New(ReadonlySet, {BossID.LAMB, BossID.MEGA_SATAN})
51069
+ local DARK_ROOM_BOSSES = {BossID.LAMB, BossID.MEGA_SATAN}
51000
51070
  --- Note that this set includes Mega Satan, even though they are not technically in the boss pool.
51001
- local CHEST_BOSSES_SET = __TS__New(ReadonlySet, {BossID.BLUE_BABY, BossID.MEGA_SATAN})
51002
- local ALL_STAGE_11_BOSSES_SET = combineSets(nil, DARK_ROOM_BOSSES_SET, CHEST_BOSSES_SET)
51003
- local VOID_BOSSES_SET = __TS__New(ReadonlySet, {BossID.DELIRIUM})
51071
+ local CHEST_BOSSES = {BossID.BLUE_BABY, BossID.MEGA_SATAN}
51072
+ local ____ReadonlySet_11 = ReadonlySet
51073
+ local ____array_10 = __TS__SparseArrayNew(table.unpack(DARK_ROOM_BOSSES))
51074
+ __TS__SparseArrayPush(
51075
+ ____array_10,
51076
+ table.unpack(CHEST_BOSSES)
51077
+ )
51078
+ local ALL_STAGE_11_BOSSES_SET = __TS__New(
51079
+ ____ReadonlySet_11,
51080
+ {__TS__SparseArraySpread(____array_10)}
51081
+ )
51082
+ local VOID_BOSSES = {BossID.DELIRIUM}
51083
+ local ALL_VOID_BOSSES_SET = __TS__New(
51084
+ ReadonlySet,
51085
+ {table.unpack(VOID_BOSSES)}
51086
+ )
51004
51087
  --- Includes Dogma and The Beast. Does not include Ultra Famine, Ultra Pestilence, Ultra War, and
51005
51088
  -- Ultra Death (since they do not have boss IDs).
51006
- local HOME_BOSSES_SET = __TS__New(ReadonlySet, {BossID.DOGMA, BossID.BEAST})
51007
- ____exports.STAGE_ID_TO_BOSS_SET_MAP = __TS__New(ReadonlyMap, {
51008
- {StageID.BASEMENT, BASEMENT_BOSSES_SET},
51009
- {StageID.CELLAR, CELLAR_BOSSES_SET},
51010
- {StageID.BURNING_BASEMENT, BURNING_BASEMENT_BOSSES_SET},
51011
- {StageID.DOWNPOUR, DOWNPOUR_BOSSES_SET},
51012
- {StageID.DROSS, DROSS_BOSSES_SET},
51013
- {StageID.CAVES, CAVES_BOSSES_SET},
51014
- {StageID.CATACOMBS, CATACOMBS_BOSSES_SET},
51015
- {StageID.FLOODED_CAVES, FLOODED_CAVES_BOSSES_SET},
51016
- {StageID.MINES, MINES_BOSSES_SET},
51017
- {StageID.ASHPIT, ASHPIT_BOSSES_SET},
51018
- {StageID.DEPTHS, DEPTHS_BOSSES_SET},
51019
- {StageID.NECROPOLIS, NECROPOLIS_BOSSES_SET},
51020
- {StageID.DANK_DEPTHS, DANK_DEPTHS_BOSSES_SET},
51021
- {StageID.MAUSOLEUM, MAUSOLEUM_BOSSES_SET},
51022
- {StageID.GEHENNA, GEHENNA_BOSSES_SET},
51023
- {StageID.WOMB, WOMB_BOSSES_SET},
51024
- {StageID.UTERO, UTERO_BOSSES_SET},
51025
- {StageID.SCARRED_WOMB, SCARRED_WOMB_BOSSES_SET},
51026
- {StageID.CORPSE, CORPSE_BOSSES_SET},
51027
- {StageID.BLUE_WOMB, BLUE_WOMB_BOSSES_SET},
51028
- {StageID.SHEOL, SHEOL_BOSSES_SET},
51029
- {StageID.CATHEDRAL, CATHEDRAL_BOSSES_SET},
51030
- {StageID.DARK_ROOM, DARK_ROOM_BOSSES_SET},
51031
- {StageID.CHEST, CHEST_BOSSES_SET},
51032
- {StageID.VOID, VOID_BOSSES_SET},
51033
- {StageID.HOME, HOME_BOSSES_SET}
51089
+ local HOME_BOSSES = {BossID.DOGMA, BossID.BEAST}
51090
+ local ALL_HOME_BOSSES_SET = __TS__New(
51091
+ ReadonlySet,
51092
+ {table.unpack(HOME_BOSSES)}
51093
+ )
51094
+ ____exports.STAGE_ID_TO_BOSS_IDS = __TS__New(ReadonlyMap, {
51095
+ {StageID.BASEMENT, BASEMENT_BOSSES},
51096
+ {StageID.CELLAR, CELLAR_BOSSES},
51097
+ {StageID.BURNING_BASEMENT, BURNING_BASEMENT_BOSSES},
51098
+ {StageID.DOWNPOUR, DOWNPOUR_BOSSES},
51099
+ {StageID.DROSS, DROSS_BOSSES},
51100
+ {StageID.CAVES, CAVES_BOSSES},
51101
+ {StageID.CATACOMBS, CATACOMBS_BOSSES},
51102
+ {StageID.FLOODED_CAVES, FLOODED_CAVES_BOSSES},
51103
+ {StageID.MINES, MINES_BOSSES},
51104
+ {StageID.ASHPIT, ASHPIT_BOSSES},
51105
+ {StageID.DEPTHS, DEPTHS_BOSSES},
51106
+ {StageID.NECROPOLIS, NECROPOLIS_BOSSES},
51107
+ {StageID.DANK_DEPTHS, DANK_DEPTHS_BOSSES},
51108
+ {StageID.MAUSOLEUM, MAUSOLEUM_BOSSES},
51109
+ {StageID.GEHENNA, GEHENNA_BOSSES},
51110
+ {StageID.WOMB, WOMB_BOSSES},
51111
+ {StageID.UTERO, UTERO_BOSSES},
51112
+ {StageID.SCARRED_WOMB, SCARRED_WOMB_BOSSES},
51113
+ {StageID.CORPSE, CORPSE_BOSSES},
51114
+ {StageID.BLUE_WOMB, BLUE_WOMB_BOSSES},
51115
+ {StageID.SHEOL, SHEOL_BOSSES},
51116
+ {StageID.CATHEDRAL, CATHEDRAL_BOSSES},
51117
+ {StageID.DARK_ROOM, DARK_ROOM_BOSSES},
51118
+ {StageID.CHEST, CHEST_BOSSES},
51119
+ {StageID.VOID, VOID_BOSSES},
51120
+ {StageID.HOME, HOME_BOSSES}
51034
51121
  })
51035
51122
  ____exports.STAGE_TO_COMBINED_BOSS_SET_MAP = __TS__New(ReadonlyMap, {
51036
51123
  {LevelStage.BASEMENT_1, ALL_BASEMENT_BOSSES_SET},
@@ -51041,34 +51128,28 @@ ____exports.STAGE_TO_COMBINED_BOSS_SET_MAP = __TS__New(ReadonlyMap, {
51041
51128
  {LevelStage.DEPTHS_2, ALL_DEPTHS_BOSSES_SET},
51042
51129
  {LevelStage.WOMB_1, ALL_WOMB_BOSSES_SET},
51043
51130
  {LevelStage.WOMB_2, ALL_WOMB_BOSSES_SET},
51044
- {LevelStage.BLUE_WOMB, BLUE_WOMB_BOSSES_SET},
51131
+ {LevelStage.BLUE_WOMB, ALL_BLUE_WOMB_BOSSES_SET},
51045
51132
  {LevelStage.SHEOL_CATHEDRAL, ALL_STAGE_10_BOSSES_SET},
51046
51133
  {LevelStage.DARK_ROOM_CHEST, ALL_STAGE_11_BOSSES_SET},
51047
- {LevelStage.VOID, VOID_BOSSES_SET},
51048
- {LevelStage.HOME, HOME_BOSSES_SET}
51134
+ {LevelStage.VOID, ALL_VOID_BOSSES_SET},
51135
+ {LevelStage.HOME, ALL_HOME_BOSSES_SET}
51049
51136
  })
51050
- ____exports.ALL_BOSSES_SET = __TS__New(
51051
- ReadonlySet,
51052
- __TS__ArrayFilter(
51053
- BOSS_ID_VALUES,
51054
- function(____, bossID) return bossID ~= BossID.RAGLICH end
51055
- )
51137
+ ____exports.ALL_BOSSES = __TS__ArrayFilter(
51138
+ BOSS_ID_VALUES,
51139
+ function(____, bossID) return bossID ~= BossID.RAGLICH end
51056
51140
  )
51057
- ____exports.ALL_BOSSES_EXCLUDING_STORY_BOSSES_SET = __TS__New(
51058
- ReadonlySet,
51059
- __TS__ArrayFilter(
51060
- {__TS__Spread(____exports.ALL_BOSSES_SET)},
51061
- function(____, bossID) return not isStoryBossID(nil, bossID) end
51062
- )
51141
+ ____exports.NON_STORY_BOSSES = __TS__ArrayFilter(
51142
+ ____exports.ALL_BOSSES,
51143
+ function(____, bossID) return not isStoryBossID(nil, bossID) end
51063
51144
  )
51064
51145
  ____exports.BOSS_ID_TO_STAGE_IDS = (function()
51065
51146
  local partialBossIDsToStageIDs = {}
51066
51147
  for ____, bossID in ipairs(BOSS_ID_VALUES) do
51067
51148
  local stageIDs = __TS__New(Set)
51068
- for ____, ____value in __TS__Iterator(____exports.STAGE_ID_TO_BOSS_SET_MAP) do
51149
+ for ____, ____value in __TS__Iterator(____exports.STAGE_ID_TO_BOSS_IDS) do
51069
51150
  local stageID = ____value[1]
51070
- local bossSet = ____value[2]
51071
- if bossSet:has(bossID) then
51151
+ local bossIDs = ____value[2]
51152
+ if __TS__ArrayIncludes(bossIDs, bossID) then
51072
51153
  stageIDs:add(stageID)
51073
51154
  end
51074
51155
  end
@@ -51303,10 +51384,10 @@ local ____bossNames = require("objects.bossNames")
51303
51384
  local BOSS_NAMES = ____bossNames.BOSS_NAMES
51304
51385
  local DEFAULT_BOSS_NAME = ____bossNames.DEFAULT_BOSS_NAME
51305
51386
  local ____bossSets = require("sets.bossSets")
51306
- local ALL_BOSSES_EXCLUDING_STORY_BOSSES_SET = ____bossSets.ALL_BOSSES_EXCLUDING_STORY_BOSSES_SET
51307
- local ALL_BOSSES_SET = ____bossSets.ALL_BOSSES_SET
51387
+ local ALL_BOSSES = ____bossSets.ALL_BOSSES
51308
51388
  local BOSS_ID_TO_STAGE_IDS = ____bossSets.BOSS_ID_TO_STAGE_IDS
51309
- local STAGE_ID_TO_BOSS_SET_MAP = ____bossSets.STAGE_ID_TO_BOSS_SET_MAP
51389
+ local NON_STORY_BOSSES = ____bossSets.NON_STORY_BOSSES
51390
+ local STAGE_ID_TO_BOSS_IDS = ____bossSets.STAGE_ID_TO_BOSS_IDS
51310
51391
  local STAGE_TO_COMBINED_BOSS_SET_MAP = ____bossSets.STAGE_TO_COMBINED_BOSS_SET_MAP
51311
51392
  local ____repentanceBossIDsSet = require("sets.repentanceBossIDsSet")
51312
51393
  local REPENTANCE_ONLY_BOSS_IDS_SET = ____repentanceBossIDsSet.REPENTANCE_ONLY_BOSS_IDS_SET
@@ -51373,8 +51454,8 @@ function ____exports.getAliveBosses(self, entityType, variant, subType, ignoreFr
51373
51454
  function(____, aliveNPC) return aliveNPC:IsBoss() end
51374
51455
  )
51375
51456
  end
51376
- --- Helper function to get the set of every boss in the game (which is derived from the `BossID`
51377
- -- enum).
51457
+ --- Helper function to get an array with every boss in the game. This is derived from the `BossID`
51458
+ -- enum.
51378
51459
  --
51379
51460
  -- This includes:
51380
51461
  -- - Ultra Greed
@@ -51387,15 +51468,15 @@ end
51387
51468
  -- - sub-bosses of The Beast fight (e.g. Ultra Famine, Ultra Pestilence, Ultra War, Ultra Death)
51388
51469
  -- - bosses that do not have any Boss Rooms defined due to being unfinished (e.g. Raglich)
51389
51470
  --
51390
- -- Also see the `getBossSet` and `getCombinedBossSet` functions.
51391
- --
51392
- -- @param includeStoryBosses Optional. Whether to include "story" bosses like Mom and It Lives.
51393
- -- Default is true.
51394
- function ____exports.getAllBossesSet(self, includeStoryBosses)
51395
- if includeStoryBosses == nil then
51396
- includeStoryBosses = true
51397
- end
51398
- return includeStoryBosses and ALL_BOSSES_SET or ALL_BOSSES_EXCLUDING_STORY_BOSSES_SET
51471
+ -- Also see the `getAllNonStoryBosses` function.
51472
+ function ____exports.getAllBosses(self)
51473
+ return ALL_BOSSES
51474
+ end
51475
+ --- Helper function to get an array with every boss in the game. This is derived from the `BossID`
51476
+ -- enum. This is the same thing as the `getAllBosses` helper function, but with story bosses
51477
+ -- filtered out.
51478
+ function ____exports.getAllNonStoryBosses(self)
51479
+ return NON_STORY_BOSSES
51399
51480
  end
51400
51481
  --- Helper function to get the boss ID corresponding to the current room. Returns undefined if the
51401
51482
  -- current room is not a Boss Room.
@@ -51423,18 +51504,26 @@ function ____exports.getBossIDFromEntityTypeVariant(self, entityType, variant)
51423
51504
  local entityTypeVariant = (tostring(entityType) .. ".") .. tostring(variant)
51424
51505
  return ENTITY_TYPE_VARIANT_TO_BOSS_ID_MAP:get(entityTypeVariant)
51425
51506
  end
51507
+ --- Helper function to get the set of vanilla bosses for a particular stage across all of the stage
51508
+ -- types. For example, specifying `LevelStage.BASEMENT_2` will return a set with all of the bosses
51509
+ -- for Basement, Cellar, Burning Basement, Downpour, and Dross.
51510
+ --
51511
+ -- Also see the `getAllBossesSet` and `getBossIDsForStageID` functions.
51512
+ function ____exports.getBossIDsForStage(self, stage)
51513
+ return STAGE_TO_COMBINED_BOSS_SET_MAP:get(stage)
51514
+ end
51515
+ --- Helper function to get the set of vanilla bosses that can randomly appear on a particular stage
51516
+ -- ID.
51517
+ --
51518
+ -- Also see the `getAllBossesSet` and `getBossIDsForStage` functions.
51519
+ function ____exports.getBossIDsForStageID(self, stageID)
51520
+ return STAGE_ID_TO_BOSS_IDS:get(stageID)
51521
+ end
51426
51522
  --- Helper function to get the proper English name for a boss. For example, the name for
51427
51523
  -- `BossID.WRETCHED` (36) is "The Wretched".
51428
51524
  function ____exports.getBossName(self, bossID)
51429
51525
  return BOSS_NAMES[bossID] or DEFAULT_BOSS_NAME
51430
51526
  end
51431
- --- Helper function to get the set of vanilla bosses for a particular stage and stage type
51432
- -- combination.
51433
- --
51434
- -- Also see the `getAllBossesSet` and `getCombinedBossSet` functions.
51435
- function ____exports.getBossSet(self, stageID)
51436
- return STAGE_ID_TO_BOSS_SET_MAP:get(stageID)
51437
- end
51438
51527
  --- Helper function to get the set of stage IDs that a particular boss naturally appears in.
51439
51528
  function ____exports.getBossStageIDs(self, bossID)
51440
51529
  return BOSS_ID_TO_STAGE_IDS[bossID]
@@ -51464,14 +51553,6 @@ function ____exports.getBosses(self, entityType, variant, subType, ignoreFriendl
51464
51553
  function(____, npc) return npc:IsBoss() end
51465
51554
  )
51466
51555
  end
51467
- --- Helper function to get the set of vanilla bosses for a particular stage across all of the stage
51468
- -- types. For example, specifying `LevelStage.BASEMENT_2` will return a set with all of the bosses
51469
- -- for Basement, Cellar, Burning Basement, Downpour, and Dross.
51470
- --
51471
- -- Also see the `getAllBossesSet` and `getBossSet` functions.
51472
- function ____exports.getCombinedBossSet(self, stage)
51473
- return STAGE_TO_COMBINED_BOSS_SET_MAP:get(stage)
51474
- end
51475
51556
  function ____exports.getEntityTypeVariantFromBossID(self, bossID)
51476
51557
  return BOSS_ID_TO_ENTITY_TYPE_VARIANT[bossID]
51477
51558
  end
@@ -51492,21 +51573,21 @@ local function getNumBossSegments(self, entityType, variant, numSegments)
51492
51573
  return numSegments
51493
51574
  end
51494
51575
  repeat
51495
- local ____switch22 = entityType
51496
- local ____cond22 = ____switch22 == EntityType.CHUB
51497
- if ____cond22 then
51576
+ local ____switch23 = entityType
51577
+ local ____cond23 = ____switch23 == EntityType.CHUB
51578
+ if ____cond23 then
51498
51579
  do
51499
51580
  return 3
51500
51581
  end
51501
51582
  end
51502
- ____cond22 = ____cond22 or ____switch22 == EntityType.LOKI
51503
- if ____cond22 then
51583
+ ____cond23 = ____cond23 or ____switch23 == EntityType.LOKI
51584
+ if ____cond23 then
51504
51585
  do
51505
51586
  return variant == LokiVariant.LOKII and 2 or 1
51506
51587
  end
51507
51588
  end
51508
- ____cond22 = ____cond22 or ____switch22 == EntityType.GURGLING
51509
- if ____cond22 then
51589
+ ____cond23 = ____cond23 or ____switch23 == EntityType.GURGLING
51590
+ if ____cond23 then
51510
51591
  do
51511
51592
  return 2
51512
51593
  end
@@ -1,7 +1,7 @@
1
1
  import { BossID, LevelStage, StageID } from "isaac-typescript-definitions";
2
- export declare const STAGE_ID_TO_BOSS_SET_MAP: ReadonlyMap<StageID, ReadonlySet<BossID>>;
2
+ export declare const STAGE_ID_TO_BOSS_IDS: ReadonlyMap<StageID, readonly BossID[]>;
3
3
  export declare const STAGE_TO_COMBINED_BOSS_SET_MAP: ReadonlyMap<LevelStage, ReadonlySet<BossID>>;
4
- export declare const ALL_BOSSES_SET: ReadonlySet<BossID>;
5
- export declare const ALL_BOSSES_EXCLUDING_STORY_BOSSES_SET: ReadonlySet<BossID>;
4
+ export declare const ALL_BOSSES: readonly BossID[];
5
+ export declare const NON_STORY_BOSSES: readonly BossID[];
6
6
  export declare const BOSS_ID_TO_STAGE_IDS: Readonly<Record<BossID, ReadonlySet<StageID>>>;
7
7
  //# 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,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAwa3E,eAAO,MAAM,wBAAwB,2CAkCnC,CAAC;AAEH,eAAO,MAAM,8BAA8B,8CAiBzC,CAAC;AAEH,eAAO,MAAM,cAAc,qBAE1B,CAAC;AAEF,eAAO,MAAM,qCAAqC,qBAEjD,CAAC;AAEF,eAAO,MAAM,oBAAoB,gDA+B7B,CAAC"}
1
+ {"version":3,"file":"bossSets.d.ts","sourceRoot":"","sources":["../../src/sets/bossSets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAgb3E,eAAO,MAAM,oBAAoB,yCAiChC,CAAC;AAEF,eAAO,MAAM,8BAA8B,8CAiBzC,CAAC;AAEH,eAAO,MAAM,UAAU,EAAE,SAAS,MAAM,EAEvC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,SAAS,MAAM,EAE7C,CAAC;AAEF,eAAO,MAAM,oBAAoB,gDA+B7B,CAAC"}