isaacscript-common 57.4.0 → 57.7.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.
@@ -5031,6 +5031,16 @@ export declare function getCardName(cardType: CardType): string;
5031
5031
  */
5032
5032
  export declare function getCards(cardType?: CardType | -1): EntityPickupCard[];
5033
5033
 
5034
+ /**
5035
+ * Get the final boss of a challenge. This will only work for vanilla challenges.
5036
+ *
5037
+ * For modded challenges, `BossID.MOM` (6) will be returned.
5038
+ *
5039
+ * Note that for `Challenge.BACKASSWARDS` (31), this function will return `BossID.MEGA_SATAN` (55),
5040
+ * but this is not actually the final boss. (There is no final boss for this challenge.)
5041
+ */
5042
+ export declare function getChallengeBoss(challenge: Challenge): BossID;
5043
+
5034
5044
  /**
5035
5045
  * Get the starting character of a challenge. This will only work for vanilla challenges.
5036
5046
  *
@@ -10595,6 +10605,8 @@ export declare const MAX_PLAYER_SPEED_IN_UNITS = 9.8;
10595
10605
 
10596
10606
  export declare const MAX_PLAYER_TRINKET_SLOTS: int;
10597
10607
 
10608
+ export declare const MAX_QUALITY: Quality;
10609
+
10598
10610
  /**
10599
10611
  * The maximum speed stat that a player can have. Any additional speed beyond this will not take
10600
10612
  * effect.
@@ -1,6 +1,6 @@
1
1
  --[[
2
2
 
3
- isaacscript-common 57.4.0
3
+ isaacscript-common 57.7.0
4
4
 
5
5
  This is the "isaacscript-common" library, which was created with the IsaacScript tool.
6
6
 
@@ -18142,6 +18142,7 @@ ____exports.QUALITIES = {
18142
18142
  3,
18143
18143
  4
18144
18144
  }
18145
+ ____exports.MAX_QUALITY = 4
18145
18146
  ____exports.SECOND_IN_MILLISECONDS = 1000
18146
18147
  ____exports.MINUTE_IN_MILLISECONDS = 60 * ____exports.SECOND_IN_MILLISECONDS
18147
18148
  ____exports.RESOLUTION_FULL_SCREEN = Vector(480, 270)
@@ -54363,6 +54364,62 @@ function ____exports.getBombRadiusFromDamage(self, damage)
54363
54364
  end
54364
54365
  return 90
54365
54366
  end
54367
+ return ____exports
54368
+ end,
54369
+ ["src.objects.challengeBosses"] = function(...)
54370
+ local ____exports = {}
54371
+ local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
54372
+ local BossID = ____isaac_2Dtypescript_2Ddefinitions.BossID
54373
+ local Challenge = ____isaac_2Dtypescript_2Ddefinitions.Challenge
54374
+ ____exports.DEFAULT_CHALLENGE_BOSS_ID = BossID.MOM
54375
+ ____exports.CHALLENGE_BOSSES = {
54376
+ [Challenge.NULL] = BossID.MOM,
54377
+ [Challenge.PITCH_BLACK] = BossID.MOM,
54378
+ [Challenge.HIGH_BROW] = BossID.MOM,
54379
+ [Challenge.HEAD_TRAUMA] = BossID.MOM,
54380
+ [Challenge.DARKNESS_FALLS] = BossID.SATAN,
54381
+ [Challenge.TANK] = BossID.MOM,
54382
+ [Challenge.SOLAR_SYSTEM] = BossID.MOMS_HEART,
54383
+ [Challenge.SUICIDE_KING] = BossID.ISAAC,
54384
+ [Challenge.CAT_GOT_YOUR_TONGUE] = BossID.MOM,
54385
+ [Challenge.DEMO_MAN] = BossID.MOMS_HEART,
54386
+ [Challenge.CURSED] = BossID.MOM,
54387
+ [Challenge.GLASS_CANNON] = BossID.SATAN,
54388
+ [Challenge.WHEN_LIFE_GIVES_LEMONS] = BossID.MOM,
54389
+ [Challenge.BEANS] = BossID.MOM,
54390
+ [Challenge.ITS_IN_THE_CARDS] = BossID.MOM,
54391
+ [Challenge.SLOW_ROLL] = BossID.MOM,
54392
+ [Challenge.COMPUTER_SAVY] = BossID.MOM,
54393
+ [Challenge.WAKA_WAKA] = BossID.MOM,
54394
+ [Challenge.HOST] = BossID.MOM,
54395
+ [Challenge.FAMILY_MAN] = BossID.ISAAC,
54396
+ [Challenge.PURIST] = BossID.MOMS_HEART,
54397
+ [Challenge.XXXXXXXXL] = BossID.MOMS_HEART,
54398
+ [Challenge.SPEED] = BossID.MOMS_HEART,
54399
+ [Challenge.BLUE_BOMBER] = BossID.SATAN,
54400
+ [Challenge.PAY_TO_PLAY] = BossID.ISAAC,
54401
+ [Challenge.HAVE_A_HEART] = BossID.MOMS_HEART,
54402
+ [Challenge.I_RULE] = BossID.MEGA_SATAN,
54403
+ [Challenge.BRAINS] = BossID.BLUE_BABY,
54404
+ [Challenge.PRIDE_DAY] = BossID.MOMS_HEART,
54405
+ [Challenge.ONANS_STREAK] = BossID.ISAAC,
54406
+ [Challenge.GUARDIAN] = BossID.MOMS_HEART,
54407
+ [Challenge.BACKASSWARDS] = BossID.MEGA_SATAN,
54408
+ [Challenge.APRILS_FOOL] = BossID.MOMS_HEART,
54409
+ [Challenge.POKEY_MANS] = BossID.ISAAC,
54410
+ [Challenge.ULTRA_HARD] = BossID.MEGA_SATAN,
54411
+ [Challenge.PONG] = BossID.BLUE_BABY,
54412
+ [Challenge.SCAT_MAN] = BossID.MOM,
54413
+ [Challenge.BLOODY_MARY] = BossID.SATAN,
54414
+ [Challenge.BAPTISM_BY_FIRE] = BossID.SATAN,
54415
+ [Challenge.ISAACS_AWAKENING] = BossID.MOTHER,
54416
+ [Challenge.SEEING_DOUBLE] = BossID.MOMS_HEART,
54417
+ [Challenge.PICA_RUN] = BossID.ISAAC,
54418
+ [Challenge.HOT_POTATO] = BossID.SATAN,
54419
+ [Challenge.CANTRIPPED] = BossID.MOM,
54420
+ [Challenge.RED_REDEMPTION] = BossID.MOTHER,
54421
+ [Challenge.DELETE_THIS] = BossID.BLUE_BABY
54422
+ }
54366
54423
  return ____exports
54367
54424
  end,
54368
54425
  ["src.objects.challengeCharacters"] = function(...)
@@ -54478,12 +54535,19 @@ return ____exports
54478
54535
  end,
54479
54536
  ["src.functions.challenges"] = function(...)
54480
54537
  local ____exports = {}
54538
+ local ____challengeBosses = require("src.objects.challengeBosses")
54539
+ local CHALLENGE_BOSSES = ____challengeBosses.CHALLENGE_BOSSES
54540
+ local DEFAULT_CHALLENGE_BOSS_ID = ____challengeBosses.DEFAULT_CHALLENGE_BOSS_ID
54481
54541
  local ____challengeCharacters = require("src.objects.challengeCharacters")
54482
54542
  local CHALLENGE_CHARACTERS = ____challengeCharacters.CHALLENGE_CHARACTERS
54483
54543
  local DEFAULT_CHALLENGE_CHARACTER = ____challengeCharacters.DEFAULT_CHALLENGE_CHARACTER
54484
54544
  local ____challengeNames = require("src.objects.challengeNames")
54485
54545
  local CHALLENGE_NAMES = ____challengeNames.CHALLENGE_NAMES
54486
54546
  local DEFAULT_CHALLENGE_NAME = ____challengeNames.DEFAULT_CHALLENGE_NAME
54547
+ function ____exports.getChallengeBoss(self, challenge)
54548
+ local challengeBossID = CHALLENGE_BOSSES[challenge]
54549
+ return challengeBossID or DEFAULT_CHALLENGE_BOSS_ID
54550
+ end
54487
54551
  function ____exports.getChallengeCharacter(self, challenge)
54488
54552
  local challengeCharacter = CHALLENGE_CHARACTERS[challenge]
54489
54553
  return challengeCharacter or DEFAULT_CHALLENGE_CHARACTER
@@ -156,6 +156,7 @@ export declare const ONE_BY_ONE_ROOM_GRID_SIZE = 135;
156
156
  * 4]`
157
157
  */
