isaacscript-common 83.0.0 → 83.2.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.
Files changed (33) hide show
  1. package/dist/functions/array.d.ts +6 -0
  2. package/dist/functions/array.d.ts.map +1 -1
  3. package/dist/functions/array.lua +8 -0
  4. package/dist/functions/stage.d.ts +17 -5
  5. package/dist/functions/stage.d.ts.map +1 -1
  6. package/dist/functions/stage.lua +70 -23
  7. package/dist/index.rollup.d.ts +25 -4
  8. package/dist/isaacscript-common.lua +175 -179
  9. package/dist/objects/stageIDNames.d.ts +40 -0
  10. package/dist/objects/stageIDNames.d.ts.map +1 -0
  11. package/dist/objects/stageIDNames.lua +41 -0
  12. package/dist/objects/stageToStageID.d.ts +2 -1
  13. package/dist/objects/stageToStageID.d.ts.map +1 -1
  14. package/dist/objects/stageToStageID.lua +29 -0
  15. package/dist/objects/versusScreenBackgroundColors.d.ts +0 -6
  16. package/dist/objects/versusScreenBackgroundColors.d.ts.map +1 -1
  17. package/dist/objects/versusScreenBackgroundColors.lua +2 -8
  18. package/dist/objects/versusScreenDirtSpotColors.d.ts +0 -6
  19. package/dist/objects/versusScreenDirtSpotColors.d.ts.map +1 -1
  20. package/dist/objects/versusScreenDirtSpotColors.lua +2 -8
  21. package/dist/sets/bossSets.lua +2 -2
  22. package/package.json +2 -2
  23. package/src/functions/array.ts +10 -0
  24. package/src/functions/stage.ts +62 -8
  25. package/src/objects/stageIDNames.ts +41 -0
  26. package/src/objects/stageToStageID.ts +33 -1
  27. package/src/objects/versusScreenBackgroundColors.ts +2 -8
  28. package/src/objects/versusScreenDirtSpotColors.ts +2 -8
  29. package/src/sets/bossSets.ts +2 -2
  30. package/dist/objects/levelNames.d.ts +0 -115
  31. package/dist/objects/levelNames.d.ts.map +0 -1
  32. package/dist/objects/levelNames.lua +0 -117
  33. package/src/objects/levelNames.ts +0 -141
