isaacscript-common 26.0.0 → 26.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/dist/index.rollup.d.ts +21 -11
  2. package/dist/isaacscript-common.lua +201 -185
  3. package/dist/src/classes/callbacks/PostCursedTeleport.d.ts +2 -1
  4. package/dist/src/classes/callbacks/PostCursedTeleport.d.ts.map +1 -1
  5. package/dist/src/classes/callbacks/PostCursedTeleport.lua +26 -29
  6. package/dist/src/classes/callbacks/PostNewRoomEarly.d.ts.map +1 -1
  7. package/dist/src/classes/callbacks/PreNewLevel.d.ts +1 -1
  8. package/dist/src/classes/callbacks/PreNewLevel.d.ts.map +1 -1
  9. package/dist/src/classes/callbacks/PreNewLevel.lua +4 -4
  10. package/dist/src/classes/features/callbackLogic/GameReorderedCallbacks.d.ts.map +1 -1
  11. package/dist/src/classes/features/callbackLogic/PlayerReorderedCallbacks.d.ts +9 -3
  12. package/dist/src/classes/features/callbackLogic/PlayerReorderedCallbacks.d.ts.map +1 -1
  13. package/dist/src/classes/features/callbackLogic/PlayerReorderedCallbacks.lua +13 -9
  14. package/dist/src/classes/features/other/FadeInRemover.d.ts +1 -1
  15. package/dist/src/classes/features/other/FadeInRemover.d.ts.map +1 -1
  16. package/dist/src/classes/features/other/FadeInRemover.lua +6 -6
  17. package/dist/src/classes/features/other/SaveDataManager.d.ts.map +1 -1
  18. package/dist/src/classes/features/other/debugDisplay/DebugDisplayPlayer.d.ts +1 -1
  19. package/dist/src/classes/features/other/debugDisplay/DebugDisplayPlayer.d.ts.map +1 -1
  20. package/dist/src/classes/features/other/debugDisplay/DebugDisplayPlayer.lua +4 -4
  21. package/dist/src/enums/ModCallbackCustom.d.ts +3 -5
  22. package/dist/src/enums/ModCallbackCustom.d.ts.map +1 -1
  23. package/dist/src/functions/utils.d.ts +6 -0
  24. package/dist/src/functions/utils.d.ts.map +1 -1
  25. package/dist/src/functions/utils.lua +18 -0
  26. package/dist/src/interfaces/private/AddCallbackParametersCustom.d.ts +1 -1
  27. package/dist/src/interfaces/private/AddCallbackParametersCustom.d.ts.map +1 -1
  28. package/dist/src/shouldFire.d.ts +1 -1
  29. package/dist/src/shouldFire.d.ts.map +1 -1
  30. package/package.json +2 -2
  31. package/src/classes/callbacks/PostCursedTeleport.ts +59 -65
  32. package/src/classes/callbacks/PostNewRoomEarly.ts +1 -0
  33. package/src/classes/callbacks/PreNewLevel.ts +7 -6
  34. package/src/classes/features/callbackLogic/GameReorderedCallbacks.ts +3 -0
  35. package/src/classes/features/callbackLogic/PlayerReorderedCallbacks.ts +29 -13
  36. package/src/classes/features/other/FadeInRemover.ts +10 -8
  37. package/src/classes/features/other/SaveDataManager.ts +2 -0
  38. package/src/classes/features/other/debugDisplay/DebugDisplayPlayer.ts +8 -6
  39. package/src/enums/ModCallbackCustom.ts +3 -5
  40. package/src/functions/utils.ts +14 -0
  41. package/src/interfaces/private/AddCallbackParametersCustom.ts +1 -1
  42. package/src/shouldFire.ts +1 -0
@@ -432,7 +432,7 @@ declare interface AddCallbackParametersCustom {
432
432
  character?: PlayerType
433
433
  ];
434
434
  [ModCallbackCustom.POST_PLAYER_RENDER_REORDERED]: [
435
- callback: (player: EntityPlayer) => void,
435
+ callback: (player: EntityPlayer, renderOffset: Vector) => void,
436
436
  playerVariant?: PlayerVariant,
437
437
  character?: PlayerType
438
438
  ];
@@ -3795,7 +3795,7 @@ export declare type FactoryFunction<V, Args extends unknown[]> = (...args: Args)
3795
3795
 
