isaacscript-common 57.5.0 → 57.8.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.
- package/dist/index.rollup.d.ts +17 -0
- package/dist/isaacscript-common.lua +99 -42
- package/dist/src/functions/bosses.d.ts +12 -0
- package/dist/src/functions/bosses.d.ts.map +1 -1
- package/dist/src/functions/bosses.lua +24 -10
- package/dist/src/functions/challenges.d.ts +10 -1
- package/dist/src/functions/challenges.d.ts.map +1 -1
- package/dist/src/functions/challenges.lua +13 -0
- package/dist/src/functions/entities.d.ts +0 -6
- package/dist/src/functions/entities.d.ts.map +1 -1
- package/dist/src/functions/entities.lua +0 -8
- package/dist/src/objects/challengeBosses.d.ts +56 -0
- package/dist/src/objects/challengeBosses.d.ts.map +1 -0
- package/dist/src/objects/challengeBosses.lua +57 -0
- package/dist/src/sets/bossSets.d.ts +3 -1
- package/dist/src/sets/bossSets.d.ts.map +1 -1
- package/dist/src/sets/bossSets.lua +18 -2
- package/package.json +1 -1
- package/src/functions/bosses.ts +23 -3
- package/src/functions/challenges.ts +24 -1
- package/src/functions/entities.ts +0 -10
- package/src/objects/challengeBosses.ts +57 -0
- package/src/sets/bossSets.ts +23 -2
- package/dist/src/sets/storyBossEntityTypesSet.d.ts +0 -3
- package/dist/src/sets/storyBossEntityTypesSet.d.ts.map +0 -1
- package/dist/src/sets/storyBossEntityTypesSet.lua +0 -23
- package/src/sets/storyBossEntityTypesSet.ts +0 -18
package/dist/index.rollup.d.ts
CHANGED
|
@@ -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
|
*
|
|
@@ -9712,6 +9722,13 @@ export declare function isStageWithStoryBoss(stage: LevelStage): boolean;
|
|
|
9712
9722
|
*/
|
|
9713
9723
|
export declare function isStoryBoss(entityType: EntityType): boolean;
|
|
9714
9724
|
|
|
9725
|
+
/**
|
|
9726
|
+
* Helper function to determine if the specified boss ID is an end-game story boss, like Isaac, Blue
|
|
9727
|
+
* Baby, Mega Satan, The Beast, and so on. This is useful because certain effects should only apply
|
|
9728
|
+
* to non-story bosses, like Vanishing Twin.
|
|
9729
|
+
*/
|
|
9730
|
+
export declare function isStoryBossID(bossID: BossID): boolean;
|
|
9731
|
+
|
|
9715
9732
|
export declare function isString(variable: unknown): variable is string;
|
|
9716
9733
|
|
|
9717
9734
|
/** Returns true for card types that have `ItemConfigCardType.SUIT`. */
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
--[[
|
|
2
2
|
|
|
3
|
-
isaacscript-common 57.
|
|
3
|
+
isaacscript-common 57.8.0
|
|
4
4
|
|
|
5
5
|
This is the "isaacscript-common" library, which was created with the IsaacScript tool.
|
|
6
6
|
|
|
@@ -21493,31 +21493,6 @@ ____exports.ENTITIES_WITH_ARMOR_SET = __TS__New(
|
|
|
21493
21493
|
(tostring(EntityType.BEAST) .. ".") .. tostring(BeastVariant.ULTRA_DEATH)
|
|
21494
21494
|
}
|
|
21495
21495
|
)
|
|
21496
|
-
return ____exports
|
|
21497
|
-
end,
|
|
21498
|
-
["src.sets.storyBossEntityTypesSet"] = function(...)
|
|
21499
|
-
local ____lualib = require("lualib_bundle")
|
|
21500
|
-
local __TS__New = ____lualib.__TS__New
|
|
21501
|
-
local ____exports = {}
|
|
21502
|
-
local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
|
|
21503
|
-
local EntityType = ____isaac_2Dtypescript_2Ddefinitions.EntityType
|
|
21504
|
-
local ____ReadonlySet = require("src.types.ReadonlySet")
|
|
21505
|
-
local ReadonlySet = ____ReadonlySet.ReadonlySet
|
|
21506
|
-
____exports.STORY_BOSS_ENTITY_TYPES_SET = __TS__New(ReadonlySet, {
|
|
21507
|
-
EntityType.MOM,
|
|
21508
|
-
EntityType.MOMS_HEART,
|
|
21509
|
-
EntityType.SATAN,
|
|
21510
|
-
EntityType.ISAAC,
|
|
21511
|
-
EntityType.LAMB,
|
|
21512
|
-
EntityType.MEGA_SATAN,
|
|
21513
|
-
EntityType.MEGA_SATAN_2,
|
|
21514
|
-
EntityType.ULTRA_GREED,
|
|
21515
|
-
EntityType.HUSH,
|
|
21516
|
-
EntityType.DELIRIUM,
|
|
21517
|
-
EntityType.MOTHER,
|
|
21518
|
-
EntityType.DOGMA,
|
|
21519
|
-
EntityType.BEAST
|
|
21520
|
-
})
|
|
21521
21496
|
return ____exports
|
|
21522
21497
|
end,
|
|
21523
21498
|
["src.types.AnyEntity"] = function(...)
|
|
@@ -21633,8 +21608,6 @@ local ____constants = require("src.core.constants")
|
|
|
21633
21608
|
local VectorZero = ____constants.VectorZero
|
|
21634
21609
|
local ____entitiesWithArmorSet = require("src.sets.entitiesWithArmorSet")
|
|
21635
21610
|
local ENTITIES_WITH_ARMOR_SET = ____entitiesWithArmorSet.ENTITIES_WITH_ARMOR_SET
|
|
21636
|
-
local ____storyBossEntityTypesSet = require("src.sets.storyBossEntityTypesSet")
|
|
21637
|
-
local STORY_BOSS_ENTITY_TYPES_SET = ____storyBossEntityTypesSet.STORY_BOSS_ENTITY_TYPES_SET
|
|
21638
21611
|
local ____isaacAPIClass = require("src.functions.isaacAPIClass")
|
|
21639
21612
|
local getIsaacAPIClassName = ____isaacAPIClass.getIsaacAPIClassName
|
|
21640
21613
|
local ____random = require("src.functions.random")
|
|
@@ -21875,9 +21848,6 @@ function ____exports.isEntityMoving(self, entity, threshold)
|
|
|
21875
21848
|
end
|
|
21876
21849
|
return doesVectorHaveLength(nil, entity.Velocity, threshold)
|
|
21877
21850
|
end
|
|
21878
|
-
function ____exports.isStoryBoss(self, entityType)
|
|
21879
|
-
return STORY_BOSS_ENTITY_TYPES_SET:has(entityType)
|
|
21880
|
-
end
|
|
21881
21851
|
function ____exports.parseEntityID(self, entityID)
|
|
21882
21852
|
local entityIDArray = __TS__StringSplit(entityID, ".")
|
|
21883
21853
|
if #entityIDArray ~= 3 then
|
|
@@ -44194,6 +44164,7 @@ local __TS__Spread = ____lualib.__TS__Spread
|
|
|
44194
44164
|
local ____exports = {}
|
|
44195
44165
|
local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
|
|
44196
44166
|
local BossID = ____isaac_2Dtypescript_2Ddefinitions.BossID
|
|
44167
|
+
local EntityType = ____isaac_2Dtypescript_2Ddefinitions.EntityType
|
|
44197
44168
|
local LevelStage = ____isaac_2Dtypescript_2Ddefinitions.LevelStage
|
|
44198
44169
|
local StageType = ____isaac_2Dtypescript_2Ddefinitions.StageType
|
|
44199
44170
|
local ____cachedEnumValues = require("src.arrays.cachedEnumValues")
|
|
@@ -44510,7 +44481,7 @@ ____exports.ALL_BOSSES_SET = __TS__New(
|
|
|
44510
44481
|
function(____, bossID) return bossID ~= BossID.RAGLICH end
|
|
44511
44482
|
)
|
|
44512
44483
|
)
|
|
44513
|
-
|
|
44484
|
+
____exports.STORY_BOSS_IDS_SET = __TS__New(ReadonlySet, {
|
|
44514
44485
|
BossID.MOM,
|
|
44515
44486
|
BossID.MOMS_HEART,
|
|
44516
44487
|
BossID.SATAN,
|
|
@@ -44529,11 +44500,26 @@ local STORY_BOSS_IDS_SET = __TS__New(ReadonlySet, {
|
|
|
44529
44500
|
BossID.DOGMA,
|
|
44530
44501
|
BossID.BEAST
|
|
44531
44502
|
})
|
|
44503
|
+
____exports.STORY_BOSS_ENTITY_TYPES_SET = __TS__New(ReadonlySet, {
|
|
44504
|
+
EntityType.MOM,
|
|
44505
|
+
EntityType.MOMS_HEART,
|
|
44506
|
+
EntityType.SATAN,
|
|
44507
|
+
EntityType.ISAAC,
|
|
44508
|
+
EntityType.LAMB,
|
|
44509
|
+
EntityType.MEGA_SATAN,
|
|
44510
|
+
EntityType.MEGA_SATAN_2,
|
|
44511
|
+
EntityType.ULTRA_GREED,
|
|
44512
|
+
EntityType.HUSH,
|
|
44513
|
+
EntityType.DELIRIUM,
|
|
44514
|
+
EntityType.MOTHER,
|
|
44515
|
+
EntityType.DOGMA,
|
|
44516
|
+
EntityType.BEAST
|
|
44517
|
+
})
|
|
44532
44518
|
____exports.ALL_BOSSES_EXCLUDING_STORY_BOSSES_SET = __TS__New(
|
|
44533
44519
|
ReadonlySet,
|
|
44534
44520
|
__TS__ArrayFilter(
|
|
44535
44521
|
{__TS__Spread(____exports.ALL_BOSSES_SET)},
|
|
44536
|
-
function(____, bossID) return not STORY_BOSS_IDS_SET:has(bossID) end
|
|
44522
|
+
function(____, bossID) return not ____exports.STORY_BOSS_IDS_SET:has(bossID) end
|
|
44537
44523
|
)
|
|
44538
44524
|
)
|
|
44539
44525
|
return ____exports
|
|
@@ -44733,6 +44719,8 @@ local ALL_BOSSES_EXCLUDING_STORY_BOSSES_SET = ____bossSets.ALL_BOSSES_EXCLUDING_
|
|
|
44733
44719
|
local ALL_BOSSES_SET = ____bossSets.ALL_BOSSES_SET
|
|
44734
44720
|
local STAGE_TO_COMBINED_BOSS_SET_MAP = ____bossSets.STAGE_TO_COMBINED_BOSS_SET_MAP
|
|
44735
44721
|
local STAGE_TO_STAGE_TYPE_TO_BOSS_SET_MAP = ____bossSets.STAGE_TO_STAGE_TYPE_TO_BOSS_SET_MAP
|
|
44722
|
+
local STORY_BOSS_ENTITY_TYPES_SET = ____bossSets.STORY_BOSS_ENTITY_TYPES_SET
|
|
44723
|
+
local STORY_BOSS_IDS_SET = ____bossSets.STORY_BOSS_IDS_SET
|
|
44736
44724
|
local ____repentanceBossIDsSet = require("src.sets.repentanceBossIDsSet")
|
|
44737
44725
|
local REPENTANCE_ONLY_BOSS_IDS_SET = ____repentanceBossIDsSet.REPENTANCE_ONLY_BOSS_IDS_SET
|
|
44738
44726
|
local ____sinEntityTypesSet = require("src.sets.sinEntityTypesSet")
|
|
@@ -44841,26 +44829,29 @@ end
|
|
|
44841
44829
|
function ____exports.isRepentanceBoss(self, bossID)
|
|
44842
44830
|
return REPENTANCE_ONLY_BOSS_IDS_SET:has(bossID)
|
|
44843
44831
|
end
|
|
44832
|
+
function ____exports.isSin(self, npc)
|
|
44833
|
+
return SIN_ENTITY_TYPES_SET:has(npc.Type)
|
|
44834
|
+
end
|
|
44844
44835
|
local function getNumBossSegments(self, entityType, variant, numSegments)
|
|
44845
44836
|
if numSegments ~= nil then
|
|
44846
44837
|
return numSegments
|
|
44847
44838
|
end
|
|
44848
44839
|
repeat
|
|
44849
|
-
local
|
|
44850
|
-
local
|
|
44851
|
-
if
|
|
44840
|
+
local ____switch20 = entityType
|
|
44841
|
+
local ____cond20 = ____switch20 == EntityType.CHUB
|
|
44842
|
+
if ____cond20 then
|
|
44852
44843
|
do
|
|
44853
44844
|
return 3
|
|
44854
44845
|
end
|
|
44855
44846
|
end
|
|
44856
|
-
|
|
44857
|
-
if
|
|
44847
|
+
____cond20 = ____cond20 or ____switch20 == EntityType.LOKI
|
|
44848
|
+
if ____cond20 then
|
|
44858
44849
|
do
|
|
44859
44850
|
return variant == asNumber(nil, LokiVariant.LOKII) and 2 or 1
|
|
44860
44851
|
end
|
|
44861
44852
|
end
|
|
44862
|
-
|
|
44863
|
-
if
|
|
44853
|
+
____cond20 = ____cond20 or ____switch20 == EntityType.GURGLING
|
|
44854
|
+
if ____cond20 then
|
|
44864
44855
|
do
|
|
44865
44856
|
return 2
|
|
44866
44857
|
end
|
|
@@ -44872,8 +44863,11 @@ local function getNumBossSegments(self, entityType, variant, numSegments)
|
|
|
44872
44863
|
end
|
|
44873
44864
|
until true
|
|
44874
44865
|
end
|
|
44875
|
-
function ____exports.
|
|
44876
|
-
return
|
|
44866
|
+
function ____exports.isStoryBoss(self, entityType)
|
|
44867
|
+
return STORY_BOSS_ENTITY_TYPES_SET:has(entityType)
|
|
44868
|
+
end
|
|
44869
|
+
function ____exports.isStoryBossID(self, bossID)
|
|
44870
|
+
return STORY_BOSS_IDS_SET:has(bossID)
|
|
44877
44871
|
end
|
|
44878
44872
|
function ____exports.spawnBoss(self, entityType, variant, subType, positionOrGridIndex, velocity, spawner, seedOrRNG, numSegments)
|
|
44879
44873
|
if velocity == nil then
|
|
@@ -54364,6 +54358,62 @@ function ____exports.getBombRadiusFromDamage(self, damage)
|
|
|
54364
54358
|
end
|
|
54365
54359
|
return 90
|
|
54366
54360
|
end
|
|
54361
|
+
return ____exports
|
|
54362
|
+
end,
|
|
54363
|
+
["src.objects.challengeBosses"] = function(...)
|
|
54364
|
+
local ____exports = {}
|
|
54365
|
+
local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
|
|
54366
|
+
local BossID = ____isaac_2Dtypescript_2Ddefinitions.BossID
|
|
54367
|
+
local Challenge = ____isaac_2Dtypescript_2Ddefinitions.Challenge
|
|
54368
|
+
____exports.DEFAULT_CHALLENGE_BOSS_ID = BossID.MOM
|
|
54369
|
+
____exports.CHALLENGE_BOSSES = {
|
|
54370
|
+
[Challenge.NULL] = BossID.MOM,
|
|
54371
|
+
[Challenge.PITCH_BLACK] = BossID.MOM,
|
|
54372
|
+
[Challenge.HIGH_BROW] = BossID.MOM,
|
|
54373
|
+
[Challenge.HEAD_TRAUMA] = BossID.MOM,
|
|
54374
|
+
[Challenge.DARKNESS_FALLS] = BossID.SATAN,
|
|
54375
|
+
[Challenge.TANK] = BossID.MOM,
|
|
54376
|
+
[Challenge.SOLAR_SYSTEM] = BossID.MOMS_HEART,
|
|
54377
|
+
[Challenge.SUICIDE_KING] = BossID.ISAAC,
|
|
54378
|
+
[Challenge.CAT_GOT_YOUR_TONGUE] = BossID.MOM,
|
|
54379
|
+
[Challenge.DEMO_MAN] = BossID.MOMS_HEART,
|
|
54380
|
+
[Challenge.CURSED] = BossID.MOM,
|
|
54381
|
+
[Challenge.GLASS_CANNON] = BossID.SATAN,
|
|
54382
|
+
[Challenge.WHEN_LIFE_GIVES_LEMONS] = BossID.MOM,
|
|
54383
|
+
[Challenge.BEANS] = BossID.MOM,
|
|
54384
|
+
[Challenge.ITS_IN_THE_CARDS] = BossID.MOM,
|
|
54385
|
+
[Challenge.SLOW_ROLL] = BossID.MOM,
|
|
54386
|
+
[Challenge.COMPUTER_SAVY] = BossID.MOM,
|
|
54387
|
+
[Challenge.WAKA_WAKA] = BossID.MOM,
|
|
54388
|
+
[Challenge.HOST] = BossID.MOM,
|
|
54389
|
+
[Challenge.FAMILY_MAN] = BossID.ISAAC,
|
|
54390
|
+
[Challenge.PURIST] = BossID.MOMS_HEART,
|
|
54391
|
+
[Challenge.XXXXXXXXL] = BossID.MOMS_HEART,
|
|
54392
|
+
[Challenge.SPEED] = BossID.MOMS_HEART,
|
|
54393
|
+
[Challenge.BLUE_BOMBER] = BossID.SATAN,
|
|
54394
|
+
[Challenge.PAY_TO_PLAY] = BossID.ISAAC,
|
|
54395
|
+
[Challenge.HAVE_A_HEART] = BossID.MOMS_HEART,
|
|
54396
|
+
[Challenge.I_RULE] = BossID.MEGA_SATAN,
|
|
54397
|
+
[Challenge.BRAINS] = BossID.BLUE_BABY,
|
|
54398
|
+
[Challenge.PRIDE_DAY] = BossID.MOMS_HEART,
|
|
54399
|
+
[Challenge.ONANS_STREAK] = BossID.ISAAC,
|
|
54400
|
+
[Challenge.GUARDIAN] = BossID.MOMS_HEART,
|
|
54401
|
+
[Challenge.BACKASSWARDS] = BossID.MEGA_SATAN,
|
|
54402
|
+
[Challenge.APRILS_FOOL] = BossID.MOMS_HEART,
|
|
54403
|
+
[Challenge.POKEY_MANS] = BossID.ISAAC,
|
|
54404
|
+
[Challenge.ULTRA_HARD] = BossID.MEGA_SATAN,
|
|
54405
|
+
[Challenge.PONG] = BossID.BLUE_BABY,
|
|
54406
|
+
[Challenge.SCAT_MAN] = BossID.MOM,
|
|
54407
|
+
[Challenge.BLOODY_MARY] = BossID.SATAN,
|
|
54408
|
+
[Challenge.BAPTISM_BY_FIRE] = BossID.SATAN,
|
|
54409
|
+
[Challenge.ISAACS_AWAKENING] = BossID.MOTHER,
|
|
54410
|
+
[Challenge.SEEING_DOUBLE] = BossID.MOMS_HEART,
|
|
54411
|
+
[Challenge.PICA_RUN] = BossID.ISAAC,
|
|
54412
|
+
[Challenge.HOT_POTATO] = BossID.SATAN,
|
|
54413
|
+
[Challenge.CANTRIPPED] = BossID.MOM,
|
|
54414
|
+
[Challenge.RED_REDEMPTION] = BossID.MOTHER,
|
|
54415
|
+
[Challenge.DELETE_THIS] = BossID.BLUE_BABY
|
|
54416
|
+
}
|
|
54367
54417
|
return ____exports
|
|
54368
54418
|
end,
|
|
54369
54419
|
["src.objects.challengeCharacters"] = function(...)
|
|
@@ -54479,12 +54529,19 @@ return ____exports
|
|
|
54479
54529
|
end,
|
|
54480
54530
|
["src.functions.challenges"] = function(...)
|
|
54481
54531
|
local ____exports = {}
|
|
54532
|
+
local ____challengeBosses = require("src.objects.challengeBosses")
|
|
54533
|
+
local CHALLENGE_BOSSES = ____challengeBosses.CHALLENGE_BOSSES
|
|
54534
|
+
local DEFAULT_CHALLENGE_BOSS_ID = ____challengeBosses.DEFAULT_CHALLENGE_BOSS_ID
|
|
54482
54535
|
local ____challengeCharacters = require("src.objects.challengeCharacters")
|
|
54483
54536
|
local CHALLENGE_CHARACTERS = ____challengeCharacters.CHALLENGE_CHARACTERS
|
|
54484
54537
|
local DEFAULT_CHALLENGE_CHARACTER = ____challengeCharacters.DEFAULT_CHALLENGE_CHARACTER
|
|
54485
54538
|
local ____challengeNames = require("src.objects.challengeNames")
|
|
54486
54539
|
local CHALLENGE_NAMES = ____challengeNames.CHALLENGE_NAMES
|
|
54487
54540
|
local DEFAULT_CHALLENGE_NAME = ____challengeNames.DEFAULT_CHALLENGE_NAME
|
|
54541
|
+
function ____exports.getChallengeBoss(self, challenge)
|
|
54542
|
+
local challengeBossID = CHALLENGE_BOSSES[challenge]
|
|
54543
|
+
return challengeBossID or DEFAULT_CHALLENGE_BOSS_ID
|
|
54544
|
+
end
|
|
54488
54545
|
function ____exports.getChallengeCharacter(self, challenge)
|
|
54489
54546
|
local challengeCharacter = CHALLENGE_CHARACTERS[challenge]
|
|
54490
54547
|
return challengeCharacter or DEFAULT_CHALLENGE_CHARACTER
|
|
@@ -88,6 +88,18 @@ export declare function getEntityTypeVariantFromBossID(bossID: BossID): readonly
|
|
|
88
88
|
export declare function isRepentanceBoss(bossID: BossID): boolean;
|
|
89
89
|
/** Helper function to check if the provided NPC is a Sin miniboss, such as Sloth or Lust. */
|
|
90
90
|
export declare function isSin(npc: EntityNPC): boolean;
|
|
91
|
+
/**
|
|
92
|
+
* Helper function to determine if the specified entity type is an end-game story boss, like Isaac,
|
|
93
|
+
* Blue Baby, Mega Satan, The Beast, and so on. This is useful because certain effects should only
|
|
94
|
+
* apply to non-story bosses, like Vanishing Twin.
|
|
95
|
+
*/
|
|
96
|
+
export declare function isStoryBoss(entityType: EntityType): boolean;
|
|
97
|
+
/**
|
|
98
|
+
* Helper function to determine if the specified boss ID is an end-game story boss, like Isaac, Blue
|
|
99
|
+
* Baby, Mega Satan, The Beast, and so on. This is useful because certain effects should only apply
|
|
100
|
+
* to non-story bosses, like Vanishing Twin.
|
|
101
|
+
*/
|
|
102
|
+
export declare function isStoryBossID(bossID: BossID): boolean;
|
|
91
103
|
/**
|
|
92
104
|
* Helper function to spawn a boss.
|
|
93
105
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bosses.d.ts","sourceRoot":"","sources":["../../../src/functions/bosses.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,UAAU,EAAe,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"bosses.d.ts","sourceRoot":"","sources":["../../../src/functions/bosses.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,UAAU,EAAe,MAAM,8BAA8B,CAAC;AAkC/E;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAC5B,UAAU,GAAE,UAAU,GAAG,CAAC,CAAM,EAChC,OAAO,SAAK,EACZ,OAAO,SAAK,EACZ,cAAc,UAAQ,GACrB,SAAS,EAAE,CAGb;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,eAAe,CAC7B,kBAAkB,UAAO,GACxB,WAAW,CAAC,MAAM,CAAC,CAIrB;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,IAAI,MAAM,GAAG,CAAC,CAWtC;AAED,wBAAgB,8BAA8B,CAC5C,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,GAAG,GACX,MAAM,GAAG,SAAS,CAGpB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAIlD;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,UAAU,EACjB,SAAS,EAAE,SAAS,GACnB,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,CAOjC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CACvB,UAAU,CAAC,EAAE,UAAU,EACvB,OAAO,CAAC,EAAE,GAAG,EACb,OAAO,CAAC,EAAE,GAAG,EACb,cAAc,UAAQ,GACrB,SAAS,EAAE,CAGb;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,UAAU,GAChB,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,CAEjC;AAED,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,MAAM,GACb,SAAS,CAAC,UAAU,EAAE,GAAG,CAAC,CAE5B;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,6FAA6F;AAC7F,wBAAgB,KAAK,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAE7C;AAmCD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAE3D;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CACvB,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,GAAG,EACZ,OAAO,EAAE,GAAG,EACZ,mBAAmB,EAAE,MAAM,GAAG,GAAG,EACjC,QAAQ,GAAE,MAAmB,EAC7B,OAAO,GAAE,MAAM,GAAG,SAAqB,EACvC,SAAS,GAAE,IAAI,GAAG,GAAG,GAAG,SAAqB,EAC7C,WAAW,CAAC,EAAE,GAAG,GAChB,SAAS,CAiCX;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,GAAG,EACZ,OAAO,EAAE,GAAG,EACZ,mBAAmB,EAAE,MAAM,GAAG,GAAG,EACjC,SAAS,EAAE,IAAI,GAAG,GAAG,EACrB,QAAQ,GAAE,MAAmB,EAC7B,OAAO,GAAE,MAAM,GAAG,SAAqB,EACvC,WAAW,CAAC,EAAE,GAAG,GAChB,SAAS,CAYX"}
|
|
@@ -22,6 +22,8 @@ local ALL_BOSSES_EXCLUDING_STORY_BOSSES_SET = ____bossSets.ALL_BOSSES_EXCLUDING_
|
|
|
22
22
|
local ALL_BOSSES_SET = ____bossSets.ALL_BOSSES_SET
|
|
23
23
|
local STAGE_TO_COMBINED_BOSS_SET_MAP = ____bossSets.STAGE_TO_COMBINED_BOSS_SET_MAP
|
|
24
24
|
local STAGE_TO_STAGE_TYPE_TO_BOSS_SET_MAP = ____bossSets.STAGE_TO_STAGE_TYPE_TO_BOSS_SET_MAP
|
|
25
|
+
local STORY_BOSS_ENTITY_TYPES_SET = ____bossSets.STORY_BOSS_ENTITY_TYPES_SET
|
|
26
|
+
local STORY_BOSS_IDS_SET = ____bossSets.STORY_BOSS_IDS_SET
|
|
25
27
|
local ____repentanceBossIDsSet = require("src.sets.repentanceBossIDsSet")
|
|
26
28
|
local REPENTANCE_ONLY_BOSS_IDS_SET = ____repentanceBossIDsSet.REPENTANCE_ONLY_BOSS_IDS_SET
|
|
27
29
|
local ____sinEntityTypesSet = require("src.sets.sinEntityTypesSet")
|
|
@@ -190,26 +192,30 @@ end
|
|
|
190
192
|
function ____exports.isRepentanceBoss(self, bossID)
|
|
191
193
|
return REPENTANCE_ONLY_BOSS_IDS_SET:has(bossID)
|
|
192
194
|
end
|
|
195
|
+
--- Helper function to check if the provided NPC is a Sin miniboss, such as Sloth or Lust.
|
|
196
|
+
function ____exports.isSin(self, npc)
|
|
197
|
+
return SIN_ENTITY_TYPES_SET:has(npc.Type)
|
|
198
|
+
end
|
|
193
199
|
local function getNumBossSegments(self, entityType, variant, numSegments)
|
|
194
200
|
if numSegments ~= nil then
|
|
195
201
|
return numSegments
|
|
196
202
|
end
|
|
197
203
|
repeat
|
|
198
|
-
local
|
|
199
|
-
local
|
|
200
|
-
if
|
|
204
|
+
local ____switch20 = entityType
|
|
205
|
+
local ____cond20 = ____switch20 == EntityType.CHUB
|
|
206
|
+
if ____cond20 then
|
|
201
207
|
do
|
|
202
208
|
return 3
|
|
203
209
|
end
|
|
204
210
|
end
|
|
205
|
-
|
|
206
|
-
if
|
|
211
|
+
____cond20 = ____cond20 or ____switch20 == EntityType.LOKI
|
|
212
|
+
if ____cond20 then
|
|
207
213
|
do
|
|
208
214
|
return variant == asNumber(nil, LokiVariant.LOKII) and 2 or 1
|
|
209
215
|
end
|
|
210
216
|
end
|
|
211
|
-
|
|
212
|
-
if
|
|
217
|
+
____cond20 = ____cond20 or ____switch20 == EntityType.GURGLING
|
|
218
|
+
if ____cond20 then
|
|
213
219
|
do
|
|
214
220
|
return 2
|
|
215
221
|
end
|
|
@@ -221,9 +227,17 @@ local function getNumBossSegments(self, entityType, variant, numSegments)
|
|
|
221
227
|
end
|
|
222
228
|
until true
|
|
223
229
|
end
|
|
224
|
-
--- Helper function to
|
|
225
|
-
|
|
226
|
-
|
|
230
|
+
--- Helper function to determine if the specified entity type is an end-game story boss, like Isaac,
|
|
231
|
+
-- Blue Baby, Mega Satan, The Beast, and so on. This is useful because certain effects should only
|
|
232
|
+
-- apply to non-story bosses, like Vanishing Twin.
|
|
233
|
+
function ____exports.isStoryBoss(self, entityType)
|
|
234
|
+
return STORY_BOSS_ENTITY_TYPES_SET:has(entityType)
|
|
235
|
+
end
|
|
236
|
+
--- Helper function to determine if the specified boss ID is an end-game story boss, like Isaac, Blue
|
|
237
|
+
-- Baby, Mega Satan, The Beast, and so on. This is useful because certain effects should only apply
|
|
238
|
+
-- to non-story bosses, like Vanishing Twin.
|
|
239
|
+
function ____exports.isStoryBossID(self, bossID)
|
|
240
|
+
return STORY_BOSS_IDS_SET:has(bossID)
|
|
227
241
|
end
|
|
228
242
|
--- Helper function to spawn a boss.
|
|
229
243
|
--
|
|
@@ -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,
|
|
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.
|
|
@@ -124,12 +124,6 @@ export declare function hasArmor(entity: Entity): boolean;
|
|
|
124
124
|
* @param threshold Optional. The threshold from 0 to consider to be moving. Default is 0.01.
|
|
125
125
|
*/
|
|
126
126
|
export declare function isEntityMoving(entity: Entity, threshold?: number): boolean;
|
|
127
|
-
/**
|
|
128
|
-
* Helper function to determine if the specified entity type is an end-game story boss, like Isaac,
|
|
129
|
-
* Blue Baby, Mega Satan, The Beast, and so on. This is useful because certain effects should only
|
|
130
|
-
* apply to non-story bosses, like Vanishing Twin.
|
|
131
|
-
*/
|
|
132
|
-
export declare function isStoryBoss(entityType: EntityType): boolean;
|
|
133
127
|
/**
|
|
134
128
|
* Helper function to parse a string that contains an entity type, a variant, and a sub-type,
|
|
135
129
|
* separated by periods.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entities.d.ts","sourceRoot":"","sources":["../../../src/functions/entities.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"entities.d.ts","sourceRoot":"","sources":["../../../src/functions/entities.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,8 +16,6 @@ local ____constants = require("src.core.constants")
|
|
|
16
16
|
local VectorZero = ____constants.VectorZero
|
|
17
17
|
local ____entitiesWithArmorSet = require("src.sets.entitiesWithArmorSet")
|
|
18
18
|
local ENTITIES_WITH_ARMOR_SET = ____entitiesWithArmorSet.ENTITIES_WITH_ARMOR_SET
|
|
19
|
-
local ____storyBossEntityTypesSet = require("src.sets.storyBossEntityTypesSet")
|
|
20
|
-
local STORY_BOSS_ENTITY_TYPES_SET = ____storyBossEntityTypesSet.STORY_BOSS_ENTITY_TYPES_SET
|
|
21
19
|
local ____isaacAPIClass = require("src.functions.isaacAPIClass")
|
|
22
20
|
local getIsaacAPIClassName = ____isaacAPIClass.getIsaacAPIClassName
|
|
23
21
|
local ____random = require("src.functions.random")
|
|
@@ -351,12 +349,6 @@ function ____exports.isEntityMoving(self, entity, threshold)
|
|
|
351
349
|
end
|
|
352
350
|
return doesVectorHaveLength(nil, entity.Velocity, threshold)
|
|
353
351
|
end
|
|
354
|
-
--- Helper function to determine if the specified entity type is an end-game story boss, like Isaac,
|
|
355
|
-
-- Blue Baby, Mega Satan, The Beast, and so on. This is useful because certain effects should only
|
|
356
|
-
-- apply to non-story bosses, like Vanishing Twin.
|
|
357
|
-
function ____exports.isStoryBoss(self, entityType)
|
|
358
|
-
return STORY_BOSS_ENTITY_TYPES_SET:has(entityType)
|
|
359
|
-
end
|
|
360
352
|
--- Helper function to parse a string that contains an entity type, a variant, and a sub-type,
|
|
361
353
|
-- separated by periods.
|
|
362
354
|
--
|
|
@@ -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
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { BossID, LevelStage } from "isaac-typescript-definitions";
|
|
1
|
+
import { BossID, EntityType, LevelStage } from "isaac-typescript-definitions";
|
|
2
2
|
export declare const STAGE_TO_STAGE_TYPE_TO_BOSS_SET_MAP: ReadonlyMap<LevelStage, ReadonlyMap<int, ReadonlySet<BossID>>>;
|
|
3
3
|
export declare const STAGE_TO_COMBINED_BOSS_SET_MAP: ReadonlyMap<LevelStage, ReadonlySet<BossID>>;
|
|
4
4
|
export declare const ALL_BOSSES_SET: ReadonlySet<BossID>;
|
|
5
|
+
export declare const STORY_BOSS_IDS_SET: ReadonlySet<BossID>;
|
|
6
|
+
export declare const STORY_BOSS_ENTITY_TYPES_SET: ReadonlySet<EntityType>;
|
|
5
7
|
export declare const ALL_BOSSES_EXCLUDING_STORY_BOSSES_SET: ReadonlySet<BossID>;
|
|
6
8
|
//# sourceMappingURL=bossSets.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bossSets.d.ts","sourceRoot":"","sources":["../../../src/sets/bossSets.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"bossSets.d.ts","sourceRoot":"","sources":["../../../src/sets/bossSets.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,UAAU,EACV,UAAU,EAEX,MAAM,8BAA8B,CAAC;AA6etC,eAAO,MAAM,mCAAmC,gEAiB9C,CAAC;AAEH,eAAO,MAAM,8BAA8B,8CAiBzC,CAAC;AAEH,eAAO,MAAM,cAAc,qBAE1B,CAAC;AAEF,eAAO,MAAM,kBAAkB,qBAkB7B,CAAC;AAEH,eAAO,MAAM,2BAA2B,yBActC,CAAC;AAEH,eAAO,MAAM,qCAAqC,qBAEjD,CAAC"}
|
|
@@ -5,6 +5,7 @@ local __TS__Spread = ____lualib.__TS__Spread
|
|
|
5
5
|
local ____exports = {}
|
|
6
6
|
local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
|
|
7
7
|
local BossID = ____isaac_2Dtypescript_2Ddefinitions.BossID
|
|
8
|
+
local EntityType = ____isaac_2Dtypescript_2Ddefinitions.EntityType
|
|
8
9
|
local LevelStage = ____isaac_2Dtypescript_2Ddefinitions.LevelStage
|
|
9
10
|
local StageType = ____isaac_2Dtypescript_2Ddefinitions.StageType
|
|
10
11
|
local ____cachedEnumValues = require("src.arrays.cachedEnumValues")
|
|
@@ -368,7 +369,7 @@ ____exports.ALL_BOSSES_SET = __TS__New(
|
|
|
368
369
|
function(____, bossID) return bossID ~= BossID.RAGLICH end
|
|
369
370
|
)
|
|
370
371
|
)
|
|
371
|
-
|
|
372
|
+
____exports.STORY_BOSS_IDS_SET = __TS__New(ReadonlySet, {
|
|
372
373
|
BossID.MOM,
|
|
373
374
|
BossID.MOMS_HEART,
|
|
374
375
|
BossID.SATAN,
|
|
@@ -387,11 +388,26 @@ local STORY_BOSS_IDS_SET = __TS__New(ReadonlySet, {
|
|
|
387
388
|
BossID.DOGMA,
|
|
388
389
|
BossID.BEAST
|
|
389
390
|
})
|
|
391
|
+
____exports.STORY_BOSS_ENTITY_TYPES_SET = __TS__New(ReadonlySet, {
|
|
392
|
+
EntityType.MOM,
|
|
393
|
+
EntityType.MOMS_HEART,
|
|
394
|
+
EntityType.SATAN,
|
|
395
|
+
EntityType.ISAAC,
|
|
396
|
+
EntityType.LAMB,
|
|
397
|
+
EntityType.MEGA_SATAN,
|
|
398
|
+
EntityType.MEGA_SATAN_2,
|
|
399
|
+
EntityType.ULTRA_GREED,
|
|
400
|
+
EntityType.HUSH,
|
|
401
|
+
EntityType.DELIRIUM,
|
|
402
|
+
EntityType.MOTHER,
|
|
403
|
+
EntityType.DOGMA,
|
|
404
|
+
EntityType.BEAST
|
|
405
|
+
})
|
|
390
406
|
____exports.ALL_BOSSES_EXCLUDING_STORY_BOSSES_SET = __TS__New(
|
|
391
407
|
ReadonlySet,
|
|
392
408
|
__TS__ArrayFilter(
|
|
393
409
|
{__TS__Spread(____exports.ALL_BOSSES_SET)},
|
|
394
|
-
function(____, bossID) return not STORY_BOSS_IDS_SET:has(bossID) end
|
|
410
|
+
function(____, bossID) return not ____exports.STORY_BOSS_IDS_SET:has(bossID) end
|
|
395
411
|
)
|
|
396
412
|
)
|
|
397
413
|
return ____exports
|
package/package.json
CHANGED
package/src/functions/bosses.ts
CHANGED
|
@@ -10,6 +10,8 @@ import {
|
|
|
10
10
|
ALL_BOSSES_SET,
|
|
11
11
|
STAGE_TO_COMBINED_BOSS_SET_MAP,
|
|
12
12
|
STAGE_TO_STAGE_TYPE_TO_BOSS_SET_MAP,
|
|
13
|
+
STORY_BOSS_ENTITY_TYPES_SET,
|
|
14
|
+
STORY_BOSS_IDS_SET,
|
|
13
15
|
} from "../sets/bossSets";
|
|
14
16
|
import { REPENTANCE_ONLY_BOSS_IDS_SET } from "../sets/repentanceBossIDsSet";
|
|
15
17
|
import { SIN_ENTITY_TYPES_SET } from "../sets/sinEntityTypesSet";
|
|
@@ -190,6 +192,11 @@ export function isRepentanceBoss(bossID: BossID): boolean {
|
|
|
190
192
|
return REPENTANCE_ONLY_BOSS_IDS_SET.has(bossID);
|
|
191
193
|
}
|
|
192
194
|
|
|
195
|
+
/** Helper function to check if the provided NPC is a Sin miniboss, such as Sloth or Lust. */
|
|
196
|
+
export function isSin(npc: EntityNPC): boolean {
|
|
197
|
+
return SIN_ENTITY_TYPES_SET.has(npc.Type);
|
|
198
|
+
}
|
|
199
|
+
|
|
193
200
|
function getNumBossSegments(
|
|
194
201
|
entityType: EntityType,
|
|
195
202
|
variant: int,
|
|
@@ -223,9 +230,22 @@ function getNumBossSegments(
|
|
|
223
230
|
}
|
|
224
231
|
}
|
|
225
232
|
|
|
226
|
-
/**
|
|
227
|
-
|
|
228
|
-
|
|
233
|
+
/**
|
|
234
|
+
* Helper function to determine if the specified entity type is an end-game story boss, like Isaac,
|
|
235
|
+
* Blue Baby, Mega Satan, The Beast, and so on. This is useful because certain effects should only
|
|
236
|
+
* apply to non-story bosses, like Vanishing Twin.
|
|
237
|
+
*/
|
|
238
|
+
export function isStoryBoss(entityType: EntityType): boolean {
|
|
239
|
+
return STORY_BOSS_ENTITY_TYPES_SET.has(entityType);
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
/**
|
|
243
|
+
* Helper function to determine if the specified boss ID is an end-game story boss, like Isaac, Blue
|
|
244
|
+
* Baby, Mega Satan, The Beast, and so on. This is useful because certain effects should only apply
|
|
245
|
+
* to non-story bosses, like Vanishing Twin.
|
|
246
|
+
*/
|
|
247
|
+
export function isStoryBossID(bossID: BossID): boolean {
|
|
248
|
+
return STORY_BOSS_IDS_SET.has(bossID);
|
|
229
249
|
}
|
|
230
250
|
|
|
231
251
|
/**
|
|
@@ -1,4 +1,12 @@
|
|
|
1
|
-
import type {
|
|
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
|
*
|
|
@@ -3,7 +3,6 @@ import { EntityFlag } from "isaac-typescript-definitions";
|
|
|
3
3
|
import { game } from "../core/cachedClasses";
|
|
4
4
|
import { VectorZero } from "../core/constants";
|
|
5
5
|
import { ENTITIES_WITH_ARMOR_SET } from "../sets/entitiesWithArmorSet";
|
|
6
|
-
import { STORY_BOSS_ENTITY_TYPES_SET } from "../sets/storyBossEntityTypesSet";
|
|
7
6
|
import type { AnyEntity } from "../types/AnyEntity";
|
|
8
7
|
import type { EntityID } from "../types/EntityID";
|
|
9
8
|
import { getIsaacAPIClassName } from "./isaacAPIClass";
|
|
@@ -364,15 +363,6 @@ export function isEntityMoving(entity: Entity, threshold = 0.01): boolean {
|
|
|
364
363
|
return doesVectorHaveLength(entity.Velocity, threshold);
|
|
365
364
|
}
|
|
366
365
|
|
|
367
|
-
/**
|
|
368
|
-
* Helper function to determine if the specified entity type is an end-game story boss, like Isaac,
|
|
369
|
-
* Blue Baby, Mega Satan, The Beast, and so on. This is useful because certain effects should only
|
|
370
|
-
* apply to non-story bosses, like Vanishing Twin.
|
|
371
|
-
*/
|
|
372
|
-
export function isStoryBoss(entityType: EntityType): boolean {
|
|
373
|
-
return STORY_BOSS_ENTITY_TYPES_SET.has(entityType);
|
|
374
|
-
}
|
|
375
|
-
|
|
376
366
|
/**
|
|
377
367
|
* Helper function to parse a string that contains an entity type, a variant, and a sub-type,
|
|
378
368
|
* separated by periods.
|
|
@@ -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>;
|
package/src/sets/bossSets.ts
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
BossID,
|
|
3
|
+
EntityType,
|
|
4
|
+
LevelStage,
|
|
5
|
+
StageType,
|
|
6
|
+
} from "isaac-typescript-definitions";
|
|
2
7
|
import { BOSS_IDS } from "../arrays/cachedEnumValues";
|
|
3
8
|
import { combineSets } from "../functions/set";
|
|
4
9
|
import { ReadonlyMap } from "../types/ReadonlyMap";
|
|
@@ -533,7 +538,7 @@ export const ALL_BOSSES_SET = new ReadonlySet<BossID>(
|
|
|
533
538
|
BOSS_IDS.filter((bossID) => bossID !== BossID.RAGLICH),
|
|
534
539
|
);
|
|
535
540
|
|
|
536
|
-
const STORY_BOSS_IDS_SET = new ReadonlySet([
|
|
541
|
+
export const STORY_BOSS_IDS_SET = new ReadonlySet([
|
|
537
542
|
BossID.MOM, // 6
|
|
538
543
|
BossID.MOMS_HEART, // 8
|
|
539
544
|
BossID.SATAN, // 24
|
|
@@ -553,6 +558,22 @@ const STORY_BOSS_IDS_SET = new ReadonlySet([
|
|
|
553
558
|
BossID.BEAST, // 100
|
|
554
559
|
]);
|
|
555
560
|
|
|
561
|
+
export const STORY_BOSS_ENTITY_TYPES_SET = new ReadonlySet<EntityType>([
|
|
562
|
+
EntityType.MOM, // 45
|
|
563
|
+
EntityType.MOMS_HEART, // 78
|
|
564
|
+
EntityType.SATAN, // 84
|
|
565
|
+
EntityType.ISAAC, // 102
|
|
566
|
+
EntityType.LAMB, // 273
|
|
567
|
+
EntityType.MEGA_SATAN, // 274
|
|
568
|
+
EntityType.MEGA_SATAN_2, // 275
|
|
569
|
+
EntityType.ULTRA_GREED, // 406 (includes Ultra Greedier)
|
|
570
|
+
EntityType.HUSH, // 407
|
|
571
|
+
EntityType.DELIRIUM, // 412
|
|
572
|
+
EntityType.MOTHER, // 912
|
|
573
|
+
EntityType.DOGMA, // 950
|
|
574
|
+
EntityType.BEAST, // 951
|
|
575
|
+
]);
|
|
576
|
+
|
|
556
577
|
export const ALL_BOSSES_EXCLUDING_STORY_BOSSES_SET = new ReadonlySet(
|
|
557
578
|
[...ALL_BOSSES_SET].filter((bossID) => !STORY_BOSS_IDS_SET.has(bossID)),
|
|
558
579
|
);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"storyBossEntityTypesSet.d.ts","sourceRoot":"","sources":["../../../src/sets/storyBossEntityTypesSet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAG1D,eAAO,MAAM,2BAA2B,yBActC,CAAC"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
local ____lualib = require("lualib_bundle")
|
|
2
|
-
local __TS__New = ____lualib.__TS__New
|
|
3
|
-
local ____exports = {}
|
|
4
|
-
local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
|
|
5
|
-
local EntityType = ____isaac_2Dtypescript_2Ddefinitions.EntityType
|
|
6
|
-
local ____ReadonlySet = require("src.types.ReadonlySet")
|
|
7
|
-
local ReadonlySet = ____ReadonlySet.ReadonlySet
|
|
8
|
-
____exports.STORY_BOSS_ENTITY_TYPES_SET = __TS__New(ReadonlySet, {
|
|
9
|
-
EntityType.MOM,
|
|
10
|
-
EntityType.MOMS_HEART,
|
|
11
|
-
EntityType.SATAN,
|
|
12
|
-
EntityType.ISAAC,
|
|
13
|
-
EntityType.LAMB,
|
|
14
|
-
EntityType.MEGA_SATAN,
|
|
15
|
-
EntityType.MEGA_SATAN_2,
|
|
16
|
-
EntityType.ULTRA_GREED,
|
|
17
|
-
EntityType.HUSH,
|
|
18
|
-
EntityType.DELIRIUM,
|
|
19
|
-
EntityType.MOTHER,
|
|
20
|
-
EntityType.DOGMA,
|
|
21
|
-
EntityType.BEAST
|
|
22
|
-
})
|
|
23
|
-
return ____exports
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { EntityType } from "isaac-typescript-definitions";
|
|
2
|
-
import { ReadonlySet } from "../types/ReadonlySet";
|
|
3
|
-
|
|
4
|
-
export const STORY_BOSS_ENTITY_TYPES_SET = new ReadonlySet<EntityType>([
|
|
5
|
-
EntityType.MOM, // 45
|
|
6
|
-
EntityType.MOMS_HEART, // 78
|
|
7
|
-
EntityType.SATAN, // 84
|
|
8
|
-
EntityType.ISAAC, // 102
|
|
9
|
-
EntityType.LAMB, // 273
|
|
10
|
-
EntityType.MEGA_SATAN, // 274
|
|
11
|
-
EntityType.MEGA_SATAN_2, // 275
|
|
12
|
-
EntityType.ULTRA_GREED, // 406
|
|
13
|
-
EntityType.HUSH, // 407
|
|
14
|
-
EntityType.DELIRIUM, // 412
|
|
15
|
-
EntityType.MOTHER, // 912
|
|
16
|
-
EntityType.DOGMA, // 950
|
|
17
|
-
EntityType.BEAST, // 951
|
|
18
|
-
]);
|