@@ -1,6 +1,6 @@
1
1
  --[[
2
2
 
3
- isaacscript-common 82.0.2
3
+ isaacscript-common 83.1.0
4
4
 
5
5
  This is the "isaacscript-common" library, which was created with the IsaacScript tool.
6
6
 
@@ -11011,9 +11011,20 @@ return ____exports
11011
11011
  end,
11012
11012
  ["lua_modules.isaac-typescript-definitions.dist.enums.StageID"] = function(...)
11013
11013
  local ____exports = {}
11014
- --- Corresponds to the filename used in the XML/STB file for the room.
11014
+ --- Corresponds to the filename used in the XML/STB file for the room. It also matches the "id"
11015
+ -- attribute in the "stages.xml" file.
11015
11016
  --
11016
- -- This enum is contiguous. (Every value is satisfied between 0 and 36, inclusive.)
11017
+ -- This enum is not contiguous. In other words, the enum ranges from `StageID.SPECIAL_ROOMS` (0) to
11018
+ -- `StageID.BACKWARDS` (36), but there is no corresponding `StageID` with the following values:
11019
+ --
11020
+ -- - 18 (corresponds to Afterbirth+ "18.greed special.stb")
11021
+ -- - 19 (corresponds to Afterbirth+ "19.greed basement.stb")
11022
+ -- - 20 (corresponds to Afterbirth+ "20.greed caves.stb")
11023
+ -- - 21 (corresponds to Afterbirth+ "21.greed depths.stb")
11024
+ -- - 22 (corresponds to Afterbirth+ "22.greed womb.stb")
11025
+ -- - 23 (corresponds to Afterbirth+ "23.greed sheol.stb")
11026
+ --
11027
+ -- (These values are now unused in Repentance.)
11017
11028
  ____exports.StageID = {}
11018
11029
  ____exports.StageID.SPECIAL_ROOMS = 0
11019
11030
  ____exports.StageID[____exports.StageID.SPECIAL_ROOMS] = "SPECIAL_ROOMS"
@@ -11051,22 +11062,10 @@ ____exports.StageID.DARK_ROOM = 16
11051
11062
  ____exports.StageID[____exports.StageID.DARK_ROOM] = "DARK_ROOM"
11052
11063
  ____exports.StageID.CHEST = 17
11053
11064
  ____exports.StageID[____exports.StageID.CHEST] = "CHEST"
11054
- ____exports.StageID.SPECIAL_ROOMS_GREED_MODE = 18
11055
- ____exports.StageID[____exports.StageID.SPECIAL_ROOMS_GREED_MODE] = "SPECIAL_ROOMS_GREED_MODE"
11056
- ____exports.StageID.BASEMENT_GREED_MODE = 19
11057
- ____exports.StageID[____exports.StageID.BASEMENT_GREED_MODE] = "BASEMENT_GREED_MODE"
11058
- ____exports.StageID.CAVES_GREED_MODE = 20
11059
- ____exports.StageID[____exports.StageID.CAVES_GREED_MODE] = "CAVES_GREED_MODE"
11060
- ____exports.StageID.DEPTHS_GREED_MODE = 21
11061
- ____exports.StageID[____exports.StageID.DEPTHS_GREED_MODE] = "DEPTHS_GREED_MODE"
11062
- ____exports.StageID.WOMB_GREED_MODE = 22
11063
- ____exports.StageID[____exports.StageID.WOMB_GREED_MODE] = "WOMB_GREED_MODE"
11064
- ____exports.StageID.SHEOL_GREED_MODE = 23
11065
- ____exports.StageID[____exports.StageID.SHEOL_GREED_MODE] = "SHEOL_GREED_MODE"
11066
- ____exports.StageID.SHOP_GREED_MODE = 24
11067
- ____exports.StageID[____exports.StageID.SHOP_GREED_MODE] = "SHOP_GREED_MODE"
11068
- ____exports.StageID.ULTRA_GREED_GREED_MODE = 25
11069
- ____exports.StageID[____exports.StageID.ULTRA_GREED_GREED_MODE] = "ULTRA_GREED_GREED_MODE"
11065
+ ____exports.StageID.SHOP = 24
11066
+ ____exports.StageID[____exports.StageID.SHOP] = "SHOP"
11067
+ ____exports.StageID.ULTRA_GREED = 25
11068
+ ____exports.StageID[____exports.StageID.ULTRA_GREED] = "ULTRA_GREED"
11070
11069
  ____exports.StageID.VOID = 26
11071
11070
  ____exports.StageID[____exports.StageID.VOID] = "VOID"
11072
11071
  ____exports.StageID.DOWNPOUR = 27
@@ -12723,6 +12722,7 @@ return ____exports
12723
12722
  end,
12724
12723
  ["lua_modules.isaac-typescript-definitions.dist.enums.RoomType"] = function(...)
12725
12724
  local ____exports = {}
12725
+ --- This enum is contiguous. (Every value is satisfied between 1 and 29, inclusive.)
12726
12726
  ____exports.RoomType = {}
12727
12727
  ____exports.RoomType.DEFAULT = 1
12728
12728
  ____exports.RoomType[____exports.RoomType.DEFAULT] = "DEFAULT"
@@ -18694,6 +18694,7 @@ local __TS__SparseArrayPush = ____lualib.__TS__SparseArrayPush
18694
18694
  local __TS__SparseArraySpread = ____lualib.__TS__SparseArraySpread
18695
18695
  local __TS__ArrayIncludes = ____lualib.__TS__ArrayIncludes
18696
18696
  local __TS__ObjectKeys = ____lualib.__TS__ObjectKeys
18697
+ local Set = ____lualib.Set
18697
18698
  local __TS__ArraySome = ____lualib.__TS__ArraySome
18698
18699
  local __TS__ArrayReduce = ____lualib.__TS__ArrayReduce
18699
18700
  local ____exports = {}
@@ -19207,6 +19208,13 @@ function ____exports.isArrayContiguous(self, array)
19207
19208
  end
19208
19209
  return true
19209
19210
  end
19211
+ --- Helper function to check if all the elements of an array are unique within that array.
19212
+ --
19213
+ -- Under the hood, this is performed by converting the array to a set.
19214
+ function ____exports.isArrayElementsUnique(self, array)
19215
+ local set = __TS__New(Set, array)
19216
+ return set.size == #array
19217
+ end
19210
19218
  --- Checks if an array is in the provided 2-dimensional array.
19211
19219
  function ____exports.isArrayInArray(self, arrayToMatch, parentArray)
19212
19220
  return __TS__ArraySome(
@@ -31830,125 +31838,6 @@ function ____exports.reloadRoom(self)
31830
31838
  local roomGridIndex = getRoomGridIndex(nil)
31831
31839
  ____exports.teleport(nil, roomGridIndex, Direction.NO_DIRECTION, RoomTransitionAnim.FADE)
31832
31840
  end
31833
- return ____exports
31834
- end,
31835
- ["objects.levelNames"] = function(...)
31836
- local ____exports = {}
31837
- local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.index")
31838
- local LevelStage = ____isaac_2Dtypescript_2Ddefinitions.LevelStage
31839
- local StageType = ____isaac_2Dtypescript_2Ddefinitions.StageType
31840
- --- A mapping of stage and stage types to the corresponding English level name.
31841
- --
31842
- -- This is useful because the `Level.GetName` method returns a localized version of the level name,
31843
- -- which will not display correctly on some fonts.
31844
- --
31845
- -- Note that this contains "Blue Womb" instead of "???" for stage 9.
31846
- ____exports.LEVEL_NAMES = {
31847
- [LevelStage.BASEMENT_1] = {
31848
- [StageType.ORIGINAL] = "Basement 1",
31849
- [StageType.WRATH_OF_THE_LAMB] = "Cellar 1",
31850
- [StageType.AFTERBIRTH] = "Burning Basement 1",
31851
- [StageType.GREED_MODE] = "Basement",
31852
- [StageType.REPENTANCE] = "Downpour 1",
31853
- [StageType.REPENTANCE_B] = "Dross 1"
31854
- },
31855
- [LevelStage.BASEMENT_2] = {
31856
- [StageType.ORIGINAL] = "Basement 2",
31857
- [StageType.WRATH_OF_THE_LAMB] = "Cellar 2",
31858
- [StageType.AFTERBIRTH] = "Burning Basement 2",
31859
- [StageType.GREED_MODE] = "Basement",
31860
- [StageType.REPENTANCE] = "Downpour 2",
31861
- [StageType.REPENTANCE_B] = "Dross 2"
31862
- },
31863
- [LevelStage.CAVES_1] = {
31864
- [StageType.ORIGINAL] = "Caves 1",
31865
- [StageType.WRATH_OF_THE_LAMB] = "Catacombs 1",
31866
- [StageType.AFTERBIRTH] = "Flooded Caves 1",
31867
- [StageType.GREED_MODE] = "Caves",
31868
- [StageType.REPENTANCE] = "Mines 1",
31869
- [StageType.REPENTANCE_B] = "Ashpit 1"
31870
- },
31871
- [LevelStage.CAVES_2] = {
31872
- [StageType.ORIGINAL] = "Caves 2",
31873
- [StageType.WRATH_OF_THE_LAMB] = "Catacombs 2",
31874
- [StageType.AFTERBIRTH] = "Flooded Caves 2",
31875
- [StageType.GREED_MODE] = "Caves",
31876
- [StageType.REPENTANCE] = "Mines 2",
31877
- [StageType.REPENTANCE_B] = "Ashpit 2"
31878
- },
31879
- [LevelStage.DEPTHS_1] = {
31880
- [StageType.ORIGINAL] = "Depths 1",
31881
- [StageType.WRATH_OF_THE_LAMB] = "Necropolis 1",
31882
- [StageType.AFTERBIRTH] = "Dank Depths 1",
31883
- [StageType.GREED_MODE] = "Depths",
31884
- [StageType.REPENTANCE] = "Mausoleum 1",
31885
- [StageType.REPENTANCE_B] = "Gehenna 1"
31886
- },
31887
- [LevelStage.DEPTHS_2] = {
31888
- [StageType.ORIGINAL] = "Depths 2",
31889
- [StageType.WRATH_OF_THE_LAMB] = "Necropolis 2",
31890
- [StageType.AFTERBIRTH] = "Dank Depths 2",
31891
- [StageType.GREED_MODE] = "Depths",
31892
- [StageType.REPENTANCE] = "Mausoleum 2",
31893
- [StageType.REPENTANCE_B] = "Gehenna 2"
31894
- },
31895
- [LevelStage.WOMB_1] = {
31896
- [StageType.ORIGINAL] = "Womb 1",
31897
- [StageType.WRATH_OF_THE_LAMB] = "Utero 1",
31898
- [StageType.AFTERBIRTH] = "Scarred Womb 1",
31899
- [StageType.GREED_MODE] = "Womb",
31900
- [StageType.REPENTANCE] = "Corpse 1",
31901
- [StageType.REPENTANCE_B] = "Mortis 1"
31902
- },
31903
- [LevelStage.WOMB_2] = {
31904
- [StageType.ORIGINAL] = "Womb 2",
31905
- [StageType.WRATH_OF_THE_LAMB] = "Utero 2",
31906
- [StageType.AFTERBIRTH] = "Scarred Womb 2",
31907
- [StageType.GREED_MODE] = "Womb",
31908
- [StageType.REPENTANCE] = "Corpse 2",
31909
- [StageType.REPENTANCE_B] = "Mortis 2"
31910
- },
31911
- [LevelStage.BLUE_WOMB] = {
31912
- [StageType.ORIGINAL] = "Blue Womb",
31913
- [StageType.WRATH_OF_THE_LAMB] = "Blue Womb",
31914
- [StageType.AFTERBIRTH] = "Blue Womb",
31915
- [StageType.GREED_MODE] = "Blue Womb",
31916
- [StageType.REPENTANCE] = "Blue Womb",
31917
- [StageType.REPENTANCE_B] = "Blue Womb"
31918
- },
31919
- [LevelStage.SHEOL_CATHEDRAL] = {
31920
- [StageType.ORIGINAL] = "Sheol",
31921
- [StageType.WRATH_OF_THE_LAMB] = "Cathedral",
31922
- [StageType.AFTERBIRTH] = "Undefined",
31923
- [StageType.GREED_MODE] = "Sheol",
31924
- [StageType.REPENTANCE] = "Undefined",
31925
- [StageType.REPENTANCE_B] = "Undefined"
31926
- },
31927
- [LevelStage.DARK_ROOM_CHEST] = {
31928
- [StageType.ORIGINAL] = "Dark Room",
31929
- [StageType.WRATH_OF_THE_LAMB] = "The Chest",
31930
- [StageType.AFTERBIRTH] = "Undefined",
31931
- [StageType.GREED_MODE] = "The Shop",
31932
- [StageType.REPENTANCE] = "Undefined",
31933
- [StageType.REPENTANCE_B] = "Undefined"
31934
- },
31935
- [LevelStage.VOID] = {
31936
- [StageType.ORIGINAL] = "The Void",
31937
- [StageType.WRATH_OF_THE_LAMB] = "The Void",
31938
- [StageType.AFTERBIRTH] = "The Void",
31939
- [StageType.GREED_MODE] = "The Void",
31940
- [StageType.REPENTANCE] = "The Void",
31941
- [StageType.REPENTANCE_B] = "The Void"
31942
- },
31943
- [LevelStage.HOME] = {
31944
- [StageType.ORIGINAL] = "Home",
31945
- [StageType.WRATH_OF_THE_LAMB] = "Home",
31946
- [StageType.AFTERBIRTH] = "Home",
31947
- [StageType.GREED_MODE] = "Home",
31948
- [StageType.REPENTANCE] = "Home",
31949
- [StageType.REPENTANCE_B] = "Home"
31950
- }
31951
- }
31952
31841
  return ____exports
31953
31842
  end,
31954
31843
  ["objects.roomTypeSpecialGotoPrefixes"] = function(...)
@@ -31986,14 +31875,61 @@ ____exports.ROOM_TYPE_SPECIAL_GOTO_PREFIXES = {
31986
31875
  [RoomType.BLUE] = "blue",
31987
31876
  [RoomType.ULTRA_SECRET] = "ultrasecret"
31988
31877
  }
31878
+ return ____exports
31879
+ end,
31880
+ ["objects.stageIDNames"] = function(...)
31881
+ local ____exports = {}
31882
+ local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.index")
31883
+ local StageID = ____isaac_2Dtypescript_2Ddefinitions.StageID
31884
+ --- Derived from "stages.xml". Note that unlike "stages.xml":
31885
+ --
31886
+ -- - `StageID.BLUE_WOMB` (13) is specified with a name of "Blue Womb" instead of "???".
31887
+ -- - `StageID.StageID.BACKWARDS` (36) is specified with a name of "The Ascent" instead of "???".
31888
+ ____exports.STAGE_ID_NAMES = {
31889
+ [StageID.SPECIAL_ROOMS] = "Special Rooms",
31890
+ [StageID.BASEMENT] = "Basement",
31891
+ [StageID.CELLAR] = "Cellar",
31892
+ [StageID.BURNING_BASEMENT] = "Burning Basement",
31893
+ [StageID.CAVES] = "Caves",
31894
+ [StageID.CATACOMBS] = "Catacombs",
31895
+ [StageID.FLOODED_CAVES] = "Flooded Caves",
31896
+ [StageID.DEPTHS] = "Depths",
31897
+ [StageID.NECROPOLIS] = "Necropolis",
31898
+ [StageID.DANK_DEPTHS] = "Dank Depths",
31899
+ [StageID.WOMB] = "Womb",
31900
+ [StageID.UTERO] = "Utero",
31901
+ [StageID.SCARRED_WOMB] = "Scarred Womb",
31902
+ [StageID.BLUE_WOMB] = "Blue Womb",
31903
+ [StageID.SHEOL] = "Sheol",
31904
+ [StageID.CATHEDRAL] = "Cathedral",
31905
+ [StageID.DARK_ROOM] = "Dark Room",
31906
+ [StageID.CHEST] = "Chest",
31907
+ [StageID.SHOP] = "The Shop",
31908
+ [StageID.ULTRA_GREED] = "Ultra Greed",
31909
+ [StageID.VOID] = "The Void",
31910
+ [StageID.DOWNPOUR] = "Downpour",
31911
+ [StageID.DROSS] = "Dross",
31912
+ [StageID.MINES] = "Mines",
31913
+ [StageID.ASHPIT] = "Ashpit",
31914
+ [StageID.MAUSOLEUM] = "Mausoleum",
31915
+ [StageID.GEHENNA] = "Gehenna",
31916
+ [StageID.CORPSE] = "Corpse",
31917
+ [StageID.MORTIS] = "Mortis",
31918
+ [StageID.HOME] = "Home",
31919
+ [StageID.BACKWARDS] = "The Ascent"
31920
+ }
31989
31921
  return ____exports
31990
31922
  end,
31991
31923
  ["objects.stageToStageID"] = function(...)
31924
+ local ____lualib = require("lualib_bundle")
31925
+ local __TS__New = ____lualib.__TS__New
31992
31926
  local ____exports = {}
31993
31927
  local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.index")
31994
31928
  local LevelStage = ____isaac_2Dtypescript_2Ddefinitions.LevelStage
31995
31929
  local StageID = ____isaac_2Dtypescript_2Ddefinitions.StageID
31996
31930
  local StageType = ____isaac_2Dtypescript_2Ddefinitions.StageType
31931
+ local ____ReadonlyMap = require("types.ReadonlyMap")
31932
+ local ReadonlyMap = ____ReadonlyMap.ReadonlyMap
31997
31933
  local BASEMENT_TO_STAGE_ID = {
31998
31934
  [StageType.ORIGINAL] = StageID.BASEMENT,
31999
31935
  [StageType.WRATH_OF_THE_LAMB] = StageID.CELLAR,
@@ -32081,6 +32017,31 @@ ____exports.STAGE_TO_STAGE_ID = {
32081
32017
  [LevelStage.VOID] = VOID_TO_STAGE_ID,
32082
32018
  [LevelStage.HOME] = HOME_TO_STAGE_ID
32083
32019
  }
32020
+ local SHOP_TO_STAGE_ID = {
32021
+ [StageType.ORIGINAL] = StageID.SHOP,
32022
+ [StageType.WRATH_OF_THE_LAMB] = StageID.SHOP,
32023
+ [StageType.AFTERBIRTH] = StageID.SHOP,
32024
+ [StageType.GREED_MODE] = StageID.SHOP,
32025
+ [StageType.REPENTANCE] = StageID.SHOP,
32026
+ [StageType.REPENTANCE_B] = StageID.SHOP
32027
+ }
32028
+ local ULTRA_GREED_TO_STAGE_ID = {
32029
+ [StageType.ORIGINAL] = StageID.ULTRA_GREED,
32030
+ [StageType.WRATH_OF_THE_LAMB] = StageID.ULTRA_GREED,
32031
+ [StageType.AFTERBIRTH] = StageID.ULTRA_GREED,
32032
+ [StageType.GREED_MODE] = StageID.ULTRA_GREED,
32033
+ [StageType.REPENTANCE] = StageID.ULTRA_GREED,
32034
+ [StageType.REPENTANCE_B] = StageID.ULTRA_GREED
32035
+ }
32036
+ ____exports.STAGE_TO_STAGE_ID_GREED_MODE = __TS__New(ReadonlyMap, {
32037
+ {LevelStage.BASEMENT_GREED_MODE, BASEMENT_TO_STAGE_ID},
32038
+ {LevelStage.CAVES_GREED_MODE, CAVES_TO_STAGE_ID},
32039
+ {LevelStage.DEPTHS_GREED_MODE, DEPTHS_TO_STAGE_ID},
32040
+ {LevelStage.WOMB_GREED_MODE, WOMB_TO_STAGE_ID},
32041
+ {LevelStage.SHEOL_GREED_MODE, SHEOL_CATHEDRAL_TO_STAGE_ID},
32042
+ {LevelStage.SHOP_GREED_MODE, SHOP_TO_STAGE_ID},
32043
+ {LevelStage.ULTRA_GREED_GREED_MODE, ULTRA_GREED_TO_STAGE_ID}
32044
+ })
32084
32045
  return ____exports
32085
32046
  end,
32086
32047
  ["objects.stageTypeSuffixes"] = function(...)
@@ -32105,15 +32066,17 @@ local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescri
32105
32066
  local GameStateFlag = ____isaac_2Dtypescript_2Ddefinitions.GameStateFlag
32106
32067
  local LevelStage = ____isaac_2Dtypescript_2Ddefinitions.LevelStage
32107
32068
  local RoomType = ____isaac_2Dtypescript_2Ddefinitions.RoomType
32069
+ local StageID = ____isaac_2Dtypescript_2Ddefinitions.StageID
32108
32070
  local StageType = ____isaac_2Dtypescript_2Ddefinitions.StageType
32109
32071
  local ____cachedClasses = require("core.cachedClasses")
32110
32072
  local game = ____cachedClasses.game
32111
- local ____levelNames = require("objects.levelNames")
32112
- local LEVEL_NAMES = ____levelNames.LEVEL_NAMES
32113
32073
  local ____roomTypeSpecialGotoPrefixes = require("objects.roomTypeSpecialGotoPrefixes")
32114
32074
  local ROOM_TYPE_SPECIAL_GOTO_PREFIXES = ____roomTypeSpecialGotoPrefixes.ROOM_TYPE_SPECIAL_GOTO_PREFIXES
32075
+ local ____stageIDNames = require("objects.stageIDNames")
32076
+ local STAGE_ID_NAMES = ____stageIDNames.STAGE_ID_NAMES
32115
32077
  local ____stageToStageID = require("objects.stageToStageID")
32116
32078
  local STAGE_TO_STAGE_ID = ____stageToStageID.STAGE_TO_STAGE_ID
32079
+ local STAGE_TO_STAGE_ID_GREED_MODE = ____stageToStageID.STAGE_TO_STAGE_ID_GREED_MODE
32117
32080
  local ____stageTypeSuffixes = require("objects.stageTypeSuffixes")
32118
32081
  local STAGE_TYPE_SUFFIXES = ____stageTypeSuffixes.STAGE_TYPE_SUFFIXES
32119
32082
  local ____log = require("functions.log")
@@ -32122,6 +32085,45 @@ local ____types = require("functions.types")
32122
32085
  local asLevelStage = ____types.asLevelStage
32123
32086
  local ____utils = require("functions.utils")
32124
32087
  local inRange = ____utils.inRange
32088
+ --- Helper function to get the stage ID that corresponds to a particular stage and stage type.
32089
+ --
32090
+ -- This is useful because `getRoomStageID` will not correctly return the `StageID` if the player is
32091
+ -- in a special room.
32092
+ --
32093
+ -- This correctly handles the case of Greed Mode. In Greed Mode, if an undefined stage and stage
32094
+ -- type combination are passed, `StageID.SPECIAL_ROOMS` (0) will be returned.
32095
+ --
32096
+ -- @param stage Optional. If not specified, the stage corresponding to the current floor will be
32097
+ -- used.
32098
+ -- @param stageType Optional. If not specified, the stage type corresponding to the current floor
32099
+ -- will be used.
32100
+ function ____exports.getStageID(self, stage, stageType)
32101
+ local level = game:GetLevel()
32102
+ if stage == nil then
32103
+ stage = level:GetStage()
32104
+ end
32105
+ if stageType == nil then
32106
+ stageType = level:GetStageType()
32107
+ end
32108
+ if game:IsGreedMode() then
32109
+ local stageTypeToStageID = STAGE_TO_STAGE_ID_GREED_MODE:get(stage)
32110
+ if stageTypeToStageID == nil then
32111
+ return StageID.SPECIAL_ROOMS
32112
+ end
32113
+ return stageTypeToStageID[stageType]
32114
+ end
32115
+ local stageTypeToStageID = STAGE_TO_STAGE_ID[stage]
32116
+ return stageTypeToStageID[stageType]
32117
+ end
32118
+ --- Helper function to get the English name corresponding to a stage ID. For example, "Caves".
32119
+ --
32120
+ -- This is derived from the data in the "stages.xml" file.
32121
+ --
32122
+ -- Note that unlike "stages.xml", Blue Womb is specified with a name of "Blue Womb" instead of
32123
+ -- "???".
32124
+ function ____exports.getStageIDName(self, stageID)
32125
+ return STAGE_ID_NAMES[stageID]
32126
+ end
32125
32127
  --- Helper function to check if the provided stage type is equal to `StageType.REPENTANCE` or
32126
32128
  -- `StageType.REPENTANCE_B`.
32127
32129
  function ____exports.isRepentanceStage(self, stageType)
@@ -32214,33 +32216,39 @@ function ____exports.getLevelName(self, stage, stageType)
32214
32216
  if stageType == nil then
32215
32217
  stageType = level:GetStageType()
32216
32218
  end
32217
- local stageNames = LEVEL_NAMES[stage]
32218
- return stageNames[stageType]
32219
+ local stageID = ____exports.getStageID(nil, stage, stageType)
32220
+ local stageIDName = ____exports.getStageIDName(nil, stageID)
32221
+ local suffix
32222
+ repeat
32223
+ local ____switch14 = stage
32224
+ local ____cond14 = ____switch14 == LevelStage.BASEMENT_1 or ____switch14 == LevelStage.CAVES_1 or ____switch14 == LevelStage.DEPTHS_1 or ____switch14 == LevelStage.WOMB_1
32225
+ if ____cond14 then
32226
+ do
32227
+ suffix = " 1"
32228
+ break
32229
+ end
32230
+ end
32231
+ ____cond14 = ____cond14 or (____switch14 == LevelStage.BASEMENT_2 or ____switch14 == LevelStage.CAVES_2 or ____switch14 == LevelStage.DEPTHS_2 or ____switch14 == LevelStage.WOMB_2)
32232
+ if ____cond14 then
32233
+ do
32234
+ suffix = " 2"
32235
+ break
32236
+ end
32237
+ end
32238
+ do
32239
+ do
32240
+ suffix = ""
32241
+ break
32242
+ end
32243
+ end
32244
+ until true
32245
+ return stageIDName .. suffix
32219
32246
  end
32220
32247
  --- Alias for the `Level.GetStage` method.
32221
32248
  function ____exports.getStage(self)
32222
32249
  local level = game:GetLevel()
32223
32250
  return level:GetStage()
32224
32251
  end
32225
- --- Helper function to get the stage ID that corresponds to a particular floor. It does this by
32226
- -- manually converting `LevelStage` and `StageType` into `StageID`. This is useful because
32227
- -- `getRoomStageID` will not correctly return the `StageID` if the player is in a special room.
32228
- --
32229
- -- @param stage Optional. If not specified, the stage corresponding to the current floor will be
32230
- -- used.
32231
- -- @param stageType Optional. If not specified, the stage type corresponding to the current floor
32232
- -- will be used.
32233
- function ____exports.getStageID(self, stage, stageType)
32234
- local level = game:GetLevel()
32235
- if stage == nil then
32236
- stage = level:GetStage()
32237
- end
32238
- if stageType == nil then
32239
- stageType = level:GetStageType()
32240
- end
32241
- local stageTypeToStageID = STAGE_TO_STAGE_ID[stage]
32242
- return stageTypeToStageID[stageType]
32243
- end
32244
32252
  --- Alias for the `Level.GetStageType` method.
32245
32253
  function ____exports.getStageType(self)
32246
32254
  local level = game:GetLevel()
@@ -51156,8 +51164,8 @@ ____exports.BOSS_ID_TO_STAGE_IDS = (function()
51156
51164
  partialBossIDsToStageIDs[bossID] = stageIDs
51157
51165
  end
51158
51166
  local bossIDsToStageIDs = partialBossIDsToStageIDs
51159
- bossIDsToStageIDs[BossID.ULTRA_GREED]:add(StageID.ULTRA_GREED_GREED_MODE)
51160
- bossIDsToStageIDs[BossID.ULTRA_GREEDIER]:add(StageID.ULTRA_GREED_GREED_MODE)
51167
+ bossIDsToStageIDs[BossID.ULTRA_GREED]:add(StageID.ULTRA_GREED)
51168
+ bossIDsToStageIDs[BossID.ULTRA_GREEDIER]:add(StageID.ULTRA_GREED)
51161
51169
  bossIDsToStageIDs[BossID.MAUSOLEUM_MOMS_HEART]:add(StageID.MAUSOLEUM)
51162
51170
  bossIDsToStageIDs[BossID.MAUSOLEUM_MOMS_HEART]:add(StageID.GEHENNA)
51163
51171
  return bossIDsToStageIDs
@@ -52074,14 +52082,8 @@ ____exports.VERSUS_SCREEN_BACKGROUND_COLORS = {
52074
52082
  [StageID.CATHEDRAL] = newReadonlyColor(nil, 6 / 255, 13 / 255, 17 / 255),
52075
52083
  [StageID.DARK_ROOM] = newReadonlyColor(nil, 9 / 255, 4 / 255, 3 / 255),
52076
52084
  [StageID.CHEST] = newReadonlyColor(nil, 15 / 255, 9 / 255, 6 / 255),
52077
- [StageID.SPECIAL_ROOMS_GREED_MODE] = DEFAULT_COLOR,
52078
- [StageID.BASEMENT_GREED_MODE] = BASEMENT_COLOR,
52079
- [StageID.CAVES_GREED_MODE] = CAVES_COLOR,
52080
- [StageID.DEPTHS_GREED_MODE] = DEPTHS_COLOR,
52081
- [StageID.WOMB_GREED_MODE] = WOMB_COLOR,
52082
- [StageID.SHEOL_GREED_MODE] = SHEOL_COLOR,
52083
- [StageID.SHOP_GREED_MODE] = DEFAULT_COLOR,
52084
- [StageID.ULTRA_GREED_GREED_MODE] = DEFAULT_COLOR,
52085
+ [StageID.SHOP] = DEFAULT_COLOR,
52086
+ [StageID.ULTRA_GREED] = DEFAULT_COLOR,
52085
52087
  [StageID.VOID] = newReadonlyColor(nil, 0, 0, 0),
52086
52088
  [StageID.DOWNPOUR] = newReadonlyColor(nil, 29 / 255, 30 / 255, 32 / 255),
52087
52089
  [StageID.DROSS] = newReadonlyColor(nil, 35 / 255, 35 / 255, 29 / 255),
@@ -52129,14 +52131,8 @@ ____exports.VERSUS_SCREEN_DIRT_SPOT_COLORS = {
52129
52131
  [StageID.CATHEDRAL] = newReadonlyColor(nil, 44 / 255, 100 / 255, 111 / 255),
52130
52132
  [StageID.DARK_ROOM] = newReadonlyColor(nil, 80 / 255, 38 / 255, 20 / 255),
52131
52133
  [StageID.CHEST] = newReadonlyColor(nil, 175 / 255, 108 / 255, 72 / 255),
52132
- [StageID.SPECIAL_ROOMS_GREED_MODE] = DEFAULT_COLOR,
52133
- [StageID.BASEMENT_GREED_MODE] = BASEMENT_COLOR,
52134
- [StageID.CAVES_GREED_MODE] = CAVES_COLOR,
52135
- [StageID.DEPTHS_GREED_MODE] = DEPTHS_COLOR,
52136
- [StageID.WOMB_GREED_MODE] = WOMB_COLOR,
52137
- [StageID.SHEOL_GREED_MODE] = SHEOL_COLOR,
52138
- [StageID.SHOP_GREED_MODE] = DEFAULT_COLOR,
52139
- [StageID.ULTRA_GREED_GREED_MODE] = DEFAULT_COLOR,
52134
+ [StageID.SHOP] = DEFAULT_COLOR,
52135
+ [StageID.ULTRA_GREED] = DEFAULT_COLOR,
52140
52136
  [StageID.VOID] = newReadonlyColor(nil, 70 / 255, 5 / 255, 5 / 255),
52141
52137
  [StageID.DOWNPOUR] = newReadonlyColor(nil, 149 / 255, 157 / 255, 167 / 255),
52142
52138
  [StageID.DROSS] = newReadonlyColor(nil, 179 / 255, 179 / 255, 143 / 255),
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Derived from "stages.xml". Note that unlike "stages.xml":
3
+ *
4
+ * - `StageID.BLUE_WOMB` (13) is specified with a name of "Blue Womb" instead of "???".
5
+ * - `StageID.StageID.BACKWARDS` (36) is specified with a name of "The Ascent" instead of "???".
6
+ */
7
+ export declare const STAGE_ID_NAMES: {
8
+ readonly 0: "Special Rooms";
9
+ readonly 1: "Basement";
10
+ readonly 2: "Cellar";
11
+ readonly 3: "Burning Basement";
12
+ readonly 4: "Caves";
13
+ readonly 5: "Catacombs";
14
+ readonly 6: "Flooded Caves";
15
+ readonly 7: "Depths";
16
+ readonly 8: "Necropolis";
17
+ readonly 9: "Dank Depths";
18
+ readonly 10: "Womb";
19
+ readonly 11: "Utero";
20
+ readonly 12: "Scarred Womb";
21
+ readonly 13: "Blue Womb";
22
+ readonly 14: "Sheol";
23
+ readonly 15: "Cathedral";
24
+ readonly 16: "Dark Room";
25
+ readonly 17: "Chest";
26
+ readonly 24: "The Shop";
27
+ readonly 25: "Ultra Greed";
28
+ readonly 26: "The Void";
29
+ readonly 27: "Downpour";
30
+ readonly 28: "Dross";
31
+ readonly 29: "Mines";
32
+ readonly 30: "Ashpit";
33
+ readonly 31: "Mausoleum";
34
+ readonly 32: "Gehenna";
35
+ readonly 33: "Corpse";
36
+ readonly 34: "Mortis";
37
+ readonly 35: "Home";
38
+ readonly 36: "The Ascent";
39
+ };
40
+ //# sourceMappingURL=stageIDNames.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stageIDNames.d.ts","sourceRoot":"","sources":["../../src/objects/stageIDNames.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCiB,CAAC"}
@@ -0,0 +1,41 @@
1
+ local ____exports = {}
2
+ local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
3
+ local StageID = ____isaac_2Dtypescript_2Ddefinitions.StageID
4
+ --- Derived from "stages.xml". Note that unlike "stages.xml":
5
+ --
6
+ -- - `StageID.BLUE_WOMB` (13) is specified with a name of "Blue Womb" instead of "???".
7
+ -- - `StageID.StageID.BACKWARDS` (36) is specified with a name of "The Ascent" instead of "???".
8
+ ____exports.STAGE_ID_NAMES = {
9
+ [StageID.SPECIAL_ROOMS] = "Special Rooms",
10
+ [StageID.BASEMENT] = "Basement",
11
+ [StageID.CELLAR] = "Cellar",
12
+ [StageID.BURNING_BASEMENT] = "Burning Basement",
13
+ [StageID.CAVES] = "Caves",
14
+ [StageID.CATACOMBS] = "Catacombs",
15
+ [StageID.FLOODED_CAVES] = "Flooded Caves",
16
+ [StageID.DEPTHS] = "Depths",
17
+ [StageID.NECROPOLIS] = "Necropolis",
18
+ [StageID.DANK_DEPTHS] = "Dank Depths",
19
+ [StageID.WOMB] = "Womb",
20
+ [StageID.UTERO] = "Utero",
21
+ [StageID.SCARRED_WOMB] = "Scarred Womb",
22
+ [StageID.BLUE_WOMB] = "Blue Womb",
23
+ [StageID.SHEOL] = "Sheol",
24
+ [StageID.CATHEDRAL] = "Cathedral",
25
+ [StageID.DARK_ROOM] = "Dark Room",
26
+ [StageID.CHEST] = "Chest",
27
+ [StageID.SHOP] = "The Shop",
28
+ [StageID.ULTRA_GREED] = "Ultra Greed",
29
+ [StageID.VOID] = "The Void",
30
+ [StageID.DOWNPOUR] = "Downpour",
31
+ [StageID.DROSS] = "Dross",
32
+ [StageID.MINES] = "Mines",
33
+ [StageID.ASHPIT] = "Ashpit",
34
+ [StageID.MAUSOLEUM] = "Mausoleum",
35
+ [StageID.GEHENNA] = "Gehenna",
36
+ [StageID.CORPSE] = "Corpse",
37
+ [StageID.MORTIS] = "Mortis",
38
+ [StageID.HOME] = "Home",
39
+ [StageID.BACKWARDS] = "The Ascent"
40
+ }
41
+ return ____exports
@@ -1,4 +1,4 @@
1
- import { StageID } from "isaac-typescript-definitions";
1
+ import { LevelStage, StageID, StageType } from "isaac-typescript-definitions";
2
2
  export declare const STAGE_TO_STAGE_ID: {
3
3
  readonly 1: {
4
4
  readonly 0: StageID.BASEMENT;
@@ -105,4 +105,5 @@ export declare const STAGE_TO_STAGE_ID: {
105
105
  readonly 5: StageID.HOME;
106
106
  };
107
107
  };
108
+ export declare const STAGE_TO_STAGE_ID_GREED_MODE: ReadonlyMap<LevelStage, Record<StageType, StageID>>;
108
109
  //# sourceMappingURL=stageToStageID.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stageToStageID.d.ts","sourceRoot":"","sources":["../../src/objects/stageToStageID.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,OAAO,EAAa,MAAM,8BAA8B,CAAC;AAmF9E,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAckB,CAAC"}
1
+ {"version":3,"file":"stageToStageID.d.ts","sourceRoot":"","sources":["../../src/objects/stageToStageID.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAoF9E,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAcqC,CAAC;AAoBpE,eAAO,MAAM,4BAA4B,qDAWvC,CAAC"}
@@ -1,8 +1,12 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__New = ____lualib.__TS__New
1
3
  local ____exports = {}
2
4
  local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
3
5
  local LevelStage = ____isaac_2Dtypescript_2Ddefinitions.LevelStage
4
6
  local StageID = ____isaac_2Dtypescript_2Ddefinitions.StageID
5
7
  local StageType = ____isaac_2Dtypescript_2Ddefinitions.StageType
8
+ local ____ReadonlyMap = require("types.ReadonlyMap")
9
+ local ReadonlyMap = ____ReadonlyMap.ReadonlyMap
6
10
  local BASEMENT_TO_STAGE_ID = {
7
11
  [StageType.ORIGINAL] = StageID.BASEMENT,
8
12
  [StageType.WRATH_OF_THE_LAMB] = StageID.CELLAR,
@@ -90,4 +94,29 @@ ____exports.STAGE_TO_STAGE_ID = {
90
94
  [LevelStage.VOID] = VOID_TO_STAGE_ID,
91
95
  [LevelStage.HOME] = HOME_TO_STAGE_ID
92
96
  }
97
+ local SHOP_TO_STAGE_ID = {
98
+ [StageType.ORIGINAL] = StageID.SHOP,
99
+ [StageType.WRATH_OF_THE_LAMB] = StageID.SHOP,
100
+ [StageType.AFTERBIRTH] = StageID.SHOP,
101
+ [StageType.GREED_MODE] = StageID.SHOP,
102
+ [StageType.REPENTANCE] = StageID.SHOP,
103
+ [StageType.REPENTANCE_B] = StageID.SHOP
104
+ }
105
+ local ULTRA_GREED_TO_STAGE_ID = {
106
+ [StageType.ORIGINAL] = StageID.ULTRA_GREED,
107
+ [StageType.WRATH_OF_THE_LAMB] = StageID.ULTRA_GREED,
108
+ [StageType.AFTERBIRTH] = StageID.ULTRA_GREED,
109
+ [StageType.GREED_MODE] = StageID.ULTRA_GREED,
110
+ [StageType.REPENTANCE] = StageID.ULTRA_GREED,
111
+ [StageType.REPENTANCE_B] = StageID.ULTRA_GREED
112
+ }
113
+ ____exports.STAGE_TO_STAGE_ID_GREED_MODE = __TS__New(ReadonlyMap, {
114
+ {LevelStage.BASEMENT_GREED_MODE, BASEMENT_TO_STAGE_ID},
115
+ {LevelStage.CAVES_GREED_MODE, CAVES_TO_STAGE_ID},
116
+ {LevelStage.DEPTHS_GREED_MODE, DEPTHS_TO_STAGE_ID},
117
+ {LevelStage.WOMB_GREED_MODE, WOMB_TO_STAGE_ID},
118
+ {LevelStage.SHEOL_GREED_MODE, SHEOL_CATHEDRAL_TO_STAGE_ID},
119
+ {LevelStage.SHOP_GREED_MODE, SHOP_TO_STAGE_ID},
120
+ {LevelStage.ULTRA_GREED_GREED_MODE, ULTRA_GREED_TO_STAGE_ID}
121
+ })
93
122
  return ____exports
@@ -18,12 +18,6 @@ export declare const VERSUS_SCREEN_BACKGROUND_COLORS: {
18
18
  readonly 15: Readonly<Color>;
19
19
  readonly 16: Readonly<Color>;
20
20
  readonly 17: Readonly<Color>;
21
- readonly 18: Readonly<Color>;
22
- readonly 19: Readonly<Color>;
23
- readonly 20: Readonly<Color>;
24
- readonly 21: Readonly<Color>;
25
- readonly 22: Readonly<Color>;
26
- readonly 23: Readonly<Color>;
27
21
  readonly 24: Readonly<Color>;
28
22
  readonly 25: Readonly<Color>;
29
23
  readonly 26: Readonly<Color>;
@@ -1 +1 @@
1
- {"version":3,"file":"versusScreenBackgroundColors.d.ts","sourceRoot":"","sources":["../../src/objects/versusScreenBackgroundColors.ts"],"names":[],"mappings":"AAYA,4CAA4C;AAC5C,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsCS,CAAC"}
1
+ {"version":3,"file":"versusScreenBackgroundColors.d.ts","sourceRoot":"","sources":["../../src/objects/versusScreenBackgroundColors.ts"],"names":[],"mappings":"AAYA,4CAA4C;AAC5C,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCS,CAAC"}
@@ -30,14 +30,8 @@ ____exports.VERSUS_SCREEN_BACKGROUND_COLORS = {
30
30
  [StageID.CATHEDRAL] = newReadonlyColor(nil, 6 / 255, 13 / 255, 17 / 255),
31
31
  [StageID.DARK_ROOM] = newReadonlyColor(nil, 9 / 255, 4 / 255, 3 / 255),
32
32
  [StageID.CHEST] = newReadonlyColor(nil, 15 / 255, 9 / 255, 6 / 255),
33
- [StageID.SPECIAL_ROOMS_GREED_MODE] = DEFAULT_COLOR,
34
- [StageID.BASEMENT_GREED_MODE] = BASEMENT_COLOR,
35
- [StageID.CAVES_GREED_MODE] = CAVES_COLOR,
36
- [StageID.DEPTHS_GREED_MODE] = DEPTHS_COLOR,
37
- [StageID.WOMB_GREED_MODE] = WOMB_COLOR,
38
- [StageID.SHEOL_GREED_MODE] = SHEOL_COLOR,
39
- [StageID.SHOP_GREED_MODE] = DEFAULT_COLOR,
40
- [StageID.ULTRA_GREED_GREED_MODE] = DEFAULT_COLOR,
33
+ [StageID.SHOP] = DEFAULT_COLOR,
34
+ [StageID.ULTRA_GREED] = DEFAULT_COLOR,
41
35
  [StageID.VOID] = newReadonlyColor(nil, 0, 0, 0),
42
36
  [StageID.DOWNPOUR] = newReadonlyColor(nil, 29 / 255, 30 / 255, 32 / 255),
43
37
  [StageID.DROSS] = newReadonlyColor(nil, 35 / 255, 35 / 255, 29 / 255),