isaacscript-common 20.11.4 → 20.11.5
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.d.ts +1 -1
- package/dist/isaacscript-common.lua +16 -13
- package/dist/src/classes/features/other/CustomStages.d.ts.map +1 -1
- package/dist/src/classes/features/other/CustomStages.lua +13 -10
- package/dist/src/classes/features/other/CustomTrapdoors.d.ts +1 -1
- package/dist/src/classes/features/other/CustomTrapdoors.d.ts.map +1 -1
- package/dist/src/classes/features/other/CustomTrapdoors.lua +2 -2
- package/package.json +1 -1
- package/src/classes/features/other/CustomStages.ts +8 -1
- package/src/classes/features/other/CustomTrapdoors.ts +13 -2
package/dist/index.d.ts
CHANGED
|
@@ -2514,7 +2514,7 @@ declare class CustomTrapdoors extends Feature {
|
|
|
2514
2514
|
* Inside this function, use the `setStage` or `setCustomStage` helper
|
|
2515
2515
|
* functions, or do something completely custom.
|
|
2516
2516
|
*/
|
|
2517
|
-
registerCustomTrapdoorDestination(destinationName: string, destinationFunc: (destinationStage: LevelStage, destinationStageType: StageType) => void): void;
|
|
2517
|
+
registerCustomTrapdoorDestination(destinationName: string, destinationFunc: (destinationName: string | undefined, destinationStage: LevelStage, destinationStageType: StageType) => void): void;
|
|
2518
2518
|
/**
|
|
2519
2519
|
* Helper function to spawn a trapdoor grid entity that will take a player to a vanilla stage or
|
|
2520
2520
|
* custom location.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
--[[
|
|
2
2
|
|
|
3
|
-
isaacscript-common 20.11.
|
|
3
|
+
isaacscript-common 20.11.5
|
|
4
4
|
|
|
5
5
|
This is the "isaacscript-common" library, which was created with the IsaacScript tool.
|
|
6
6
|
|
|
@@ -39271,7 +39271,7 @@ function dropTaintedForgotten(self, player)
|
|
|
39271
39271
|
end
|
|
39272
39272
|
end
|
|
39273
39273
|
end
|
|
39274
|
-
function goToVanillaStage(self, destinationStage, destinationStageType)
|
|
39274
|
+
function goToVanillaStage(self, _destinationName, destinationStage, destinationStageType)
|
|
39275
39275
|
setStage(nil, destinationStage, destinationStageType)
|
|
39276
39276
|
end
|
|
39277
39277
|
local DEBUG = false
|
|
@@ -39386,7 +39386,7 @@ function CustomTrapdoors.prototype.goToCustomTrapdoorDestination(self)
|
|
|
39386
39386
|
}
|
|
39387
39387
|
end
|
|
39388
39388
|
local destinationFunc = self:getDestinationFunc(self.v.run.customTrapdoorActivated)
|
|
39389
|
-
destinationFunc(nil, self.v.run.customTrapdoorActivated.destinationStage, self.v.run.customTrapdoorActivated.destinationStageType)
|
|
39389
|
+
destinationFunc(nil, self.v.run.customTrapdoorActivated.destinationName, self.v.run.customTrapdoorActivated.destinationStage, self.v.run.customTrapdoorActivated.destinationStageType)
|
|
39390
39390
|
end
|
|
39391
39391
|
function CustomTrapdoors.prototype.getDestinationFunc(self, customTrapdoorDescription)
|
|
39392
39392
|
if customTrapdoorDescription.destinationName == nil then
|
|
@@ -42280,9 +42280,12 @@ function CustomStages.prototype.____constructor(self, customGridEntities, custom
|
|
|
42280
42280
|
}}
|
|
42281
42281
|
self.customStagesMap = __TS__New(Map)
|
|
42282
42282
|
self.customStageCachedRoomData = __TS__New(Map)
|
|
42283
|
-
self.goToCustomStage = function(____, destinationStage, _destinationStageType)
|
|
42283
|
+
self.goToCustomStage = function(____, destinationName, destinationStage, _destinationStageType)
|
|
42284
|
+
if destinationName == nil then
|
|
42285
|
+
error("Failed to go to a custom stage since the custom trapdoors feature did not pass a destination name to the logic function.")
|
|
42286
|
+
end
|
|
42284
42287
|
local firstFloor = destinationStage == LevelStage.BASEMENT_1
|
|
42285
|
-
self:setCustomStage(
|
|
42288
|
+
self:setCustomStage(destinationName, firstFloor)
|
|
42286
42289
|
end
|
|
42287
42290
|
self.postRender = function()
|
|
42288
42291
|
local customStage = self.v.run.currentCustomStage
|
|
@@ -42398,10 +42401,10 @@ function CustomStages.prototype.setStageRoomsData(self, customStage, rng, verbos
|
|
|
42398
42401
|
for ____, room in ipairs(getRoomsInsideGrid(nil)) do
|
|
42399
42402
|
do
|
|
42400
42403
|
if room.SafeGridIndex == startingRoomGridIndex then
|
|
42401
|
-
goto
|
|
42404
|
+
goto __continue27
|
|
42402
42405
|
end
|
|
42403
42406
|
if room.Data == nil then
|
|
42404
|
-
goto
|
|
42407
|
+
goto __continue27
|
|
42405
42408
|
end
|
|
42406
42409
|
local roomType = room.Data.Type
|
|
42407
42410
|
local roomShapeMap = customStage.roomTypeMap:get(roomType)
|
|
@@ -42412,7 +42415,7 @@ function CustomStages.prototype.setStageRoomsData(self, customStage, rng, verbos
|
|
|
42412
42415
|
(((("Failed to find any custom rooms for RoomType." .. RoomType[roomType]) .. " (") .. tostring(roomType)) .. ") for custom stage: ") .. customStage.name
|
|
42413
42416
|
)
|
|
42414
42417
|
end
|
|
42415
|
-
goto
|
|
42418
|
+
goto __continue27
|
|
42416
42419
|
end
|
|
42417
42420
|
local roomShape = room.Data.Shape
|
|
42418
42421
|
local roomDoorSlotFlagMap = roomShapeMap:get(roomShape)
|
|
@@ -42421,7 +42424,7 @@ function CustomStages.prototype.setStageRoomsData(self, customStage, rng, verbos
|
|
|
42421
42424
|
nil,
|
|
42422
42425
|
(((((((("Failed to find any custom rooms for RoomType." .. RoomType[roomType]) .. " (") .. tostring(roomType)) .. ") + RoomShape.") .. RoomShape[roomShape]) .. " (") .. tostring(roomShape)) .. ") for custom stage: ") .. customStage.name
|
|
42423
42426
|
)
|
|
42424
|
-
goto
|
|
42427
|
+
goto __continue27
|
|
42425
42428
|
end
|
|
42426
42429
|
local doorSlotFlags = room.Data.Doors
|
|
42427
42430
|
local roomsMetadata = roomDoorSlotFlagMap:get(doorSlotFlags)
|
|
@@ -42434,13 +42437,13 @@ function CustomStages.prototype.setStageRoomsData(self, customStage, rng, verbos
|
|
|
42434
42437
|
nil,
|
|
42435
42438
|
(((((((("Failed to find any custom rooms for RoomType." .. RoomType[roomType]) .. " (") .. tostring(roomType)) .. ") + RoomShape.") .. RoomShape[roomShape]) .. " (") .. tostring(roomShape)) .. ") + all doors enabled for custom stage: ") .. customStage.name
|
|
42436
42439
|
)
|
|
42437
|
-
goto
|
|
42440
|
+
goto __continue27
|
|
42438
42441
|
end
|
|
42439
42442
|
end
|
|
42440
42443
|
local randomRoom
|
|
42441
42444
|
if roomType == RoomType.BOSS then
|
|
42442
42445
|
if customStage.bossPool == nil then
|
|
42443
|
-
goto
|
|
42446
|
+
goto __continue27
|
|
42444
42447
|
end
|
|
42445
42448
|
randomRoom = getRandomBossRoomFromPool(
|
|
42446
42449
|
nil,
|
|
@@ -42460,13 +42463,13 @@ function CustomStages.prototype.setStageRoomsData(self, customStage, rng, verbos
|
|
|
42460
42463
|
nil,
|
|
42461
42464
|
(("Failed to get the room data for room variant " .. tostring(randomRoom.variant)) .. " for custom stage: ") .. customStage.name
|
|
42462
42465
|
)
|
|
42463
|
-
goto
|
|
42466
|
+
goto __continue27
|
|
42464
42467
|
end
|
|
42465
42468
|
self.customStageCachedRoomData:set(randomRoom.variant, newRoomData)
|
|
42466
42469
|
end
|
|
42467
42470
|
room.Data = newRoomData
|
|
42468
42471
|
end
|
|
42469
|
-
::
|
|
42472
|
+
::__continue27::
|
|
42470
42473
|
end
|
|
42471
42474
|
end
|
|
42472
42475
|
function CustomStages.prototype.setCustomStage(self, name, firstFloor, streakText, verbose)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomStages.d.ts","sourceRoot":"","sources":["../../../../../src/classes/features/other/CustomStages.ts"],"names":[],"mappings":"AAwCA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAoChD,qBAAa,YAAa,SAAQ,OAAO;IA8BvC,oCAAoC;IACpC,OAAO,CAAC,eAAe,CAAkC;IAEzD,+BAA+B;IAC/B,OAAO,CAAC,yBAAyB,CAAwC;IAEzE,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,sBAAsB,CAAyB;IACvD,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,YAAY,CAAe;IAqDnC,OAAO,CAAC,uBAAuB;IAc/B,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,6BAA6B;IAOrC,OAAO,CAAC,eAAe,
|
|
1
|
+
{"version":3,"file":"CustomStages.d.ts","sourceRoot":"","sources":["../../../../../src/classes/features/other/CustomStages.ts"],"names":[],"mappings":"AAwCA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAoChD,qBAAa,YAAa,SAAQ,OAAO;IA8BvC,oCAAoC;IACpC,OAAO,CAAC,eAAe,CAAkC;IAEzD,+BAA+B;IAC/B,OAAO,CAAC,yBAAyB,CAAwC;IAEzE,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,sBAAsB,CAAyB;IACvD,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,YAAY,CAAe;IAqDnC,OAAO,CAAC,uBAAuB;IAc/B,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,6BAA6B;IAOrC,OAAO,CAAC,eAAe,CAarB;IAGF,OAAO,CAAC,UAAU,CAQhB;IAGF,OAAO,CAAC,aAAa,CAcnB;IAGF,OAAO,CAAC,eAAe,CAUrB;IAIF,OAAO,CAAC,2BAA2B,CAejC;IAGF,OAAO,CAAC,kBAAkB,CAqBxB;IAGF,OAAO,CAAC,oBAAoB,CAe1B;IAEF,gDAAgD;IAChD,OAAO,CAAC,iBAAiB;IA+FzB;;;;;;;;;;;;;;;;OAgBG;IAEI,cAAc,CACnB,IAAI,EAAE,MAAM,EACZ,UAAU,UAAO,EACjB,UAAU,UAAO,EACjB,OAAO,UAAQ,GACd,IAAI;IAoEP;;;;;OAKG;IAEI,kBAAkB,IAAI,IAAI;CAGlC"}
|
|
@@ -116,9 +116,12 @@ function CustomStages.prototype.____constructor(self, customGridEntities, custom
|
|
|
116
116
|
}}
|
|
117
117
|
self.customStagesMap = __TS__New(Map)
|
|
118
118
|
self.customStageCachedRoomData = __TS__New(Map)
|
|
119
|
-
self.goToCustomStage = function(____, destinationStage, _destinationStageType)
|
|
119
|
+
self.goToCustomStage = function(____, destinationName, destinationStage, _destinationStageType)
|
|
120
|
+
if destinationName == nil then
|
|
121
|
+
error("Failed to go to a custom stage since the custom trapdoors feature did not pass a destination name to the logic function.")
|
|
122
|
+
end
|
|
120
123
|
local firstFloor = destinationStage == LevelStage.BASEMENT_1
|
|
121
|
-
self:setCustomStage(
|
|
124
|
+
self:setCustomStage(destinationName, firstFloor)
|
|
122
125
|
end
|
|
123
126
|
self.postRender = function()
|
|
124
127
|
local customStage = self.v.run.currentCustomStage
|
|
@@ -234,10 +237,10 @@ function CustomStages.prototype.setStageRoomsData(self, customStage, rng, verbos
|
|
|
234
237
|
for ____, room in ipairs(getRoomsInsideGrid(nil)) do
|
|
235
238
|
do
|
|
236
239
|
if room.SafeGridIndex == startingRoomGridIndex then
|
|
237
|
-
goto
|
|
240
|
+
goto __continue27
|
|
238
241
|
end
|
|
239
242
|
if room.Data == nil then
|
|
240
|
-
goto
|
|
243
|
+
goto __continue27
|
|
241
244
|
end
|
|
242
245
|
local roomType = room.Data.Type
|
|
243
246
|
local roomShapeMap = customStage.roomTypeMap:get(roomType)
|
|
@@ -248,7 +251,7 @@ function CustomStages.prototype.setStageRoomsData(self, customStage, rng, verbos
|
|
|
248
251
|
(((("Failed to find any custom rooms for RoomType." .. RoomType[roomType]) .. " (") .. tostring(roomType)) .. ") for custom stage: ") .. customStage.name
|
|
249
252
|
)
|
|
250
253
|
end
|
|
251
|
-
goto
|
|
254
|
+
goto __continue27
|
|
252
255
|
end
|
|
253
256
|
local roomShape = room.Data.Shape
|
|
254
257
|
local roomDoorSlotFlagMap = roomShapeMap:get(roomShape)
|
|
@@ -257,7 +260,7 @@ function CustomStages.prototype.setStageRoomsData(self, customStage, rng, verbos
|
|
|
257
260
|
nil,
|
|
258
261
|
(((((((("Failed to find any custom rooms for RoomType." .. RoomType[roomType]) .. " (") .. tostring(roomType)) .. ") + RoomShape.") .. RoomShape[roomShape]) .. " (") .. tostring(roomShape)) .. ") for custom stage: ") .. customStage.name
|
|
259
262
|
)
|
|
260
|
-
goto
|
|
263
|
+
goto __continue27
|
|
261
264
|
end
|
|
262
265
|
local doorSlotFlags = room.Data.Doors
|
|
263
266
|
local roomsMetadata = roomDoorSlotFlagMap:get(doorSlotFlags)
|
|
@@ -270,13 +273,13 @@ function CustomStages.prototype.setStageRoomsData(self, customStage, rng, verbos
|
|
|
270
273
|
nil,
|
|
271
274
|
(((((((("Failed to find any custom rooms for RoomType." .. RoomType[roomType]) .. " (") .. tostring(roomType)) .. ") + RoomShape.") .. RoomShape[roomShape]) .. " (") .. tostring(roomShape)) .. ") + all doors enabled for custom stage: ") .. customStage.name
|
|
272
275
|
)
|
|
273
|
-
goto
|
|
276
|
+
goto __continue27
|
|
274
277
|
end
|
|
275
278
|
end
|
|
276
279
|
local randomRoom
|
|
277
280
|
if roomType == RoomType.BOSS then
|
|
278
281
|
if customStage.bossPool == nil then
|
|
279
|
-
goto
|
|
282
|
+
goto __continue27
|
|
280
283
|
end
|
|
281
284
|
randomRoom = getRandomBossRoomFromPool(
|
|
282
285
|
nil,
|
|
@@ -296,13 +299,13 @@ function CustomStages.prototype.setStageRoomsData(self, customStage, rng, verbos
|
|
|
296
299
|
nil,
|
|
297
300
|
(("Failed to get the room data for room variant " .. tostring(randomRoom.variant)) .. " for custom stage: ") .. customStage.name
|
|
298
301
|
)
|
|
299
|
-
goto
|
|
302
|
+
goto __continue27
|
|
300
303
|
end
|
|
301
304
|
self.customStageCachedRoomData:set(randomRoom.variant, newRoomData)
|
|
302
305
|
end
|
|
303
306
|
room.Data = newRoomData
|
|
304
307
|
end
|
|
305
|
-
::
|
|
308
|
+
::__continue27::
|
|
306
309
|
end
|
|
307
310
|
end
|
|
308
311
|
function CustomStages.prototype.setCustomStage(self, name, firstFloor, streakText, verbose)
|
|
@@ -56,7 +56,7 @@ export declare class CustomTrapdoors extends Feature {
|
|
|
56
56
|
* Inside this function, use the `setStage` or `setCustomStage` helper
|
|
57
57
|
* functions, or do something completely custom.
|
|
58
58
|
*/
|
|
59
|
-
registerCustomTrapdoorDestination(destinationName: string, destinationFunc: (destinationStage: LevelStage, destinationStageType: StageType) => void): void;
|
|
59
|
+
registerCustomTrapdoorDestination(destinationName: string, destinationFunc: (destinationName: string | undefined, destinationStage: LevelStage, destinationStageType: StageType) => void): void;
|
|
60
60
|
/**
|
|
61
61
|
* Helper function to spawn a trapdoor grid entity that will take a player to a vanilla stage or
|
|
62
62
|
* custom location.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomTrapdoors.d.ts","sourceRoot":"","sources":["../../../../../src/classes/features/other/CustomTrapdoors.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,UAAU,EAKV,SAAS,EACV,MAAM,8BAA8B,CAAC;AA6BtC,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AA+BhD,qBAAa,eAAgB,SAAQ,OAAO;IAC1C,qCAAqC;IACrC,OAAO,CAAC,kBAAkB,
|
|
1
|
+
{"version":3,"file":"CustomTrapdoors.d.ts","sourceRoot":"","sources":["../../../../../src/classes/features/other/CustomTrapdoors.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,UAAU,EAKV,SAAS,EACV,MAAM,8BAA8B,CAAC;AA6BtC,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AA+BhD,qBAAa,eAAgB,SAAQ,OAAO;IAC1C,qCAAqC;IACrC,OAAO,CAAC,kBAAkB,CAOtB;IAqBJ;;;;;OAKG;IACH,OAAO,CAAC,WAAW,CAAY;IAE/B,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,YAAY,CAAe;IAmDnC,OAAO,CAAC,UAAU,CAMhB;IAEF,OAAO,CAAC,2BAA2B;IA+BnC,OAAO,CAAC,8BAA8B;IAmDtC,OAAO,CAAC,6BAA6B;IAsBrC,OAAO,CAAC,kBAAkB;IAqB1B,OAAO,CAAC,4BAA4B;IAyCpC,OAAO,CAAC,iCAAiC;IAsBzC,OAAO,CAAC,eAAe;IAqBvB,OAAO,CAAC,kCAAkC,CAaxC;IAEF,OAAO,CAAC,4BAA4B;IAcpC,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,sBAAsB;IAmB9B,OAAO,CAAC,gCAAgC;IAuCxC,OAAO,CAAC,2BAA2B;IAqCnC,OAAO,CAAC,gBAAgB;IAoBxB,OAAO,CAAC,8BAA8B;IAmDtC,OAAO,CAAC,0BAA0B,CAEhC;IAEF,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,uBAAuB;IA4B/B,OAAO,CAAC,eAAe;IAUvB;;;;;;;;;;;;;;;;;;OAkBG;IAEI,iCAAiC,CACtC,eAAe,EAAE,MAAM,EACvB,eAAe,EAAE,CACf,eAAe,EAAE,MAAM,GAAG,SAAS,EACnC,gBAAgB,EAAE,UAAU,EAC5B,oBAAoB,EAAE,SAAS,KAC5B,IAAI,GACR,IAAI;IAUP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IAEI,mBAAmB,CACxB,mBAAmB,EAAE,GAAG,GAAG,MAAM,EACjC,eAAe,CAAC,EAAE,MAAM,EACxB,gBAAgB,CAAC,EAAE,UAAU,EAC7B,oBAAoB,CAAC,EAAE,SAAS,EAChC,QAAQ,SAAmC,EAC3C,SAAS,CAAC,EAAE,OAAO,GAClB,UAAU;CA0Dd"}
|
|
@@ -105,7 +105,7 @@ function dropTaintedForgotten(self, player)
|
|
|
105
105
|
end
|
|
106
106
|
end
|
|
107
107
|
end
|
|
108
|
-
function goToVanillaStage(self, destinationStage, destinationStageType)
|
|
108
|
+
function goToVanillaStage(self, _destinationName, destinationStage, destinationStageType)
|
|
109
109
|
setStage(nil, destinationStage, destinationStageType)
|
|
110
110
|
end
|
|
111
111
|
local DEBUG = false
|
|
@@ -221,7 +221,7 @@ function CustomTrapdoors.prototype.goToCustomTrapdoorDestination(self)
|
|
|
221
221
|
}
|
|
222
222
|
end
|
|
223
223
|
local destinationFunc = self:getDestinationFunc(self.v.run.customTrapdoorActivated)
|
|
224
|
-
destinationFunc(nil, self.v.run.customTrapdoorActivated.destinationStage, self.v.run.customTrapdoorActivated.destinationStageType)
|
|
224
|
+
destinationFunc(nil, self.v.run.customTrapdoorActivated.destinationName, self.v.run.customTrapdoorActivated.destinationStage, self.v.run.customTrapdoorActivated.destinationStageType)
|
|
225
225
|
end
|
|
226
226
|
function CustomTrapdoors.prototype.getDestinationFunc(self, customTrapdoorDescription)
|
|
227
227
|
if customTrapdoorDescription.destinationName == nil then
|
package/package.json
CHANGED
|
@@ -199,11 +199,18 @@ export class CustomStages extends Feature {
|
|
|
199
199
|
}
|
|
200
200
|
|
|
201
201
|
private goToCustomStage = (
|
|
202
|
+
destinationName: string | undefined,
|
|
202
203
|
destinationStage: LevelStage,
|
|
203
204
|
_destinationStageType: StageType,
|
|
204
205
|
) => {
|
|
206
|
+
if (destinationName === undefined) {
|
|
207
|
+
error(
|
|
208
|
+
"Failed to go to a custom stage since the custom trapdoors feature did not pass a destination name to the logic function.",
|
|
209
|
+
);
|
|
210
|
+
}
|
|
211
|
+
|
|
205
212
|
const firstFloor = destinationStage === LevelStage.BASEMENT_1;
|
|
206
|
-
this.setCustomStage(
|
|
213
|
+
this.setCustomStage(destinationName, firstFloor);
|
|
207
214
|
};
|
|
208
215
|
|
|
209
216
|
// ModCallback.POST_RENDER (2)
|
|
@@ -75,7 +75,11 @@ export class CustomTrapdoors extends Feature {
|
|
|
75
75
|
/** Indexed by custom trapdoor ID. */
|
|
76
76
|
private destinationFuncMap = new Map<
|
|
77
77
|
string,
|
|
78
|
-
(
|
|
78
|
+
(
|
|
79
|
+
destinationName: string | undefined,
|
|
80
|
+
destinationStage: LevelStage,
|
|
81
|
+
destinationStageType: StageType,
|
|
82
|
+
) => void
|
|
79
83
|
>();
|
|
80
84
|
|
|
81
85
|
/** @internal */
|
|
@@ -268,6 +272,7 @@ export class CustomTrapdoors extends Feature {
|
|
|
268
272
|
this.v.run.customTrapdoorActivated,
|
|
269
273
|
);
|
|
270
274
|
destinationFunc(
|
|
275
|
+
this.v.run.customTrapdoorActivated.destinationName,
|
|
271
276
|
this.v.run.customTrapdoorActivated.destinationStage,
|
|
272
277
|
this.v.run.customTrapdoorActivated.destinationStageType,
|
|
273
278
|
);
|
|
@@ -275,7 +280,11 @@ export class CustomTrapdoors extends Feature {
|
|
|
275
280
|
|
|
276
281
|
private getDestinationFunc(
|
|
277
282
|
customTrapdoorDescription: CustomTrapdoorDescription,
|
|
278
|
-
): (
|
|
283
|
+
): (
|
|
284
|
+
destinationName: string | undefined,
|
|
285
|
+
destinationStage: LevelStage,
|
|
286
|
+
destinationStageType: StageType,
|
|
287
|
+
) => void {
|
|
279
288
|
if (customTrapdoorDescription.destinationName === undefined) {
|
|
280
289
|
return goToVanillaStage;
|
|
281
290
|
}
|
|
@@ -663,6 +672,7 @@ export class CustomTrapdoors extends Feature {
|
|
|
663
672
|
public registerCustomTrapdoorDestination(
|
|
664
673
|
destinationName: string,
|
|
665
674
|
destinationFunc: (
|
|
675
|
+
destinationName: string | undefined,
|
|
666
676
|
destinationStage: LevelStage,
|
|
667
677
|
destinationStageType: StageType,
|
|
668
678
|
) => void,
|
|
@@ -846,6 +856,7 @@ function dropTaintedForgotten(player: EntityPlayer) {
|
|
|
846
856
|
|
|
847
857
|
/** The default `destinationFunc` for a custom trapdoor. */
|
|
848
858
|
function goToVanillaStage(
|
|
859
|
+
_destinationName: string | undefined,
|
|
849
860
|
destinationStage: LevelStage,
|
|
850
861
|
destinationStageType: StageType,
|
|
851
862
|
) {
|