isaacscript-common 82.0.2 → 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.1
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
 
@@ -50697,10 +50697,13 @@ return ____exports
50697
50697
  end,
50698
50698
  ["sets.bossSets"] = function(...)
50699
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
50700
50703
  local __TS__New = ____lualib.__TS__New
50701
50704
  local __TS__ArrayFilter = ____lualib.__TS__ArrayFilter
50702
- local __TS__Spread = ____lualib.__TS__Spread
50703
50705
  local Set = ____lualib.Set
50706
+ local __TS__ArrayIncludes = ____lualib.__TS__ArrayIncludes
50704
50707
  local __TS__Iterator = ____lualib.__TS__Iterator
50705
50708
  local ____exports = {}
50706
50709
  local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.index")
@@ -50709,8 +50712,6 @@ local LevelStage = ____isaac_2Dtypescript_2Ddefinitions.LevelStage
50709
50712
  local StageID = ____isaac_2Dtypescript_2Ddefinitions.StageID
50710
50713
  local ____cachedEnumValues = require("arrays.cachedEnumValues")
50711
50714
  local BOSS_ID_VALUES = ____cachedEnumValues.BOSS_ID_VALUES
50712
- local ____set = require("functions.set")
50713
- local combineSets = ____set.combineSets
50714
50715
  local ____storyBosses = require("functions.storyBosses")
50715
50716
  local isStoryBossID = ____storyBosses.isStoryBossID
50716
50717
  local ____ReadonlyMap = require("types.ReadonlyMap")
@@ -50718,7 +50719,7 @@ local ReadonlyMap = ____ReadonlyMap.ReadonlyMap
50718
50719
  local ____ReadonlySet = require("types.ReadonlySet")
50719
50720
  local ReadonlySet = ____ReadonlySet.ReadonlySet
50720
50721
  --- For `StageID.BASEMENT` (1).
