isaacscript-common 59.0.0 → 59.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -12,7 +12,7 @@ import { ButtonAction } from 'isaac-typescript-definitions';
12
12
  import { CacheFlag } from 'isaac-typescript-definitions';
13
13
  import { CallbackPriority } from 'isaac-typescript-definitions/dist/src/enums/CallbackPriority';
14
14
  import { CardType } from 'isaac-typescript-definitions';
15
- import type { Challenge } from 'isaac-typescript-definitions';
15
+ import { Challenge } from 'isaac-typescript-definitions';
16
16
  import type { CoinSubType } from 'isaac-typescript-definitions';
17
17
  import type { CollectiblePedestalType } from 'isaac-typescript-definitions';
18
18
  import { CollectibleType } from 'isaac-typescript-definitions';
@@ -8755,12 +8755,13 @@ export declare enum ISCFeature {
8755
8755
  ROOM_HISTORY = 47,
8756
8756
  RUN_IN_N_FRAMES = 48,
8757
8757
  RUN_NEXT_ROOM = 49,
8758
- SAVE_DATA_MANAGER = 50,
8759
- SPAWN_ALT_ROCK_REWARDS = 51,
8760
- SPAWN_COLLECTIBLE = 52,
8761
- STAGE_HISTORY = 53,
8762
- START_AMBUSH = 54,
8763
- TAINTED_LAZARUS_PLAYERS = 55
8758
+ RUN_NEXT_RUN = 50,
8759
+ SAVE_DATA_MANAGER = 51,
8760
+ SPAWN_ALT_ROCK_REWARDS = 52,
8761
+ SPAWN_COLLECTIBLE = 53,
8762
+ STAGE_HISTORY = 54,
8763
+ START_AMBUSH = 55,
8764
+ TAINTED_LAZARUS_PLAYERS = 56
8764
8765
  }
8765
8766
 
8766
8767
  /**
@@ -8820,6 +8821,7 @@ declare interface ISCFeatureToClass {
8820
8821
  [ISCFeature.ROOM_HISTORY]: RoomHistory;
8821
8822
  [ISCFeature.RUN_IN_N_FRAMES]: RunInNFrames;
8822
8823
  [ISCFeature.RUN_NEXT_ROOM]: RunNextRoom;
8824
+ [ISCFeature.RUN_NEXT_RUN]: RunNextRun;
8823
8825
  [ISCFeature.SAVE_DATA_MANAGER]: SaveDataManager;
8824
8826
  [ISCFeature.SPAWN_ALT_ROCK_REWARDS]: SpawnRockAltRewards;
8825
8827
  [ISCFeature.SPAWN_COLLECTIBLE]: SpawnCollectible;
@@ -14324,6 +14326,9 @@ export declare const NUM_VANILLA_PILL_EFFECTS: int;
14324
14326
  /** Calculated from the `TrinketType` enum. (`TrinketType.NULL` is not included.) */
14325
14327
  export declare const NUM_VANILLA_TRINKET_TYPES: number;
14326
14328
 
14329
+ /** Helper function to see if the player is playing any challenge. */
14330
+ export declare function onAnyChallenge(): boolean;
14331
+
14327
14332
  /**
14328
14333
  * Helper function to check if the player has taken Dad's Note. This sets the game state flag of
14329
14334
  * `GameStateFlag.BACKWARDS_PATH` and causes floor generation to change.
@@ -14332,6 +14337,14 @@ export declare function onAscent(): boolean;
14332
14337
 
14333
14338
  export declare function onCathedral(): boolean;
14334
14339
 
14340
+ /**
14341
+ * Helper function to check to see if the player is playing a particular challenge.
14342
+ *
14343
+ * This function is variadic, meaning that you can specify as many challenges as you want to check
14344
+ * for.
14345
+ */
14346
+ export declare function onChallenge(...challenges: Challenge[]): boolean;
14347
+
14335
14348
  export declare function onChest(): boolean;
14336
14349
 
14337
14350
  export declare function onDarkRoom(): boolean;
@@ -16276,6 +16289,21 @@ declare class RunNextRoom extends Feature {
16276
16289
  runNextRoom(func: () => void): void;
16277
16290
  }
16278
16291
 