158
158
  export declare const QUALITIES: readonly Quality[];
159
+ export declare const MAX_QUALITY: Quality;
159
160
  export declare const SECOND_IN_MILLISECONDS = 1000;
160
161
  export declare const MINUTE_IN_MILLISECONDS: number;
161
162
  /** This is equivalent to the bottom-right screen position when the game is in full screen mode. */
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/core/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/core/constants.ts"],"names":[],"mappings":"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"}
@@ -210,6 +210,7 @@ ____exports.QUALITIES = {
210
210
  3,
211
211
  4
212
212
  }
213
+ ____exports.MAX_QUALITY = 4
213
214
  ____exports.SECOND_IN_MILLISECONDS = 1000
214
215
  ____exports.MINUTE_IN_MILLISECONDS = 60 * ____exports.SECOND_IN_MILLISECONDS
215
216
  --- This is equivalent to the bottom-right screen position when the game is in full screen mode.
@@ -1,4 +1,13 @@
1
- import type { Challenge, PlayerType } from "isaac-typescript-definitions";
1
+ import type { BossID, Challenge, PlayerType } from "isaac-typescript-definitions";
2
+ /**
3
+ * Get the final boss of a challenge. This will only work for vanilla challenges.
4
+ *
5
+ * For modded challenges, `BossID.MOM` (6) will be returned.
6
+ *
7
+ * Note that for `Challenge.BACKASSWARDS` (31), this function will return `BossID.MEGA_SATAN` (55),
8
+ * but this is not actually the final boss. (There is no final boss for this challenge.)
9
+ */
10
+ export declare function getChallengeBoss(challenge: Challenge): BossID;
2
11
  /**
3
12
  * Get the starting character of a challenge. This will only work for vanilla challenges.
4
13
  *
@@ -1 +1 @@
1
- {"version":3,"file":"challenges.d.ts","sourceRoot":"","sources":["../../../src/functions/challenges.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAU1E;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,SAAS,GAAG,UAAU,CAKtE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAK7D"}
1
+ {"version":3,"file":"challenges.d.ts","sourceRoot":"","sources":["../../../src/functions/challenges.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACN,SAAS,EACT,UAAU,EACX,MAAM,8BAA8B,CAAC;AActC;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAK7D;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,SAAS,GAAG,UAAU,CAKtE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAK7D"}
@@ -1,10 +1,23 @@
1
1
  local ____exports = {}
2
+ local ____challengeBosses = require("src.objects.challengeBosses")
3
+ local CHALLENGE_BOSSES = ____challengeBosses.CHALLENGE_BOSSES
4
+ local DEFAULT_CHALLENGE_BOSS_ID = ____challengeBosses.DEFAULT_CHALLENGE_BOSS_ID
2
5
  local ____challengeCharacters = require("src.objects.challengeCharacters")
3
6
  local CHALLENGE_CHARACTERS = ____challengeCharacters.CHALLENGE_CHARACTERS
4
7
  local DEFAULT_CHALLENGE_CHARACTER = ____challengeCharacters.DEFAULT_CHALLENGE_CHARACTER
5
8
  local ____challengeNames = require("src.objects.challengeNames")
6
9
  local CHALLENGE_NAMES = ____challengeNames.CHALLENGE_NAMES
7
10
  local DEFAULT_CHALLENGE_NAME = ____challengeNames.DEFAULT_CHALLENGE_NAME
11
+ --- Get the final boss of a challenge. This will only work for vanilla challenges.
12
+ --
13
+ -- For modded challenges, `BossID.MOM` (6) will be returned.
14
+ --
15
+ -- Note that for `Challenge.BACKASSWARDS` (31), this function will return `BossID.MEGA_SATAN` (55),
16
+ -- but this is not actually the final boss. (There is no final boss for this challenge.)
17
+ function ____exports.getChallengeBoss(self, challenge)
18
+ local challengeBossID = CHALLENGE_BOSSES[challenge]
19
+ return challengeBossID or DEFAULT_CHALLENGE_BOSS_ID
20
+ end
8
21
  --- Get the starting character of a challenge. This will only work for vanilla challenges.
9
22
  --
10
23
  -- For modded challenges, `PlayerType.ISAAC` (0) will be returned.
@@ -0,0 +1,56 @@
1
+ import { BossID } from "isaac-typescript-definitions";
2
+ export declare const DEFAULT_CHALLENGE_BOSS_ID = BossID.MOM;
3
+ /**
4
+ * Taken from the "challenges.xml" file.
5
+ *
6
+ * @see https://bindingofisaacrebirth.fandom.com/wiki/Challenges
7
+ */
8
+ export declare const CHALLENGE_BOSSES: {
9
+ readonly 0: BossID.MOM;
10
+ readonly 1: BossID.MOM;
11
+ readonly 2: BossID.MOM;
12
+ readonly 3: BossID.MOM;
13
+ readonly 4: BossID.SATAN;
14
+ readonly 5: BossID.MOM;
15
+ readonly 6: BossID.MOMS_HEART;
16
+ readonly 7: BossID.ISAAC;
17
+ readonly 8: BossID.MOM;
18
+ readonly 9: BossID.MOMS_HEART;
19
+ readonly 10: BossID.MOM;
20
+ readonly 11: BossID.SATAN;
21
+ readonly 12: BossID.MOM;
22
+ readonly 13: BossID.MOM;
23
+ readonly 14: BossID.MOM;
24
+ readonly 15: BossID.MOM;
25
+ readonly 16: BossID.MOM;
26
+ readonly 17: BossID.MOM;
27
+ readonly 18: BossID.MOM;
28
+ readonly 19: BossID.ISAAC;
29
+ readonly 20: BossID.MOMS_HEART;
30
+ readonly 21: BossID.MOMS_HEART;
31
+ readonly 22: BossID.MOMS_HEART;
32
+ readonly 23: BossID.SATAN;
33
+ readonly 24: BossID.ISAAC;
34
+ readonly 25: BossID.MOMS_HEART;
35
+ readonly 26: BossID.MEGA_SATAN;
36
+ readonly 27: BossID.BLUE_BABY;
37
+ readonly 28: BossID.MOMS_HEART;
38
+ readonly 29: BossID.ISAAC;
39
+ readonly 30: BossID.MOMS_HEART;
40
+ readonly 31: BossID.MEGA_SATAN;
41
+ readonly 32: BossID.MOMS_HEART;
42
+ readonly 33: BossID.ISAAC;
43
+ readonly 34: BossID.MEGA_SATAN;
44
+ readonly 35: BossID.BLUE_BABY;
45
+ readonly 36: BossID.MOM;
46
+ readonly 37: BossID.SATAN;
47
+ readonly 38: BossID.SATAN;
48
+ readonly 39: BossID.MOTHER;
49
+ readonly 40: BossID.MOMS_HEART;
50
+ readonly 41: BossID.ISAAC;
51
+ readonly 42: BossID.SATAN;
52
+ readonly 43: BossID.MOM;
53
+ readonly 44: BossID.MOTHER;
54
+ readonly 45: BossID.BLUE_BABY;
55
+ };
56
+ //# sourceMappingURL=challengeBosses.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"challengeBosses.d.ts","sourceRoot":"","sources":["../../../src/objects/challengeBosses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAa,MAAM,8BAA8B,CAAC;AAEjE,eAAO,MAAM,yBAAyB,aAAa,CAAC;AAEpD;;;;GAIG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+CiB,CAAC"}
@@ -0,0 +1,57 @@
1
+ local ____exports = {}
2
+ local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
3
+ local BossID = ____isaac_2Dtypescript_2Ddefinitions.BossID
4
+ local Challenge = ____isaac_2Dtypescript_2Ddefinitions.Challenge
5
+ ____exports.DEFAULT_CHALLENGE_BOSS_ID = BossID.MOM
6
+ --- Taken from the "challenges.xml" file.
7
+ --
8
+ -- @see https ://bindingofisaacrebirth.fandom.com/wiki/Challenges
9
+ ____exports.CHALLENGE_BOSSES = {
10
+ [Challenge.NULL] = BossID.MOM,
11
+ [Challenge.PITCH_BLACK] = BossID.MOM,
12
+ [Challenge.HIGH_BROW] = BossID.MOM,
13
+ [Challenge.HEAD_TRAUMA] = BossID.MOM,
14
+ [Challenge.DARKNESS_FALLS] = BossID.SATAN,
15
+ [Challenge.TANK] = BossID.MOM,
16
+ [Challenge.SOLAR_SYSTEM] = BossID.MOMS_HEART,
17
+ [Challenge.SUICIDE_KING] = BossID.ISAAC,
18
+ [Challenge.CAT_GOT_YOUR_TONGUE] = BossID.MOM,
19
+ [Challenge.DEMO_MAN] = BossID.MOMS_HEART,
20
+ [Challenge.CURSED] = BossID.MOM,
21
+ [Challenge.GLASS_CANNON] = BossID.SATAN,
22
+ [Challenge.WHEN_LIFE_GIVES_LEMONS] = BossID.MOM,
23
+ [Challenge.BEANS] = BossID.MOM,
24
+ [Challenge.ITS_IN_THE_CARDS] = BossID.MOM,
25
+ [Challenge.SLOW_ROLL] = BossID.MOM,
26
+ [Challenge.COMPUTER_SAVY] = BossID.MOM,
27
+ [Challenge.WAKA_WAKA] = BossID.MOM,
28
+ [Challenge.HOST] = BossID.MOM,
29
+ [Challenge.FAMILY_MAN] = BossID.ISAAC,
30
+ [Challenge.PURIST] = BossID.MOMS_HEART,
31
+ [Challenge.XXXXXXXXL] = BossID.MOMS_HEART,
32
+ [Challenge.SPEED] = BossID.MOMS_HEART,
33
+ [Challenge.BLUE_BOMBER] = BossID.SATAN,
34
+ [Challenge.PAY_TO_PLAY] = BossID.ISAAC,
35
+ [Challenge.HAVE_A_HEART] = BossID.MOMS_HEART,
36
+ [Challenge.I_RULE] = BossID.MEGA_SATAN,
37
+ [Challenge.BRAINS] = BossID.BLUE_BABY,
38
+ [Challenge.PRIDE_DAY] = BossID.MOMS_HEART,
39
+ [Challenge.ONANS_STREAK] = BossID.ISAAC,
40
+ [Challenge.GUARDIAN] = BossID.MOMS_HEART,
41
+ [Challenge.BACKASSWARDS] = BossID.MEGA_SATAN,
42
+ [Challenge.APRILS_FOOL] = BossID.MOMS_HEART,
43
+ [Challenge.POKEY_MANS] = BossID.ISAAC,
44
+ [Challenge.ULTRA_HARD] = BossID.MEGA_SATAN,
45
+ [Challenge.PONG] = BossID.BLUE_BABY,
46
+ [Challenge.SCAT_MAN] = BossID.MOM,
47
+ [Challenge.BLOODY_MARY] = BossID.SATAN,
48
+ [Challenge.BAPTISM_BY_FIRE] = BossID.SATAN,
49
+ [Challenge.ISAACS_AWAKENING] = BossID.MOTHER,
50
+ [Challenge.SEEING_DOUBLE] = BossID.MOMS_HEART,
51
+ [Challenge.PICA_RUN] = BossID.ISAAC,
52
+ [Challenge.HOT_POTATO] = BossID.SATAN,
53
+ [Challenge.CANTRIPPED] = BossID.MOM,
54
+ [Challenge.RED_REDEMPTION] = BossID.MOTHER,
55
+ [Challenge.DELETE_THIS] = BossID.BLUE_BABY
56
+ }
57
+ return ____exports
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "isaacscript-common",
3
- "version": "57.4.0",
3
+ "version": "57.7.0",
4
4
  "description": "Helper functions and features for IsaacScript mods.",