50721
- local BASEMENT_BOSSES_SET = __TS__New(ReadonlySet, {
50722
+ local BASEMENT_BOSSES = {
50722
50723
  BossID.MONSTRO,
50723
50724
  BossID.LARRY_JR,
50724
50725
  BossID.FAMINE,
@@ -50733,9 +50734,9 @@ local BASEMENT_BOSSES_SET = __TS__New(ReadonlySet, {
50733
50734
  BossID.DANGLE,
50734
50735
  BossID.TURDLING,
50735
50736
  BossID.BABY_PLUM
50736
- })
50737
+ }
50737
50738
  --- For `StageID.CELLAR` (2).
50738
- local CELLAR_BOSSES_SET = __TS__New(ReadonlySet, {
50739
+ local CELLAR_BOSSES = {
50739
50740
  BossID.FAMINE,
50740
50741
  BossID.DUKE_OF_FLIES,
50741
50742
  BossID.HEADLESS_HORSEMAN,
@@ -50747,9 +50748,9 @@ local CELLAR_BOSSES_SET = __TS__New(ReadonlySet, {
50747
50748
  BossID.LITTLE_HORN,
50748
50749
  BossID.RAG_MAN,
50749
50750
  BossID.BABY_PLUM
50750
- })
50751
+ }
50751
50752
  --- For `StageID.BURNING_BASEMENT` (3).
50752
- local BURNING_BASEMENT_BOSSES_SET = __TS__New(ReadonlySet, {
50753
+ local BURNING_BASEMENT_BOSSES = {
50753
50754
  BossID.MONSTRO,
50754
50755
  BossID.LARRY_JR,
50755
50756
  BossID.FAMINE,
@@ -50765,28 +50766,42 @@ local BURNING_BASEMENT_BOSSES_SET = __TS__New(ReadonlySet, {
50765
50766
  BossID.DANGLE,
50766
50767
  BossID.TURDLING,
50767
50768
  BossID.BABY_PLUM
50768
- })
50769
+ }
50769
50770
  --- For `StageID.DOWNPOUR` (27).
50770
- 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}
50771
50772
  --- For `StageID.DROSS` (28).
50772
- local DROSS_BOSSES_SET = __TS__New(ReadonlySet, {
50773
+ local DROSS_BOSSES = {
50773
50774
  BossID.LIL_BLUB,
50774
50775
  BossID.WORMWOOD,
50775
50776
  BossID.CLOG,
50776
50777
  BossID.COLOSTOMIA,
50777
50778
  BossID.TURDLET
50778
- })
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
+ )
50779
50798
  --- The set of unique bosses for Basement, Cellar, Burning Basement, Downpour, and Dross.
50780
- local ALL_BASEMENT_BOSSES_SET = combineSets(
50781
- nil,
50782
- BASEMENT_BOSSES_SET,
50783
- CELLAR_BOSSES_SET,
50784
- BURNING_BASEMENT_BOSSES_SET,
50785
- DOWNPOUR_BOSSES_SET,
50786
- DROSS_BOSSES_SET
50799
+ local ALL_BASEMENT_BOSSES_SET = __TS__New(
50800
+ ____ReadonlySet_1,
50801
+ {__TS__SparseArraySpread(____array_0)}
50787
50802
  )
50788
50803
  --- For `StageID.CAVES` (4).
50789
- local CAVES_BOSSES_SET = __TS__New(ReadonlySet, {
50804
+ local CAVES_BOSSES = {
50790
50805
  BossID.CHUB,
50791
50806
  BossID.GURDY,
50792
50807
  BossID.PESTILENCE,
@@ -50802,9 +50817,9 @@ local CAVES_BOSSES_SET = __TS__New(ReadonlySet, {
50802
50817
  BossID.RAG_MEGA,
50803
50818
  BossID.BIG_HORN,
50804
50819
  BossID.BUMBINO
50805
- })
50820
+ }
50806
50821
  --- For `StageID.CATACOMBS` (5).
50807
- local CATACOMBS_BOSSES_SET = __TS__New(ReadonlySet, {
50822
+ local CATACOMBS_BOSSES = {
50808
50823
  BossID.PESTILENCE,
50809
50824
  BossID.PEEP,
50810
50825
  BossID.HEADLESS_HORSEMAN,
@@ -50821,9 +50836,9 @@ local CATACOMBS_BOSSES_SET = __TS__New(ReadonlySet, {
50821
50836
  BossID.RAG_MEGA,
50822
50837
  BossID.BIG_HORN,
50823
50838
  BossID.BUMBINO
50824
- })
50839
+ }
50825
50840
  --- For `StageID.FLOODED_CAVES` (6).
50826
- local FLOODED_CAVES_BOSSES_SET = __TS__New(ReadonlySet, {
50841
+ local FLOODED_CAVES_BOSSES = {
50827
50842
  BossID.CHUB,
50828
50843
  BossID.GURDY,
50829
50844
  BossID.PESTILENCE,
@@ -50841,30 +50856,44 @@ local FLOODED_CAVES_BOSSES_SET = __TS__New(ReadonlySet, {
50841
50856
  BossID.RAG_MEGA,
50842
50857
  BossID.BIG_HORN,
50843
50858
  BossID.BUMBINO
50844
- })
50859
+ }
50845
50860
  --- For `StageID.MINES` (29).
50846
- 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}
50847
50862
  --- For `StageID.ASHPIT` (30).
50848
- local ASHPIT_BOSSES_SET = __TS__New(ReadonlySet, {
50863
+ local ASHPIT_BOSSES = {
50849
50864
  BossID.PILE,
50850
50865
  BossID.GREAT_GIDEON,
50851
50866
  BossID.SINGE,
50852
50867
  BossID.SHELL,
50853
50868
  BossID.CLUTCH
50854
- })
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
+ )
50855
50888
  --- The set of unique bosses for Caves, Catacombs, Flooded Caves, Mines, and Ashpit.
50856
- local ALL_CAVES_BOSSES_SET = combineSets(
50857
- nil,
50858
- CAVES_BOSSES_SET,
50859
- CATACOMBS_BOSSES_SET,
50860
- FLOODED_CAVES_BOSSES_SET,
50861
- MINES_BOSSES_SET,
50862
- ASHPIT_BOSSES_SET
50889
+ local ALL_CAVES_BOSSES_SET = __TS__New(
50890
+ ____ReadonlySet_3,
50891
+ {__TS__SparseArraySpread(____array_2)}
50863
50892
  )
50864
50893
  --- For `StageID.DEPTHS` (7).
50865
50894
  --
50866
50895
  -- Note that this set includes Mom, even though they are not technically in the boss pool.
50867
- local DEPTHS_BOSSES_SET = __TS__New(ReadonlySet, {
50896
+ local DEPTHS_BOSSES = {
50868
50897
  BossID.MONSTRO_2,
50869
50898
  BossID.MOM,
50870
50899
  BossID.WAR,
@@ -50877,11 +50906,11 @@ local DEPTHS_BOSSES_SET = __TS__New(ReadonlySet, {
50877
50906
  BossID.BROWNIE,
50878
50907
  BossID.SISTERS_VIS,
50879
50908
  BossID.REAP_CREEP
50880
- })
50909
+ }
50881
50910
  --- For `StageID.NECROPOLIS` (8).
50882
50911
  --
50883
50912
  -- Note that this set includes Mom, even though they are not technically in the boss pool.
50884
- local NECROPOLIS_BOSSES_SET = __TS__New(ReadonlySet, {
50913
+ local NECROPOLIS_BOSSES = {
50885
50914
  BossID.MOM,
50886
50915
  BossID.WAR,
50887
50916
  BossID.LOKI,
@@ -50893,11 +50922,11 @@ local NECROPOLIS_BOSSES_SET = __TS__New(ReadonlySet, {
50893
50922
  BossID.BROWNIE,
50894
50923
  BossID.SISTERS_VIS,
50895
50924
  BossID.PILE
50896
- })
50925
+ }
50897
50926
  --- For `StageID.DANK_DEPTHS` (9).
50898
50927
  --
50899
50928
  -- Note that this set includes Mom, even though they are not technically in the boss pool.
50900
- local DANK_DEPTHS_BOSSES_SET = __TS__New(ReadonlySet, {
50929
+ local DANK_DEPTHS_BOSSES = {
50901
50930
  BossID.MONSTRO_2,
50902
50931
  BossID.MOM,
50903
50932
  BossID.WAR,
@@ -50910,29 +50939,43 @@ local DANK_DEPTHS_BOSSES_SET = __TS__New(ReadonlySet, {
50910
50939
  BossID.BROWNIE,
50911
50940
  BossID.SISTERS_VIS,
50912
50941
  BossID.REAP_CREEP
50913
- })
50942
+ }
50914
50943
  --- For `StageID.MAUSOLEUM` (31).
50915
50944
  --
50916
50945
  -- Note that this set includes Mausoleum Mom, even though they are not technically in the boss pool.
50917
- 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}
50918
50947
  --- For `StageID.GEHENNA` (32).
50919
50948
  --
50920
50949
  -- Note that this set includes Mausoleum Mom, even though they are not technically in the boss pool.
50921
- 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
+ )
50922
50969
  --- The set of unique bosses for Depths, Necropolis, Dank Depths, Mausoleum, and Gehenna.
50923
- local ALL_DEPTHS_BOSSES_SET = combineSets(
50924
- nil,
50925
- DEPTHS_BOSSES_SET,
50926
- NECROPOLIS_BOSSES_SET,
50927
- DANK_DEPTHS_BOSSES_SET,
50928
- MAUSOLEUM_BOSSES_SET,
50929
- GEHENNA_BOSSES_SET
50970
+ local ALL_DEPTHS_BOSSES_SET = __TS__New(
50971
+ ____ReadonlySet_5,
50972
+ {__TS__SparseArraySpread(____array_4)}
50930
50973
  )
50931
50974
  --- For `StageID.WOMB` (10).
50932
50975
  --
50933
50976
  -- Note that this set includes Mom's Heart & It Lives, even though they are not technically in the
50934
50977
  -- boss pool.
50935
- local WOMB_BOSSES_SET = __TS__New(ReadonlySet, {
50978
+ local WOMB_BOSSES = {
50936
50979
  BossID.SCOLEX,
50937
50980
  BossID.MOMS_HEART,
50938
50981
  BossID.DEATH,
@@ -50945,12 +50988,12 @@ local WOMB_BOSSES_SET = __TS__New(ReadonlySet, {
50945
50988
  BossID.MAMA_GURDY,
50946
50989
  BossID.MR_FRED,
50947
50990
  BossID.MATRIARCH
50948
- })
50991
+ }
50949
50992
  --- For `StageID.UTERO` (11).
50950
50993
  --
50951
50994
  -- Note that this set includes Mom's Heart & It Lives, even though they are not technically in the
50952
50995
  -- boss pool.
50953
- local UTERO_BOSSES_SET = __TS__New(ReadonlySet, {
50996
+ local UTERO_BOSSES = {
50954
50997
  BossID.MOMS_HEART,
50955
50998
  BossID.DEATH,
50956
50999
  BossID.HEADLESS_HORSEMAN,
@@ -50962,12 +51005,12 @@ local UTERO_BOSSES_SET = __TS__New(ReadonlySet, {
50962
51005
  BossID.CONQUEST,
50963
51006
  BossID.DADDY_LONG_LEGS,
50964
51007
  BossID.TRIACHNID
50965
- })
51008
+ }
50966
51009
  --- For `StageID.SCARRED_WOMB` (12).
50967
51010
  --
50968
51011
  -- Note that this set includes Mom's Heart & It Lives, even though they are not technically in the
50969
51012
  -- boss pool.
50970
- local SCARRED_WOMB_BOSSES_SET = __TS__New(ReadonlySet, {
51013
+ local SCARRED_WOMB_BOSSES = {
50971
51014
  BossID.SCOLEX,
50972
51015
  BossID.MOMS_HEART,
50973
51016
  BossID.DEATH,
@@ -50981,59 +51024,100 @@ local SCARRED_WOMB_BOSSES_SET = __TS__New(ReadonlySet, {
50981
51024
  BossID.MAMA_GURDY,
50982
51025
  BossID.MR_FRED,
50983
51026
  BossID.MATRIARCH
50984
- })
51027
+ }
50985
51028
  --- For `StageID.CORPSE` (33).
50986
51029
  --
50987
51030
  -- Note that this set includes Mother, even though she is not technically in the boss pool.
50988
- 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
+ )
50989
51046
  --- The set of unique bosses for Womb, Utero, Scarred Womb, and Corpse.
50990
- local ALL_WOMB_BOSSES_SET = combineSets(
50991
- nil,
50992
- WOMB_BOSSES_SET,
50993
- UTERO_BOSSES_SET,
50994
- SCARRED_WOMB_BOSSES_SET,
50995
- 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)}
50996
51067
  )
50997
- local BLUE_WOMB_BOSSES_SET = __TS__New(ReadonlySet, {BossID.HUSH})
50998
- local SHEOL_BOSSES_SET = __TS__New(ReadonlySet, {BossID.SATAN})
50999
- local CATHEDRAL_BOSSES_SET = __TS__New(ReadonlySet, {BossID.ISAAC})
51000
- local ALL_STAGE_10_BOSSES_SET = combineSets(nil, SHEOL_BOSSES_SET, CATHEDRAL_BOSSES_SET)
51001
51068
  --- Note that this set includes Mega Satan, even though they are not technically in the boss pool.
51002
- local DARK_ROOM_BOSSES_SET = __TS__New(ReadonlySet, {BossID.LAMB, BossID.MEGA_SATAN})
51069
+ local DARK_ROOM_BOSSES = {BossID.LAMB, BossID.MEGA_SATAN}
51003
51070
  --- Note that this set includes Mega Satan, even though they are not technically in the boss pool.
51004
- local CHEST_BOSSES_SET = __TS__New(ReadonlySet, {BossID.BLUE_BABY, BossID.MEGA_SATAN})
51005
- local ALL_STAGE_11_BOSSES_SET = combineSets(nil, DARK_ROOM_BOSSES_SET, CHEST_BOSSES_SET)
51006
- 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
+ )
51007
51087
  --- Includes Dogma and The Beast. Does not include Ultra Famine, Ultra Pestilence, Ultra War, and
51008
51088
  -- Ultra Death (since they do not have boss IDs).
51009
- local HOME_BOSSES_SET = __TS__New(ReadonlySet, {BossID.DOGMA, BossID.BEAST})
51010
- ____exports.STAGE_ID_TO_BOSS_SET_MAP = __TS__New(ReadonlyMap, {
51011
- {StageID.BASEMENT, BASEMENT_BOSSES_SET},
51012
- {StageID.CELLAR, CELLAR_BOSSES_SET},
51013
- {StageID.BURNING_BASEMENT, BURNING_BASEMENT_BOSSES_SET},
51014
- {StageID.DOWNPOUR, DOWNPOUR_BOSSES_SET},
51015
- {StageID.DROSS, DROSS_BOSSES_SET},
51016
- {StageID.CAVES, CAVES_BOSSES_SET},
51017
- {StageID.CATACOMBS, CATACOMBS_BOSSES_SET},
51018
- {StageID.FLOODED_CAVES, FLOODED_CAVES_BOSSES_SET},
51019
- {StageID.MINES, MINES_BOSSES_SET},
51020
- {StageID.ASHPIT, ASHPIT_BOSSES_SET},
51021
- {StageID.DEPTHS, DEPTHS_BOSSES_SET},
51022
- {StageID.NECROPOLIS, NECROPOLIS_BOSSES_SET},
51023
- {StageID.DANK_DEPTHS, DANK_DEPTHS_BOSSES_SET},
51024
- {StageID.MAUSOLEUM, MAUSOLEUM_BOSSES_SET},
51025
- {StageID.GEHENNA, GEHENNA_BOSSES_SET},
51026
- {StageID.WOMB, WOMB_BOSSES_SET},
51027
- {StageID.UTERO, UTERO_BOSSES_SET},
51028
- {StageID.SCARRED_WOMB, SCARRED_WOMB_BOSSES_SET},
51029
- {StageID.CORPSE, CORPSE_BOSSES_SET},
51030
- {StageID.BLUE_WOMB, BLUE_WOMB_BOSSES_SET},
51031
- {StageID.SHEOL, SHEOL_BOSSES_SET},
51032
- {StageID.CATHEDRAL, CATHEDRAL_BOSSES_SET},
51033
- {StageID.DARK_ROOM, DARK_ROOM_BOSSES_SET},
51034
- {StageID.CHEST, CHEST_BOSSES_SET},
51035
- {StageID.VOID, VOID_BOSSES_SET},
51036
- {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}
51037
51121
  })
51038
51122
  ____exports.STAGE_TO_COMBINED_BOSS_SET_MAP = __TS__New(ReadonlyMap, {
51039
51123
  {LevelStage.BASEMENT_1, ALL_BASEMENT_BOSSES_SET},
@@ -51044,34 +51128,28 @@ ____exports.STAGE_TO_COMBINED_BOSS_SET_MAP = __TS__New(ReadonlyMap, {
51044
51128
  {LevelStage.DEPTHS_2, ALL_DEPTHS_BOSSES_SET},
51045
51129
  {LevelStage.WOMB_1, ALL_WOMB_BOSSES_SET},
51046
51130
  {LevelStage.WOMB_2, ALL_WOMB_BOSSES_SET},
51047
- {LevelStage.BLUE_WOMB, BLUE_WOMB_BOSSES_SET},
51131
+ {LevelStage.BLUE_WOMB, ALL_BLUE_WOMB_BOSSES_SET},
51048
51132
  {LevelStage.SHEOL_CATHEDRAL, ALL_STAGE_10_BOSSES_SET},
51049
51133
  {LevelStage.DARK_ROOM_CHEST, ALL_STAGE_11_BOSSES_SET},
51050
- {LevelStage.VOID, VOID_BOSSES_SET},
51051
- {LevelStage.HOME, HOME_BOSSES_SET}
51134
+ {LevelStage.VOID, ALL_VOID_BOSSES_SET},
51135
+ {LevelStage.HOME, ALL_HOME_BOSSES_SET}
51052
51136
  })
51053
- ____exports.ALL_BOSSES_SET = __TS__New(
51054
- ReadonlySet,
51055
- __TS__ArrayFilter(
51056
- BOSS_ID_VALUES,
51057
- function(____, bossID) return bossID ~= BossID.RAGLICH end
51058
- )
51137
+ ____exports.ALL_BOSSES = __TS__ArrayFilter(
51138
+ BOSS_ID_VALUES,
51139
+ function(____, bossID) return bossID ~= BossID.RAGLICH end
51059
51140
  )
51060
- ____exports.ALL_BOSSES_EXCLUDING_STORY_BOSSES_SET = __TS__New(
51061
- ReadonlySet,
51062
- __TS__ArrayFilter(
51063
- {__TS__Spread(____exports.ALL_BOSSES_SET)},
51064
- function(____, bossID) return not isStoryBossID(nil, bossID) end
51065
- )
51141
+ ____exports.NON_STORY_BOSSES = __TS__ArrayFilter(
51142
+ ____exports.ALL_BOSSES,
51143
+ function(____, bossID) return not isStoryBossID(nil, bossID) end
51066
51144
  )
51067
51145
  ____exports.BOSS_ID_TO_STAGE_IDS = (function()
51068
51146
  local partialBossIDsToStageIDs = {}
51069
51147
  for ____, bossID in ipairs(BOSS_ID_VALUES) do
51070
51148
  local stageIDs = __TS__New(Set)
51071
- 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
51072
51150
  local stageID = ____value[1]
51073
- local bossSet = ____value[2]
51074
- if bossSet:has(bossID) then
51151
+ local bossIDs = ____value[2]
51152
+ if __TS__ArrayIncludes(bossIDs, bossID) then
51075
51153
  stageIDs:add(stageID)
51076
51154
  end
51077
51155
  end
@@ -51306,10 +51384,10 @@ local ____bossNames = require("objects.bossNames")
51306
51384
  local BOSS_NAMES = ____bossNames.BOSS_NAMES
51307
51385
  local DEFAULT_BOSS_NAME = ____bossNames.DEFAULT_BOSS_NAME
51308
51386
  local ____bossSets = require("sets.bossSets")
51309
- local ALL_BOSSES_EXCLUDING_STORY_BOSSES_SET = ____bossSets.ALL_BOSSES_EXCLUDING_STORY_BOSSES_SET
51310
- local ALL_BOSSES_SET = ____bossSets.ALL_BOSSES_SET
51387
+ local ALL_BOSSES = ____bossSets.ALL_BOSSES
51311
51388
  local BOSS_ID_TO_STAGE_IDS = ____bossSets.BOSS_ID_TO_STAGE_IDS
51312
- 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
51313
51391
  local STAGE_TO_COMBINED_BOSS_SET_MAP = ____bossSets.STAGE_TO_COMBINED_BOSS_SET_MAP
51314
51392
  local ____repentanceBossIDsSet = require("sets.repentanceBossIDsSet")
51315
51393
  local REPENTANCE_ONLY_BOSS_IDS_SET = ____repentanceBossIDsSet.REPENTANCE_ONLY_BOSS_IDS_SET
@@ -51376,8 +51454,8 @@ function ____exports.getAliveBosses(self, entityType, variant, subType, ignoreFr
51376
51454
  function(____, aliveNPC) return aliveNPC:IsBoss() end
51377
51455
  )
51378
51456
  end
51379
- --- Helper function to get the set of every boss in the game (which is derived from the `BossID`
51380
- -- enum).
51457
+ --- Helper function to get an array with every boss in the game. This is derived from the `BossID`
51458
+ -- enum.
51381
51459
  --
51382
51460
  -- This includes:
51383
51461
  -- - Ultra Greed
@@ -51390,15 +51468,15 @@ end
51390
51468
  -- - sub-bosses of The Beast fight (e.g. Ultra Famine, Ultra Pestilence, Ultra War, Ultra Death)
51391
51469
  -- - bosses that do not have any Boss Rooms defined due to being unfinished (e.g. Raglich)
51392
51470
  --
51393
- -- Also see the `getBossSet` and `getCombinedBossSet` functions.
51394
- --
51395
- -- @param includeStoryBosses Optional. Whether to include "story" bosses like Mom and It Lives.
51396
- -- Default is true.
51397
- function ____exports.getAllBossesSet(self, includeStoryBosses)
51398
- if includeStoryBosses == nil then
51399
- includeStoryBosses = true
51400
- end
51401
- 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
51402
51480
  end
51403
51481
  --- Helper function to get the boss ID corresponding to the current room. Returns undefined if the
51404
51482
  -- current room is not a Boss Room.
@@ -51426,18 +51504,26 @@ function ____exports.getBossIDFromEntityTypeVariant(self, entityType, variant)
51426
51504
  local entityTypeVariant = (tostring(entityType) .. ".") .. tostring(variant)
51427
51505
  return ENTITY_TYPE_VARIANT_TO_BOSS_ID_MAP:get(entityTypeVariant)
51428
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
51429
51522
  --- Helper function to get the proper English name for a boss. For example, the name for
51430
51523
  -- `BossID.WRETCHED` (36) is "The Wretched".
51431
51524
  function ____exports.getBossName(self, bossID)
51432
51525
  return BOSS_NAMES[bossID] or DEFAULT_BOSS_NAME
51433
51526
  end
51434
- --- Helper function to get the set of vanilla bosses for a particular stage and stage type
51435
- -- combination.
51436
- --
51437
- -- Also see the `getAllBossesSet` and `getCombinedBossSet` functions.
51438
- function ____exports.getBossSet(self, stageID)
51439
- return STAGE_ID_TO_BOSS_SET_MAP:get(stageID)
51440
- end
51441
51527
  --- Helper function to get the set of stage IDs that a particular boss naturally appears in.
51442
51528
  function ____exports.getBossStageIDs(self, bossID)
51443
51529
  return BOSS_ID_TO_STAGE_IDS[bossID]
@@ -51467,14 +51553,6 @@ function ____exports.getBosses(self, entityType, variant, subType, ignoreFriendl
51467
51553
  function(____, npc) return npc:IsBoss() end
51468
51554
  )
51469
51555
  end
51470
- --- Helper function to get the set of vanilla bosses for a particular stage across all of the stage
51471
- -- types. For example, specifying `LevelStage.BASEMENT_2` will return a set with all of the bosses
51472
- -- for Basement, Cellar, Burning Basement, Downpour, and Dross.
51473
- --
51474
- -- Also see the `getAllBossesSet` and `getBossSet` functions.
51475
- function ____exports.getCombinedBossSet(self, stage)
51476
- return STAGE_TO_COMBINED_BOSS_SET_MAP:get(stage)
51477
- end
51478
51556
  function ____exports.getEntityTypeVariantFromBossID(self, bossID)
51479
51557
  return BOSS_ID_TO_ENTITY_TYPE_VARIANT[bossID]
51480
51558
  end
@@ -51495,21 +51573,21 @@ local function getNumBossSegments(self, entityType, variant, numSegments)
51495
51573
  return numSegments
51496
51574
  end
51497
51575
  repeat
51498
- local ____switch22 = entityType
51499
- local ____cond22 = ____switch22 == EntityType.CHUB
51500
- if ____cond22 then
51576
+ local ____switch23 = entityType
51577
+ local ____cond23 = ____switch23 == EntityType.CHUB
51578
+ if ____cond23 then
51501
51579
  do
51502
51580
  return 3
51503
51581
  end
51504
51582
  end
51505
- ____cond22 = ____cond22 or ____switch22 == EntityType.LOKI
51506
- if ____cond22 then
51583
+ ____cond23 = ____cond23 or ____switch23 == EntityType.LOKI
51584
+ if ____cond23 then
51507
51585
  do
51508
51586
  return variant == LokiVariant.LOKII and 2 or 1
51509
51587
  end
51510
51588
  end
51511
- ____cond22 = ____cond22 or ____switch22 == EntityType.GURGLING
51512
- if ____cond22 then
51589
+ ____cond23 = ____cond23 or ____switch23 == EntityType.GURGLING
51590
+ if ____cond23 then
51513
51591
  do
51514
51592
  return 2
51515
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"}