isaacscript-common 21.6.2 → 21.6.4
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 +7 -8
- package/dist/isaacscript-common.lua +52 -45
- package/dist/src/classes/features/callbackLogic/CustomRevive.d.ts +1 -0
- package/dist/src/classes/features/callbackLogic/CustomRevive.d.ts.map +1 -1
- package/dist/src/classes/features/callbackLogic/CustomRevive.lua +9 -4
- package/dist/src/classes/features/other/CustomStages.lua +2 -2
- package/dist/src/functions/rooms.d.ts +4 -5
- package/dist/src/functions/rooms.d.ts.map +1 -1
- package/dist/src/functions/rooms.lua +7 -8
- package/dist/src/functions/stage.d.ts +2 -3
- package/dist/src/functions/stage.d.ts.map +1 -1
- package/dist/src/functions/stage.lua +7 -6
- package/dist/src/objects/roomTypeSpecialGotoPrefixes.d.ts +32 -0
- package/dist/src/objects/roomTypeSpecialGotoPrefixes.d.ts.map +1 -0
- package/dist/src/objects/roomTypeSpecialGotoPrefixes.lua +35 -0
- package/package.json +1 -1
- package/src/classes/features/callbackLogic/CustomRevive.ts +14 -2
- package/src/classes/features/other/CustomStages.ts +1 -1
- package/src/functions/rooms.ts +4 -5
- package/src/functions/stage.ts +7 -8
- package/src/objects/roomTypeSpecialGotoPrefixes.ts +33 -0
- package/dist/src/objects/roomTypeGotoPrefixes.d.ts +0 -32
- package/dist/src/objects/roomTypeGotoPrefixes.d.ts.map +0 -1
- package/dist/src/objects/roomTypeGotoPrefixes.lua +0 -35
- package/src/objects/roomTypeGotoPrefixes.ts +0 -33
package/dist/index.rollup.d.ts
CHANGED
|
@@ -1864,6 +1864,7 @@ declare class CustomRevive extends Feature {
|
|
|
1864
1864
|
private runInNFrames;
|
|
1865
1865
|
constructor(preCustomRevive: PreCustomRevive, postCustomRevive: PostCustomRevive, runInNFrames: RunInNFrames);
|
|
1866
1866
|
private postRender;
|
|
1867
|
+
private postFamiliarInit;
|
|
1867
1868
|
private postNewRoomReordered;
|
|
1868
1869
|
private postPEffectUpdateReordered;
|
|
1869
1870
|
private checkWaitingForItemAnimation;
|
|
@@ -4968,9 +4969,8 @@ export declare function getGoldenTrinketType(trinketType: TrinketType): TrinketT
|
|
|
4968
4969
|
* @param roomType The `RoomType` of the destination room.
|
|
4969
4970
|
* @param roomVariant The variant of the destination room.
|
|
4970
4971
|
* @param useSpecialRoomsForRoomTypeDefault Optional. Whether to use `s.default` as the prefix for
|
|
4971
|
-
* the `goto` command (instead of `d`)
|
|
4972
|
-
*
|
|
4973
|
-
* (1).
|
|
4972
|
+
* the `goto` command (instead of `d`) if the room type is
|
|
4973
|
+
* `RoomType.DEFAULT` (1). False by default.
|
|
4974
4974
|
*/
|
|
4975
4975
|
export declare function getGotoCommand(roomType: RoomType, roomVariant: int, useSpecialRoomsForRoomTypeDefault?: boolean): string;
|
|
4976
4976
|
|
|
@@ -6104,17 +6104,16 @@ export declare function getRoomData(roomGridIndex?: int): RoomConfig | undefined
|
|
|
6104
6104
|
* @param roomType The type of room to retrieve.
|
|
6105
6105
|
* @param roomVariant The room variant to retrieve. (The room variant is the "ID" of the room in
|
|
6106
6106
|
* Basement Renovator.)
|
|
6107
|
-
* @param useSpecialRoomsForRoomTypeDefault Optional. Whether to use `s.default` as the prefix for
|
|
6108
|
-
* the `goto` command (instead of `d`). False by default. Set this
|
|
6109
|
-
* to true if you want to go to a special room of `RoomType.DEFAULT`
|
|
6110
|
-
* (1).
|
|
6111
6107
|
* @param cancelRoomTransition Optional. Whether to cancel the room transition by using the
|
|
6112
6108
|
* `Game.StartRoomTransition` method to travel to the same room. Default
|
|
6113
6109
|
* is true. Set this to false if you are getting the data for many rooms
|
|
6114
6110
|
* at the same time, and then use the `teleport` helper function when
|
|
6115
6111
|
* you are finished.
|
|
6112
|
+
* @param useSpecialRoomsForRoomTypeDefault Optional. Whether to use `s.default` as the prefix for
|
|
6113
|
+
* the `goto` command (instead of `d`) if the room type is
|
|
6114
|
+
* `RoomType.DEFAULT` (1). False by default.
|
|
6116
6115
|
*/
|
|
6117
|
-
export declare function getRoomDataForTypeVariant(roomType: RoomType, roomVariant: int,
|
|
6116
|
+
export declare function getRoomDataForTypeVariant(roomType: RoomType, roomVariant: int, cancelRoomTransition?: boolean, useSpecialRoomsForRoomTypeDefault?: boolean): Readonly<RoomConfig> | undefined;
|
|
6118
6117
|
|
|
6119
6118
|
/**
|
|
6120
6119
|
* Helper function to get the descriptor for a room.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
--[[
|
|
2
2
|
|
|
3
|
-
isaacscript-common 21.6.
|
|
3
|
+
isaacscript-common 21.6.4
|
|
4
4
|
|
|
5
5
|
This is the "isaacscript-common" library, which was created with the IsaacScript tool.
|
|
6
6
|
|
|
@@ -26079,40 +26079,40 @@ ____exports.ENGLISH_LEVEL_NAMES = {
|
|
|
26079
26079
|
}
|
|
26080
26080
|
return ____exports
|
|
26081
26081
|
end,
|
|
26082
|
-
["src.objects.
|
|
26082
|
+
["src.objects.roomTypeSpecialGotoPrefixes"] = function(...)
|
|
26083
26083
|
local ____exports = {}
|
|
26084
26084
|
local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
|
|
26085
26085
|
local RoomType = ____isaac_2Dtypescript_2Ddefinitions.RoomType
|
|
26086
|
-
____exports.
|
|
26087
|
-
[RoomType.DEFAULT] = "
|
|
26088
|
-
[RoomType.SHOP] = "
|
|
26089
|
-
[RoomType.ERROR] = "
|
|
26090
|
-
[RoomType.TREASURE] = "
|
|
26091
|
-
[RoomType.BOSS] = "
|
|
26092
|
-
[RoomType.MINI_BOSS] = "
|
|
26093
|
-
[RoomType.SECRET] = "
|
|
26094
|
-
[RoomType.SUPER_SECRET] = "
|
|
26095
|
-
[RoomType.ARCADE] = "
|
|
26096
|
-
[RoomType.CURSE] = "
|
|
26097
|
-
[RoomType.CHALLENGE] = "
|
|
26098
|
-
[RoomType.LIBRARY] = "
|
|
26099
|
-
[RoomType.SACRIFICE] = "
|
|
26100
|
-
[RoomType.DEVIL] = "
|
|
26101
|
-
[RoomType.ANGEL] = "
|
|
26102
|
-
[RoomType.DUNGEON] = "
|
|
26103
|
-
[RoomType.BOSS_RUSH] = "
|
|
26104
|
-
[RoomType.CLEAN_BEDROOM] = "
|
|
26105
|
-
[RoomType.DIRTY_BEDROOM] = "
|
|
26106
|
-
[RoomType.CHEST] = "
|
|
26107
|
-
[RoomType.DICE] = "
|
|
26108
|
-
[RoomType.BLACK_MARKET] = "
|
|
26109
|
-
[RoomType.GREED_EXIT] = "
|
|
26110
|
-
[RoomType.PLANETARIUM] = "
|
|
26111
|
-
[RoomType.TELEPORTER] = "
|
|
26112
|
-
[RoomType.TELEPORTER_EXIT] = "
|
|
26113
|
-
[RoomType.SECRET_EXIT] = "
|
|
26114
|
-
[RoomType.BLUE] = "
|
|
26115
|
-
[RoomType.ULTRA_SECRET] = "
|
|
26086
|
+
____exports.ROOM_TYPE_SPECIAL_GOTO_PREFIXES = {
|
|
26087
|
+
[RoomType.DEFAULT] = "default",
|
|
26088
|
+
[RoomType.SHOP] = "shop",
|
|
26089
|
+
[RoomType.ERROR] = "error",
|
|
26090
|
+
[RoomType.TREASURE] = "treasure",
|
|
26091
|
+
[RoomType.BOSS] = "boss",
|
|
26092
|
+
[RoomType.MINI_BOSS] = "miniboss",
|
|
26093
|
+
[RoomType.SECRET] = "secret",
|
|
26094
|
+
[RoomType.SUPER_SECRET] = "supersecret",
|
|
26095
|
+
[RoomType.ARCADE] = "arcade",
|
|
26096
|
+
[RoomType.CURSE] = "curse",
|
|
26097
|
+
[RoomType.CHALLENGE] = "challenge",
|
|
26098
|
+
[RoomType.LIBRARY] = "library",
|
|
26099
|
+
[RoomType.SACRIFICE] = "sacrifice",
|
|
26100
|
+
[RoomType.DEVIL] = "devil",
|
|
26101
|
+
[RoomType.ANGEL] = "angel",
|
|
26102
|
+
[RoomType.DUNGEON] = "itemdungeon",
|
|
26103
|
+
[RoomType.BOSS_RUSH] = "bossrush",
|
|
26104
|
+
[RoomType.CLEAN_BEDROOM] = "isaacs",
|
|
26105
|
+
[RoomType.DIRTY_BEDROOM] = "barren",
|
|
26106
|
+
[RoomType.CHEST] = "chest",
|
|
26107
|
+
[RoomType.DICE] = "dice",
|
|
26108
|
+
[RoomType.BLACK_MARKET] = "blackmarket",
|
|
26109
|
+
[RoomType.GREED_EXIT] = "greedexit",
|
|
26110
|
+
[RoomType.PLANETARIUM] = "planetarium",
|
|
26111
|
+
[RoomType.TELEPORTER] = "teleporter",
|
|
26112
|
+
[RoomType.TELEPORTER_EXIT] = "teleporterexit",
|
|
26113
|
+
[RoomType.SECRET_EXIT] = "secretexit",
|
|
26114
|
+
[RoomType.BLUE] = "blue",
|
|
26115
|
+
[RoomType.ULTRA_SECRET] = "ultrasecret"
|
|
26116
26116
|
}
|
|
26117
26117
|
return ____exports
|
|
26118
26118
|
end,
|
|
@@ -26250,8 +26250,8 @@ local ____cachedClasses = require("src.core.cachedClasses")
|
|
|
26250
26250
|
local game = ____cachedClasses.game
|
|
26251
26251
|
local ____englishLevelNames = require("src.objects.englishLevelNames")
|
|
26252
26252
|
local ENGLISH_LEVEL_NAMES = ____englishLevelNames.ENGLISH_LEVEL_NAMES
|
|
26253
|
-
local
|
|
26254
|
-
local
|
|
26253
|
+
local ____roomTypeSpecialGotoPrefixes = require("src.objects.roomTypeSpecialGotoPrefixes")
|
|
26254
|
+
local ROOM_TYPE_SPECIAL_GOTO_PREFIXES = ____roomTypeSpecialGotoPrefixes.ROOM_TYPE_SPECIAL_GOTO_PREFIXES
|
|
26255
26255
|
local ____stageToStageID = require("src.objects.stageToStageID")
|
|
26256
26256
|
local STAGE_TO_STAGE_ID = ____stageToStageID.STAGE_TO_STAGE_ID
|
|
26257
26257
|
local ____stageTypeSuffixes = require("src.objects.stageTypeSuffixes")
|
|
@@ -26324,7 +26324,9 @@ function ____exports.getGotoCommand(self, roomType, roomVariant, useSpecialRooms
|
|
|
26324
26324
|
if useSpecialRoomsForRoomTypeDefault == nil then
|
|
26325
26325
|
useSpecialRoomsForRoomTypeDefault = false
|
|
26326
26326
|
end
|
|
26327
|
-
local
|
|
26327
|
+
local isNormalRoom = roomType == RoomType.DEFAULT and not useSpecialRoomsForRoomTypeDefault
|
|
26328
|
+
local roomTypeSpecialGotoPrefix = ROOM_TYPE_SPECIAL_GOTO_PREFIXES[roomType]
|
|
26329
|
+
local prefix = isNormalRoom and "d" or "s." .. roomTypeSpecialGotoPrefix
|
|
26328
26330
|
return (("goto " .. prefix) .. ".") .. tostring(roomVariant)
|
|
26329
26331
|
end
|
|
26330
26332
|
function ____exports.getStage(self)
|
|
@@ -26534,13 +26536,13 @@ function ____exports.getNumRooms(self)
|
|
|
26534
26536
|
local rooms = ____exports.getRoomsInsideGrid(nil)
|
|
26535
26537
|
return #rooms
|
|
26536
26538
|
end
|
|
26537
|
-
function ____exports.getRoomDataForTypeVariant(self, roomType, roomVariant,
|
|
26538
|
-
if useSpecialRoomsForRoomTypeDefault == nil then
|
|
26539
|
-
useSpecialRoomsForRoomTypeDefault = false
|
|
26540
|
-
end
|
|
26539
|
+
function ____exports.getRoomDataForTypeVariant(self, roomType, roomVariant, cancelRoomTransition, useSpecialRoomsForRoomTypeDefault)
|
|
26541
26540
|
if cancelRoomTransition == nil then
|
|
26542
26541
|
cancelRoomTransition = true
|
|
26543
26542
|
end
|
|
26543
|
+
if useSpecialRoomsForRoomTypeDefault == nil then
|
|
26544
|
+
useSpecialRoomsForRoomTypeDefault = false
|
|
26545
|
+
end
|
|
26544
26546
|
local command = getGotoCommand(nil, roomType, roomVariant, useSpecialRoomsForRoomTypeDefault)
|
|
26545
26547
|
Isaac.ExecuteCommand(command)
|
|
26546
26548
|
local newRoomData = getRoomData(nil, GridRoom.DEBUG)
|
|
@@ -32657,8 +32659,6 @@ local ____ModCallbackCustom = require("src.enums.ModCallbackCustom")
|
|
|
32657
32659
|
local ModCallbackCustom = ____ModCallbackCustom.ModCallbackCustom
|
|
32658
32660
|
local ____collectibles = require("src.functions.collectibles")
|
|
32659
32661
|
local removeCollectibleFromItemTracker = ____collectibles.removeCollectibleFromItemTracker
|
|
32660
|
-
local ____entitiesSpecific = require("src.functions.entitiesSpecific")
|
|
32661
|
-
local removeAllFamiliars = ____entitiesSpecific.removeAllFamiliars
|
|
32662
32662
|
local ____log = require("src.functions.log")
|
|
32663
32663
|
local log = ____log.log
|
|
32664
32664
|
local ____logMisc = require("src.functions.logMisc")
|
|
@@ -32691,6 +32691,14 @@ function CustomRevive.prototype.____constructor(self, preCustomRevive, postCusto
|
|
|
32691
32691
|
end
|
|
32692
32692
|
sfxManager:Stop(SoundEffect.ONE_UP)
|
|
32693
32693
|
end
|
|
32694
|
+
self.postFamiliarInit = function(____, familiar)
|
|
32695
|
+
if self.v.run.state ~= CustomReviveState.WAITING_FOR_ROOM_TRANSITION then
|
|
32696
|
+
return
|
|
32697
|
+
end
|
|
32698
|
+
if familiar.Variant == FamiliarVariant.ONE_UP then
|
|
32699
|
+
familiar:Remove()
|
|
32700
|
+
end
|
|
32701
|
+
end
|
|
32694
32702
|
self.postNewRoomReordered = function()
|
|
32695
32703
|
if self.v.run.state ~= CustomReviveState.WAITING_FOR_ROOM_TRANSITION then
|
|
32696
32704
|
return
|
|
@@ -32709,7 +32717,7 @@ function CustomRevive.prototype.____constructor(self, preCustomRevive, postCusto
|
|
|
32709
32717
|
self:playerIsAboutToDie(player)
|
|
32710
32718
|
end
|
|
32711
32719
|
self.featuresUsed = {ISCFeature.RUN_IN_N_FRAMES}
|
|
32712
|
-
self.callbacksUsed = {{ModCallback.POST_RENDER, self.postRender}}
|
|
32720
|
+
self.callbacksUsed = {{ModCallback.POST_RENDER, self.postRender}, {ModCallback.POST_FAMILIAR_INIT, self.postFamiliarInit}}
|
|
32713
32721
|
self.customCallbacksUsed = {{ModCallbackCustom.POST_NEW_ROOM_REORDERED, self.postNewRoomReordered}, {ModCallbackCustom.POST_PEFFECT_UPDATE_REORDERED, self.postPEffectUpdateReordered}, {ModCallbackCustom.POST_PLAYER_FATAL_DAMAGE, self.postPlayerFatalDamage}, {ModCallbackCustom.PRE_BERSERK_DEATH, self.preBerserkDeath}}
|
|
32714
32722
|
self.preCustomRevive = preCustomRevive
|
|
32715
32723
|
self.postCustomRevive = postCustomRevive
|
|
@@ -32754,7 +32762,6 @@ function CustomRevive.prototype.playerIsAboutToDie(self, player)
|
|
|
32754
32762
|
self.v.run.dyingPlayerIndex = getPlayerIndex(nil, player)
|
|
32755
32763
|
self:logStateChanged()
|
|
32756
32764
|
player:AddCollectible(CollectibleType.ONE_UP, 0, false)
|
|
32757
|
-
removeAllFamiliars(nil, FamiliarVariant.ONE_UP)
|
|
32758
32765
|
removeCollectibleFromItemTracker(nil, CollectibleType.ONE_UP)
|
|
32759
32766
|
local playerIndex = getPlayerIndex(nil, player)
|
|
32760
32767
|
self.runInNFrames:runNextGameFrame(function()
|
|
@@ -42833,8 +42840,8 @@ function CustomStages.prototype.setStageRoomsData(self, customStage, rng, verbos
|
|
|
42833
42840
|
nil,
|
|
42834
42841
|
roomType,
|
|
42835
42842
|
randomRoom.variant,
|
|
42836
|
-
|
|
42837
|
-
|
|
42843
|
+
false,
|
|
42844
|
+
true
|
|
42838
42845
|
)
|
|
42839
42846
|
if newRoomData == nil then
|
|
42840
42847
|
logError((("Failed to get the room data for room variant " .. tostring(randomRoom.variant)) .. " for custom stage: ") .. customStage.name)
|
|
@@ -25,6 +25,7 @@ export declare class CustomRevive extends Feature {
|
|
|
25
25
|
private runInNFrames;
|
|
26
26
|
constructor(preCustomRevive: PreCustomRevive, postCustomRevive: PostCustomRevive, runInNFrames: RunInNFrames);
|
|
27
27
|
private postRender;
|
|
28
|
+
private postFamiliarInit;
|
|
28
29
|
private postNewRoomReordered;
|
|
29
30
|
private postPEffectUpdateReordered;
|
|
30
31
|
private checkWaitingForItemAnimation;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomRevive.d.ts","sourceRoot":"","sources":["../../../../../src/classes/features/callbackLogic/CustomRevive.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CustomRevive.d.ts","sourceRoot":"","sources":["../../../../../src/classes/features/callbackLogic/CustomRevive.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAIrD,aAAK,iBAAiB;IACpB,QAAQ,IAAA;IAER;;;OAGG;IACH,2BAA2B,IAAA;IAE3B,0BAA0B,IAAA;CAC3B;AAED,qBAAa,YAAa,SAAQ,OAAO;IACvB,CAAC;;;;;;MAMf;IAEF,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,YAAY,CAAe;gBAGjC,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,YAAY,EAAE,YAAY;IA8B5B,OAAO,CAAC,UAAU,CAQhB;IAGF,OAAO,CAAC,gBAAgB,CAQtB;IAGF,OAAO,CAAC,oBAAoB,CAO1B;IAGF,OAAO,CAAC,0BAA0B,CAEhC;IAEF,OAAO,CAAC,4BAA4B;IA6CpC,OAAO,CAAC,qBAAqB,CAK3B;IAGF,OAAO,CAAC,eAAe,CAErB;IAEF;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAmC1B,OAAO,CAAC,eAAe;CASxB"}
|
|
@@ -16,8 +16,6 @@ local ____ModCallbackCustom = require("src.enums.ModCallbackCustom")
|
|
|
16
16
|
local ModCallbackCustom = ____ModCallbackCustom.ModCallbackCustom
|
|
17
17
|
local ____collectibles = require("src.functions.collectibles")
|
|
18
18
|
local removeCollectibleFromItemTracker = ____collectibles.removeCollectibleFromItemTracker
|
|
19
|
-
local ____entitiesSpecific = require("src.functions.entitiesSpecific")
|
|
20
|
-
local removeAllFamiliars = ____entitiesSpecific.removeAllFamiliars
|
|
21
19
|
local ____log = require("src.functions.log")
|
|
22
20
|
local log = ____log.log
|
|
23
21
|
local ____logMisc = require("src.functions.logMisc")
|
|
@@ -50,6 +48,14 @@ function CustomRevive.prototype.____constructor(self, preCustomRevive, postCusto
|
|
|
50
48
|
end
|
|
51
49
|
sfxManager:Stop(SoundEffect.ONE_UP)
|
|
52
50
|
end
|
|
51
|
+
self.postFamiliarInit = function(____, familiar)
|
|
52
|
+
if self.v.run.state ~= CustomReviveState.WAITING_FOR_ROOM_TRANSITION then
|
|
53
|
+
return
|
|
54
|
+
end
|
|
55
|
+
if familiar.Variant == FamiliarVariant.ONE_UP then
|
|
56
|
+
familiar:Remove()
|
|
57
|
+
end
|
|
58
|
+
end
|
|
53
59
|
self.postNewRoomReordered = function()
|
|
54
60
|
if self.v.run.state ~= CustomReviveState.WAITING_FOR_ROOM_TRANSITION then
|
|
55
61
|
return
|
|
@@ -68,7 +74,7 @@ function CustomRevive.prototype.____constructor(self, preCustomRevive, postCusto
|
|
|
68
74
|
self:playerIsAboutToDie(player)
|
|
69
75
|
end
|
|
70
76
|
self.featuresUsed = {ISCFeature.RUN_IN_N_FRAMES}
|
|
71
|
-
self.callbacksUsed = {{ModCallback.POST_RENDER, self.postRender}}
|
|
77
|
+
self.callbacksUsed = {{ModCallback.POST_RENDER, self.postRender}, {ModCallback.POST_FAMILIAR_INIT, self.postFamiliarInit}}
|
|
72
78
|
self.customCallbacksUsed = {{ModCallbackCustom.POST_NEW_ROOM_REORDERED, self.postNewRoomReordered}, {ModCallbackCustom.POST_PEFFECT_UPDATE_REORDERED, self.postPEffectUpdateReordered}, {ModCallbackCustom.POST_PLAYER_FATAL_DAMAGE, self.postPlayerFatalDamage}, {ModCallbackCustom.PRE_BERSERK_DEATH, self.preBerserkDeath}}
|
|
73
79
|
self.preCustomRevive = preCustomRevive
|
|
74
80
|
self.postCustomRevive = postCustomRevive
|
|
@@ -113,7 +119,6 @@ function CustomRevive.prototype.playerIsAboutToDie(self, player)
|
|
|
113
119
|
self.v.run.dyingPlayerIndex = getPlayerIndex(nil, player)
|
|
114
120
|
self:logStateChanged()
|
|
115
121
|
player:AddCollectible(CollectibleType.ONE_UP, 0, false)
|
|
116
|
-
removeAllFamiliars(nil, FamiliarVariant.ONE_UP)
|
|
117
122
|
removeCollectibleFromItemTracker(nil, CollectibleType.ONE_UP)
|
|
118
123
|
local playerIndex = getPlayerIndex(nil, player)
|
|
119
124
|
self.runInNFrames:runNextGameFrame(function()
|
|
@@ -294,8 +294,8 @@ function CustomStages.prototype.setStageRoomsData(self, customStage, rng, verbos
|
|
|
294
294
|
nil,
|
|
295
295
|
roomType,
|
|
296
296
|
randomRoom.variant,
|
|
297
|
-
|
|
298
|
-
|
|
297
|
+
false,
|
|
298
|
+
true
|
|
299
299
|
)
|
|
300
300
|
if newRoomData == nil then
|
|
301
301
|
logError((("Failed to get the room data for room variant " .. tostring(randomRoom.variant)) .. " for custom stage: ") .. customStage.name)
|
|
@@ -37,17 +37,16 @@ export declare function getReadOnlyRooms(): Array<Readonly<RoomDescriptor>>;
|
|
|
37
37
|
* @param roomType The type of room to retrieve.
|
|
38
38
|
* @param roomVariant The room variant to retrieve. (The room variant is the "ID" of the room in
|
|
39
39
|
* Basement Renovator.)
|
|
40
|
-
* @param useSpecialRoomsForRoomTypeDefault Optional. Whether to use `s.default` as the prefix for
|
|
41
|
-
* the `goto` command (instead of `d`). False by default. Set this
|
|
42
|
-
* to true if you want to go to a special room of `RoomType.DEFAULT`
|
|
43
|
-
* (1).
|
|
44
40
|
* @param cancelRoomTransition Optional. Whether to cancel the room transition by using the
|
|
45
41
|
* `Game.StartRoomTransition` method to travel to the same room. Default
|
|
46
42
|
* is true. Set this to false if you are getting the data for many rooms
|
|
47
43
|
* at the same time, and then use the `teleport` helper function when
|
|
48
44
|
* you are finished.
|
|
45
|
+
* @param useSpecialRoomsForRoomTypeDefault Optional. Whether to use `s.default` as the prefix for
|
|
46
|
+
* the `goto` command (instead of `d`) if the room type is
|
|
47
|
+
* `RoomType.DEFAULT` (1). False by default.
|
|
49
48
|
*/
|
|
50
|
-
export declare function getRoomDataForTypeVariant(roomType: RoomType, roomVariant: int,
|
|
49
|
+
export declare function getRoomDataForTypeVariant(roomType: RoomType, roomVariant: int, cancelRoomTransition?: boolean, useSpecialRoomsForRoomTypeDefault?: boolean): Readonly<RoomConfig> | undefined;
|
|
51
50
|
/**
|
|
52
51
|
* Helper function to get the item pool type for the current room. For example, this returns
|
|
53
52
|
* `ItemPoolType.ItemPoolType.POOL_ANGEL` if you are in an Angel Room.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rooms.d.ts","sourceRoot":"","sources":["../../../src/functions/rooms.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,YAAY,EACZ,MAAM,EACN,SAAS,EAMT,YAAY,EAEZ,UAAU,EAGV,QAAQ,EAGT,MAAM,8BAA8B,CAAC;AAkCtC;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,aAAa,EAAE,GAAG,GAAG,IAAI,CAenD;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,GAAG,CAGjC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,IAAI,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAiBlE;AAED
|
|
1
|
+
{"version":3,"file":"rooms.d.ts","sourceRoot":"","sources":["../../../src/functions/rooms.ts"],"names":[],"mappings":"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"}
|
|
@@ -167,22 +167,21 @@ end
|
|
|
167
167
|
-- @param roomType The type of room to retrieve.
|
|
168
168
|
-- @param roomVariant The room variant to retrieve. (The room variant is the "ID" of the room in
|
|
169
169
|
-- Basement Renovator.)
|
|
170
|
-
-- @param useSpecialRoomsForRoomTypeDefault Optional. Whether to use `s.default` as the prefix for
|
|
171
|
-
-- the `goto` command (instead of `d`). False by default. Set this
|
|
172
|
-
-- to true if you want to go to a special room of `RoomType.DEFAULT`
|
|
173
|
-
-- (1).
|
|
174
170
|
-- @param cancelRoomTransition Optional. Whether to cancel the room transition by using the
|
|
175
171
|
-- `Game.StartRoomTransition` method to travel to the same room. Default
|
|
176
172
|
-- is true. Set this to false if you are getting the data for many rooms
|
|
177
173
|
-- at the same time, and then use the `teleport` helper function when
|
|
178
174
|
-- you are finished.
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
175
|
+
-- @param useSpecialRoomsForRoomTypeDefault Optional. Whether to use `s.default` as the prefix for
|
|
176
|
+
-- the `goto` command (instead of `d`) if the room type is
|
|
177
|
+
-- `RoomType.DEFAULT` (1). False by default.
|
|
178
|
+
function ____exports.getRoomDataForTypeVariant(self, roomType, roomVariant, cancelRoomTransition, useSpecialRoomsForRoomTypeDefault)
|
|
183
179
|
if cancelRoomTransition == nil then
|
|
184
180
|
cancelRoomTransition = true
|
|
185
181
|
end
|
|
182
|
+
if useSpecialRoomsForRoomTypeDefault == nil then
|
|
183
|
+
useSpecialRoomsForRoomTypeDefault = false
|
|
184
|
+
end
|
|
186
185
|
local command = getGotoCommand(nil, roomType, roomVariant, useSpecialRoomsForRoomTypeDefault)
|
|
187
186
|
Isaac.ExecuteCommand(command)
|
|
188
187
|
local newRoomData = getRoomData(nil, GridRoom.DEBUG)
|
|
@@ -34,9 +34,8 @@ export declare function getEnglishLevelName(stage?: LevelStage, stageType?: Stag
|
|
|
34
34
|
* @param roomType The `RoomType` of the destination room.
|
|
35
35
|
* @param roomVariant The variant of the destination room.
|
|
36
36
|
* @param useSpecialRoomsForRoomTypeDefault Optional. Whether to use `s.default` as the prefix for
|
|
37
|
-
* the `goto` command (instead of `d`)
|
|
38
|
-
*
|
|
39
|
-
* (1).
|
|
37
|
+
* the `goto` command (instead of `d`) if the room type is
|
|
38
|
+
* `RoomType.DEFAULT` (1). False by default.
|
|
40
39
|
*/
|
|
41
40
|
export declare function getGotoCommand(roomType: RoomType, roomVariant: int, useSpecialRoomsForRoomTypeDefault?: boolean): string;
|
|
42
41
|
/** Alias for the `Level.GetStage` method. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stage.d.ts","sourceRoot":"","sources":["../../../src/functions/stage.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACV,QAAQ,EACR,OAAO,EACP,SAAS,EACV,MAAM,8BAA8B,CAAC;AAUtC;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,CA6B/D;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,CAmBzE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,UAAU,CAS9C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,CAAC,EAAE,UAAU,EAClB,SAAS,CAAC,EAAE,SAAS,GACpB,MAAM,CAaR;AAED
|
|
1
|
+
{"version":3,"file":"stage.d.ts","sourceRoot":"","sources":["../../../src/functions/stage.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACV,QAAQ,EACR,OAAO,EACP,SAAS,EACV,MAAM,8BAA8B,CAAC;AAUtC;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,CA6B/D;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,CAmBzE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,UAAU,CAS9C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,CAAC,EAAE,UAAU,EAClB,SAAS,CAAC,EAAE,SAAS,GACpB,MAAM,CAaR;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,GAAG,EAChB,iCAAiC,UAAQ,GACxC,MAAM,CAOR;AAED,6CAA6C;AAC7C,wBAAgB,QAAQ,IAAI,UAAU,CAIrC;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,OAAO,CAa7E;AAED,iDAAiD;AACjD,wBAAgB,YAAY,IAAI,SAAS,CAIxC;AAED,8FAA8F;AAC9F,wBAAgB,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI,CAIvE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAI/D;AAED,wBAAgB,QAAQ,IAAI,OAAO,CAElC;AAED,wBAAgB,WAAW,IAAI,OAAO,CASrC;AAED,wBAAgB,OAAO,IAAI,OAAO,CASjC;AAED,wBAAgB,UAAU,IAAI,OAAO,CAQpC;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAUtC;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAKtC;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAK3C;AAED,wBAAgB,OAAO,IAAI,OAAO,CAQjC;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,IAAI,OAAO,CAMrD;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CACtB,KAAK,EAAE,UAAU,EACjB,SAAS,EAAE,SAAS,EACpB,MAAM,UAAQ,GACb,IAAI,CAUN;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAE9D"}
|
|
@@ -8,8 +8,8 @@ local ____cachedClasses = require("src.core.cachedClasses")
|
|
|
8
8
|
local game = ____cachedClasses.game
|
|
9
9
|
local ____englishLevelNames = require("src.objects.englishLevelNames")
|
|
10
10
|
local ENGLISH_LEVEL_NAMES = ____englishLevelNames.ENGLISH_LEVEL_NAMES
|
|
11
|
-
local
|
|
12
|
-
local
|
|
11
|
+
local ____roomTypeSpecialGotoPrefixes = require("src.objects.roomTypeSpecialGotoPrefixes")
|
|
12
|
+
local ROOM_TYPE_SPECIAL_GOTO_PREFIXES = ____roomTypeSpecialGotoPrefixes.ROOM_TYPE_SPECIAL_GOTO_PREFIXES
|
|
13
13
|
local ____stageToStageID = require("src.objects.stageToStageID")
|
|
14
14
|
local STAGE_TO_STAGE_ID = ____stageToStageID.STAGE_TO_STAGE_ID
|
|
15
15
|
local ____stageTypeSuffixes = require("src.objects.stageTypeSuffixes")
|
|
@@ -108,14 +108,15 @@ end
|
|
|
108
108
|
-- @param roomType The `RoomType` of the destination room.
|
|
109
109
|
-- @param roomVariant The variant of the destination room.
|
|
110
110
|
-- @param useSpecialRoomsForRoomTypeDefault Optional. Whether to use `s.default` as the prefix for
|
|
111
|
-
-- the `goto` command (instead of `d`)
|
|
112
|
-
--
|
|
113
|
-
-- (1).
|
|
111
|
+
-- the `goto` command (instead of `d`) if the room type is
|
|
112
|
+
-- `RoomType.DEFAULT` (1). False by default.
|
|
114
113
|
function ____exports.getGotoCommand(self, roomType, roomVariant, useSpecialRoomsForRoomTypeDefault)
|
|
115
114
|
if useSpecialRoomsForRoomTypeDefault == nil then
|
|
116
115
|
useSpecialRoomsForRoomTypeDefault = false
|
|
117
116
|
end
|
|
118
|
-
local
|
|
117
|
+
local isNormalRoom = roomType == RoomType.DEFAULT and not useSpecialRoomsForRoomTypeDefault
|
|
118
|
+
local roomTypeSpecialGotoPrefix = ROOM_TYPE_SPECIAL_GOTO_PREFIXES[roomType]
|
|
119
|
+
local prefix = isNormalRoom and "d" or "s." .. roomTypeSpecialGotoPrefix
|
|
119
120
|
return (("goto " .. prefix) .. ".") .. tostring(roomVariant)
|
|
120
121
|
end
|
|
121
122
|
--- Alias for the `Level.GetStage` method.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export declare const ROOM_TYPE_SPECIAL_GOTO_PREFIXES: {
|
|
2
|
+
readonly 1: "default";
|
|
3
|
+
readonly 2: "shop";
|
|
4
|
+
readonly 3: "error";
|
|
5
|
+
readonly 4: "treasure";
|
|
6
|
+
readonly 5: "boss";
|
|
7
|
+
readonly 6: "miniboss";
|
|
8
|
+
readonly 7: "secret";
|
|
9
|
+
readonly 8: "supersecret";
|
|
10
|
+
readonly 9: "arcade";
|
|
11
|
+
readonly 10: "curse";
|
|
12
|
+
readonly 11: "challenge";
|
|
13
|
+
readonly 12: "library";
|
|
14
|
+
readonly 13: "sacrifice";
|
|
15
|
+
readonly 14: "devil";
|
|
16
|
+
readonly 15: "angel";
|
|
17
|
+
readonly 16: "itemdungeon";
|
|
18
|
+
readonly 17: "bossrush";
|
|
19
|
+
readonly 18: "isaacs";
|
|
20
|
+
readonly 19: "barren";
|
|
21
|
+
readonly 20: "chest";
|
|
22
|
+
readonly 21: "dice";
|
|
23
|
+
readonly 22: "blackmarket";
|
|
24
|
+
readonly 23: "greedexit";
|
|
25
|
+
readonly 24: "planetarium";
|
|
26
|
+
readonly 25: "teleporter";
|
|
27
|
+
readonly 26: "teleporterexit";
|
|
28
|
+
readonly 27: "secretexit";
|
|
29
|
+
readonly 28: "blue";
|
|
30
|
+
readonly 29: "ultrasecret";
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=roomTypeSpecialGotoPrefixes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roomTypeSpecialGotoPrefixes.d.ts","sourceRoot":"","sources":["../../../src/objects/roomTypeSpecialGotoPrefixes.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BC,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
local ____exports = {}
|
|
2
|
+
local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
|
|
3
|
+
local RoomType = ____isaac_2Dtypescript_2Ddefinitions.RoomType
|
|
4
|
+
____exports.ROOM_TYPE_SPECIAL_GOTO_PREFIXES = {
|
|
5
|
+
[RoomType.DEFAULT] = "default",
|
|
6
|
+
[RoomType.SHOP] = "shop",
|
|
7
|
+
[RoomType.ERROR] = "error",
|
|
8
|
+
[RoomType.TREASURE] = "treasure",
|
|
9
|
+
[RoomType.BOSS] = "boss",
|
|
10
|
+
[RoomType.MINI_BOSS] = "miniboss",
|
|
11
|
+
[RoomType.SECRET] = "secret",
|
|
12
|
+
[RoomType.SUPER_SECRET] = "supersecret",
|
|
13
|
+
[RoomType.ARCADE] = "arcade",
|
|
14
|
+
[RoomType.CURSE] = "curse",
|
|
15
|
+
[RoomType.CHALLENGE] = "challenge",
|
|
16
|
+
[RoomType.LIBRARY] = "library",
|
|
17
|
+
[RoomType.SACRIFICE] = "sacrifice",
|
|
18
|
+
[RoomType.DEVIL] = "devil",
|
|
19
|
+
[RoomType.ANGEL] = "angel",
|
|
20
|
+
[RoomType.DUNGEON] = "itemdungeon",
|
|
21
|
+
[RoomType.BOSS_RUSH] = "bossrush",
|
|
22
|
+
[RoomType.CLEAN_BEDROOM] = "isaacs",
|
|
23
|
+
[RoomType.DIRTY_BEDROOM] = "barren",
|
|
24
|
+
[RoomType.CHEST] = "chest",
|
|
25
|
+
[RoomType.DICE] = "dice",
|
|
26
|
+
[RoomType.BLACK_MARKET] = "blackmarket",
|
|
27
|
+
[RoomType.GREED_EXIT] = "greedexit",
|
|
28
|
+
[RoomType.PLANETARIUM] = "planetarium",
|
|
29
|
+
[RoomType.TELEPORTER] = "teleporter",
|
|
30
|
+
[RoomType.TELEPORTER_EXIT] = "teleporterexit",
|
|
31
|
+
[RoomType.SECRET_EXIT] = "secretexit",
|
|
32
|
+
[RoomType.BLUE] = "blue",
|
|
33
|
+
[RoomType.ULTRA_SECRET] = "ultrasecret"
|
|
34
|
+
}
|
|
35
|
+
return ____exports
|
package/package.json
CHANGED
|
@@ -9,7 +9,6 @@ import { sfxManager } from "../../../core/cachedClasses";
|
|
|
9
9
|
import { ISCFeature } from "../../../enums/ISCFeature";
|
|
10
10
|
import { ModCallbackCustom } from "../../../enums/ModCallbackCustom";
|
|
11
11
|
import { removeCollectibleFromItemTracker } from "../../../functions/collectibles";
|
|
12
|
-
import { removeAllFamiliars } from "../../../functions/entitiesSpecific";
|
|
13
12
|
import { log } from "../../../functions/log";
|
|
14
13
|
import { logError } from "../../../functions/logMisc";
|
|
15
14
|
import {
|
|
@@ -62,6 +61,9 @@ export class CustomRevive extends Feature {
|
|
|
62
61
|
this.callbacksUsed = [
|
|
63
62
|
// 2
|
|
64
63
|
[ModCallback.POST_RENDER, this.postRender],
|
|
64
|
+
|
|
65
|
+
// 7
|
|
66
|
+
[ModCallback.POST_FAMILIAR_INIT, this.postFamiliarInit],
|
|
65
67
|
];
|
|
66
68
|
|
|
67
69
|
this.customCallbacksUsed = [
|
|
@@ -90,6 +92,17 @@ export class CustomRevive extends Feature {
|
|
|
90
92
|
sfxManager.Stop(SoundEffect.ONE_UP);
|
|
91
93
|
};
|
|
92
94
|
|
|
95
|
+
// ModCallback.POST_FAMILIAR_INIT (7)
|
|
96
|
+
private postFamiliarInit = (familiar: EntityFamiliar): void => {
|
|
97
|
+
if (this.v.run.state !== CustomReviveState.WAITING_FOR_ROOM_TRANSITION) {
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
if (familiar.Variant === FamiliarVariant.ONE_UP) {
|
|
102
|
+
familiar.Remove();
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
|
|
93
106
|
// ModCallbackCustom.POST_NEW_ROOM_REORDERED
|
|
94
107
|
private postNewRoomReordered = (): void => {
|
|
95
108
|
if (this.v.run.state !== CustomReviveState.WAITING_FOR_ROOM_TRANSITION) {
|
|
@@ -178,7 +191,6 @@ export class CustomRevive extends Feature {
|
|
|
178
191
|
this.logStateChanged();
|
|
179
192
|
|
|
180
193
|
player.AddCollectible(CollectibleType.ONE_UP, 0, false);
|
|
181
|
-
removeAllFamiliars(FamiliarVariant.ONE_UP);
|
|
182
194
|
removeCollectibleFromItemTracker(CollectibleType.ONE_UP);
|
|
183
195
|
|
|
184
196
|
// The player should always be dead one frame from now. If they are not, then something has gone
|
|
@@ -402,8 +402,8 @@ export class CustomStages extends Feature {
|
|
|
402
402
|
newRoomData = getRoomDataForTypeVariant(
|
|
403
403
|
roomType,
|
|
404
404
|
randomRoom.variant,
|
|
405
|
-
true, // The custom stage rooms are loaded inside of the "00.special rooms.stb" file.
|
|
406
405
|
false, // Since we are going to multiple rooms, we cancel the transition.
|
|
406
|
+
true, // The custom stage rooms are loaded inside of the "00.special rooms.stb" file.
|
|
407
407
|
);
|
|
408
408
|
if (newRoomData === undefined) {
|
|
409
409
|
logError(
|
package/src/functions/rooms.ts
CHANGED
|
@@ -126,21 +126,20 @@ export function getReadOnlyRooms(): Array<Readonly<RoomDescriptor>> {
|
|
|
126
126
|
* @param roomType The type of room to retrieve.
|
|
127
127
|
* @param roomVariant The room variant to retrieve. (The room variant is the "ID" of the room in
|
|
128
128
|
* Basement Renovator.)
|
|
129
|
-
* @param useSpecialRoomsForRoomTypeDefault Optional. Whether to use `s.default` as the prefix for
|
|
130
|
-
* the `goto` command (instead of `d`). False by default. Set this
|
|
131
|
-
* to true if you want to go to a special room of `RoomType.DEFAULT`
|
|
132
|
-
* (1).
|
|
133
129
|
* @param cancelRoomTransition Optional. Whether to cancel the room transition by using the
|
|
134
130
|
* `Game.StartRoomTransition` method to travel to the same room. Default
|
|
135
131
|
* is true. Set this to false if you are getting the data for many rooms
|
|
136
132
|
* at the same time, and then use the `teleport` helper function when
|
|
137
133
|
* you are finished.
|
|
134
|
+
* @param useSpecialRoomsForRoomTypeDefault Optional. Whether to use `s.default` as the prefix for
|
|
135
|
+
* the `goto` command (instead of `d`) if the room type is
|
|
136
|
+
* `RoomType.DEFAULT` (1). False by default.
|
|
138
137
|
*/
|
|
139
138
|
export function getRoomDataForTypeVariant(
|
|
140
139
|
roomType: RoomType,
|
|
141
140
|
roomVariant: int,
|
|
142
|
-
useSpecialRoomsForRoomTypeDefault = false,
|
|
143
141
|
cancelRoomTransition = true,
|
|
142
|
+
useSpecialRoomsForRoomTypeDefault = false,
|
|
144
143
|
): Readonly<RoomConfig> | undefined {
|
|
145
144
|
const command = getGotoCommand(
|
|
146
145
|
roomType,
|
package/src/functions/stage.ts
CHANGED
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
} from "isaac-typescript-definitions";
|
|
8
8
|
import { game } from "../core/cachedClasses";
|
|
9
9
|
import { ENGLISH_LEVEL_NAMES } from "../objects/englishLevelNames";
|
|
10
|
-
import {
|
|
10
|
+
import { ROOM_TYPE_SPECIAL_GOTO_PREFIXES } from "../objects/roomTypeSpecialGotoPrefixes";
|
|
11
11
|
import { STAGE_TO_STAGE_ID } from "../objects/stageToStageID";
|
|
12
12
|
import { STAGE_TYPE_SUFFIXES } from "../objects/stageTypeSuffixes";
|
|
13
13
|
import { STAGE_TYPE_TO_LETTER } from "../objects/stageTypeToLetter";
|
|
@@ -126,19 +126,18 @@ export function getEnglishLevelName(
|
|
|
126
126
|
* @param roomType The `RoomType` of the destination room.
|
|
127
127
|
* @param roomVariant The variant of the destination room.
|
|
128
128
|
* @param useSpecialRoomsForRoomTypeDefault Optional. Whether to use `s.default` as the prefix for
|
|
129
|
-
* the `goto` command (instead of `d`)
|
|
130
|
-
*
|
|
131
|
-
* (1).
|
|
129
|
+
* the `goto` command (instead of `d`) if the room type is
|
|
130
|
+
* `RoomType.DEFAULT` (1). False by default.
|
|
132
131
|
*/
|
|
133
132
|
export function getGotoCommand(
|
|
134
133
|
roomType: RoomType,
|
|
135
134
|
roomVariant: int,
|
|
136
135
|
useSpecialRoomsForRoomTypeDefault = false,
|
|
137
136
|
): string {
|
|
138
|
-
const
|
|
139
|
-
roomType === RoomType.DEFAULT && useSpecialRoomsForRoomTypeDefault
|
|
140
|
-
|
|
141
|
-
|
|
137
|
+
const isNormalRoom =
|
|
138
|
+
roomType === RoomType.DEFAULT && !useSpecialRoomsForRoomTypeDefault;
|
|
139
|
+
const roomTypeSpecialGotoPrefix = ROOM_TYPE_SPECIAL_GOTO_PREFIXES[roomType];
|
|
140
|
+
const prefix = isNormalRoom ? `d` : `s.${roomTypeSpecialGotoPrefix}`;
|
|
142
141
|
|
|
143
142
|
return `goto ${prefix}.${roomVariant}`;
|
|
144
143
|
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { RoomType } from "isaac-typescript-definitions";
|
|
2
|
+
|
|
3
|
+
export const ROOM_TYPE_SPECIAL_GOTO_PREFIXES = {
|
|
4
|
+
[RoomType.DEFAULT]: "default", // 1
|
|
5
|
+
[RoomType.SHOP]: "shop", // 2
|
|
6
|
+
[RoomType.ERROR]: "error", // 3
|
|
7
|
+
[RoomType.TREASURE]: "treasure", // 4
|
|
8
|
+
[RoomType.BOSS]: "boss", // 5
|
|
9
|
+
[RoomType.MINI_BOSS]: "miniboss", // 6
|
|
10
|
+
[RoomType.SECRET]: "secret", // 7
|
|
11
|
+
[RoomType.SUPER_SECRET]: "supersecret", // 8
|
|
12
|
+
[RoomType.ARCADE]: "arcade", // 9
|
|
13
|
+
[RoomType.CURSE]: "curse", // 10
|
|
14
|
+
[RoomType.CHALLENGE]: "challenge", // 11
|
|
15
|
+
[RoomType.LIBRARY]: "library", // 12
|
|
16
|
+
[RoomType.SACRIFICE]: "sacrifice", // 13
|
|
17
|
+
[RoomType.DEVIL]: "devil", // 14
|
|
18
|
+
[RoomType.ANGEL]: "angel", // 15
|
|
19
|
+
[RoomType.DUNGEON]: "itemdungeon", // 16
|
|
20
|
+
[RoomType.BOSS_RUSH]: "bossrush", // 17
|
|
21
|
+
[RoomType.CLEAN_BEDROOM]: "isaacs", // 18
|
|
22
|
+
[RoomType.DIRTY_BEDROOM]: "barren", // 19
|
|
23
|
+
[RoomType.CHEST]: "chest", // 20
|
|
24
|
+
[RoomType.DICE]: "dice", // 21
|
|
25
|
+
[RoomType.BLACK_MARKET]: "blackmarket", // 22
|
|
26
|
+
[RoomType.GREED_EXIT]: "greedexit", // 23
|
|
27
|
+
[RoomType.PLANETARIUM]: "planetarium", // 24
|
|
28
|
+
[RoomType.TELEPORTER]: "teleporter", // 25
|
|
29
|
+
[RoomType.TELEPORTER_EXIT]: "teleporterexit", // 26
|
|
30
|
+
[RoomType.SECRET_EXIT]: "secretexit", // 27
|
|
31
|
+
[RoomType.BLUE]: "blue", // 28
|
|
32
|
+
[RoomType.ULTRA_SECRET]: "ultrasecret", // 29
|
|
33
|
+
} as const satisfies Record<RoomType, string>;
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
export declare const ROOM_TYPE_GOTO_PREFIXES: {
|
|
2
|
-
readonly 1: "d";
|
|
3
|
-
readonly 2: "s.shop";
|
|
4
|
-
readonly 3: "s.error";
|
|
5
|
-
readonly 4: "s.treasure";
|
|
6
|
-
readonly 5: "s.boss";
|
|
7
|
-
readonly 6: "s.miniboss";
|
|
8
|
-
readonly 7: "s.secret";
|
|
9
|
-
readonly 8: "s.supersecret";
|
|
10
|
-
readonly 9: "s.arcade";
|
|
11
|
-
readonly 10: "s.curse";
|
|
12
|
-
readonly 11: "s.challenge";
|
|
13
|
-
readonly 12: "s.library";
|
|
14
|
-
readonly 13: "s.sacrifice";
|
|
15
|
-
readonly 14: "s.devil";
|
|
16
|
-
readonly 15: "s.angel";
|
|
17
|
-
readonly 16: "s.itemdungeon";
|
|
18
|
-
readonly 17: "s.bossrush";
|
|
19
|
-
readonly 18: "s.isaacs";
|
|
20
|
-
readonly 19: "s.barren";
|
|
21
|
-
readonly 20: "s.chest";
|
|
22
|
-
readonly 21: "s.dice";
|
|
23
|
-
readonly 22: "s.blackmarket";
|
|
24
|
-
readonly 23: "s.greedexit";
|
|
25
|
-
readonly 24: "s.planetarium";
|
|
26
|
-
readonly 25: "s.teleporter";
|
|
27
|
-
readonly 26: "s.teleporterexit";
|
|
28
|
-
readonly 27: "s.secretexit";
|
|
29
|
-
readonly 28: "s.blue";
|
|
30
|
-
readonly 29: "s.ultrasecret";
|
|
31
|
-
};
|
|
32
|
-
//# sourceMappingURL=roomTypeGotoPrefixes.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"roomTypeGotoPrefixes.d.ts","sourceRoot":"","sources":["../../../src/objects/roomTypeGotoPrefixes.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BS,CAAC"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
local ____exports = {}
|
|
2
|
-
local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
|
|
3
|
-
local RoomType = ____isaac_2Dtypescript_2Ddefinitions.RoomType
|
|
4
|
-
____exports.ROOM_TYPE_GOTO_PREFIXES = {
|
|
5
|
-
[RoomType.DEFAULT] = "d",
|
|
6
|
-
[RoomType.SHOP] = "s.shop",
|
|
7
|
-
[RoomType.ERROR] = "s.error",
|
|
8
|
-
[RoomType.TREASURE] = "s.treasure",
|
|
9
|
-
[RoomType.BOSS] = "s.boss",
|
|
10
|
-
[RoomType.MINI_BOSS] = "s.miniboss",
|
|
11
|
-
[RoomType.SECRET] = "s.secret",
|
|
12
|
-
[RoomType.SUPER_SECRET] = "s.supersecret",
|
|
13
|
-
[RoomType.ARCADE] = "s.arcade",
|
|
14
|
-
[RoomType.CURSE] = "s.curse",
|
|
15
|
-
[RoomType.CHALLENGE] = "s.challenge",
|
|
16
|
-
[RoomType.LIBRARY] = "s.library",
|
|
17
|
-
[RoomType.SACRIFICE] = "s.sacrifice",
|
|
18
|
-
[RoomType.DEVIL] = "s.devil",
|
|
19
|
-
[RoomType.ANGEL] = "s.angel",
|
|
20
|
-
[RoomType.DUNGEON] = "s.itemdungeon",
|
|
21
|
-
[RoomType.BOSS_RUSH] = "s.bossrush",
|
|
22
|
-
[RoomType.CLEAN_BEDROOM] = "s.isaacs",
|
|
23
|
-
[RoomType.DIRTY_BEDROOM] = "s.barren",
|
|
24
|
-
[RoomType.CHEST] = "s.chest",
|
|
25
|
-
[RoomType.DICE] = "s.dice",
|
|
26
|
-
[RoomType.BLACK_MARKET] = "s.blackmarket",
|
|
27
|
-
[RoomType.GREED_EXIT] = "s.greedexit",
|
|
28
|
-
[RoomType.PLANETARIUM] = "s.planetarium",
|
|
29
|
-
[RoomType.TELEPORTER] = "s.teleporter",
|
|
30
|
-
[RoomType.TELEPORTER_EXIT] = "s.teleporterexit",
|
|
31
|
-
[RoomType.SECRET_EXIT] = "s.secretexit",
|
|
32
|
-
[RoomType.BLUE] = "s.blue",
|
|
33
|
-
[RoomType.ULTRA_SECRET] = "s.ultrasecret"
|
|
34
|
-
}
|
|
35
|
-
return ____exports
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { RoomType } from "isaac-typescript-definitions";
|
|
2
|
-
|
|
3
|
-
export const ROOM_TYPE_GOTO_PREFIXES = {
|
|
4
|
-
[RoomType.DEFAULT]: "d", // 1
|
|
5
|
-
[RoomType.SHOP]: "s.shop", // 2
|
|
6
|
-
[RoomType.ERROR]: "s.error", // 3
|
|
7
|
-
[RoomType.TREASURE]: "s.treasure", // 4
|
|
8
|
-
[RoomType.BOSS]: "s.boss", // 5
|
|
9
|
-
[RoomType.MINI_BOSS]: "s.miniboss", // 6
|
|
10
|
-
[RoomType.SECRET]: "s.secret", // 7
|
|
11
|
-
[RoomType.SUPER_SECRET]: "s.supersecret", // 8
|
|
12
|
-
[RoomType.ARCADE]: "s.arcade", // 9
|
|
13
|
-
[RoomType.CURSE]: "s.curse", // 10
|
|
14
|
-
[RoomType.CHALLENGE]: "s.challenge", // 11
|
|
15
|
-
[RoomType.LIBRARY]: "s.library", // 12
|
|
16
|
-
[RoomType.SACRIFICE]: "s.sacrifice", // 13
|
|
17
|
-
[RoomType.DEVIL]: "s.devil", // 14
|
|
18
|
-
[RoomType.ANGEL]: "s.angel", // 15
|
|
19
|
-
[RoomType.DUNGEON]: "s.itemdungeon", // 16
|
|
20
|
-
[RoomType.BOSS_RUSH]: "s.bossrush", // 17
|
|
21
|
-
[RoomType.CLEAN_BEDROOM]: "s.isaacs", // 18
|
|
22
|
-
[RoomType.DIRTY_BEDROOM]: "s.barren", // 19
|
|
23
|
-
[RoomType.CHEST]: "s.chest", // 20
|
|
24
|
-
[RoomType.DICE]: "s.dice", // 21
|
|
25
|
-
[RoomType.BLACK_MARKET]: "s.blackmarket", // 22
|
|
26
|
-
[RoomType.GREED_EXIT]: "s.greedexit", // 23
|
|
27
|
-
[RoomType.PLANETARIUM]: "s.planetarium", // 24
|
|
28
|
-
[RoomType.TELEPORTER]: "s.teleporter", // 25
|
|
29
|
-
[RoomType.TELEPORTER_EXIT]: "s.teleporterexit", // 26
|
|
30
|
-
[RoomType.SECRET_EXIT]: "s.secretexit", // 27
|
|
31
|
-
[RoomType.BLUE]: "s.blue", // 28
|
|
32
|
-
[RoomType.ULTRA_SECRET]: "s.ultrasecret", // 29
|
|
33
|
-
} as const satisfies Record<RoomType, string>;
|