5
5
  "keywords": [
6
6
  "isaac",
@@ -297,6 +297,7 @@ export const ONE_BY_ONE_ROOM_GRID_SIZE = 135;
297
297
  */
298
298
  // eslint-disable-next-line isaacscript/require-capital-const-assertions
299
299
  export const QUALITIES: readonly Quality[] = [0, 1, 2, 3, 4];
300
+ export const MAX_QUALITY: Quality = 4;
300
301
 
301
302
  export const SECOND_IN_MILLISECONDS = 1000;
302
303
  export const MINUTE_IN_MILLISECONDS = 60 * SECOND_IN_MILLISECONDS;
@@ -1,4 +1,12 @@
1
- import type { Challenge, PlayerType } from "isaac-typescript-definitions";
1
+ import type {
2
+ BossID,
3
+ Challenge,
4
+ PlayerType,
5
+ } from "isaac-typescript-definitions";
6
+ import {
7
+ CHALLENGE_BOSSES,
8
+ DEFAULT_CHALLENGE_BOSS_ID,
9
+ } from "../objects/challengeBosses";
2
10
  import {
3
11
  CHALLENGE_CHARACTERS,
4
12
  DEFAULT_CHALLENGE_CHARACTER,
@@ -8,6 +16,21 @@ import {
8
16
  DEFAULT_CHALLENGE_NAME,
9
17
  } from "../objects/challengeNames";
10
18
 
19
+ /**
20
+ * Get the final boss of a challenge. This will only work for vanilla challenges.
21
+ *
22
+ * For modded challenges, `BossID.MOM` (6) will be returned.
23
+ *
24
+ * Note that for `Challenge.BACKASSWARDS` (31), this function will return `BossID.MEGA_SATAN` (55),
25
+ * but this is not actually the final boss. (There is no final boss for this challenge.)
26
+ */
27
+ export function getChallengeBoss(challenge: Challenge): BossID {
28
+ const challengeBossID = CHALLENGE_BOSSES[challenge];
29
+ // Handle modded challenges.
30
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
31
+ return challengeBossID ?? DEFAULT_CHALLENGE_BOSS_ID;
32
+ }
33
+
11
34
  /**
12
35
  * Get the starting character of a challenge. This will only work for vanilla challenges.
13
36
  *
@@ -0,0 +1,57 @@
1
+ import { BossID, Challenge } from "isaac-typescript-definitions";
2
+
3
+ export const DEFAULT_CHALLENGE_BOSS_ID = BossID.MOM;
4
+
5
+ /**
6
+ * Taken from the "challenges.xml" file.
7
+ *
8
+ * @see https://bindingofisaacrebirth.fandom.com/wiki/Challenges
9
+ */
10
+ export const CHALLENGE_BOSSES = {
11
+ [Challenge.NULL]: BossID.MOM, // 0
12
+ [Challenge.PITCH_BLACK]: BossID.MOM, // 1
13
+ [Challenge.HIGH_BROW]: BossID.MOM, // 2
14
+ [Challenge.HEAD_TRAUMA]: BossID.MOM, // 3
15
+ [Challenge.DARKNESS_FALLS]: BossID.SATAN, // 4
16
+ [Challenge.TANK]: BossID.MOM, // 5
17
+ [Challenge.SOLAR_SYSTEM]: BossID.MOMS_HEART, // 6
18
+ [Challenge.SUICIDE_KING]: BossID.ISAAC, // 7
19
+ [Challenge.CAT_GOT_YOUR_TONGUE]: BossID.MOM, // 8
20
+ [Challenge.DEMO_MAN]: BossID.MOMS_HEART, // 9
21
+ [Challenge.CURSED]: BossID.MOM, // 10
22
+ [Challenge.GLASS_CANNON]: BossID.SATAN, // 11
23
+ [Challenge.WHEN_LIFE_GIVES_LEMONS]: BossID.MOM, // 12
24
+ [Challenge.BEANS]: BossID.MOM, // 13
25
+ [Challenge.ITS_IN_THE_CARDS]: BossID.MOM, // 14
26
+ [Challenge.SLOW_ROLL]: BossID.MOM, // 15
27
+ [Challenge.COMPUTER_SAVY]: BossID.MOM, // 16
28
+ [Challenge.WAKA_WAKA]: BossID.MOM, // 17
29
+ [Challenge.HOST]: BossID.MOM, // 18
30
+ [Challenge.FAMILY_MAN]: BossID.ISAAC, // 19
31
+ [Challenge.PURIST]: BossID.MOMS_HEART, // 20
32
+ [Challenge.XXXXXXXXL]: BossID.MOMS_HEART, // 21
33
+ [Challenge.SPEED]: BossID.MOMS_HEART, // 22
34
+ [Challenge.BLUE_BOMBER]: BossID.SATAN, // 23
35
+ [Challenge.PAY_TO_PLAY]: BossID.ISAAC, // 24
36
+ [Challenge.HAVE_A_HEART]: BossID.MOMS_HEART, // 25
37
+ [Challenge.I_RULE]: BossID.MEGA_SATAN, // 26
38
+ [Challenge.BRAINS]: BossID.BLUE_BABY, // 27
39
+ [Challenge.PRIDE_DAY]: BossID.MOMS_HEART, // 28
40
+ [Challenge.ONANS_STREAK]: BossID.ISAAC, // 29
41
+ [Challenge.GUARDIAN]: BossID.MOMS_HEART, // 30
42
+ [Challenge.BACKASSWARDS]: BossID.MEGA_SATAN, // 31
43
+ [Challenge.APRILS_FOOL]: BossID.MOMS_HEART, // 32
44
+ [Challenge.POKEY_MANS]: BossID.ISAAC, // 33
45
+ [Challenge.ULTRA_HARD]: BossID.MEGA_SATAN, // 34
46
+ [Challenge.PONG]: BossID.BLUE_BABY, // 35
47
+ [Challenge.SCAT_MAN]: BossID.MOM, // 36
48
+ [Challenge.BLOODY_MARY]: BossID.SATAN, // 37
49
+ [Challenge.BAPTISM_BY_FIRE]: BossID.SATAN, // 38
50
+ [Challenge.ISAACS_AWAKENING]: BossID.MOTHER, // 39
51
+ [Challenge.SEEING_DOUBLE]: BossID.MOMS_HEART, // 40
52
+ [Challenge.PICA_RUN]: BossID.ISAAC, // 41
53
+ [Challenge.HOT_POTATO]: BossID.SATAN, // 42
54
+ [Challenge.CANTRIPPED]: BossID.MOM, // 43
55
+ [Challenge.RED_REDEMPTION]: BossID.MOTHER, // 44
56
+ [Challenge.DELETE_THIS]: BossID.BLUE_BABY, // 45
57
+ } as const satisfies Record<Challenge, BossID>;