16292
+ declare class RunNextRun extends Feature {
16293
+ vConditionalFunc: () => boolean;
16294
+ private readonly postGameStartedReorderedFalse;
16295
+ /**
16296
+ * Supply a function to run on the next `POST_GAME_STARTED` callback.
16297
+ *
16298
+ * Note that this function will not handle saving and quitting. If a player saving and quitting
16299
+ * before the deferred function fires would cause a bug in your mod, then you should handle
16300
+ * deferred functions manually using serializable data.
16301
+ *
16302
+ * In order to use this function, you must upgrade your mod with `ISCFeature.RUN_NEXT_ROOM`.
16303
+ */
16304
+ runNextRun(func: () => void): void;
16305
+ }
16306
+
16279
16307
  /**
16280
16308
  * This is the format of the object that you give to the save data manager. It will contains all of
16281
16309
  * the variables for the particular mod feature.
@@ -1,6 +1,6 @@
1
1
  --[[
2
2
 
3
- isaacscript-common 59.0.0
3
+ isaacscript-common 59.2.0
4
4
 
5
5
  This is the "isaacscript-common" library, which was created with the IsaacScript tool.
6
6
 
@@ -17565,17 +17565,19 @@ ____exports.ISCFeature.RUN_IN_N_FRAMES = 48
17565
17565
  ____exports.ISCFeature[____exports.ISCFeature.RUN_IN_N_FRAMES] = "RUN_IN_N_FRAMES"
17566
17566
  ____exports.ISCFeature.RUN_NEXT_ROOM = 49
17567
17567
  ____exports.ISCFeature[____exports.ISCFeature.RUN_NEXT_ROOM] = "RUN_NEXT_ROOM"
17568
- ____exports.ISCFeature.SAVE_DATA_MANAGER = 50
17568
+ ____exports.ISCFeature.RUN_NEXT_RUN = 50
17569
+ ____exports.ISCFeature[____exports.ISCFeature.RUN_NEXT_RUN] = "RUN_NEXT_RUN"
17570
+ ____exports.ISCFeature.SAVE_DATA_MANAGER = 51
17569
17571
  ____exports.ISCFeature[____exports.ISCFeature.SAVE_DATA_MANAGER] = "SAVE_DATA_MANAGER"
17570
- ____exports.ISCFeature.SPAWN_ALT_ROCK_REWARDS = 51
17572
+ ____exports.ISCFeature.SPAWN_ALT_ROCK_REWARDS = 52
17571
17573
  ____exports.ISCFeature[____exports.ISCFeature.SPAWN_ALT_ROCK_REWARDS] = "SPAWN_ALT_ROCK_REWARDS"
17572
- ____exports.ISCFeature.SPAWN_COLLECTIBLE = 52
17574
+ ____exports.ISCFeature.SPAWN_COLLECTIBLE = 53
17573
17575
  ____exports.ISCFeature[____exports.ISCFeature.SPAWN_COLLECTIBLE] = "SPAWN_COLLECTIBLE"
17574
- ____exports.ISCFeature.STAGE_HISTORY = 53
17576
+ ____exports.ISCFeature.STAGE_HISTORY = 54
17575
17577
  ____exports.ISCFeature[____exports.ISCFeature.STAGE_HISTORY] = "STAGE_HISTORY"
17576
- ____exports.ISCFeature.START_AMBUSH = 54
17578
+ ____exports.ISCFeature.START_AMBUSH = 55
17577
17579
  ____exports.ISCFeature[____exports.ISCFeature.START_AMBUSH] = "START_AMBUSH"
17578
- ____exports.ISCFeature.TAINTED_LAZARUS_PLAYERS = 55
17580
+ ____exports.ISCFeature.TAINTED_LAZARUS_PLAYERS = 56
17579
17581
  ____exports.ISCFeature[____exports.ISCFeature.TAINTED_LAZARUS_PLAYERS] = "TAINTED_LAZARUS_PLAYERS"
17580
17582
  return ____exports
17581
17583
  end,
@@ -52782,6 +52784,44 @@ function PreventChildEntities.prototype.preventChildEntities(self, entity)
52782
52784
  v.room.preventingEntities:add(ptrHash)
52783
52785
  end
52784
52786
  __TS__DecorateLegacy({Exported}, PreventChildEntities.prototype, "preventChildEntities", true)
52787
+ return ____exports
52788
+ end,
52789
+ ["src.classes.features.other.RunNextRun"] = function(...)
52790
+ local ____lualib = require("lualib_bundle")
52791
+ local __TS__Class = ____lualib.__TS__Class
52792
+ local __TS__ClassExtends = ____lualib.__TS__ClassExtends
52793
+ local __TS__DecorateLegacy = ____lualib.__TS__DecorateLegacy
52794
+ local ____exports = {}
52795
+ local ____decorators = require("src.decorators")
52796
+ local Exported = ____decorators.Exported
52797
+ local ____ModCallbackCustom = require("src.enums.ModCallbackCustom")
52798
+ local ModCallbackCustom = ____ModCallbackCustom.ModCallbackCustom
52799
+ local ____array = require("src.functions.array")
52800
+ local emptyArray = ____array.emptyArray
52801
+ local ____Feature = require("src.classes.private.Feature")
52802
+ local Feature = ____Feature.Feature
52803
+ local v = {persistent = {queuedFunctions = {}}}
52804
+ ____exports.RunNextRun = __TS__Class()
52805
+ local RunNextRun = ____exports.RunNextRun
52806
+ RunNextRun.name = "RunNextRun"
52807
+ __TS__ClassExtends(RunNextRun, Feature)
52808
+ function RunNextRun.prototype.____constructor(self)
52809
+ Feature.prototype.____constructor(self)
52810
+ self.v = v
52811
+ self.vConditionalFunc = function() return false end
52812
+ self.postGameStartedReorderedFalse = function()
52813
+ for ____, func in ipairs(v.persistent.queuedFunctions) do
52814
+ func(nil)
52815
+ end
52816
+ emptyArray(nil, v.persistent.queuedFunctions)
52817
+ end
52818
+ self.customCallbacksUsed = {{ModCallbackCustom.POST_GAME_STARTED_REORDERED, self.postGameStartedReorderedFalse, {false}}}
52819
+ end
52820
+ function RunNextRun.prototype.runNextRun(self, func)
52821
+ local ____v_persistent_queuedFunctions_0 = v.persistent.queuedFunctions
52822
+ ____v_persistent_queuedFunctions_0[#____v_persistent_queuedFunctions_0 + 1] = func
52823
+ end
52824
+ __TS__DecorateLegacy({Exported}, RunNextRun.prototype, "runNextRun", true)
52785
52825
  return ____exports
52786
52826
  end,
52787
52827
  ["src.functions.projectiles"] = function(...)
@@ -53531,6 +53571,8 @@ local ____RunInNFrames = require("src.classes.features.other.RunInNFrames")
53531
53571
  local RunInNFrames = ____RunInNFrames.RunInNFrames
53532
53572
  local ____RunNextRoom = require("src.classes.features.other.RunNextRoom")
53533
53573
  local RunNextRoom = ____RunNextRoom.RunNextRoom
53574
+ local ____RunNextRun = require("src.classes.features.other.RunNextRun")
53575
+ local RunNextRun = ____RunNextRun.RunNextRun
53534
53576
  local ____SaveDataManager = require("src.classes.features.other.SaveDataManager")
53535
53577
  local SaveDataManager = ____SaveDataManager.SaveDataManager
53536
53578
  local ____SpawnCollectible = require("src.classes.features.other.SpawnCollectible")
@@ -53665,6 +53707,7 @@ function ____exports.getFeatures(self, mod, callbacks)
53665
53707
  [ISCFeature.ROOM_HISTORY] = roomHistory,
53666
53708
  [ISCFeature.RUN_IN_N_FRAMES] = runInNFrames,
53667
53709
  [ISCFeature.RUN_NEXT_ROOM] = runNextRoom,
53710
+ [ISCFeature.RUN_NEXT_RUN] = __TS__New(RunNextRun),
53668
53711
  [ISCFeature.SAVE_DATA_MANAGER] = saveDataManager,
53669
53712
  [ISCFeature.SPAWN_ALT_ROCK_REWARDS] = __TS__New(SpawnRockAltRewards, itemPoolDetection),
53670
53713
  [ISCFeature.SPAWN_COLLECTIBLE] = spawnCollectible,
@@ -54571,7 +54614,11 @@ ____exports.CHALLENGE_NAMES = {
54571
54614
  return ____exports
54572
54615
  end,
54573
54616
  ["src.functions.challenges"] = function(...)
54617
+ local ____lualib = require("lualib_bundle")
54618
+ local __TS__ArrayIncludes = ____lualib.__TS__ArrayIncludes
54574
54619
  local ____exports = {}
54620
+ local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
54621
+ local Challenge = ____isaac_2Dtypescript_2Ddefinitions.Challenge
54575
54622
  local ____challengeBosses = require("src.objects.challengeBosses")
54576
54623
  local CHALLENGE_BOSSES = ____challengeBosses.CHALLENGE_BOSSES
54577
54624
  local DEFAULT_CHALLENGE_BOSS_ID = ____challengeBosses.DEFAULT_CHALLENGE_BOSS_ID
@@ -54593,6 +54640,15 @@ function ____exports.getChallengeName(self, challenge)
54593
54640
  local challengeName = CHALLENGE_NAMES[challenge]
54594
54641
  return challengeName or DEFAULT_CHALLENGE_NAME
54595
54642
  end
54643
+ function ____exports.onAnyChallenge(self)
54644
+ local challenge = Isaac.GetChallenge()
54645
+ return challenge ~= Challenge.NULL
54646
+ end
54647
+ function ____exports.onChallenge(self, ...)
54648
+ local challenges = {...}
54649
+ local challenge = Isaac.GetChallenge()
54650
+ return __TS__ArrayIncludes(challenges, challenge)
54651
+ end
54596
54652
  return ____exports
54597
54653
  end,
54598
54654
  ["src.interfaces.ChargeBarSprites"] = function(...)
@@ -0,0 +1,16 @@
1
+ import { Feature } from "../../private/Feature";
2
+ export declare class RunNextRun extends Feature {
3
+ vConditionalFunc: () => boolean;
4
+ private readonly postGameStartedReorderedFalse;
5
+ /**
6
+ * Supply a function to run on the next `POST_GAME_STARTED` callback.
7
+ *
8
+ * Note that this function will not handle saving and quitting. If a player saving and quitting
9
+ * before the deferred function fires would cause a bug in your mod, then you should handle
10
+ * deferred functions manually using serializable data.
11
+ *
12
+ * In order to use this function, you must upgrade your mod with `ISCFeature.RUN_NEXT_ROOM`.
13
+ */
14
+ runNextRun(func: () => void): void;
15
+ }
16
+ //# sourceMappingURL=RunNextRun.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RunNextRun.d.ts","sourceRoot":"","sources":["../../../../../src/classes/features/other/RunNextRun.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAQhD,qBAAa,UAAW,SAAQ,OAAO;IAIrB,gBAAgB,QAAO,OAAO,CAAU;IAiBxD,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CAM5C;IAEF;;;;;;;;OAQG;IAEI,UAAU,CAAC,IAAI,EAAE,MAAM,IAAI,GAAG,IAAI;CAG1C"}
@@ -0,0 +1,36 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__Class = ____lualib.__TS__Class
3
+ local __TS__ClassExtends = ____lualib.__TS__ClassExtends
4
+ local __TS__DecorateLegacy = ____lualib.__TS__DecorateLegacy
5
+ local ____exports = {}
6
+ local ____decorators = require("src.decorators")
7
+ local Exported = ____decorators.Exported
8
+ local ____ModCallbackCustom = require("src.enums.ModCallbackCustom")
9
+ local ModCallbackCustom = ____ModCallbackCustom.ModCallbackCustom
10
+ local ____array = require("src.functions.array")
11
+ local emptyArray = ____array.emptyArray
12
+ local ____Feature = require("src.classes.private.Feature")
13
+ local Feature = ____Feature.Feature
14
+ local v = {persistent = {queuedFunctions = {}}}
15
+ ____exports.RunNextRun = __TS__Class()
16
+ local RunNextRun = ____exports.RunNextRun
17
+ RunNextRun.name = "RunNextRun"
18
+ __TS__ClassExtends(RunNextRun, Feature)
19
+ function RunNextRun.prototype.____constructor(self)
20
+ Feature.prototype.____constructor(self)
21
+ self.v = v
22
+ self.vConditionalFunc = function() return false end
23
+ self.postGameStartedReorderedFalse = function()
24
+ for ____, func in ipairs(v.persistent.queuedFunctions) do
25
+ func(nil)
26
+ end
27
+ emptyArray(nil, v.persistent.queuedFunctions)
28
+ end
29
+ self.customCallbacksUsed = {{ModCallbackCustom.POST_GAME_STARTED_REORDERED, self.postGameStartedReorderedFalse, {false}}}
30
+ end
31
+ function RunNextRun.prototype.runNextRun(self, func)
32
+ local ____v_persistent_queuedFunctions_0 = v.persistent.queuedFunctions
33
+ ____v_persistent_queuedFunctions_0[#____v_persistent_queuedFunctions_0 + 1] = func
34
+ end
35
+ __TS__DecorateLegacy({Exported}, RunNextRun.prototype, "runNextRun", true)
36
+ return ____exports
@@ -49,11 +49,12 @@ export declare enum ISCFeature {
49
49
  ROOM_HISTORY = 47,
50
50
  RUN_IN_N_FRAMES = 48,
51
51
  RUN_NEXT_ROOM = 49,
52
- SAVE_DATA_MANAGER = 50,
53
- SPAWN_ALT_ROCK_REWARDS = 51,
54
- SPAWN_COLLECTIBLE = 52,
55
- STAGE_HISTORY = 53,
56
- START_AMBUSH = 54,
57
- TAINTED_LAZARUS_PLAYERS = 55
52
+ RUN_NEXT_RUN = 50,
53
+ SAVE_DATA_MANAGER = 51,
54
+ SPAWN_ALT_ROCK_REWARDS = 52,
55
+ SPAWN_COLLECTIBLE = 53,
56
+ STAGE_HISTORY = 54,
57
+ START_AMBUSH = 55,
58
+ TAINTED_LAZARUS_PLAYERS = 56
58
59
  }
59
60
  //# sourceMappingURL=ISCFeature.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ISCFeature.d.ts","sourceRoot":"","sources":["../../../src/enums/ISCFeature.ts"],"names":[],"mappings":"AAAA,oBAAY,UAAU;IAEpB,aAAa,IAAA;IACb,iBAAiB,IAAA;IACjB,cAAc,IAAA;IACd,+BAA+B,IAAA;IAC/B,4BAA4B,IAAA;IAC5B,4BAA4B,IAAA;IAC5B,wBAAwB,IAAA;IACxB,qBAAqB,IAAA;IACrB,uBAAuB,IAAA;IACvB,4BAA4B,IAAA;IAC5B,0BAA0B,KAAA;IAC1B,wBAAwB,KAAA;IACxB,qBAAqB,KAAA;IACrB,qBAAqB,KAAA;IAGrB,2BAA2B,KAAA;IAC3B,eAAe,KAAA;IACf,0BAA0B,KAAA;IAC1B,oBAAoB,KAAA;IACpB,iBAAiB,KAAA;IACjB,cAAc,KAAA;IACd,cAAc,KAAA;IACd,aAAa,KAAA;IACb,gBAAgB,KAAA;IAChB,aAAa,KAAA;IACb,gBAAgB,KAAA;IAChB,iBAAiB,KAAA;IACjB,cAAc,KAAA;IACd,0BAA0B,KAAA;IAC1B,eAAe,KAAA;IACf,UAAU,KAAA;IACV,gBAAgB,KAAA;IAChB,gBAAgB,KAAA;IAChB,sBAAsB,KAAA;IACtB,mBAAmB,KAAA;IACnB,wBAAwB,KAAA;IACxB,mBAAmB,KAAA;IACnB,cAAc,KAAA;IACd,KAAK,KAAA;IACL,mBAAmB,KAAA;IACnB,qBAAqB,KAAA;IACrB,2BAA2B,KAAA;IAC3B,cAAc,KAAA;IACd,WAAW,KAAA;IACX,sBAAsB,KAAA;IACtB,4BAA4B,KAAA;IAC5B,2BAA2B,KAAA;IAC3B,gBAAgB,KAAA;IAChB,YAAY,KAAA;IACZ,eAAe,KAAA;IACf,aAAa,KAAA;IACb,iBAAiB,KAAA;IACjB,sBAAsB,KAAA;IACtB,iBAAiB,KAAA;IACjB,aAAa,KAAA;IACb,YAAY,KAAA;IACZ,uBAAuB,KAAA;CACxB"}
1
+ {"version":3,"file":"ISCFeature.d.ts","sourceRoot":"","sources":["../../../src/enums/ISCFeature.ts"],"names":[],"mappings":"AAAA,oBAAY,UAAU;IAEpB,aAAa,IAAA;IACb,iBAAiB,IAAA;IACjB,cAAc,IAAA;IACd,+BAA+B,IAAA;IAC/B,4BAA4B,IAAA;IAC5B,4BAA4B,IAAA;IAC5B,wBAAwB,IAAA;IACxB,qBAAqB,IAAA;IACrB,uBAAuB,IAAA;IACvB,4BAA4B,IAAA;IAC5B,0BAA0B,KAAA;IAC1B,wBAAwB,KAAA;IACxB,qBAAqB,KAAA;IACrB,qBAAqB,KAAA;IAGrB,2BAA2B,KAAA;IAC3B,eAAe,KAAA;IACf,0BAA0B,KAAA;IAC1B,oBAAoB,KAAA;IACpB,iBAAiB,KAAA;IACjB,cAAc,KAAA;IACd,cAAc,KAAA;IACd,aAAa,KAAA;IACb,gBAAgB,KAAA;IAChB,aAAa,KAAA;IACb,gBAAgB,KAAA;IAChB,iBAAiB,KAAA;IACjB,cAAc,KAAA;IACd,0BAA0B,KAAA;IAC1B,eAAe,KAAA;IACf,UAAU,KAAA;IACV,gBAAgB,KAAA;IAChB,gBAAgB,KAAA;IAChB,sBAAsB,KAAA;IACtB,mBAAmB,KAAA;IACnB,wBAAwB,KAAA;IACxB,mBAAmB,KAAA;IACnB,cAAc,KAAA;IACd,KAAK,KAAA;IACL,mBAAmB,KAAA;IACnB,qBAAqB,KAAA;IACrB,2BAA2B,KAAA;IAC3B,cAAc,KAAA;IACd,WAAW,KAAA;IACX,sBAAsB,KAAA;IACtB,4BAA4B,KAAA;IAC5B,2BAA2B,KAAA;IAC3B,gBAAgB,KAAA;IAChB,YAAY,KAAA;IACZ,eAAe,KAAA;IACf,aAAa,KAAA;IACb,YAAY,KAAA;IACZ,iBAAiB,KAAA;IACjB,sBAAsB,KAAA;IACtB,iBAAiB,KAAA;IACjB,aAAa,KAAA;IACb,YAAY,KAAA;IACZ,uBAAuB,KAAA;CACxB"}
@@ -100,16 +100,18 @@ ____exports.ISCFeature.RUN_IN_N_FRAMES = 48
100
100
  ____exports.ISCFeature[____exports.ISCFeature.RUN_IN_N_FRAMES] = "RUN_IN_N_FRAMES"
101
101
  ____exports.ISCFeature.RUN_NEXT_ROOM = 49
102
102
  ____exports.ISCFeature[____exports.ISCFeature.RUN_NEXT_ROOM] = "RUN_NEXT_ROOM"
103
- ____exports.ISCFeature.SAVE_DATA_MANAGER = 50
103
+ ____exports.ISCFeature.RUN_NEXT_RUN = 50
104
+ ____exports.ISCFeature[____exports.ISCFeature.RUN_NEXT_RUN] = "RUN_NEXT_RUN"
105
+ ____exports.ISCFeature.SAVE_DATA_MANAGER = 51
104
106
  ____exports.ISCFeature[____exports.ISCFeature.SAVE_DATA_MANAGER] = "SAVE_DATA_MANAGER"
105
- ____exports.ISCFeature.SPAWN_ALT_ROCK_REWARDS = 51
107
+ ____exports.ISCFeature.SPAWN_ALT_ROCK_REWARDS = 52
106
108
  ____exports.ISCFeature[____exports.ISCFeature.SPAWN_ALT_ROCK_REWARDS] = "SPAWN_ALT_ROCK_REWARDS"
107
- ____exports.ISCFeature.SPAWN_COLLECTIBLE = 52
109
+ ____exports.ISCFeature.SPAWN_COLLECTIBLE = 53
108
110
  ____exports.ISCFeature[____exports.ISCFeature.SPAWN_COLLECTIBLE] = "SPAWN_COLLECTIBLE"
109
- ____exports.ISCFeature.STAGE_HISTORY = 53
111
+ ____exports.ISCFeature.STAGE_HISTORY = 54
110
112
  ____exports.ISCFeature[____exports.ISCFeature.STAGE_HISTORY] = "STAGE_HISTORY"
111
- ____exports.ISCFeature.START_AMBUSH = 54
113
+ ____exports.ISCFeature.START_AMBUSH = 55
112
114
  ____exports.ISCFeature[____exports.ISCFeature.START_AMBUSH] = "START_AMBUSH"
113
- ____exports.ISCFeature.TAINTED_LAZARUS_PLAYERS = 55
115
+ ____exports.ISCFeature.TAINTED_LAZARUS_PLAYERS = 56
114
116
  ____exports.ISCFeature[____exports.ISCFeature.TAINTED_LAZARUS_PLAYERS] = "TAINTED_LAZARUS_PLAYERS"
115
117
  return ____exports
@@ -49,6 +49,7 @@ import { RoomClearFrame } from "./classes/features/other/RoomClearFrame";
49
49
  import { RoomHistory } from "./classes/features/other/RoomHistory";
50
50
  import { RunInNFrames } from "./classes/features/other/RunInNFrames";
51
51
  import { RunNextRoom } from "./classes/features/other/RunNextRoom";
52
+ import { RunNextRun } from "./classes/features/other/RunNextRun";
52
53
  import { SaveDataManager } from "./classes/features/other/SaveDataManager";
53
54
  import { SpawnCollectible } from "./classes/features/other/SpawnCollectible";
54
55
  import { SpawnRockAltRewards } from "./classes/features/other/SpawnRockAltRewards";
@@ -108,6 +109,7 @@ export interface ISCFeatureToClass {
108
109
  [ISCFeature.ROOM_HISTORY]: RoomHistory;
109
110
  [ISCFeature.RUN_IN_N_FRAMES]: RunInNFrames;
110
111
  [ISCFeature.RUN_NEXT_ROOM]: RunNextRoom;
112
+ [ISCFeature.RUN_NEXT_RUN]: RunNextRun;
111
113
  [ISCFeature.SAVE_DATA_MANAGER]: SaveDataManager;
112
114
  [ISCFeature.SPAWN_ALT_ROCK_REWARDS]: SpawnRockAltRewards;
113
115
  [ISCFeature.SPAWN_COLLECTIBLE]: SpawnCollectible;
@@ -166,11 +168,12 @@ export declare function getFeatures(mod: ModUpgradedInterface, callbacks: ModCal
166
168
  readonly 47: RoomHistory;
167
169
  readonly 48: RunInNFrames;
168
170
  readonly 49: RunNextRoom;
169
- readonly 50: SaveDataManager;
170
- readonly 51: SpawnRockAltRewards;
171
- readonly 52: SpawnCollectible;
172
- readonly 53: StageHistory;
173
- readonly 54: StartAmbush;
174
- readonly 55: TaintedLazarusPlayers;
171
+ readonly 50: RunNextRun;
172
+ readonly 51: SaveDataManager;
173
+ readonly 52: SpawnRockAltRewards;
174
+ readonly 53: SpawnCollectible;
175
+ readonly 54: StageHistory;
176
+ readonly 55: StartAmbush;
177
+ readonly 56: TaintedLazarusPlayers;
175
178
  };
176
179
  //# sourceMappingURL=features.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"features.d.ts","sourceRoot":"","sources":["../../src/features.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"features.d.ts","sourceRoot":"","sources":["../../src/features.ts"],"names":[],"mappings":"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"}
@@ -101,6 +101,8 @@ local ____RunInNFrames = require("src.classes.features.other.RunInNFrames")
101
101
  local RunInNFrames = ____RunInNFrames.RunInNFrames
102
102
  local ____RunNextRoom = require("src.classes.features.other.RunNextRoom")
103
103
  local RunNextRoom = ____RunNextRoom.RunNextRoom
104
+ local ____RunNextRun = require("src.classes.features.other.RunNextRun")
105
+ local RunNextRun = ____RunNextRun.RunNextRun
104
106
  local ____SaveDataManager = require("src.classes.features.other.SaveDataManager")
105
107
  local SaveDataManager = ____SaveDataManager.SaveDataManager
106
108
  local ____SpawnCollectible = require("src.classes.features.other.SpawnCollectible")
@@ -235,6 +237,7 @@ function ____exports.getFeatures(self, mod, callbacks)
235
237
  [ISCFeature.ROOM_HISTORY] = roomHistory,
236
238
  [ISCFeature.RUN_IN_N_FRAMES] = runInNFrames,
237
239
  [ISCFeature.RUN_NEXT_ROOM] = runNextRoom,
240
+ [ISCFeature.RUN_NEXT_RUN] = __TS__New(RunNextRun),
238
241
  [ISCFeature.SAVE_DATA_MANAGER] = saveDataManager,
239
242
  [ISCFeature.SPAWN_ALT_ROCK_REWARDS] = __TS__New(SpawnRockAltRewards, itemPoolDetection),
240
243
  [ISCFeature.SPAWN_COLLECTIBLE] = spawnCollectible,
@@ -1,4 +1,5 @@
1
- import type { BossID, Challenge, PlayerType } from "isaac-typescript-definitions";
1
+ import type { BossID, PlayerType } from "isaac-typescript-definitions";
2
+ import { Challenge } from "isaac-typescript-definitions";
2
3
  /**
3
4
  * Get the final boss of a challenge. This will only work for vanilla challenges.
4
5
  *
@@ -20,4 +21,13 @@ export declare function getChallengeCharacter(challenge: Challenge): PlayerType;
20
21
  * For modded challenges, "Unknown" will be returned.
21
22
  */
22
23
  export declare function getChallengeName(challenge: Challenge): string;
24
+ /** Helper function to see if the player is playing any challenge. */
25
+ export declare function onAnyChallenge(): boolean;
26
+ /**
27
+ * Helper function to check to see if the player is playing a particular challenge.
28
+ *
29
+ * This function is variadic, meaning that you can specify as many challenges as you want to check
30
+ * for.
31
+ */
32
+ export declare function onChallenge(...challenges: Challenge[]): boolean;
23
33
  //# sourceMappingURL=challenges.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"challenges.d.ts","sourceRoot":"","sources":["../../../src/functions/challenges.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACN,SAAS,EACT,UAAU,EACX,MAAM,8BAA8B,CAAC;AActC;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAK7D;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,SAAS,GAAG,UAAU,CAKtE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAK7D"}
1
+ {"version":3,"file":"challenges.d.ts","sourceRoot":"","sources":["../../../src/functions/challenges.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAczD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAK7D;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,SAAS,GAAG,UAAU,CAKtE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAK7D;AAED,qEAAqE;AACrE,wBAAgB,cAAc,IAAI,OAAO,CAGxC;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,UAAU,EAAE,SAAS,EAAE,GAAG,OAAO,CAG/D"}
@@ -1,4 +1,8 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__ArrayIncludes = ____lualib.__TS__ArrayIncludes
1
3
  local ____exports = {}
4
+ local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
5
+ local Challenge = ____isaac_2Dtypescript_2Ddefinitions.Challenge
2
6
  local ____challengeBosses = require("src.objects.challengeBosses")
3
7
  local CHALLENGE_BOSSES = ____challengeBosses.CHALLENGE_BOSSES
4
8
  local DEFAULT_CHALLENGE_BOSS_ID = ____challengeBosses.DEFAULT_CHALLENGE_BOSS_ID
@@ -32,4 +36,18 @@ function ____exports.getChallengeName(self, challenge)
32
36
  local challengeName = CHALLENGE_NAMES[challenge]
33
37
  return challengeName or DEFAULT_CHALLENGE_NAME
34
38
  end
39
+ --- Helper function to see if the player is playing any challenge.
40
+ function ____exports.onAnyChallenge(self)
41
+ local challenge = Isaac.GetChallenge()
42
+ return challenge ~= Challenge.NULL
43
+ end
44
+ --- Helper function to check to see if the player is playing a particular challenge.
45
+ --
46
+ -- This function is variadic, meaning that you can specify as many challenges as you want to check
47
+ -- for.
48
+ function ____exports.onChallenge(self, ...)
49
+ local challenges = {...}
50
+ local challenge = Isaac.GetChallenge()
51
+ return __TS__ArrayIncludes(challenges, challenge)
52
+ end
35
53
  return ____exports
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "isaacscript-common",
3
- "version": "59.0.0",
3
+ "version": "59.2.0",
4
4
  "description": "Helper functions and features for IsaacScript mods.",
5
5
  "keywords": [
6
6
  "isaac",
@@ -0,0 +1,54 @@
1
+ import { Exported } from "../../../decorators";
2
+ import { ModCallbackCustom } from "../../../enums/ModCallbackCustom";
3
+ import { emptyArray } from "../../../functions/array";
4
+ import { Feature } from "../../private/Feature";
5
+
6
+ const v = {
7
+ persistent: {
8
+ queuedFunctions: [] as Array<() => void>,
9
+ },
10
+ };
11
+
12
+ export class RunNextRun extends Feature {
13
+ /** @internal */
14
+ public override v = v;
15
+
16
+ public override vConditionalFunc = (): boolean => false;
17
+
18
+ /** @internal */
19
+ constructor() {
20
+ super();
21
+
22
+ this.customCallbacksUsed = [
23
+ [
24
+ ModCallbackCustom.POST_GAME_STARTED_REORDERED,
25
+ this.postGameStartedReorderedFalse,
26
+ [false],
27
+ ],
28
+ ];
29
+ }
30
+
31
+ // ModCallbackCustom.POST_GAME_STARTED_REORDERED
32
+ // false
33
+ private readonly postGameStartedReorderedFalse = () => {
34
+ for (const func of v.persistent.queuedFunctions) {
35
+ func();
36
+ }
37
+
38
+ emptyArray(v.persistent.queuedFunctions);
39
+ };
40
+
41
+ /**
42
+ * Supply a function to run on the next `POST_GAME_STARTED` callback.
43
+ *
44
+ * Note that this function will not handle saving and quitting. If a player saving and quitting
45
+ * before the deferred function fires would cause a bug in your mod, then you should handle
46
+ * deferred functions manually using serializable data.
47
+ *
48
+ * In order to use this function, you must upgrade your mod with `ISCFeature.RUN_NEXT_ROOM`.
49
+ */
50
+ @Exported
51
+ public runNextRun(func: () => void): void {
52
+ v.persistent.queuedFunctions.push(func);
53
+ }
54
+ }
@@ -52,6 +52,7 @@ export enum ISCFeature {
52
52
  ROOM_HISTORY,
53
53
  RUN_IN_N_FRAMES,
54
54
  RUN_NEXT_ROOM,
55
+ RUN_NEXT_RUN,
55
56
  SAVE_DATA_MANAGER,
56
57
  SPAWN_ALT_ROCK_REWARDS,
57
58
  SPAWN_COLLECTIBLE,
package/src/features.ts CHANGED
@@ -49,6 +49,7 @@ import { RoomClearFrame } from "./classes/features/other/RoomClearFrame";
49
49
  import { RoomHistory } from "./classes/features/other/RoomHistory";
50
50
  import { RunInNFrames } from "./classes/features/other/RunInNFrames";
51
51
  import { RunNextRoom } from "./classes/features/other/RunNextRoom";
52
+ import { RunNextRun } from "./classes/features/other/RunNextRun";
52
53
  import { SaveDataManager } from "./classes/features/other/SaveDataManager";
53
54
  import { SpawnCollectible } from "./classes/features/other/SpawnCollectible";
54
55
  import { SpawnRockAltRewards } from "./classes/features/other/SpawnRockAltRewards";
@@ -115,6 +116,7 @@ export interface ISCFeatureToClass {
115
116
  [ISCFeature.ROOM_HISTORY]: RoomHistory;
116
117
  [ISCFeature.RUN_IN_N_FRAMES]: RunInNFrames;
117
118
  [ISCFeature.RUN_NEXT_ROOM]: RunNextRoom;
119
+ [ISCFeature.RUN_NEXT_RUN]: RunNextRun;
118
120
  [ISCFeature.SAVE_DATA_MANAGER]: SaveDataManager;
119
121
  [ISCFeature.SPAWN_ALT_ROCK_REWARDS]: SpawnRockAltRewards;
120
122
  [ISCFeature.SPAWN_COLLECTIBLE]: SpawnCollectible;
@@ -297,6 +299,7 @@ export function getFeatures(
297
299
  [ISCFeature.ROOM_HISTORY]: roomHistory,
298
300
  [ISCFeature.RUN_IN_N_FRAMES]: runInNFrames,
299
301
  [ISCFeature.RUN_NEXT_ROOM]: runNextRoom,
302
+ [ISCFeature.RUN_NEXT_RUN]: new RunNextRun(),
300
303
  [ISCFeature.SAVE_DATA_MANAGER]: saveDataManager,
301
304
  [ISCFeature.SPAWN_ALT_ROCK_REWARDS]: new SpawnRockAltRewards(
302
305
  itemPoolDetection,
@@ -1,8 +1,5 @@
1
- import type {
2
- BossID,
3
- Challenge,
4
- PlayerType,
5
- } from "isaac-typescript-definitions";
1
+ import type { BossID, PlayerType } from "isaac-typescript-definitions";
2
+ import { Challenge } from "isaac-typescript-definitions";
6
3
  import {
7
4
  CHALLENGE_BOSSES,
8
5
  DEFAULT_CHALLENGE_BOSS_ID,
@@ -54,3 +51,20 @@ export function getChallengeName(challenge: Challenge): string {
54
51
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
55
52
  return challengeName ?? DEFAULT_CHALLENGE_NAME;
56
53
  }
54
+
55
+ /** Helper function to see if the player is playing any challenge. */
56
+ export function onAnyChallenge(): boolean {
57
+ const challenge = Isaac.GetChallenge();
58
+ return challenge !== Challenge.NULL;
59
+ }
60
+
61
+ /**
62
+ * Helper function to check to see if the player is playing a particular challenge.
63
+ *
64
+ * This function is variadic, meaning that you can specify as many challenges as you want to check
65
+ * for.
66
+ */
67
+ export function onChallenge(...challenges: Challenge[]): boolean {
68
+ const challenge = Isaac.GetChallenge();
69
+ return challenges.includes(challenge);
70
+ }