isaacscript-common 21.7.0 → 21.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5921,6 +5921,13 @@ export declare function getRandomIndexFromWeightedArray<T>(weightedArray: Weight
5921
5921
  */
5922
5922
  export declare function getRandomInt(min: int, max: int, seedOrRNG?: Seed | RNG, exceptions?: int[] | readonly int[]): int;
5923
5923
 
5924
+ /**
5925
+ * Helper function to get a random item pool. This is as simple as getting a random value from the
5926
+ * `ItemPoolType` enum, since `ItemPoolType.SHELL_GAME` (7) is not a real item pool and the Greed
5927
+ * Mode item pools should be excluded if not playing in Greed Mode.
5928
+ */
5929
+ export declare function getRandomItemPool(): ItemPoolType;
5930
+
5924
5931
  /**
5925
5932
  * Helper function to get a random JSON entity from an array of JSON entities.
5926
5933
  *
@@ -1,6 +1,6 @@
1
1
  --[[
2
2
 
3
- isaacscript-common 21.7.0
3
+ isaacscript-common 21.8.0
4
4
 
5
5
  This is the "isaacscript-common" library, which was created with the IsaacScript tool.
6
6
 
@@ -20336,6 +20336,7 @@ local GridEntityType = ____isaac_2Dtypescript_2Ddefinitions.GridEntityType
20336
20336
  local GridEntityXMLType = ____isaac_2Dtypescript_2Ddefinitions.GridEntityXMLType
20337
20337
  local ItemConfigCardType = ____isaac_2Dtypescript_2Ddefinitions.ItemConfigCardType
20338
20338
  local ItemConfigTag = ____isaac_2Dtypescript_2Ddefinitions.ItemConfigTag
20339
+ local ItemPoolType = ____isaac_2Dtypescript_2Ddefinitions.ItemPoolType
20339
20340
  local Keyboard = ____isaac_2Dtypescript_2Ddefinitions.Keyboard
20340
20341
  local PillColor = ____isaac_2Dtypescript_2Ddefinitions.PillColor
20341
20342
  local PlayerForm = ____isaac_2Dtypescript_2Ddefinitions.PlayerForm
@@ -20360,6 +20361,7 @@ ____exports.GRID_ENTITY_TYPE_VALUES = getEnumValues(nil, GridEntityType)
20360
20361
  ____exports.GRID_ENTITY_XML_TYPE_VALUES = getEnumValues(nil, GridEntityXMLType)
20361
20362
  ____exports.ITEM_CONFIG_TAG_VALUES = getEnumValues(nil, ItemConfigTag)
20362
20363
  ____exports.ITEM_CONFIG_CARD_TYPE_VALUES = getEnumValues(nil, ItemConfigCardType)
20364
+ ____exports.ITEM_POOL_TYPE_VALUES = getEnumValues(nil, ItemPoolType)
20363
20365
  ____exports.KEYBOARD_VALUES = getEnumValues(nil, Keyboard)
20364
20366
  ____exports.HEALTH_TYPE_VALUES = getEnumValues(nil, HealthType)
20365
20367
  ____exports.PILL_COLOR_VALUES = getEnumValues(nil, PillColor)
@@ -51382,6 +51384,68 @@ function ____exports.initArray(self, defaultValue, size)
51382
51384
  )
51383
51385
  return array
51384
51386
  end
51387
+ return ____exports
51388
+ end,
51389
+ ["src.functions.itemPool"] = function(...)
51390
+ local ____lualib = require("lualib_bundle")
51391
+ local __TS__SparseArrayNew = ____lualib.__TS__SparseArrayNew
51392
+ local __TS__SparseArrayPush = ____lualib.__TS__SparseArrayPush
51393
+ local __TS__SparseArraySpread = ____lualib.__TS__SparseArraySpread
51394
+ local ____exports = {}
51395
+ local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
51396
+ local ItemPoolType = ____isaac_2Dtypescript_2Ddefinitions.ItemPoolType
51397
+ local ____cachedEnumValues = require("src.arrays.cachedEnumValues")
51398
+ local ITEM_POOL_TYPE_VALUES = ____cachedEnumValues.ITEM_POOL_TYPE_VALUES
51399
+ local ____array = require("src.functions.array")
51400
+ local arrayRemove = ____array.arrayRemove
51401
+ local getRandomArrayElement = ____array.getRandomArrayElement
51402
+ local ____run = require("src.functions.run")
51403
+ local isGreedMode = ____run.isGreedMode
51404
+ local NORMAL_MODE_ONLY_ITEM_POOL_TYPES = {
51405
+ ItemPoolType.TREASURE,
51406
+ ItemPoolType.BOSS,
51407
+ ItemPoolType.SHOP,
51408
+ ItemPoolType.DEVIL,
51409
+ ItemPoolType.ANGEL,
51410
+ ItemPoolType.CURSE,
51411
+ ItemPoolType.SECRET
51412
+ }
51413
+ local GREED_MODE_ONLY_ITEM_POOL_TYPES = {
51414
+ ItemPoolType.GREED_TREASURE,
51415
+ ItemPoolType.GREED_BOSS,
51416
+ ItemPoolType.GREED_SHOP,
51417
+ ItemPoolType.GREED_DEVIL,
51418
+ ItemPoolType.GREED_ANGEL,
51419
+ ItemPoolType.GREED_CURSE,
51420
+ ItemPoolType.GREED_SECRET
51421
+ }
51422
+ local FAKE_ITEM_POOL_TYPES = {ItemPoolType.SHELL_GAME}
51423
+ local ____arrayRemove_1 = arrayRemove
51424
+ local ____array_0 = __TS__SparseArrayNew(
51425
+ nil,
51426
+ ITEM_POOL_TYPE_VALUES,
51427
+ table.unpack(GREED_MODE_ONLY_ITEM_POOL_TYPES)
51428
+ )
51429
+ __TS__SparseArrayPush(
51430
+ ____array_0,
51431
+ table.unpack(FAKE_ITEM_POOL_TYPES)
51432
+ )
51433
+ local NORMAL_MODE_ITEM_POOL_TYPES = ____arrayRemove_1(__TS__SparseArraySpread(____array_0))
51434
+ local ____arrayRemove_3 = arrayRemove
51435
+ local ____array_2 = __TS__SparseArrayNew(
51436
+ nil,
51437
+ ITEM_POOL_TYPE_VALUES,
51438
+ table.unpack(NORMAL_MODE_ONLY_ITEM_POOL_TYPES)
51439
+ )
51440
+ __TS__SparseArrayPush(
51441
+ ____array_2,
51442
+ table.unpack(FAKE_ITEM_POOL_TYPES)
51443
+ )
51444
+ local GREED_MODE_ITEM_POOL_TYPES = ____arrayRemove_3(__TS__SparseArraySpread(____array_2))
51445
+ function ____exports.getRandomItemPool(self)
51446
+ local itemPoolTypes = isGreedMode(nil) and GREED_MODE_ITEM_POOL_TYPES or NORMAL_MODE_ITEM_POOL_TYPES
51447
+ return getRandomArrayElement(nil, itemPoolTypes)
51448
+ end
51385
51449
  return ____exports
51386
51450
  end,
51387
51451
  ["src.objects.languageNames"] = function(...)
@@ -52408,6 +52472,14 @@ do
52408
52472
  end
52409
52473
  end
52410
52474
  end
52475
+ do
52476
+ local ____export = require("src.functions.itemPool")
52477
+ for ____exportKey, ____exportValue in pairs(____export) do
52478
+ if ____exportKey ~= "default" then
52479
+ ____exports[____exportKey] = ____exportValue
52480
+ end
52481
+ end
52482
+ end
52411
52483
  do
52412
52484
  local ____export = require("src.functions.jsonHelpers")
52413
52485
  for ____exportKey, ____exportValue in pairs(____export) do
@@ -53508,6 +53580,14 @@ do
53508
53580
  end
53509
53581
  end
53510
53582
  end
53583
+ do
53584
+ local ____export = require("src.functions.itemPool")
53585
+ for ____exportKey, ____exportValue in pairs(____export) do
53586
+ if ____exportKey ~= "default" then
53587
+ ____exports[____exportKey] = ____exportValue
53588
+ end
53589
+ end
53590
+ end
53511
53591
  do
53512
53592
  local ____export = require("src.functions.jsonHelpers")
53513
53593
  for ____exportKey, ____exportValue in pairs(____export) do
@@ -1,4 +1,4 @@
1
- import { ActiveSlot, CacheFlag, ControllerIndex, DoorSlot, DoorSlotFlag, GridEntityType, GridEntityXMLType, ItemConfigCardType, ItemConfigTag, Keyboard, PillColor, PlayerForm, PocketItemSlot, RoomShape, SoundEffect, TrinketSlot } from "isaac-typescript-definitions";
1
+ import { ActiveSlot, CacheFlag, ControllerIndex, DoorSlot, DoorSlotFlag, GridEntityType, GridEntityXMLType, ItemConfigCardType, ItemConfigTag, ItemPoolType, Keyboard, PillColor, PlayerForm, PocketItemSlot, RoomShape, SoundEffect, TrinketSlot } from "isaac-typescript-definitions";
2
2
  import { HealthType } from "../enums/HealthType";
3
3
  import { SerializationBrand } from "../enums/SerializationBrand";
4
4
  import { StatType } from "../enums/StatType";
@@ -11,6 +11,7 @@ export declare const GRID_ENTITY_TYPE_VALUES: readonly GridEntityType[];
11
11
  export declare const GRID_ENTITY_XML_TYPE_VALUES: readonly GridEntityXMLType[];
12
12
  export declare const ITEM_CONFIG_TAG_VALUES: readonly ItemConfigTag[];
13
13
  export declare const ITEM_CONFIG_CARD_TYPE_VALUES: readonly ItemConfigCardType[];
14
+ export declare const ITEM_POOL_TYPE_VALUES: readonly ItemPoolType[];
14
15
  export declare const KEYBOARD_VALUES: readonly Keyboard[];
15
16
  export declare const HEALTH_TYPE_VALUES: readonly HealthType[];
16
17
  export declare const PILL_COLOR_VALUES: readonly PillColor[];
@@ -1 +1 @@
1
- {"version":3,"file":"cachedEnumValues.d.ts","sourceRoot":"","sources":["../../../src/arrays/cachedEnumValues.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,UAAU,EACV,SAAS,EACT,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,QAAQ,EACR,SAAS,EACT,UAAU,EACV,cAAc,EACd,SAAS,EACT,WAAW,EACX,WAAW,EACZ,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,eAAO,MAAM,kBAAkB,EAAE,SAAS,UAAU,EACzB,CAAC;AAE5B,eAAO,MAAM,iBAAiB,EAAE,SAAS,SAAS,EAA6B,CAAC;AAEhF,eAAO,MAAM,uBAAuB,EAAE,SAAS,eAAe,EAC9B,CAAC;AAEjC,eAAO,MAAM,qBAAqB,EAAE,SAAS,YAAY,EAC5B,CAAC;AAE9B,eAAO,MAAM,gBAAgB,EAAE,SAAS,QAAQ,EAA4B,CAAC;AAE7E,eAAO,MAAM,uBAAuB,EAAE,SAAS,cAAc,EAC9B,CAAC;AAEhC,eAAO,MAAM,2BAA2B,EAAE,SAAS,iBAAiB,EAClC,CAAC;AAEnC,eAAO,MAAM,sBAAsB,EAAE,SAAS,aAAa,EAC7B,CAAC;AAE/B,eAAO,MAAM,4BAA4B,EAAE,SAAS,kBAAkB,EACnC,CAAC;AAEpC,eAAO,MAAM,eAAe,EAAE,SAAS,QAAQ,EAA4B,CAAC;AAE5E,eAAO,MAAM,kBAAkB,EAAE,SAAS,UAAU,EACzB,CAAC;AAE5B,eAAO,MAAM,iBAAiB,EAAE,SAAS,SAAS,EAA6B,CAAC;AAEhF,eAAO,MAAM,kBAAkB,EAAE,SAAS,UAAU,EACzB,CAAC;AAE5B,eAAO,MAAM,uBAAuB,EAAE,SAAS,cAAc,EAC9B,CAAC;AAEhC,eAAO,MAAM,iBAAiB,EAAE,SAAS,SAAS,EAA6B,CAAC;AAEhF,eAAO,MAAM,0BAA0B,EAAE,SAAS,kBAAkB,EACjC,CAAC;AAEpC,eAAO,MAAM,mBAAmB,EAAE,SAAS,WAAW,EAC1B,CAAC;AAE7B,eAAO,MAAM,gBAAgB,EAAE,SAAS,QAAQ,EAA4B,CAAC;AAE7E,eAAO,MAAM,mBAAmB,EAAE,SAAS,WAAW,EAC1B,CAAC"}
1
+ {"version":3,"file":"cachedEnumValues.d.ts","sourceRoot":"","sources":["../../../src/arrays/cachedEnumValues.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,UAAU,EACV,SAAS,EACT,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,UAAU,EACV,cAAc,EACd,SAAS,EACT,WAAW,EACX,WAAW,EACZ,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,eAAO,MAAM,kBAAkB,EAAE,SAAS,UAAU,EACzB,CAAC;AAE5B,eAAO,MAAM,iBAAiB,EAAE,SAAS,SAAS,EAA6B,CAAC;AAEhF,eAAO,MAAM,uBAAuB,EAAE,SAAS,eAAe,EAC9B,CAAC;AAEjC,eAAO,MAAM,qBAAqB,EAAE,SAAS,YAAY,EAC5B,CAAC;AAE9B,eAAO,MAAM,gBAAgB,EAAE,SAAS,QAAQ,EAA4B,CAAC;AAE7E,eAAO,MAAM,uBAAuB,EAAE,SAAS,cAAc,EAC9B,CAAC;AAEhC,eAAO,MAAM,2BAA2B,EAAE,SAAS,iBAAiB,EAClC,CAAC;AAEnC,eAAO,MAAM,sBAAsB,EAAE,SAAS,aAAa,EAC7B,CAAC;AAE/B,eAAO,MAAM,4BAA4B,EAAE,SAAS,kBAAkB,EACnC,CAAC;AAEpC,eAAO,MAAM,qBAAqB,EAAE,SAAS,YAAY,EAC5B,CAAC;AAE9B,eAAO,MAAM,eAAe,EAAE,SAAS,QAAQ,EAA4B,CAAC;AAE5E,eAAO,MAAM,kBAAkB,EAAE,SAAS,UAAU,EACzB,CAAC;AAE5B,eAAO,MAAM,iBAAiB,EAAE,SAAS,SAAS,EAA6B,CAAC;AAEhF,eAAO,MAAM,kBAAkB,EAAE,SAAS,UAAU,EACzB,CAAC;AAE5B,eAAO,MAAM,uBAAuB,EAAE,SAAS,cAAc,EAC9B,CAAC;AAEhC,eAAO,MAAM,iBAAiB,EAAE,SAAS,SAAS,EAA6B,CAAC;AAEhF,eAAO,MAAM,0BAA0B,EAAE,SAAS,kBAAkB,EACjC,CAAC;AAEpC,eAAO,MAAM,mBAAmB,EAAE,SAAS,WAAW,EAC1B,CAAC;AAE7B,eAAO,MAAM,gBAAgB,EAAE,SAAS,QAAQ,EAA4B,CAAC;AAE7E,eAAO,MAAM,mBAAmB,EAAE,SAAS,WAAW,EAC1B,CAAC"}
@@ -9,6 +9,7 @@ local GridEntityType = ____isaac_2Dtypescript_2Ddefinitions.GridEntityType
9
9
  local GridEntityXMLType = ____isaac_2Dtypescript_2Ddefinitions.GridEntityXMLType
10
10
  local ItemConfigCardType = ____isaac_2Dtypescript_2Ddefinitions.ItemConfigCardType
11
11
  local ItemConfigTag = ____isaac_2Dtypescript_2Ddefinitions.ItemConfigTag
12
+ local ItemPoolType = ____isaac_2Dtypescript_2Ddefinitions.ItemPoolType
12
13
  local Keyboard = ____isaac_2Dtypescript_2Ddefinitions.Keyboard
13
14
  local PillColor = ____isaac_2Dtypescript_2Ddefinitions.PillColor
14
15
  local PlayerForm = ____isaac_2Dtypescript_2Ddefinitions.PlayerForm
@@ -33,6 +34,7 @@ ____exports.GRID_ENTITY_TYPE_VALUES = getEnumValues(nil, GridEntityType)
33
34
  ____exports.GRID_ENTITY_XML_TYPE_VALUES = getEnumValues(nil, GridEntityXMLType)
34
35
  ____exports.ITEM_CONFIG_TAG_VALUES = getEnumValues(nil, ItemConfigTag)
35
36
  ____exports.ITEM_CONFIG_CARD_TYPE_VALUES = getEnumValues(nil, ItemConfigCardType)
37
+ ____exports.ITEM_POOL_TYPE_VALUES = getEnumValues(nil, ItemPoolType)
36
38
  ____exports.KEYBOARD_VALUES = getEnumValues(nil, Keyboard)
37
39
  ____exports.HEALTH_TYPE_VALUES = getEnumValues(nil, HealthType)
38
40
  ____exports.PILL_COLOR_VALUES = getEnumValues(nil, PillColor)
@@ -0,0 +1,8 @@
1
+ import { ItemPoolType } from "isaac-typescript-definitions";
2
+ /**
3
+ * Helper function to get a random item pool. This is as simple as getting a random value from the
4
+ * `ItemPoolType` enum, since `ItemPoolType.SHELL_GAME` (7) is not a real item pool and the Greed
5
+ * Mode item pools should be excluded if not playing in Greed Mode.
6
+ */
7
+ export declare function getRandomItemPool(): ItemPoolType;
8
+ //# sourceMappingURL=itemPool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"itemPool.d.ts","sourceRoot":"","sources":["../../../src/functions/itemPool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAuC5D;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,YAAY,CAKhD"}
@@ -0,0 +1,63 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__SparseArrayNew = ____lualib.__TS__SparseArrayNew
3
+ local __TS__SparseArrayPush = ____lualib.__TS__SparseArrayPush
4
+ local __TS__SparseArraySpread = ____lualib.__TS__SparseArraySpread
5
+ local ____exports = {}
6
+ local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
7
+ local ItemPoolType = ____isaac_2Dtypescript_2Ddefinitions.ItemPoolType
8
+ local ____cachedEnumValues = require("src.arrays.cachedEnumValues")
9
+ local ITEM_POOL_TYPE_VALUES = ____cachedEnumValues.ITEM_POOL_TYPE_VALUES
10
+ local ____array = require("src.functions.array")
11
+ local arrayRemove = ____array.arrayRemove
12
+ local getRandomArrayElement = ____array.getRandomArrayElement
13
+ local ____run = require("src.functions.run")
14
+ local isGreedMode = ____run.isGreedMode
15
+ local NORMAL_MODE_ONLY_ITEM_POOL_TYPES = {
16
+ ItemPoolType.TREASURE,
17
+ ItemPoolType.BOSS,
18
+ ItemPoolType.SHOP,
19
+ ItemPoolType.DEVIL,
20
+ ItemPoolType.ANGEL,
21
+ ItemPoolType.CURSE,
22
+ ItemPoolType.SECRET
23
+ }
24
+ local GREED_MODE_ONLY_ITEM_POOL_TYPES = {
25
+ ItemPoolType.GREED_TREASURE,
26
+ ItemPoolType.GREED_BOSS,
27
+ ItemPoolType.GREED_SHOP,
28
+ ItemPoolType.GREED_DEVIL,
29
+ ItemPoolType.GREED_ANGEL,
30
+ ItemPoolType.GREED_CURSE,
31
+ ItemPoolType.GREED_SECRET
32
+ }
33
+ local FAKE_ITEM_POOL_TYPES = {ItemPoolType.SHELL_GAME}
34
+ local ____arrayRemove_1 = arrayRemove
35
+ local ____array_0 = __TS__SparseArrayNew(
36
+ nil,
37
+ ITEM_POOL_TYPE_VALUES,
38
+ table.unpack(GREED_MODE_ONLY_ITEM_POOL_TYPES)
39
+ )
40
+ __TS__SparseArrayPush(
41
+ ____array_0,
42
+ table.unpack(FAKE_ITEM_POOL_TYPES)
43
+ )
44
+ local NORMAL_MODE_ITEM_POOL_TYPES = ____arrayRemove_1(__TS__SparseArraySpread(____array_0))
45
+ local ____arrayRemove_3 = arrayRemove
46
+ local ____array_2 = __TS__SparseArrayNew(
47
+ nil,
48
+ ITEM_POOL_TYPE_VALUES,
49
+ table.unpack(NORMAL_MODE_ONLY_ITEM_POOL_TYPES)
50
+ )
51
+ __TS__SparseArrayPush(
52
+ ____array_2,
53
+ table.unpack(FAKE_ITEM_POOL_TYPES)
54
+ )
55
+ local GREED_MODE_ITEM_POOL_TYPES = ____arrayRemove_3(__TS__SparseArraySpread(____array_2))
56
+ --- Helper function to get a random item pool. This is as simple as getting a random value from the
57
+ -- `ItemPoolType` enum, since `ItemPoolType.SHELL_GAME` (7) is not a real item pool and the Greed
58
+ -- Mode item pools should be excluded if not playing in Greed Mode.
59
+ function ____exports.getRandomItemPool(self)
60
+ local itemPoolTypes = isGreedMode(nil) and GREED_MODE_ITEM_POOL_TYPES or NORMAL_MODE_ITEM_POOL_TYPES
61
+ return getRandomArrayElement(nil, itemPoolTypes)
62
+ end
63
+ return ____exports
@@ -61,6 +61,7 @@ export * from "./functions/hex";
61
61
  export * from "./functions/initArray";
62
62
  export * from "./functions/input";
63
63
  export * from "./functions/isaacAPIClass";
64
+ export * from "./functions/itemPool";
64
65
  export * from "./functions/jsonHelpers";
65
66
  export * from "./functions/jsonRoom";
66
67
  export * from "./functions/kColor";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,cAAc,kCAAkC,CAAC;AACjD,cAAc,mCAAmC,CAAC;AAClD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oCAAoC,CAAC;AACnD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,0CAA0C,CAAC;AACzD,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC"}
@@ -503,6 +503,14 @@ do
503
503
  end
504
504
  end
505
505
  end
506
+ do
507
+ local ____export = require("src.functions.itemPool")
508
+ for ____exportKey, ____exportValue in pairs(____export) do
509
+ if ____exportKey ~= "default" then
510
+ ____exports[____exportKey] = ____exportValue
511
+ end
512
+ end
513
+ end
506
514
  do
507
515
  local ____export = require("src.functions.jsonHelpers")
508
516
  for ____exportKey, ____exportValue in pairs(____export) do
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "isaacscript-common",
3
- "version": "21.7.0",
3
+ "version": "21.8.0",
4
4
  "description": "Helper functions and features for IsaacScript mods.",
5
5
  "keywords": [
6
6
  "isaac",
@@ -10,6 +10,7 @@ import {
10
10
  GridEntityXMLType,
11
11
  ItemConfigCardType,
12
12
  ItemConfigTag,
13
+ ItemPoolType,
13
14
  Keyboard,
14
15
  PillColor,
15
16
  PlayerForm,
@@ -48,6 +49,9 @@ export const ITEM_CONFIG_TAG_VALUES: readonly ItemConfigTag[] =
48
49
  export const ITEM_CONFIG_CARD_TYPE_VALUES: readonly ItemConfigCardType[] =
49
50
  getEnumValues(ItemConfigCardType);
50
51
 
52
+ export const ITEM_POOL_TYPE_VALUES: readonly ItemPoolType[] =
53
+ getEnumValues(ItemPoolType);
54
+
51
55
  export const KEYBOARD_VALUES: readonly Keyboard[] = getEnumValues(Keyboard);
52
56
 
53
57
  export const HEALTH_TYPE_VALUES: readonly HealthType[] =
@@ -0,0 +1,50 @@
1
+ import { ItemPoolType } from "isaac-typescript-definitions";
2
+ import { ITEM_POOL_TYPE_VALUES } from "../arrays/cachedEnumValues";
3
+ import { arrayRemove, getRandomArrayElement } from "./array";
4
+ import { isGreedMode } from "./run";
5
+
6
+ const NORMAL_MODE_ONLY_ITEM_POOL_TYPES = [
7
+ ItemPoolType.TREASURE, // 0
8
+ ItemPoolType.BOSS, // 2
9
+ ItemPoolType.SHOP, // 1
10
+ ItemPoolType.DEVIL, // 3
11
+ ItemPoolType.ANGEL, // 4
12
+ ItemPoolType.CURSE, // 12
13
+ ItemPoolType.SECRET, // 5
14
+ ] as const;
15
+
16
+ const GREED_MODE_ONLY_ITEM_POOL_TYPES = [
17
+ ItemPoolType.GREED_TREASURE, // 16
18
+ ItemPoolType.GREED_BOSS, // 17
19
+ ItemPoolType.GREED_SHOP, // 18
20
+ ItemPoolType.GREED_DEVIL, // 19
21
+ ItemPoolType.GREED_ANGEL, // 20
22
+ ItemPoolType.GREED_CURSE, // 21
23
+ ItemPoolType.GREED_SECRET, // 22
24
+ ] as const;
25
+
26
+ const FAKE_ITEM_POOL_TYPES = [ItemPoolType.SHELL_GAME] as const;
27
+
28
+ const NORMAL_MODE_ITEM_POOL_TYPES: readonly ItemPoolType[] = arrayRemove(
29
+ ITEM_POOL_TYPE_VALUES,
30
+ ...GREED_MODE_ONLY_ITEM_POOL_TYPES,
31
+ ...FAKE_ITEM_POOL_TYPES,
32
+ );
33
+
34
+ const GREED_MODE_ITEM_POOL_TYPES: readonly ItemPoolType[] = arrayRemove(
35
+ ITEM_POOL_TYPE_VALUES,
36
+ ...NORMAL_MODE_ONLY_ITEM_POOL_TYPES,
37
+ ...FAKE_ITEM_POOL_TYPES,
38
+ );
39
+
40
+ /**
41
+ * Helper function to get a random item pool. This is as simple as getting a random value from the
42
+ * `ItemPoolType` enum, since `ItemPoolType.SHELL_GAME` (7) is not a real item pool and the Greed
43
+ * Mode item pools should be excluded if not playing in Greed Mode.
44
+ */
45
+ export function getRandomItemPool(): ItemPoolType {
46
+ const itemPoolTypes = isGreedMode()
47
+ ? GREED_MODE_ITEM_POOL_TYPES
48
+ : NORMAL_MODE_ITEM_POOL_TYPES;
49
+ return getRandomArrayElement(itemPoolTypes);
50
+ }
package/src/index.ts CHANGED
@@ -61,6 +61,7 @@ export * from "./functions/hex";
61
61
  export * from "./functions/initArray";
62
62
  export * from "./functions/input";
63
63
  export * from "./functions/isaacAPIClass";
64
+ export * from "./functions/itemPool";
64
65
  export * from "./functions/jsonHelpers";
65
66
  export * from "./functions/jsonRoom";
66
67
  export * from "./functions/kColor";