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
@@ -216,6 +216,12 @@ export declare function isArray(object: unknown, ensureContiguousValues?: boolea
216
216
  * For example, `[2, 3, 4]` would return true, and `[2, 3, 5]` would return false.
217
217
  */
218
218
  export declare function isArrayContiguous(array: readonly int[]): boolean;
219
+ /**
220
+ * Helper function to check if all the elements of an array are unique within that array.
221
+ *
222
+ * Under the hood, this is performed by converting the array to a set.
223
+ */
224
+ export declare function isArrayElementsUnique(array: readonly unknown[]): boolean;
219
225
  /** Checks if an array is in the provided 2-dimensional array. */
220
226
  export declare function isArrayInArray<T>(arrayToMatch: readonly T[], parentArray: ReadonlyArray<readonly T[]>): boolean;
221
227
  /** Helper function to set every element in an array to a specific value. */
@@ -1 +1 @@
1
- {"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../src/functions/array.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../src/functions/array.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@ local __TS__SparseArrayPush = ____lualib.__TS__SparseArrayPush
15
15
  local __TS__SparseArraySpread = ____lualib.__TS__SparseArraySpread
16
16
  local __TS__ArrayIncludes = ____lualib.__TS__ArrayIncludes
17
17
  local __TS__ObjectKeys = ____lualib.__TS__ObjectKeys
18
+ local Set = ____lualib.Set
18
19
  local __TS__ArraySome = ____lualib.__TS__ArraySome
19
20
  local __TS__ArrayReduce = ____lualib.__TS__ArrayReduce
20
21
  local ____exports = {}
@@ -528,6 +529,13 @@ function ____exports.isArrayContiguous(self, array)
528
529
  end
529
530
  return true
530
531
  end
532
+ --- Helper function to check if all the elements of an array are unique within that array.
533
+ --
534
+ -- Under the hood, this is performed by converting the array to a set.
535
+ function ____exports.isArrayElementsUnique(self, array)
536
+ local set = __TS__New(Set, array)
537
+ return set.size == #array
538
+ end
531
539
  --- Checks if an array is in the provided 2-dimensional array.
532
540
  function ____exports.isArrayInArray(self, arrayToMatch, parentArray)
533
541
  return __TS__ArraySome(
@@ -1,5 +1,4 @@
1
- import type { StageID } from "isaac-typescript-definitions";
2
- import { LevelStage, RoomType, StageType } from "isaac-typescript-definitions";
1
+ import { LevelStage, RoomType, StageID, StageType } from "isaac-typescript-definitions";
3
2
  /**
4
3
  * Helper function that calculates what the stage type should be for the provided stage. This
5
4
  * emulates what the game's internal code does.
@@ -42,9 +41,13 @@ export declare function getLevelName(stage?: LevelStage, stageType?: StageType):
42
41
  /** Alias for the `Level.GetStage` method. */
43
42
  export declare function getStage(): LevelStage;
44
43
  /**
45
- * Helper function to get the stage ID that corresponds to a particular floor. It does this by
46
- * manually converting `LevelStage` and `StageType` into `StageID`. This is useful because
47
- * `getRoomStageID` will not correctly return the `StageID` if the player is in a special room.
44
+ * Helper function to get the stage ID that corresponds to a particular stage and stage type.
45
+ *
46
+ * This is useful because `getRoomStageID` will not correctly return the `StageID` if the player is
47
+ * in a special room.
48
+ *
49
+ * This correctly handles the case of Greed Mode. In Greed Mode, if an undefined stage and stage
50
+ * type combination are passed, `StageID.SPECIAL_ROOMS` (0) will be returned.
48
51
  *
49
52
  * @param stage Optional. If not specified, the stage corresponding to the current floor will be
50
53
  * used.
@@ -52,6 +55,15 @@ export declare function getStage(): LevelStage;
52
55
  * will be used.
53
56
  */
54
57
  export declare function getStageID(stage?: LevelStage, stageType?: StageType): StageID;
58
+ /**
59
+ * Helper function to get the English name corresponding to a stage ID. For example, "Caves".
60
+ *
61
+ * This is derived from the data in the "stages.xml" file.
62
+ *
63
+ * Note that unlike "stages.xml", Blue Womb is specified with a name of "Blue Womb" instead of
64
+ * "???".
65
+ */
66
+ export declare function getStageIDName(stageID: StageID): string;
55
67
  /** Alias for the `Level.GetStageType` method. */
56
68
  export declare function getStageType(): StageType;
57
69
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"stage.d.ts","sourceRoot":"","sources":["../../src/functions/stage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stage.d.ts","sourceRoot":"","sources":["../../src/functions/stage.ts"],"names":[],"mappings":"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"}
@@ -5,15 +5,17 @@ local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitio
5
5
  local GameStateFlag = ____isaac_2Dtypescript_2Ddefinitions.GameStateFlag
6
6
  local LevelStage = ____isaac_2Dtypescript_2Ddefinitions.LevelStage
7
7
  local RoomType = ____isaac_2Dtypescript_2Ddefinitions.RoomType
8
+ local StageID = ____isaac_2Dtypescript_2Ddefinitions.StageID
8
9
  local StageType = ____isaac_2Dtypescript_2Ddefinitions.StageType
9
10
  local ____cachedClasses = require("core.cachedClasses")
10
11
  local game = ____cachedClasses.game
11
- local ____levelNames = require("objects.levelNames")
12
- local LEVEL_NAMES = ____levelNames.LEVEL_NAMES
13
12
  local ____roomTypeSpecialGotoPrefixes = require("objects.roomTypeSpecialGotoPrefixes")
14
13
  local ROOM_TYPE_SPECIAL_GOTO_PREFIXES = ____roomTypeSpecialGotoPrefixes.ROOM_TYPE_SPECIAL_GOTO_PREFIXES
14
+ local ____stageIDNames = require("objects.stageIDNames")
15
+ local STAGE_ID_NAMES = ____stageIDNames.STAGE_ID_NAMES
15
16
  local ____stageToStageID = require("objects.stageToStageID")
16
17
  local STAGE_TO_STAGE_ID = ____stageToStageID.STAGE_TO_STAGE_ID
18
+ local STAGE_TO_STAGE_ID_GREED_MODE = ____stageToStageID.STAGE_TO_STAGE_ID_GREED_MODE
17
19
  local ____stageTypeSuffixes = require("objects.stageTypeSuffixes")
18
20
  local STAGE_TYPE_SUFFIXES = ____stageTypeSuffixes.STAGE_TYPE_SUFFIXES
19
21
  local ____log = require("functions.log")
@@ -22,6 +24,45 @@ local ____types = require("functions.types")
22
24
  local asLevelStage = ____types.asLevelStage
23
25
  local ____utils = require("functions.utils")
24
26
  local inRange = ____utils.inRange
27
+ --- Helper function to get the stage ID that corresponds to a particular stage and stage type.
28
+ --
29
+ -- This is useful because `getRoomStageID` will not correctly return the `StageID` if the player is
30
+ -- in a special room.
31
+ --
32
+ -- This correctly handles the case of Greed Mode. In Greed Mode, if an undefined stage and stage
33
+ -- type combination are passed, `StageID.SPECIAL_ROOMS` (0) will be returned.
34
+ --
35
+ -- @param stage Optional. If not specified, the stage corresponding to the current floor will be
36
+ -- used.
37
+ -- @param stageType Optional. If not specified, the stage type corresponding to the current floor
38
+ -- will be used.
39
+ function ____exports.getStageID(self, stage, stageType)
40
+ local level = game:GetLevel()
41
+ if stage == nil then
42
+ stage = level:GetStage()
43
+ end
44
+ if stageType == nil then
45
+ stageType = level:GetStageType()
46
+ end
47
+ if game:IsGreedMode() then
48
+ local stageTypeToStageID = STAGE_TO_STAGE_ID_GREED_MODE:get(stage)
49
+ if stageTypeToStageID == nil then
50
+ return StageID.SPECIAL_ROOMS
51
+ end
52
+ return stageTypeToStageID[stageType]
53
+ end
54
+ local stageTypeToStageID = STAGE_TO_STAGE_ID[stage]
55
+ return stageTypeToStageID[stageType]
56
+ end
57
+ --- Helper function to get the English name corresponding to a stage ID. For example, "Caves".
58
+ --
59
+ -- This is derived from the data in the "stages.xml" file.
60
+ --
61
+ -- Note that unlike "stages.xml", Blue Womb is specified with a name of "Blue Womb" instead of
62
+ -- "???".
63
+ function ____exports.getStageIDName(self, stageID)
64
+ return STAGE_ID_NAMES[stageID]
65
+ end
25
66
  --- Helper function to check if the provided stage type is equal to `StageType.REPENTANCE` or
26
67
  -- `StageType.REPENTANCE_B`.
27
68
  function ____exports.isRepentanceStage(self, stageType)
@@ -114,33 +155,39 @@ function ____exports.getLevelName(self, stage, stageType)
114
155
  if stageType == nil then
115
156
  stageType = level:GetStageType()
116
157
  end
117
- local stageNames = LEVEL_NAMES[stage]
118
- return stageNames[stageType]
158
+ local stageID = ____exports.getStageID(nil, stage, stageType)
159
+ local stageIDName = ____exports.getStageIDName(nil, stageID)
160
+ local suffix
161
+ repeat
162
+ local ____switch14 = stage
163
+ local ____cond14 = ____switch14 == LevelStage.BASEMENT_1 or ____switch14 == LevelStage.CAVES_1 or ____switch14 == LevelStage.DEPTHS_1 or ____switch14 == LevelStage.WOMB_1
164
+ if ____cond14 then
165
+ do
166
+ suffix = " 1"
167
+ break
168
+ end
169
+ end
170
+ ____cond14 = ____cond14 or (____switch14 == LevelStage.BASEMENT_2 or ____switch14 == LevelStage.CAVES_2 or ____switch14 == LevelStage.DEPTHS_2 or ____switch14 == LevelStage.WOMB_2)
171
+ if ____cond14 then
172
+ do
173
+ suffix = " 2"
174
+ break
175
+ end
176
+ end
177
+ do
178
+ do
179
+ suffix = ""
180
+ break
181
+ end
182
+ end
183
+ until true
184
+ return stageIDName .. suffix
119
185
  end
120
186
  --- Alias for the `Level.GetStage` method.
121
187
  function ____exports.getStage(self)
122
188
  local level = game:GetLevel()
123
189
  return level:GetStage()
124
190
  end
125
- --- Helper function to get the stage ID that corresponds to a particular floor. It does this by
126
- -- manually converting `LevelStage` and `StageType` into `StageID`. This is useful because
127
- -- `getRoomStageID` will not correctly return the `StageID` if the player is in a special room.
128
- --
129
- -- @param stage Optional. If not specified, the stage corresponding to the current floor will be
130
- -- used.
131
- -- @param stageType Optional. If not specified, the stage type corresponding to the current floor
132
- -- will be used.
133
- function ____exports.getStageID(self, stage, stageType)
134
- local level = game:GetLevel()
135
- if stage == nil then
136
- stage = level:GetStage()
137
- end
138
- if stageType == nil then
139
- stageType = level:GetStageType()
140
- end
141
- local stageTypeToStageID = STAGE_TO_STAGE_ID[stage]
142
- return stageTypeToStageID[stageType]
143
- end
144
191
  --- Alias for the `Level.GetStageType` method.
145
192
  function ____exports.getStageType(self)
146
193
  local level = game:GetLevel()
@@ -76,7 +76,7 @@ import { RoomType } from 'isaac-typescript-definitions';
76
76
  import type { SackSubType } from 'isaac-typescript-definitions';
77
77
  import { SeedEffect } from 'isaac-typescript-definitions';
78
78
  import { SlotVariant } from 'isaac-typescript-definitions';
79
- import type { StageID } from 'isaac-typescript-definitions';
79
+ import { StageID } from 'isaac-typescript-definitions';
80
80
  import { StageType } from 'isaac-typescript-definitions';
81
81
  import { TearFlag } from 'isaac-typescript-definitions';
82
82
  import type { TearVariant } from 'isaac-typescript-definitions';
@@ -7893,9 +7893,13 @@ export declare function getSpikes(variant?: number): readonly GridEntitySpikes[]
7893
7893
  export declare function getStage(): LevelStage;
7894
7894
 
7895
7895
  /**
7896
- * Helper function to get the stage ID that corresponds to a particular floor. It does this by
7897
- * manually converting `LevelStage` and `StageType` into `StageID`. This is useful because
7898
- * `getRoomStageID` will not correctly return the `StageID` if the player is in a special room.
7896
+ * Helper function to get the stage ID that corresponds to a particular stage and stage type.
7897
+ *
7898
+ * This is useful because `getRoomStageID` will not correctly return the `StageID` if the player is
7899
+ * in a special room.
7900
+ *
7901
+ * This correctly handles the case of Greed Mode. In Greed Mode, if an undefined stage and stage
7902
+ * type combination are passed, `StageID.SPECIAL_ROOMS` (0) will be returned.
7899
7903
  *
7900
7904
  * @param stage Optional. If not specified, the stage corresponding to the current floor will be
7901
7905
  * used.
@@ -7904,6 +7908,16 @@ export declare function getStage(): LevelStage;
7904
7908
  */
7905
7909
  export declare function getStageID(stage?: LevelStage, stageType?: StageType): StageID;
7906
7910
 
7911
+ /**
7912
+ * Helper function to get the English name corresponding to a stage ID. For example, "Caves".
7913
+ *
7914
+ * This is derived from the data in the "stages.xml" file.
7915
+ *
7916
+ * Note that unlike "stages.xml", Blue Womb is specified with a name of "Blue Womb" instead of
7917
+ * "???".
7918
+ */
7919
+ export declare function getStageIDName(stageID: StageID): string;
7920
+
7907
7921
  /** Alias for the `Level.GetStageType` method. */
7908
7922
  export declare function getStageType(): StageType;
7909
7923
 
@@ -9006,6 +9020,13 @@ export declare function isArray(object: unknown, ensureContiguousValues?: boolea
9006
9020
  */
9007
9021
  export declare function isArrayContiguous(array: readonly int[]): boolean;
9008
9022
 
9023
+ /**
9024
+ * Helper function to check if all the elements of an array are unique within that array.
9025
+ *
9026
+ * Under the hood, this is performed by converting the array to a set.
9027
+ */
9028
+ export declare function isArrayElementsUnique(array: readonly unknown[]): boolean;
9029
+
9009
9030
  /** Checks if an array is in the provided 2-dimensional array. */
9010
9031
  export declare function isArrayInArray<T>(arrayToMatch: readonly T[], parentArray: ReadonlyArray<readonly T[]>): boolean;
9011
9032