3796
3796
  declare class FadeInRemover extends Feature {
3797
3797
  private enabled;
3798
- private postGameStarted;
3798
+ private postGameStartedReordered;
3799
3799
  /**
3800
3800
  * Removes the fade-in that occurs at the beginning of a run. If this behavior is desired, call
3801
3801
  * this function once at the beginning of your mod.
@@ -7947,6 +7947,13 @@ export declare function isMoveActionTriggered(controllerIndex: ControllerIndex):
7947
7947
 
7948
7948
  export declare function isMoveActionTriggeredOnAnyInput(): boolean;
7949
7949
 
7950
+ /**
7951
+ * Helper function to detect if there is two or more players currently playing.
7952
+ *
7953
+ * Specifically, this function looks for unique `ControllerIndex` values across all players.
7954
+ */
7955
+ export declare function isMultiplayer(): boolean;
7956
+
7950
7957
  export declare function isNarrowRoom(roomShape: RoomShape): boolean;
7951
7958
 
7952
7959
  /** Helper function to detect if a variable is of type `EntityNPC`. */
@@ -9376,8 +9383,7 @@ export declare enum ModCallbackCustom {
9376
9383
  *
9377
9384
  * `POST_GAME_STARTED_REORDERED` --> `POST_NEW_LEVEL_REORDERED` --> `POST_NEW_ROOM_REORDERED`
9378
9385
  *
9379
- * - You must provide a third argument to specify if you want the callback to fire if the game is
9380
- * continued:
9386
+ * - You must provide a third argument:
9381
9387
  * - Pass true if you want the callback to only fire if the run is continued.
9382
9388
  * - Pass false if you want the callback to only fire when the run is not continued.
9383
9389
  * - Pass undefined if you want the callback to fire in both situations.
@@ -9396,8 +9402,7 @@ export declare enum ModCallbackCustom {
9396
9402
  * new run has started (or continued), but you can be sure that all new-run-related initialization
9397
9403
  * has been completed.
9398
9404
  *
9399
- * - You must provide a third argument to specify if you want the callback to fire if the game is
9400
- * continued:
9405
+ * - You must provide a third argument:
9401
9406
  * - Pass true if you want the callback to only fire if the run is continued.
9402
9407
  * - Pass false if you want the callback to only fire when the run is not continued.
9403
9408
  * - Pass undefined if you want the callback to fire in both situations.
@@ -10362,7 +10367,7 @@ export declare enum ModCallbackCustom {
10362
10367
  * matches the `PlayerType` provided.
10363
10368
  *
10364
10369
  * ```ts
10365
- * function postPlayerRenderReordered(player: EntityPlayer): void {}
10370
+ * function postPlayerRenderReordered(player: EntityPlayer, renderOffset: Vector): void {}
10366
10371
  * ```
10367
10372
  */
10368
10373
  POST_PLAYER_RENDER_REORDERED = 76,
@@ -12465,9 +12470,9 @@ declare class PlayerReorderedCallbacks extends Feature {
12465
12470
  v: {
12466
12471
  run: {
12467
12472
  postGameStartedFiredOnThisRun: boolean;
12468
- postPEffectUpdateQueue: PlayerIndex[];
12469
- postPlayerUpdateQueue: PlayerIndex[];
12470
- postPlayerRenderQueue: PlayerIndex[];
12473
+ postPEffectUpdateQueue: QueueElement[];
12474
+ postPlayerUpdateQueue: QueueElement[];
12475
+ postPlayerRenderQueue: QueueElement[];
12471
12476
  };
12472
12477
  };
12473
12478
  private postPEffectUpdateReordered;
@@ -12786,6 +12791,11 @@ export declare function PriorityCallbackCustom<T extends ModCallbackCustom>(modC
12786
12791
  /** Helper type to extract only the public interface of a class. */
12787
12792
  export declare type PublicInterface<T> = Pick<T, keyof T>;
12788
12793
 
12794
+ declare interface QueueElement {
12795
+ playerIndex: PlayerIndex;
12796
+ renderOffset: Vector;
12797
+ }
12798
+
12789
12799
  /** An alias for the `Map` constructor that returns a read-only map. */
12790
12800
  declare const ReadonlyMap_2: ReadonlyMapConstructor;
12791
12801
  export { ReadonlyMap_2 as ReadonlyMap }
@@ -14532,7 +14542,7 @@ newVariant: PickupVariant,
14532
14542
  newSubType: int
14533
14543
  ], optionalArgs: [pickupVariant?: PickupVariant, subType?: int]): boolean;
14534
14544
 
14535
- declare function shouldFirePlayer(fireArgs: [player: EntityPlayer] | [player: EntityPlayer, numSacrifices: int] | [player: EntityPlayer, collectible: EntityPickupCollectible] | [player: EntityPlayer, oldCharacter: PlayerType, newCharacter: PlayerType] | [
14545
+ declare function shouldFirePlayer(fireArgs: [player: EntityPlayer] | [player: EntityPlayer, renderOffset: Vector] | [player: EntityPlayer, numSacrifices: int] | [player: EntityPlayer, collectible: EntityPickupCollectible] | [player: EntityPlayer, oldCharacter: PlayerType, newCharacter: PlayerType] | [
14536
14546
  player: EntityPlayer,
14537
14547
  healthType: HealthType,
14538
14548
  difference: int,
@@ -1,6 +1,6 @@
1
1
  --[[
2
2
 
3
- isaacscript-common 26.0.0
3
+ isaacscript-common 26.1.1
4
4
 
5
5
  This is the "isaacscript-common" library, which was created with the IsaacScript tool.
6
6
 
@@ -16244,14 +16244,152 @@ function ____exports.getRandomInt(self, min, max, seedOrRNG, exceptions)
16244
16244
  until not exceptionsSet:has(randomInt)
16245
16245
  return randomInt
16246
16246
  end
16247
+ return ____exports
16248
+ end,
16249
+ ["src.types.PlayerIndex"] = function(...)
16250
+ local ____exports = {}
16251
+ return ____exports
16252
+ end,
16253
+ ["src.functions.playerIndex"] = function(...)
16254
+ local ____lualib = require("lualib_bundle")
16255
+ local __TS__New = ____lualib.__TS__New
16256
+ local __TS__ArrayFilter = ____lualib.__TS__ArrayFilter
16257
+ local __TS__ArrayFind = ____lualib.__TS__ArrayFind
16258
+ local ____exports = {}
16259
+ local getPlayerIndexCollectibleType, DEFAULT_COLLECTIBLE_TYPE, EXCLUDED_CHARACTERS
16260
+ local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
16261
+ local BabySubType = ____isaac_2Dtypescript_2Ddefinitions.BabySubType
16262
+ local CollectibleType = ____isaac_2Dtypescript_2Ddefinitions.CollectibleType
16263
+ local PlayerType = ____isaac_2Dtypescript_2Ddefinitions.PlayerType
16264
+ local PlayerVariant = ____isaac_2Dtypescript_2Ddefinitions.PlayerVariant
16265
+ local ____cachedClasses = require("src.core.cachedClasses")
16266
+ local game = ____cachedClasses.game
16267
+ local ____ReadonlySet = require("src.types.ReadonlySet")
16268
+ local ReadonlySet = ____ReadonlySet.ReadonlySet
16269
+ function ____exports.getAllPlayers(self)
16270
+ local numPlayers = game:GetNumPlayers()
16271
+ local players = {}
16272
+ do
16273
+ local i = 0
16274
+ while i < numPlayers do
16275
+ local player = Isaac.GetPlayer(i)
16276
+ players[#players + 1] = player
16277
+ i = i + 1
16278
+ end
16279
+ end
16280
+ return players
16281
+ end
16282
+ function ____exports.getPlayerIndex(self, player, differentiateForgottenAndSoul)
16283
+ if differentiateForgottenAndSoul == nil then
16284
+ differentiateForgottenAndSoul = false
16285
+ end
16286
+ local playerToUse = player
16287
+ local isSubPlayer = player:IsSubPlayer()
16288
+ if isSubPlayer then
16289
+ local subPlayer = player
16290
+ local playerParent = ____exports.getSubPlayerParent(nil, subPlayer)
16291
+ if playerParent ~= nil then
16292
+ playerToUse = playerParent
16293
+ end
16294
+ end
16295
+ local collectibleType = getPlayerIndexCollectibleType(nil, player, differentiateForgottenAndSoul)
16296
+ local collectibleRNG = playerToUse:GetCollectibleRNG(collectibleType)
16297
+ local seed = collectibleRNG:GetSeed()
16298
+ return seed
16299
+ end
16300
+ function getPlayerIndexCollectibleType(self, player, differentiateForgottenAndSoul)
16301
+ local character = player:GetPlayerType()
16302
+ if character == PlayerType.SOUL then
16303
+ return differentiateForgottenAndSoul and CollectibleType.INNER_EYE or DEFAULT_COLLECTIBLE_TYPE
16304
+ end
16305
+ return DEFAULT_COLLECTIBLE_TYPE
16306
+ end
16307
+ function ____exports.getPlayers(self, performCharacterExclusions)
16308
+ if performCharacterExclusions == nil then
16309
+ performCharacterExclusions = false
16310
+ end
16311
+ local players = ____exports.getAllPlayers(nil)
16312
+ local nonChildPlayers = __TS__ArrayFilter(
16313
+ players,
16314
+ function(____, player) return not ____exports.isChildPlayer(nil, player) end
16315
+ )
16316
+ local nonChildPlayersFiltered = __TS__ArrayFilter(
16317
+ nonChildPlayers,
16318
+ function(____, player)
16319
+ local character = player:GetPlayerType()
16320
+ return not EXCLUDED_CHARACTERS:has(character)
16321
+ end
16322
+ )
16323
+ return performCharacterExclusions and nonChildPlayersFiltered or nonChildPlayers
16324
+ end
16325
+ function ____exports.getSubPlayerParent(self, subPlayer)
16326
+ local subPlayerPtrHash = GetPtrHash(subPlayer)
16327
+ local players = ____exports.getPlayers(nil)
16328
+ return __TS__ArrayFind(
16329
+ players,
16330
+ function(____, player)
16331
+ local thisPlayerSubPlayer = player:GetSubPlayer()
16332
+ if thisPlayerSubPlayer == nil then
16333
+ return false
16334
+ end
16335
+ local thisPlayerSubPlayerPtrHash = GetPtrHash(thisPlayerSubPlayer)
16336
+ return thisPlayerSubPlayerPtrHash == subPlayerPtrHash
16337
+ end
16338
+ )
16339
+ end
16340
+ function ____exports.isChildPlayer(self, player)
16341
+ return player.Parent ~= nil
16342
+ end
16343
+ DEFAULT_COLLECTIBLE_TYPE = CollectibleType.SAD_ONION
16344
+ EXCLUDED_CHARACTERS = __TS__New(ReadonlySet, {PlayerType.ESAU, PlayerType.SOUL_B})
16345
+ function ____exports.getOtherPlayers(self, player)
16346
+ local playerPtrHash = GetPtrHash(player)
16347
+ local players = ____exports.getAllPlayers(nil)
16348
+ return __TS__ArrayFilter(
16349
+ players,
16350
+ function(____, otherPlayer) return GetPtrHash(otherPlayer) ~= playerPtrHash end
16351
+ )
16352
+ end
16353
+ function ____exports.getPlayerFromIndex(self, playerIndex)
16354
+ local players = ____exports.getAllPlayers(nil)
16355
+ return __TS__ArrayFind(
16356
+ players,
16357
+ function(____, player) return ____exports.getPlayerIndex(nil, player) == playerIndex end
16358
+ )
16359
+ end
16360
+ function ____exports.getPlayerIndexVanilla(self, playerToFind)
16361
+ local numPlayers = game:GetNumPlayers()
16362
+ local playerToFindHash = GetPtrHash(playerToFind)
16363
+ do
16364
+ local i = 0
16365
+ while i < numPlayers do
16366
+ local player = Isaac.GetPlayer(i)
16367
+ local playerHash = GetPtrHash(player)
16368
+ if playerHash == playerToFindHash then
16369
+ return i
16370
+ end
16371
+ i = i + 1
16372
+ end
16373
+ end
16374
+ return nil
16375
+ end
16376
+ function ____exports.isFoundSoul(self, player)
16377
+ return ____exports.isChildPlayer(nil, player) and player.Variant == PlayerVariant.COOP_BABY and player.SubType == BabySubType.FOUND_SOUL
16378
+ end
16247
16379
  return ____exports
16248
16380
  end,
16249
16381
  ["src.functions.utils"] = function(...)
16382
+ local ____lualib = require("lualib_bundle")
16383
+ local __TS__ArrayMap = ____lualib.__TS__ArrayMap
16384
+ local Set = ____lualib.Set
16385
+ local __TS__New = ____lualib.__TS__New
16250
16386
  local ____exports = {}
16251
16387
  local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
16252
16388
  local RenderMode = ____isaac_2Dtypescript_2Ddefinitions.RenderMode
16253
16389
  local ____cachedClasses = require("src.core.cachedClasses")
16254
16390
  local game = ____cachedClasses.game
16391
+ local ____playerIndex = require("src.functions.playerIndex")
16392
+ local getAllPlayers = ____playerIndex.getAllPlayers
16255
16393
  local ____types = require("src.functions.types")
16256
16394
  local isFunction = ____types.isFunction
16257
16395
  function ____exports.eRange(self, start, ____end, increment)
@@ -16291,6 +16429,15 @@ end
16291
16429
  function ____exports.inRange(self, num, start, ____end)
16292
16430
  return num >= start and num <= ____end
16293
16431
  end
16432
+ function ____exports.isMultiplayer(self)
16433
+ local players = getAllPlayers(nil)
16434
+ local controllerIndexes = __TS__ArrayMap(
16435
+ players,
16436
+ function(____, player) return player.ControllerIndex end
16437
+ )
16438
+ local controllerIndexesSet = __TS__New(Set, controllerIndexes)
16439
+ return controllerIndexesSet.size > 1
16440
+ end
16294
16441
  function ____exports.isReflectionRender(self)
16295
16442
  local room = game:GetRoom()
16296
16443
  local renderMode = room:GetRenderMode()
@@ -21523,138 +21670,6 @@ function PostCollectibleInitFirst.prototype.____constructor(self)
21523
21670
  end
21524
21671
  self.callbacksUsed = {{ModCallback.POST_PICKUP_INIT, self.postPickupInitCollectible, {PickupVariant.COLLECTIBLE}}}
21525
21672
  end
21526
- return ____exports
21527
- end,
21528
- ["src.types.PlayerIndex"] = function(...)
21529
- local ____exports = {}
21530
- return ____exports
21531
- end,
21532
- ["src.functions.playerIndex"] = function(...)
21533
- local ____lualib = require("lualib_bundle")
21534
- local __TS__New = ____lualib.__TS__New
21535
- local __TS__ArrayFilter = ____lualib.__TS__ArrayFilter
21536
- local __TS__ArrayFind = ____lualib.__TS__ArrayFind
21537
- local ____exports = {}
21538
- local getPlayerIndexCollectibleType, DEFAULT_COLLECTIBLE_TYPE, EXCLUDED_CHARACTERS
21539
- local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
21540
- local BabySubType = ____isaac_2Dtypescript_2Ddefinitions.BabySubType
21541
- local CollectibleType = ____isaac_2Dtypescript_2Ddefinitions.CollectibleType
21542
- local PlayerType = ____isaac_2Dtypescript_2Ddefinitions.PlayerType
21543
- local PlayerVariant = ____isaac_2Dtypescript_2Ddefinitions.PlayerVariant
21544
- local ____cachedClasses = require("src.core.cachedClasses")
21545
- local game = ____cachedClasses.game
21546
- local ____ReadonlySet = require("src.types.ReadonlySet")
21547
- local ReadonlySet = ____ReadonlySet.ReadonlySet
21548
- function ____exports.getAllPlayers(self)
21549
- local numPlayers = game:GetNumPlayers()
21550
- local players = {}
21551
- do
21552
- local i = 0
21553
- while i < numPlayers do
21554
- local player = Isaac.GetPlayer(i)
21555
- players[#players + 1] = player
21556
- i = i + 1
21557
- end
21558
- end
21559
- return players
21560
- end
21561
- function ____exports.getPlayerIndex(self, player, differentiateForgottenAndSoul)
21562
- if differentiateForgottenAndSoul == nil then
21563
- differentiateForgottenAndSoul = false
21564
- end
21565
- local playerToUse = player
21566
- local isSubPlayer = player:IsSubPlayer()
21567
- if isSubPlayer then
21568
- local subPlayer = player
21569
- local playerParent = ____exports.getSubPlayerParent(nil, subPlayer)
21570
- if playerParent ~= nil then
21571
- playerToUse = playerParent
21572
- end
21573
- end
21574
- local collectibleType = getPlayerIndexCollectibleType(nil, player, differentiateForgottenAndSoul)
21575
- local collectibleRNG = playerToUse:GetCollectibleRNG(collectibleType)
21576
- local seed = collectibleRNG:GetSeed()
21577
- return seed
21578
- end
21579
- function getPlayerIndexCollectibleType(self, player, differentiateForgottenAndSoul)
21580
- local character = player:GetPlayerType()
21581
- if character == PlayerType.SOUL then
21582
- return differentiateForgottenAndSoul and CollectibleType.INNER_EYE or DEFAULT_COLLECTIBLE_TYPE
21583
- end
21584
- return DEFAULT_COLLECTIBLE_TYPE
21585
- end
21586
- function ____exports.getPlayers(self, performCharacterExclusions)
21587
- if performCharacterExclusions == nil then
21588
- performCharacterExclusions = false
21589
- end
21590
- local players = ____exports.getAllPlayers(nil)
21591
- local nonChildPlayers = __TS__ArrayFilter(
21592
- players,
21593
- function(____, player) return not ____exports.isChildPlayer(nil, player) end
21594
- )
21595
- local nonChildPlayersFiltered = __TS__ArrayFilter(
21596
- nonChildPlayers,
21597
- function(____, player)
21598
- local character = player:GetPlayerType()
21599
- return not EXCLUDED_CHARACTERS:has(character)
21600
- end
21601
- )
21602
- return performCharacterExclusions and nonChildPlayersFiltered or nonChildPlayers
21603
- end
21604
- function ____exports.getSubPlayerParent(self, subPlayer)
21605
- local subPlayerPtrHash = GetPtrHash(subPlayer)
21606
- local players = ____exports.getPlayers(nil)
21607
- return __TS__ArrayFind(
21608
- players,
21609
- function(____, player)
21610
- local thisPlayerSubPlayer = player:GetSubPlayer()
21611
- if thisPlayerSubPlayer == nil then
21612
- return false
21613
- end
21614
- local thisPlayerSubPlayerPtrHash = GetPtrHash(thisPlayerSubPlayer)
21615
- return thisPlayerSubPlayerPtrHash == subPlayerPtrHash
21616
- end
21617
- )
21618
- end
21619
- function ____exports.isChildPlayer(self, player)
21620
- return player.Parent ~= nil
21621
- end
21622
- DEFAULT_COLLECTIBLE_TYPE = CollectibleType.SAD_ONION
21623
- EXCLUDED_CHARACTERS = __TS__New(ReadonlySet, {PlayerType.ESAU, PlayerType.SOUL_B})
21624
- function ____exports.getOtherPlayers(self, player)
21625
- local playerPtrHash = GetPtrHash(player)
21626
- local players = ____exports.getAllPlayers(nil)
21627
- return __TS__ArrayFilter(
21628
- players,
21629
- function(____, otherPlayer) return GetPtrHash(otherPlayer) ~= playerPtrHash end
21630
- )
21631
- end
21632
- function ____exports.getPlayerFromIndex(self, playerIndex)
21633
- local players = ____exports.getAllPlayers(nil)
21634
- return __TS__ArrayFind(
21635
- players,
21636
- function(____, player) return ____exports.getPlayerIndex(nil, player) == playerIndex end
21637
- )
21638
- end
21639
- function ____exports.getPlayerIndexVanilla(self, playerToFind)
21640
- local numPlayers = game:GetNumPlayers()
21641
- local playerToFindHash = GetPtrHash(playerToFind)
21642
- do
21643
- local i = 0
21644
- while i < numPlayers do
21645
- local player = Isaac.GetPlayer(i)
21646
- local playerHash = GetPtrHash(player)
21647
- if playerHash == playerToFindHash then
21648
- return i
21649
- end
21650
- i = i + 1
21651
- end
21652
- end
21653
- return nil
21654
- end
21655
- function ____exports.isFoundSoul(self, player)
21656
- return ____exports.isChildPlayer(nil, player) and player.Variant == PlayerVariant.COOP_BABY and player.SubType == BabySubType.FOUND_SOUL
21657
- end
21658
21673
  return ____exports
21659
21674
  end,
21660
21675
  ["src.functions.playerDataStructures"] = function(...)
@@ -22626,11 +22641,9 @@ local __TS__New = ____lualib.__TS__New
22626
22641
  local __TS__Class = ____lualib.__TS__Class
22627
22642
  local __TS__ClassExtends = ____lualib.__TS__ClassExtends
22628
22643
  local ____exports = {}
22629
- local playerIsTeleportingFromCursedTeleport
22630
22644
  local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
22631
22645
  local CollectibleType = ____isaac_2Dtypescript_2Ddefinitions.CollectibleType
22632
22646
  local DamageFlag = ____isaac_2Dtypescript_2Ddefinitions.DamageFlag
22633
- local ModCallback = ____isaac_2Dtypescript_2Ddefinitions.ModCallback
22634
22647
  local PlayerVariant = ____isaac_2Dtypescript_2Ddefinitions.PlayerVariant
22635
22648
  local RoomType = ____isaac_2Dtypescript_2Ddefinitions.RoomType
22636
22649
  local TrinketType = ____isaac_2Dtypescript_2Ddefinitions.TrinketType
@@ -22649,24 +22662,6 @@ local ____shouldFire = require("src.shouldFire")
22649
22662
  local shouldFirePlayer = ____shouldFire.shouldFirePlayer
22650
22663
  local ____CustomCallback = require("src.classes.private.CustomCallback")
22651
22664
  local CustomCallback = ____CustomCallback.CustomCallback
22652
- function playerIsTeleportingFromCursedTeleport(self, player, lastDamageFrame)
22653
- local gameFrameCount = game:GetFrameCount()
22654
- if gameFrameCount ~= lastDamageFrame then
22655
- return false
22656
- end
22657
- local sprite = player:GetSprite()
22658
- if not sprite:IsPlaying("TeleportUp") or sprite:GetFrame() ~= 1 then
22659
- return false
22660
- end
22661
- if player:HasCollectible(CollectibleType.CURSED_EYE) then
22662
- return true
22663
- end
22664
- local numHitsRemaining = getPlayerNumHitsRemaining(nil, player)
22665
- if player:HasTrinket(TrinketType.CURSED_SKULL) and numHitsRemaining == 1 then
22666
- return true
22667
- end
22668
- return false
22669
- end
22670
22665
  local v = {
22671
22666
  run = {playersDamageFrameMap = __TS__New(Map)},
22672
22667
  level = {numSacrifices = 0}
@@ -22679,13 +22674,18 @@ function PostCursedTeleport.prototype.____constructor(self)
22679
22674
  CustomCallback.prototype.____constructor(self)
22680
22675
  self.v = v
22681
22676
  self.shouldFire = shouldFirePlayer
22682
- self.postPlayerRenderPlayer = function(____, player, _renderOffset)
22677
+ self.entityTakeDmgPlayer = function(____, player, _amount, damageFlags, _source, _countdownFrames)
22678
+ self:incrementNumSacrifices(damageFlags)
22679
+ self:setDamageFrame(player, damageFlags)
22680
+ return nil
22681
+ end
22682
+ self.postPlayerRenderReorderedPlayer = function(____, player, _renderOffset)
22683
22683
  local trackingArray = mapGetPlayer(nil, v.run.playersDamageFrameMap, player)
22684
22684
  if trackingArray == nil then
22685
22685
  return
22686
22686
  end
22687
22687
  local lastDamageFrame, callbackActivatedOnThisFrame = table.unpack(trackingArray)
22688
- if not playerIsTeleportingFromCursedTeleport(nil, player, lastDamageFrame) then
22688
+ if not self:playerIsTeleportingFromCursedTeleport(player, lastDamageFrame) then
22689
22689
  return
22690
22690
  end
22691
22691
  if callbackActivatedOnThisFrame then
@@ -22696,13 +22696,7 @@ function PostCursedTeleport.prototype.____constructor(self)
22696
22696
  mapSetPlayer(nil, v.run.playersDamageFrameMap, player, newTrackingArray)
22697
22697
  self:fire(player)
22698
22698
  end
22699
- self.entityTakeDmgPlayer = function(____, player, _amount, damageFlags, _source, _countdownFrames)
22700
- self:incrementNumSacrifices(damageFlags)
22701
- self:setDamageFrame(player, damageFlags)
22702
- return nil
22703
- end
22704
- self.callbacksUsed = {{ModCallback.POST_PLAYER_RENDER, self.postPlayerRenderPlayer, {PlayerVariant.PLAYER}}}
22705
- self.customCallbacksUsed = {{ModCallbackCustom.ENTITY_TAKE_DMG_PLAYER, self.entityTakeDmgPlayer}}
22699
+ self.customCallbacksUsed = {{ModCallbackCustom.ENTITY_TAKE_DMG_PLAYER, self.entityTakeDmgPlayer}, {ModCallbackCustom.POST_PLAYER_RENDER_REORDERED, self.postPlayerRenderReorderedPlayer, {PlayerVariant.PLAYER}}}
22706
22700
  end
22707
22701
  function PostCursedTeleport.prototype.incrementNumSacrifices(self, damageFlags)
22708
22702
  local room = game:GetRoom()
@@ -22734,6 +22728,24 @@ function PostCursedTeleport.prototype.isPotentialNaturalTeleportFromSacrificeRoo
22734
22728
  local isSpikeDamage = hasFlag(nil, damageFlags, DamageFlag.SPIKES)
22735
22729
  return roomType == RoomType.SACRIFICE and isSpikeDamage and (v.level.numSacrifices == 6 or v.level.numSacrifices >= 12)
22736
22730
  end
22731
+ function PostCursedTeleport.prototype.playerIsTeleportingFromCursedTeleport(self, player, lastDamageFrame)
22732
+ local gameFrameCount = game:GetFrameCount()
22733
+ if gameFrameCount ~= lastDamageFrame then
22734
+ return false
22735
+ end
22736
+ local sprite = player:GetSprite()
22737
+ if not sprite:IsPlaying("TeleportUp") or sprite:GetFrame() ~= 1 then
22738
+ return false
22739
+ end
22740
+ if player:HasCollectible(CollectibleType.CURSED_EYE) then
22741
+ return true
22742
+ end
22743
+ local numHitsRemaining = getPlayerNumHitsRemaining(nil, player)
22744
+ if player:HasTrinket(TrinketType.CURSED_SKULL) and numHitsRemaining == 1 then
22745
+ return true
22746
+ end
22747
+ return false
22748
+ end
22737
22749
  return ____exports
22738
22750
  end,
22739
22751
  ["src.classes.callbacks.PostCustomRevive"] = function(...)
@@ -31449,8 +31461,8 @@ local __TS__New = ____lualib.__TS__New
31449
31461
  local __TS__Class = ____lualib.__TS__Class
31450
31462
  local __TS__ClassExtends = ____lualib.__TS__ClassExtends
31451
31463
  local ____exports = {}
31452
- local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
31453
- local ModCallback = ____isaac_2Dtypescript_2Ddefinitions.ModCallback
31464
+ local ____ModCallbackCustom = require("src.enums.ModCallbackCustom")
31465
+ local ModCallbackCustom = ____ModCallbackCustom.ModCallbackCustom
31454
31466
  local ____sprites = require("src.functions.sprites")
31455
31467
  local getLastFrameOfAnimation = ____sprites.getLastFrameOfAnimation
31456
31468
  local ____stage = require("src.functions.stage")
@@ -31468,7 +31480,7 @@ __TS__ClassExtends(PreNewLevel, CustomCallback)
31468
31480
  function PreNewLevel.prototype.____constructor(self)
31469
31481
  CustomCallback.prototype.____constructor(self)
31470
31482
  self.v = v
31471
- self.postPlayerRender = function(____, player)
31483
+ self.postPlayerRenderReordered = function(____, player)
31472
31484
  local effectiveStage = getEffectiveStage(nil)
31473
31485
  if effectiveStage == v.run.firedOnStage then
31474
31486
  return
@@ -31485,7 +31497,7 @@ function PreNewLevel.prototype.____constructor(self)
31485
31497
  self:fire(player)
31486
31498
  end
31487
31499
  end
31488
- self.callbacksUsed = {{ModCallback.POST_PLAYER_RENDER, self.postPlayerRender}}
31500
+ self.customCallbacksUsed = {{ModCallbackCustom.POST_PLAYER_RENDER_REORDERED, self.postPlayerRenderReordered}}
31489
31501
  end
31490
31502
  return ____exports
31491
31503
  end,
@@ -36974,6 +36986,8 @@ local ____exports = {}
36974
36986
  local dequeue
36975
36987
  local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
36976
36988
  local ModCallback = ____isaac_2Dtypescript_2Ddefinitions.ModCallback
36989
+ local ____constants = require("src.core.constants")
36990
+ local VectorZero = ____constants.VectorZero
36977
36991
  local ____ModCallbackCustom = require("src.enums.ModCallbackCustom")
36978
36992
  local ModCallbackCustom = ____ModCallbackCustom.ModCallbackCustom
36979
36993
  local ____array = require("src.functions.array")
@@ -36983,14 +36997,16 @@ local getPlayerFromIndex = ____playerIndex.getPlayerFromIndex
36983
36997
  local getPlayerIndex = ____playerIndex.getPlayerIndex
36984
36998
  local ____Feature = require("src.classes.private.Feature")
36985
36999
  local Feature = ____Feature.Feature
36986
- function dequeue(self, playerIndexes, fireFunc)
36987
- for ____, playerIndex in ipairs(playerIndexes) do
37000
+ function dequeue(self, queue, fireFunc)
37001
+ for ____, element in ipairs(queue) do
37002
+ local playerIndex = element.playerIndex
37003
+ local renderOffset = element.renderOffset
36988
37004
  local player = getPlayerFromIndex(nil, playerIndex)
36989
37005
  if player ~= nil then
36990
- fireFunc(nil, player)
37006
+ fireFunc(nil, player, renderOffset)
36991
37007
  end
36992
37008
  end
36993
- emptyArray(nil, playerIndexes)
37009
+ emptyArray(nil, queue)
36994
37010
  end
36995
37011
  local v = {run = {postGameStartedFiredOnThisRun = false, postPEffectUpdateQueue = {}, postPlayerUpdateQueue = {}, postPlayerRenderQueue = {}}}
36996
37012
  ____exports.PlayerReorderedCallbacks = __TS__Class()
@@ -37006,7 +37022,7 @@ function PlayerReorderedCallbacks.prototype.____constructor(self, postPEffectUpd
37006
37022
  else
37007
37023
  local playerIndex = getPlayerIndex(nil, player)
37008
37024
  local ____v_run_postPEffectUpdateQueue_0 = v.run.postPEffectUpdateQueue
37009
- ____v_run_postPEffectUpdateQueue_0[#____v_run_postPEffectUpdateQueue_0 + 1] = playerIndex
37025
+ ____v_run_postPEffectUpdateQueue_0[#____v_run_postPEffectUpdateQueue_0 + 1] = {playerIndex = playerIndex, renderOffset = VectorZero}
37010
37026
  end
37011
37027
  end
37012
37028
  self.postPlayerUpdate = function(____, player)
@@ -37015,16 +37031,16 @@ function PlayerReorderedCallbacks.prototype.____constructor(self, postPEffectUpd
37015
37031
  else
37016
37032
  local playerIndex = getPlayerIndex(nil, player)
37017
37033
  local ____v_run_postPlayerUpdateQueue_1 = v.run.postPlayerUpdateQueue
37018
- ____v_run_postPlayerUpdateQueue_1[#____v_run_postPlayerUpdateQueue_1 + 1] = playerIndex
37034
+ ____v_run_postPlayerUpdateQueue_1[#____v_run_postPlayerUpdateQueue_1 + 1] = {playerIndex = playerIndex, renderOffset = VectorZero}
37019
37035
  end
37020
37036
  end
37021
- self.postPlayerRender = function(____, player, _renderOffset)
37037
+ self.postPlayerRender = function(____, player, renderOffset)
37022
37038
  if v.run.postGameStartedFiredOnThisRun then
37023
- self.postPlayerRenderReordered:fire(player)
37039
+ self.postPlayerRenderReordered:fire(player, renderOffset)
37024
37040
  else
37025
37041
  local playerIndex = getPlayerIndex(nil, player)
37026
37042
  local ____v_run_postPlayerRenderQueue_2 = v.run.postPlayerRenderQueue
37027
- ____v_run_postPlayerRenderQueue_2[#____v_run_postPlayerRenderQueue_2 + 1] = playerIndex
37043
+ ____v_run_postPlayerRenderQueue_2[#____v_run_postPlayerRenderQueue_2 + 1] = {playerIndex = playerIndex, renderOffset = renderOffset}
37028
37044
  end
37029
37045
  end
37030
37046
  self.postGameStartedReorderedLast = function()
@@ -43541,8 +43557,8 @@ local ____lualib = require("lualib_bundle")
43541
43557
  local __TS__Class = ____lualib.__TS__Class
43542
43558
  local __TS__ClassExtends = ____lualib.__TS__ClassExtends
43543
43559
  local ____exports = {}
43544
- local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
43545
- local ModCallback = ____isaac_2Dtypescript_2Ddefinitions.ModCallback
43560
+ local ____ModCallbackCustom = require("src.enums.ModCallbackCustom")
43561
+ local ModCallbackCustom = ____ModCallbackCustom.ModCallbackCustom
43546
43562
  local ____Feature = require("src.classes.private.Feature")
43547
43563
  local Feature = ____Feature.Feature
43548
43564
  local ____utils = require("src.classes.features.other.debugDisplay.utils")
@@ -43555,11 +43571,11 @@ __TS__ClassExtends(DebugDisplayPlayer, Feature)
43555
43571
  function DebugDisplayPlayer.prototype.____constructor(self)
43556
43572
  Feature.prototype.____constructor(self)
43557
43573
  self.textCallback = defaultEntityDisplayCallback
43558
- self.postPlayerRender = function(____, player)
43574
+ self.postPlayerRenderReordered = function(____, player)
43559
43575
  local text = self:textCallback(player)
43560
43576
  renderTextOnEntity(nil, player, text)
43561
43577
  end
43562
- self.callbacksUsed = {{ModCallback.POST_PLAYER_RENDER, self.postPlayerRender}}
43578
+ self.customCallbacksUsed = {{ModCallbackCustom.POST_PLAYER_RENDER_REORDERED, self.postPlayerRenderReordered}}
43563
43579
  end
43564
43580
  return ____exports
43565
43581
  end,
@@ -48722,15 +48738,15 @@ local __TS__Class = ____lualib.__TS__Class
48722
48738
  local __TS__ClassExtends = ____lualib.__TS__ClassExtends
48723
48739
  local __TS__Decorate = ____lualib.__TS__Decorate
48724
48740
  local ____exports = {}
48725
- local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
48726
- local ModCallback = ____isaac_2Dtypescript_2Ddefinitions.ModCallback
48727
48741
  local ____cachedClasses = require("src.core.cachedClasses")
48728
48742
  local game = ____cachedClasses.game
48729
48743
  local ____decorators = require("src.decorators")
48730
48744
  local Exported = ____decorators.Exported
48745
+ local ____ModCallbackCustom = require("src.enums.ModCallbackCustom")
48746
+ local ModCallbackCustom = ____ModCallbackCustom.ModCallbackCustom
48731
48747
  local ____Feature = require("src.classes.private.Feature")
48732
48748
  local Feature = ____Feature.Feature
48733
- local FADE_IN_SPEED = 1
48749
+ local INSTANT_FADE_IN_SPEED = 1
48734
48750
  ____exports.FadeInRemover = __TS__Class()
48735
48751
  local FadeInRemover = ____exports.FadeInRemover
48736
48752
  FadeInRemover.name = "FadeInRemover"
@@ -48738,12 +48754,12 @@ __TS__ClassExtends(FadeInRemover, Feature)
48738
48754
  function FadeInRemover.prototype.____constructor(self)
48739
48755
  Feature.prototype.____constructor(self)
48740
48756
  self.enabled = false
48741
- self.postGameStarted = function(____, _isContinued)
48757
+ self.postGameStartedReordered = function()
48742
48758
  if self.enabled then
48743
- game:Fadein(FADE_IN_SPEED)
48759
+ game:Fadein(INSTANT_FADE_IN_SPEED)
48744
48760
  end
48745
48761
  end
48746
- self.callbacksUsed = {{ModCallback.POST_GAME_STARTED, self.postGameStarted}}
48762
+ self.customCallbacksUsed = {{ModCallbackCustom.POST_GAME_STARTED_REORDERED, self.postGameStartedReordered}}
48747
48763
  end
48748
48764
  function FadeInRemover.prototype.removeFadeIn(self)
48749
48765
  self.enabled = true
@@ -13,10 +13,11 @@ export declare class PostCursedTeleport extends CustomCallback<ModCallbackCustom
13
13
  };
14
14
  protected shouldFire: typeof shouldFirePlayer;
15
15
  constructor();
16
- private postPlayerRenderPlayer;
17
16
  private entityTakeDmgPlayer;
18
17
  private incrementNumSacrifices;
19
18
  private setDamageFrame;
20
19
  private isPotentialNaturalTeleportFromSacrificeRoom;
20
+ private postPlayerRenderReorderedPlayer;
21
+ private playerIsTeleportingFromCursedTeleport;
21
22
  }
22
23
  //# sourceMappingURL=PostCursedTeleport.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PostCursedTeleport.d.ts","sourceRoot":"","sources":["../../../../src/classes/callbacks/PostCursedTeleport.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAOlE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAe3D,qBAAa,kBAAmB,SAAQ,cAAc,CAAC,iBAAiB,CAAC,oBAAoB,CAAC;IAC5E,CAAC;;;;;;;MAAK;IAEtB,UAAmB,UAAU,0BAAoB;;IAsBjD,OAAO,CAAC,sBAAsB,CAyB5B;IAGF,OAAO,CAAC,mBAAmB,CAWzB;IAEF,OAAO,CAAC,sBAAsB;IAU9B,OAAO,CAAC,cAAc;IAwBtB,OAAO,CAAC,2CAA2C;CAepD"}
1
+ {"version":3,"file":"PostCursedTeleport.d.ts","sourceRoot":"","sources":["../../../../src/classes/callbacks/PostCursedTeleport.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAOlE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAe3D,qBAAa,kBAAmB,SAAQ,cAAc,CAAC,iBAAiB,CAAC,oBAAoB,CAAC;IAC5E,CAAC;;;;;;;MAAK;IAEtB,UAAmB,UAAU,0BAAoB;;IAgBjD,OAAO,CAAC,mBAAmB,CAWzB;IAEF,OAAO,CAAC,sBAAsB;IAU9B,OAAO,CAAC,cAAc;IAwBtB,OAAO,CAAC,2CAA2C;IAkBnD,OAAO,CAAC,+BAA+B,CAyBrC;IAEF,OAAO,CAAC,qCAAqC;CA8B9C"}