isaacscript-common 7.18.0 → 8.1.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.
Files changed (74) hide show
  1. package/dist/core/constantsFirstLast.d.ts +10 -85
  2. package/dist/core/constantsFirstLast.d.ts.map +1 -1
  3. package/dist/core/constantsFirstLast.lua +10 -90
  4. package/dist/enums/ModCallbackCustom.d.ts +21 -0
  5. package/dist/enums/ModCallbackCustom.d.ts.map +1 -1
  6. package/dist/features/characterStats.lua +2 -2
  7. package/dist/features/extraConsoleCommands/listCommands.d.ts.map +1 -1
  8. package/dist/features/extraConsoleCommands/listCommands.lua +9 -5
  9. package/dist/features/firstLast.d.ts +190 -0
  10. package/dist/features/firstLast.d.ts.map +1 -0
  11. package/dist/features/firstLast.lua +341 -0
  12. package/dist/functions/array.d.ts +1 -9
  13. package/dist/functions/array.d.ts.map +1 -1
  14. package/dist/functions/array.lua +0 -6
  15. package/dist/functions/cards.d.ts +0 -8
  16. package/dist/functions/cards.d.ts.map +1 -1
  17. package/dist/functions/cards.lua +9 -24
  18. package/dist/functions/{cacheFlag.d.ts → collectibleCacheFlag.d.ts} +8 -8
  19. package/dist/functions/collectibleCacheFlag.d.ts.map +1 -0
  20. package/dist/functions/{cacheFlag.lua → collectibleCacheFlag.lua} +12 -13
  21. package/dist/functions/collectibleSet.d.ts +18 -0
  22. package/dist/functions/collectibleSet.d.ts.map +1 -1
  23. package/dist/functions/collectibleSet.lua +29 -9
  24. package/dist/functions/collectibles.d.ts +0 -13
  25. package/dist/functions/collectibles.d.ts.map +1 -1
  26. package/dist/functions/collectibles.lua +0 -18
  27. package/dist/functions/flying.lua +2 -2
  28. package/dist/functions/pills.d.ts +0 -10
  29. package/dist/functions/pills.d.ts.map +1 -1
  30. package/dist/functions/pills.lua +0 -15
  31. package/dist/functions/players.d.ts +12 -0
  32. package/dist/functions/players.d.ts.map +1 -1
  33. package/dist/functions/players.lua +52 -9
  34. package/dist/functions/random.d.ts.map +1 -1
  35. package/dist/functions/random.lua +2 -0
  36. package/dist/functions/stats.d.ts +9 -0
  37. package/dist/functions/stats.d.ts.map +1 -0
  38. package/dist/functions/stats.lua +11 -0
  39. package/dist/functions/trinketCacheFlag.d.ts +9 -1
  40. package/dist/functions/trinketCacheFlag.d.ts.map +1 -1
  41. package/dist/functions/trinketCacheFlag.lua +28 -10
  42. package/dist/functions/trinketSet.d.ts +18 -0
  43. package/dist/functions/trinketSet.d.ts.map +1 -1
  44. package/dist/functions/trinketSet.lua +29 -9
  45. package/dist/functions/trinkets.d.ts +1 -10
  46. package/dist/functions/trinkets.d.ts.map +1 -1
  47. package/dist/functions/trinkets.lua +0 -24
  48. package/dist/index.d.ts +259 -117
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.lua +14 -6
  51. package/dist/initFeatures.d.ts.map +1 -1
  52. package/dist/initFeatures.lua +3 -0
  53. package/package.json +1 -1
  54. package/src/core/constantsFirstLast.ts +12 -125
  55. package/src/enums/ModCallbackCustom.ts +21 -0
  56. package/src/features/characterStats.ts +1 -1
  57. package/src/features/extraConsoleCommands/listCommands.ts +8 -5
  58. package/src/features/firstLast.ts +429 -0
  59. package/src/functions/array.ts +1 -9
  60. package/src/functions/cards.ts +5 -28
  61. package/src/functions/{cacheFlag.ts → collectibleCacheFlag.ts} +13 -16
  62. package/src/functions/collectibleSet.ts +28 -21
  63. package/src/functions/collectibles.ts +0 -22
  64. package/src/functions/flying.ts +1 -1
  65. package/src/functions/pills.ts +0 -22
  66. package/src/functions/players.ts +41 -0
  67. package/src/functions/random.ts +3 -0
  68. package/src/functions/stats.ts +12 -0
  69. package/src/functions/trinketCacheFlag.ts +29 -7
  70. package/src/functions/trinketSet.ts +28 -21
  71. package/src/functions/trinkets.ts +0 -34
  72. package/src/index.ts +2 -1
  73. package/src/initFeatures.ts +2 -0
  74. package/dist/functions/cacheFlag.d.ts.map +0 -1
package/dist/index.d.ts CHANGED
@@ -792,6 +792,7 @@ export declare function closeDoorFast(door: GridEntityDoor): void;
792
792
  /** This is the initial value of the `EntityPickup.Wait` field after a collectible is spawned. */
793
793
  export declare const COLLECTIBLE_INITIAL_WAIT = 20;
794
794
 
795
+ /** Helper function to check in the item config if a given collectible has a given cache flag. */
795
796
  export declare function collectibleHasCacheFlag(collectibleType: CollectibleType, cacheFlag: CacheFlag): boolean;
796
797
 
797
798
  export declare function collectibleHasTag(collectibleType: CollectibleType, tag: ItemConfigTag): boolean;
@@ -2141,33 +2142,6 @@ export declare const FIRST_GLITCHED_COLLECTIBLE_TYPE: CollectibleType;
2141
2142
  /** Equal to `PillColor.HORSE_BLUE_BLUE`. */
2142
2143
  export declare const FIRST_HORSE_PILL_COLOR = PillColor.HORSE_BLUE_BLUE;
2143
2144
 
2144
- /** If there are no modded cards, this constant will represent a card that does not exist. */
2145
- export declare const FIRST_MODDED_CARD: Card;
2146
-
2147
- /**
2148
- * If there are no modded characters, this constant will represent a character that does not exist.
2149
- * (There is no way to determine the amount of modded characters at run-time, since there is no
2150
- * exposed player config.)
2151
- */
2152
- export declare const FIRST_MODDED_CHARACTER: PlayerType;
2153
-
2154
- /**
2155
- * If there are no modded collectibles, this constant will represent a collectible type that does
2156
- * not exist.
2157
- */
2158
- export declare const FIRST_MODDED_COLLECTIBLE_TYPE: CollectibleType;
2159
-
2160
- /**
2161
- * If there are no modded pill effects, this constant will represent a pill effect that does not
2162
- * exist.
2163
- */
2164
- export declare const FIRST_MODDED_PILL_EFFECT: PillEffect;
2165
-
2166
- /**
2167
- * If there are no modded trinkets, this constant will represent a trinket type that does not exist.
2168
- */
2169
- export declare const FIRST_MODDED_TRINKET_TYPE: TrinketType;
2170
-
2171
2145
  /** Equal to `PillColor.BLUE_BLUE`. */
2172
2146
  export declare const FIRST_PILL_COLOR = PillColor.BLUE_BLUE;
2173
2147
 
@@ -2327,7 +2301,12 @@ export declare function getAliveNPCs(entityType?: EntityType, variant?: number,
2327
2301
  */
2328
2302
  export declare function getAllBossesSet(): Set<string>;
2329
2303
 
2330
- /** Helper function to get an array with every valid card sub-type. This includes modded cards. */
2304
+ /**
2305
+ * Helper function to get an array with every valid card sub-type. This includes modded cards.
2306
+ *
2307
+ * This function can only be called if at least one callback has been executed. This is because not
2308
+ * all cards will necessarily be present when a mod first loads (due to mod load order).
2309
+ */
2331
2310
  export declare function getAllCards(): Card[];
2332
2311
 
2333
2312
  /**
@@ -2350,6 +2329,9 @@ export declare function getAllPillColors(): PillColor[];
2350
2329
 
2351
2330
  /**
2352
2331
  * Helper function to get an array with every valid pill effect. This includes modded pill effects.
2332
+ *
2333
+ * This function can only be called if at least one callback has been executed. This is because not
2334
+ * all pill effects will necessarily be present when a mod first loads (due to mod load order).
2353
2335
  */
2354
2336
  export declare function getAllPillEffects(): PillEffect[];
2355
2337
 
@@ -2599,6 +2581,9 @@ export declare function getCoinValue(coinSubType: CoinSubType): int;
2599
2581
  *
2600
2582
  * Use this if you need to iterate over the collectibles in order. If you need to do O(1) lookups,
2601
2583
  * then use the `getCollectibleSet` helper function instead.
2584
+ *
2585
+ * This function can only be called if at least one callback has been executed. This is because not
2586
+ * all collectibles will necessarily be present when a mod first loads (due to mod load order).
2602
2587
  */
2603
2588
  export declare function getCollectibleArray(): readonly CollectibleType[];
2604
2589
 
@@ -2741,12 +2726,18 @@ export declare function getCollectibles(collectibleType?: CollectibleType): Enti
2741
2726
  *
2742
2727
  * Use this if you need to do O(1) lookups. If you need to iterate over the collectibles in order,
2743
2728
  * then use the `getCollectibleArray` helper function instead.
2729
+ *
2730
+ * This function can only be called if at least one callback has been executed. This is because not
2731
+ * all collectibles will necessarily be present when a mod first loads (due to mod load order).
2744
2732
  */
2745
2733
  export declare function getCollectibleSet(): ReadonlySet<CollectibleType>;
2746
2734
 
2747
2735
  /**
2748
2736
  * Returns a set containing every collectible type with the given cache flag, including modded
2749
2737
  * collectibles.
2738
+ *
2739
+ * This function can only be called if at least one callback has been executed. This is because not
2740
+ * all collectibles will necessarily be present when a mod first loads (due to mod load order).
2750
2741
  */
2751
2742
  export declare function getCollectiblesForCacheFlag(cacheFlag: CacheFlag): Set<CollectibleType>;
2752
2743
 
@@ -2850,14 +2841,6 @@ export declare function getDebugPrependString(msg: string, numParentFunctions?:
2850
2841
  */
2851
2842
  export declare function getDefaultGlobals(): ReadonlySet<string>;
2852
2843
 
2853
- /**
2854
- * Returns the starting stat that Isaac (the default character) starts with. For example, if you
2855
- * pass this function `CacheFlag.DAMAGE`, it will return 3.5.
2856
- *
2857
- * Note that the default fire delay is represented in the tear stat, not the `MaxFireDelay` value.
2858
- */
2859
- export declare function getDefaultPlayerStat(cacheFlag: CacheFlag): number | undefined;
2860
-
2861
2844
  export declare function getDevilRoomDoor(): GridEntityDoor | undefined;
2862
2845
 
2863
2846
  /**
@@ -3129,6 +3112,38 @@ export declare function getFireDelay(tearsStat: float): float;
3129
3112
 
3130
3113
  export declare function getFirstCardOrPill(player: EntityPlayer): PocketItemDescription | undefined;
3131
3114
 
3115
+ /**
3116
+ * Returns the first modded card sub-type, or undefined if there are no modded cards.
3117
+ *
3118
+ * This function can only be called if at least one callback has been executed. This is because not
3119
+ * all cards will necessarily be present when a mod first loads (due to mod load order).
3120
+ */
3121
+ export declare function getFirstModdedCard(): Card | undefined;
3122
+
3123
+ /**
3124
+ * Returns the first modded collectible type, or undefined if there are no modded collectibles.
3125
+ *
3126
+ * This function can only be called if at least one callback has been executed. This is because not
3127
+ * all collectibles will necessarily be present when a mod first loads (due to mod load order).
3128
+ */
3129
+ export declare function getFirstModdedCollectibleType(): CollectibleType | undefined;
3130
+
3131
+ /**
3132
+ * Returns the first modded pill effect, or undefined if there are no modded pill effects.
3133
+ *
3134
+ * This function can only be called if at least one callback has been executed. This is because not
3135
+ * all pill effects will necessarily be present when a mod first loads (due to mod load order).
3136
+ */
3137
+ export declare function getFirstModdedPillEffect(): PillEffect | undefined;
3138
+
3139
+ /**
3140
+ * Returns the first modded trinket type, or undefined if there are no modded trinkets.
3141
+ *
3142
+ * This function can only be called if at least one callback has been executed. This is because not
3143
+ * all trinkets will necessarily be present when a mod first loads (due to mod load order).
3144
+ */
3145
+ export declare function getFirstModdedTrinketType(): TrinketType | undefined;
3146
+
3132
3147
  /**
3133
3148
  * Helper function to get the key associated with a particular flag.
3134
3149
  *
@@ -3376,6 +3391,28 @@ export declare function getLanguageName(): string;
3376
3391
  */
3377
3392
  export declare function getLasers(laserVariant?: LaserVariant, subType?: number): EntityLaser[];
3378
3393
 
3394
+ /**
3395
+ * Will change depending on how many modded cards there are.
3396
+ *
3397
+ * This is equal to the number of cards, since all card sub-types are contiguous (unlike
3398
+ * collectibles).
3399
+ *
3400
+ * This function can only be called if at least one callback has been executed. This is because not
3401
+ * all cards will necessarily be present when a mod first loads (due to mod load order).
3402
+ */
3403
+ export declare function getLastCard(): Card;
3404
+
3405
+ /**
3406
+ * Will change depending on how many modded collectibles there are.
3407
+ *
3408
+ * Equal to `itemConfig.GetCollectibles().Size - 1`. (`Size` includes invalid collectibles, like
3409
+ * 666. We subtract one to account for `CollectibleType.NULL`.)
3410
+ *
3411
+ * This function can only be called if at least one callback has been executed. This is because not
3412
+ * all collectibles will necessarily be present when a mod first loads (due to mod load order).
3413
+ */
3414
+ export declare function getLastCollectibleType(): CollectibleType;
3415
+
3379
3416
  /**
3380
3417
  * Helper function to return the last element of an array.
3381
3418
  *
@@ -3404,6 +3441,28 @@ export declare function getLastEnumValue<T>(transpiledEnum: T): T[keyof T];
3404
3441
  */
3405
3442
  export declare function getLastFrameOfAnimation(sprite: Sprite, animation?: string): int;
3406
3443
 
3444
+ /**
3445
+ * Will change depending on how many modded pill effects there are.
3446
+ *
3447
+ * This is equal to the number of pill effects, since all pill effects are contiguous (unlike
3448
+ * collectibles).
3449
+ *
3450
+ * This function can only be called if at least one callback has been executed. This is because not
3451
+ * all pill effects will necessarily be present when a mod first loads (due to mod load order).
3452
+ */
3453
+ export declare function getLastPillEffect(): PillEffect;
3454
+
3455
+ /**
3456
+ * Will change depending on how many modded cards there are.
3457
+ *
3458
+ * This is equal to the number of trinket types, since all trinket types are contiguous (unlike
3459
+ * collectibles).
3460
+ *
3461
+ * This function can only be called if at least one callback has been executed. This is because not
3462
+ * all trinkets will necessarily be present when a mod first loads (due to mod load order).
3463
+ */
3464
+ export declare function getLastTrinketType(): TrinketType;
3465
+
3407
3466
  /**
3408
3467
  * Helper function to get information about the most recent room that is stored in the room history
3409
3468
  * array.
@@ -3445,6 +3504,9 @@ export declare function getMatchingGridEntities(gridEntityType: GridEntityType,
3445
3504
  * Helper function to get an array with every modded card sub-type.
3446
3505
  *
3447
3506
  * Returns an empty array if there are no modded cards.
3507
+ *
3508
+ * This function can only be called if at least one callback has been executed. This is because not
3509
+ * all cards will necessarily be present when a mod first loads (due to mod load order).
3448
3510
  */
3449
3511
  export declare function getModdedCards(): Card[];
3450
3512
 
@@ -3453,6 +3515,9 @@ export declare function getModdedCards(): Card[];
3453
3515
  *
3454
3516
  * Use this if you need to iterate over the collectibles in order. If you need to do O(1) lookups,
3455
3517
  * then use the `getModdedCollectibleSet` helper function instead.
3518
+ *
3519
+ * This function can only be called if at least one callback has been executed. This is because not
3520
+ * all collectibles will necessarily be present when a mod first loads (due to mod load order).
3456
3521
  */
3457
3522
  export declare function getModdedCollectibleArray(): readonly CollectibleType[];
3458
3523
 
@@ -3461,6 +3526,9 @@ export declare function getModdedCollectibleArray(): readonly CollectibleType[];
3461
3526
  *
3462
3527
  * Use this if you need to do O(1) lookups. If you need to iterate over the collectibles in order,
3463
3528
  * then use the `getModdedCollectibleArray` helper function instead.
3529
+ *
3530
+ * This function can only be called if at least one callback has been executed. This is because not
3531
+ * all collectibles will necessarily be present when a mod first loads (due to mod load order).
3464
3532
  */
3465
3533
  export declare function getModdedCollectibleSet(): ReadonlySet<CollectibleType>;
3466
3534
 
@@ -3475,6 +3543,9 @@ export declare function getModdedCollectibleSet(): ReadonlySet<CollectibleType>;
3475
3543
  * (This function is named differently from the `getVanillaCollectibleTypeRange` function because
3476
3544
  * all modded collectible types are contiguous. Thus, each value represents a real
3477
3545
  * `CollectibleType`.)
3546
+ *
3547
+ * This function can only be called if at least one callback has been executed. This is because not
3548
+ * all collectibles will necessarily be present when a mod first loads (due to mod load order).
3478
3549
  */
3479
3550
  export declare function getModdedCollectibleTypes(): CollectibleType[];
3480
3551
 
@@ -3482,6 +3553,9 @@ export declare function getModdedCollectibleTypes(): CollectibleType[];
3482
3553
  * Helper function to get an array with every modded pill effect.
3483
3554
  *
3484
3555
  * Returns an empty array if there are no modded pill effects.
3556
+ *
3557
+ * This function can only be called if at least one callback has been executed. This is because not
3558
+ * all pill effects will necessarily be present when a mod first loads (due to mod load order).
3485
3559
  */
3486
3560
  export declare function getModdedPillEffects(): PillEffect[];
3487
3561
 
@@ -3490,6 +3564,9 @@ export declare function getModdedPillEffects(): PillEffect[];
3490
3564
  *
3491
3565
  * Use this if you need to iterate over the trinkets in order. If you need to do O(1) lookups, then
3492
3566
  * use the `getTrinketSet` helper function instead.
3567
+ *
3568
+ * This function can only be called if at least one callback has been executed. This is because not
3569
+ * all trinkets will necessarily be present when a mod first loads (due to mod load order).
3493
3570
  */
3494
3571
  export declare function getModdedTrinketArray(): readonly TrinketType[];
3495
3572
 
@@ -3498,6 +3575,9 @@ export declare function getModdedTrinketArray(): readonly TrinketType[];
3498
3575
  *
3499
3576
  * Use this if you need to do O(1) lookups. If you need to iterate over the trinkets in order, then
3500
3577
  * use the `getTrinketArray` helper function instead.
3578
+ *
3579
+ * This function can only be called if at least one callback has been executed. This is because not
3580
+ * all trinkets will necessarily be present when a mod first loads (due to mod load order).
3501
3581
  */
3502
3582
  export declare function getModdedTrinketSet(): ReadonlySet<TrinketType>;
3503
3583
 
@@ -3505,6 +3585,9 @@ export declare function getModdedTrinketSet(): ReadonlySet<TrinketType>;
3505
3585
  * Helper function to get an array that represents every modded trinket type.
3506
3586
  *
3507
3587
  * Returns an empty array if there are no modded trinket types.
3588
+ *
3589
+ * This function can only be called if at least one callback has been executed. This is because not
3590
+ * all trinkets will necessarily be present when a mod first loads (due to mod load order).
3508
3591
  */
3509
3592
  export declare function getModdedTrinketTypes(): TrinketType[];
3510
3593
 
@@ -3613,12 +3696,76 @@ export declare function getNumbersFromTable(luaMap: LuaMap<string, unknown>, obj
3613
3696
  /** Helper function to get the number of bits in a binary representation of a number. */
3614
3697
  export declare function getNumBitsOfN(n: int): int;
3615
3698
 
3699
+ /**
3700
+ * Will change depending on how many modded cards there are.
3701
+ *
3702
+ * Equal to `itemConfig.GetCards().Size - 1`. (We subtract one to account for `Card.NULL`.)
3703
+ *
3704
+ * This function can only be called if at least one callback has been executed. This is because not
3705
+ * all cards will necessarily be present when a mod first loads (due to mod load order).
3706
+ */
3707
+ export declare function getNumCards(): int;
3708
+
3709
+ /**
3710
+ * This function can only be called if at least one callback has been executed. This is because not
3711
+ * all collectibles will necessarily be present when a mod first loads (due to mod load order).
3712
+ */
3713
+ export declare function getNumCollectibleTypes(): int;
3714
+
3715
+ /**
3716
+ * This function can only be called if at least one callback has been executed. This is because not
3717
+ * all trinkets will necessarily be present when a mod first loads (due to mod load order).
3718
+ */
3719
+ export declare function getNumModdedCards(): int;
3720
+
3721
+ /**
3722
+ * Unlike vanilla collectible types, modded collectible types are always contiguous.
3723
+ *
3724
+ * This function can only be called if at least one callback has been executed. This is because not
3725
+ * all collectibles will necessarily be present when a mod first loads (due to mod load order).
3726
+ */
3727
+ export declare function getNumModdedCollectibleTypes(): int;
3728
+
3729
+ /**
3730
+ * This function can only be called if at least one callback has been executed. This is because not
3731
+ * all pill effects will necessarily be present when a mod first loads (due to mod load order).
3732
+ */
3733
+ export declare function getNumModdedPillEffects(): int;
3734
+
3735
+ /**
3736
+ * This function can only be called if at least one callback has been executed. This is because not
3737
+ * all trinkets will necessarily be present when a mod first loads (due to mod load order).
3738
+ */
3739
+ export declare function getNumModdedTrinketTypes(): int;
3740
+
3741
+ /**
3742
+ * Will change depending on how many modded pill effects there are.
3743
+ *
3744
+ * Equal to `itemConfig.GetPillEffects().Size`. (We do not have to subtract one, because the first
3745
+ * pill effect has an ID of 0 and there is no `PillEffect.NULL`.)
3746
+ *
3747
+ * This function can only be called if at least one callback has been executed. This is because not
3748
+ * all pill effects will necessarily be present when a mod first loads (due to mod load order).
3749
+ */
3750
+ export declare function getNumPillEffects(): int;
3751
+
3616
3752
  /**
3617
3753
  * Helper function to get the number of rooms that are currently on the floor layout. This does not
3618
3754
  * include off-grid rooms, like the Devil Room.
3619
3755
  */
3620
3756
  export declare function getNumRooms(): int;
3621
3757
 
3758
+ /**
3759
+ * Will change depending on how many modded cards there are.
3760
+ *
3761
+ * Equal to `itemConfig.GetTrinkets().Size - 1`. (We subtract one to account for
3762
+ * `TrinketType.NULL`.)
3763
+ *
3764
+ * This function can only be called if at least one callback has been executed. This is because not
3765
+ * all trinkets will necessarily be present when a mod first loads (due to mod load order).
3766
+ */
3767
+ export declare function getNumTrinketTypes(): int;
3768
+
3622
3769
  /**
3623
3770
  * Returns the slot number corresponding to where a trinket can be safely inserted.
3624
3771
  *
@@ -3784,6 +3931,9 @@ export declare function getPlayerCollectibleMap(player: EntityPlayer): Map<Colle
3784
3931
  * CollectibleType.DEAD_DOVE,
3785
3932
  * ]
3786
3933
  * ```
3934
+ *
3935
+ * This function can only be called if at least one callback has been executed. This is because not
3936
+ * all collectibles will necessarily be present when a mod first loads (due to mod load order).
3787
3937
  */
3788
3938
  export declare function getPlayerCollectiblesForCacheFlag(player: EntityPlayer, cacheFlag: CacheFlag): CollectibleType[];
3789
3939
 
@@ -3974,7 +4124,10 @@ export declare function getPlayerTransformations(player: EntityPlayer): Set<Play
3974
4124
 
3975
4125
  /**
3976
4126
  * Returns a map containing every trinket type that the player has that matches the provided
3977
- * CacheFlag. The values of the map correspond to the multiplier for that trinket.
4127
+ * `CacheFlag`. The values of the map correspond to the multiplier for that trinket.
4128
+ *
4129
+ * This function can only be called if at least one callback has been executed. This is because not
4130
+ * all trinkets will necessarily be present when a mod first loads (due to mod load order).
3978
4131
  */
3979
4132
  export declare function getPlayerTrinketsForCacheFlag(player: EntityPlayer, cacheFlag: CacheFlag): Map<TrinketType, int>;
3980
4133
 
@@ -4844,6 +4997,9 @@ export declare function getTraversalDescription(key: unknown, traversalDescripti
4844
4997
  *
4845
4998
  * Use this if you need to iterate over the trinkets in order. If you need to do O(1) lookups, then
4846
4999
  * use the `getModdedTrinketSet` helper function instead.
5000
+ *
5001
+ * This function can only be called if at least one callback has been executed. This is because not
5002
+ * all trinkets will necessarily be present when a mod first loads (due to mod load order).
4847
5003
  */
4848
5004
  export declare function getTrinketArray(): readonly TrinketType[];
4849
5005
 
@@ -4879,15 +5035,26 @@ export declare function getTrinkets(trinketType?: TrinketType): EntityPickupTrin
4879
5035
  *
4880
5036
  * Use this if you need to do O(1) lookups. If you need to iterate over the trinkets in order, then
4881
5037
  * use the `getModdedTrinketArray` helper function instead.
5038
+ *
5039
+ * This function can only be called if at least one callback has been executed. This is because not
5040
+ * all trinkets will necessarily be present when a mod first loads (due to mod load order).
4882
5041
  */
4883
5042
  export declare function getTrinketSet(): ReadonlySet<TrinketType>;
4884
5043
 
4885
5044
  /**
4886
5045
  * Returns a set containing every trinket type with the given cache flag, including modded trinkets.
5046
+ *
5047
+ * This function can only be called if at least one callback has been executed. This is because not
5048
+ * all trinkets will necessarily be present when a mod first loads (due to mod load order).
4887
5049
  */
4888
5050
  export declare function getTrinketsForCacheFlag(cacheFlag: CacheFlag): Set<TrinketType>;
4889
5051
 
4890
- /** Helper function to get an array that contains every trinket type. */
5052
+ /**
5053
+ * Helper function to get an array that contains every trinket type.
5054
+ *
5055
+ * This function can only be called if at least one callback has been executed. This is because not
5056
+ * all trinkets will necessarily be present when a mod first loads (due to mod load order).
5057
+ */
4891
5058
  export declare function getTrinketTypes(): TrinketType[];
4892
5059
 
4893
5060
  /**
@@ -4913,6 +5080,9 @@ export declare function getVanillaCards(): Card[];
4913
5080
  *
4914
5081
  * Use this if you need to iterate over the collectibles in order. If you need to do O(1) lookups,
4915
5082
  * then use the `getVanillaCollectibleSet` helper function instead.
5083
+ *
5084
+ * This function can only be called if at least one callback has been executed. This is because not
5085
+ * all collectibles will necessarily be present when a mod first loads (due to mod load order).
4916
5086
  */
4917
5087
  export declare function getVanillaCollectibleArray(): readonly CollectibleType[];
4918
5088
 
@@ -4921,6 +5091,9 @@ export declare function getVanillaCollectibleArray(): readonly CollectibleType[]
4921
5091
  *
4922
5092
  * Use this if you need to do O(1) lookups. If you need to iterate over the collectibles in order,
4923
5093
  * then use the `getVanillaCollectibleArray` helper function instead.
5094
+ *
5095
+ * This function can only be called if at least one callback has been executed. This is because not
5096
+ * all collectibles will necessarily be present when a mod first loads (due to mod load order).
4924
5097
  */
4925
5098
  export declare function getVanillaCollectibleSet(): ReadonlySet<CollectibleType>;
4926
5099
 
@@ -4942,6 +5115,9 @@ export declare function getVanillaPillEffects(): PillEffect[];
4942
5115
  *
4943
5116
  * Use this if you need to iterate over the trinkets in order. If you need to do O(1) lookups, then
4944
5117
  * use the `getVanillaTrinketSet` helper function instead.
5118
+ *
5119
+ * This function can only be called if at least one callback has been executed. This is because not
5120
+ * all trinkets will necessarily be present when a mod first loads (due to mod load order).
4945
5121
  */
4946
5122
  export declare function getVanillaTrinketArray(): readonly TrinketType[];
4947
5123
 
@@ -4950,6 +5126,9 @@ export declare function getVanillaTrinketArray(): readonly TrinketType[];
4950
5126
  *
4951
5127
  * Use this if you need to do O(1) lookups. If you need to iterate over the trinkets in order, then
4952
5128
  * use the `getVanillaTrinketArray` helper function instead.
5129
+ *
5130
+ * This function can only be called if at least one callback has been executed. This is because not
5131
+ * all trinkets will necessarily be present when a mod first loads (due to mod load order).
4953
5132
  */
4954
5133
  export declare function getVanillaTrinketSet(): ReadonlySet<TrinketType>;
4955
5134
 
@@ -5190,15 +5369,7 @@ export declare function inDoubleTrouble(): boolean;
5190
5369
 
5191
5370
  export declare function inGenesisRoom(): boolean;
5192
5371
 
5193
- /**
5194
- * Initializes an array with all elements containing the specified default value.
5195
- *
5196
- * For example:
5197
- *
5198
- * ```ts
5199
- * const playerTransformations = initArray(false, PlayerForm.NUM_PLAYER_FORMS - 1);
5200
- * ```
5201
- */
5372
+ /** Initializes an array with all elements containing the specified default value. */
5202
5373
  export declare function initArray<T>(defaultValue: T, size: int): T[];
5203
5374
 
5204
5375
  /**
@@ -6189,21 +6360,6 @@ export declare function kColorEquals(kColor1: KColor, kColor2: KColor): boolean;
6189
6360
  */
6190
6361
  export declare function keyboardToString(keyboard: Keyboard, uppercase: boolean): string | undefined;
6191
6362
 
6192
- /**
6193
- * Will change depending on how many modded cards there are.
6194
- *
6195
- * Equal to `itemConfig.GetCards().Size - 1`. (We subtract one to account for `Card.NULL`.)
6196
- */
6197
- export declare const LAST_CARD: Card;
6198
-
6199
- /**
6200
- * Will change depending on how many modded collectibles there are.
6201
- *
6202
- * Equal to `itemConfig.GetCollectibles().Size - 1`. (`Size` includes invalid collectibles, like
6203
- * 666. We subtract one to account for `CollectibleType.NULL`.)
6204
- */
6205
- export declare const LAST_COLLECTIBLE_TYPE: CollectibleType;
6206
-
6207
6363
  /**
6208
6364
  * Equal to `PillColor.HORSE_WHITE_YELLOW`.
6209
6365
  *
@@ -6220,25 +6376,12 @@ export declare const LAST_HORSE_PILL_COLOR = PillColor.HORSE_WHITE_YELLOW;
6220
6376
  */
6221
6377
  export declare const LAST_NORMAL_PILL_COLOR = PillColor.WHITE_YELLOW;
6222
6378
 
6223
- /**
6224
- * Will change depending on how many modded pill effects there are.
6225
- *
6226
- * Equal to `itemConfig.GetPillEffects().Size - 1`. (We subtract one to account for
6227
- * `PillEffect.NULL`.)
6228
- */
6229
- export declare const LAST_PILL_EFFECT: PillEffect;
6230
-
6231
6379
  export declare const LAST_ROOM_TYPE: RoomType;
6232
6380
 
6233
6381
  export declare const LAST_STAGE: LevelStage;
6234
6382
 
6235
- /**
6236
- * Will change depending on how many modded cards there are.
6237
- *
6238
- * Equal to `itemConfig.GetTrinkets().Size - 1`. (We subtract one to account for
6239
- * `TrinketType.NULL`.)
6240
- */
6241
- export declare const LAST_TRINKET_TYPE: TrinketType;
6383
+ /** Calculated from the `Card` enum. */
6384
+ export declare const LAST_VANILLA_CARD: Card;
6242
6385
 
6243
6386
  /** Calculated from the `PlayerType` enum. */
6244
6387
  export declare const LAST_VANILLA_CHARACTER: PlayerType;
@@ -6492,9 +6635,6 @@ export declare const MAX_SPEED_STAT = 2;
6492
6635
  /** Corresponds to the maximum value for `EntityPlayer.SamsonBerserkCharge`. */
6493
6636
  export declare const MAX_TAINTED_SAMSON_BERSERK_CHARGE = 100000;
6494
6637
 
6495
- /** Calculated from the `Card` enum. */
6496
- export declare const MAX_VANILLA_CARD: Card;
6497
-
6498
6638
  /** If you set `EntityPlayer.ShotSpeed` lower than this value, it will have no effect. */
6499
6639
  export declare const MIN_PLAYER_SHOT_SPEED_STAT = 0.6;
6500
6640
 
@@ -6825,6 +6965,9 @@ export declare enum ModCallbackCustom {
6825
6965
  * the broken state for the respective grid entity type. (For example, this will fire for a
6826
6966
  * `GridEntityType.ROCK` (2) when its state changes to `RockState.BROKEN` (2).)
6827
6967
  *
6968
+ * For grid entities created with `spawnCustomGridEntity`, use the
6969
+ * `POST_GRID_ENTITY_CUSTOM_BROKEN` callback instead.
6970
+ *
6828
6971
  * When registering the callback, takes an optional second argument that will make the callback
6829
6972
  * only fire if it matches the `GridEntityType` provided.
6830
6973
  *
@@ -6838,6 +6981,9 @@ export declare enum ModCallbackCustom {
6838
6981
  * this, the callback will not continue to fire. It will only fire again once the entity moves out
6839
6982
  * of range and then moves back into range.)
6840
6983
  *
6984
+ * For grid entities created with `spawnCustomGridEntity`, use the
6985
+ * `POST_GRID_ENTITY_CUSTOM_COLLISION` callback instead.
6986
+ *
6841
6987
  * When registering the callback, takes an optional second argument that will make the callback
6842
6988
  * only fire if it matches the `GridEntityType` provided.
6843
6989
  *
@@ -6965,6 +7111,9 @@ export declare enum ModCallbackCustom {
6965
7111
  * - in the `POST_UPDATE` callback (if the entity appeared mid-way through the room, like when the
6966
7112
  * trapdoor appears after defeating It Lives!)
6967
7113
  *
7114
+ * For grid entities created with `spawnCustomGridEntity`, use the `POST_GRID_ENTITY_CUSTOM_INIT`
7115
+ * callback instead.
7116
+ *
6968
7117
  * When registering the callback, takes an optional second argument that will make the callback
6969
7118
  * only fire if it matches the `GridEntityType` provided.
6970
7119
  *
@@ -6981,6 +7130,9 @@ export declare enum ModCallbackCustom {
6981
7130
  *
6982
7131
  * This will fire when a Polty/Kineti picks up a grid entity.
6983
7132
  *
7133
+ * For grid entities created with `spawnCustomGridEntity`, use the
7134
+ * `POST_GRID_ENTITY_CUSTOM_REMOVE` callback instead.
7135
+ *
6984
7136
  * When registering the callback, takes an optional second argument that will make the callback
6985
7137
  * only fire if it matches the `GridEntityType` provided.
6986
7138
  *
@@ -7000,6 +7152,9 @@ export declare enum ModCallbackCustom {
7000
7152
  * - When registering the callback, takes an optional third argument that will make the callback
7001
7153
  * only fire if it matches the variant provided.
7002
7154
  *
7155
+ * For grid entities created with `spawnCustomGridEntity`, use the
7156
+ * `POST_GRID_ENTITY_CUSTOM_RENDER` callback instead.
7157
+ *
7003
7158
  * ```ts
7004
7159
  * function postGridEntityRender(gridEntity: GridEntity): void {}
7005
7160
  * ```
@@ -7012,6 +7167,9 @@ export declare enum ModCallbackCustom {
7012
7167
  * When registering the callback, takes an optional second argument that will make the callback
7013
7168
  * only fire if it matches the `GridEntityType` provided.
7014
7169
  *
7170
+ * For grid entities created with `spawnCustomGridEntity`, use the
7171
+ * `POST_GRID_ENTITY_CUSTOM_STATE_CHANGED` callback instead.
7172
+ *
7015
7173
  * ```ts
7016
7174
  * function postGridEntityStateChanged(
7017
7175
  * gridEntity: GridEntity,
@@ -7029,6 +7187,9 @@ export declare enum ModCallbackCustom {
7029
7187
  * - When registering the callback, takes an optional third argument that will make the callback
7030
7188
  * only fire if it matches the variant provided.
7031
7189
  *
7190
+ * For grid entities created with `spawnCustomGridEntity`, use the
7191
+ * `POST_GRID_ENTITY_CUSTOM_UPDATE` callback instead.
7192
+ *
7032
7193
  * ```ts
7033
7194
  * function postGridEntityUpdate(gridEntity: GridEntity): void {}
7034
7195
  * ```
@@ -7988,64 +8149,30 @@ export declare function newTSTLClass(oldClass: TSTLClass): TSTLClass;
7988
8149
  */
7989
8150
  export declare function nextSeed(seed: Seed): Seed;
7990
8151
 
7991
- /**
7992
- * Will change depending on how many modded cards there are.
7993
- *
7994
- * Equal to `itemConfig.GetCards().Size - 1`. (We subtract one to account for `Card.NULL`.)
7995
- */
7996
- export declare const NUM_CARDS: number;
7997
-
7998
- export declare const NUM_COLLECTIBLE_TYPES: number;
7999
-
8000
8152
  export declare const NUM_DIMENSIONS: number;
8001
8153
 
8002
- export declare const NUM_MODDED_CARDS: number;
8003
-
8004
- /** Unlike vanilla collectible types, modded collectible types are always contiguous. */
8005
- export declare const NUM_MODDED_COLLECTIBLE_TYPES: number;
8006
-
8007
- export declare const NUM_MODDED_PILL_EFFECTS: number;
8008
-
8009
- export declare const NUM_MODDED_TRINKET_TYPES: number;
8010
-
8011
8154
  export declare const NUM_NORMAL_PILL_COLORS: number;
8012
8155
 
8013
- /**
8014
- * Will change depending on how many modded pill effects there are.
8015
- *
8016
- * Equal to `itemConfig.GetPillEffects().Size - 1`. (We subtract one to account for
8017
- * `PillEffect.NULL`.)
8018
- */
8019
- export declare const NUM_PILL_EFFECTS: number;
8020
-
8021
8156
  /**
8022
8157
  * The pill pool for each run is comprised of one effect for each unique pill color (minus gold and
8023
8158
  * horse pills.)
8024
8159
  */
8025
8160
  export declare const NUM_PILLS_IN_POOL: number;
8026
8161
 
8027
- /**
8028
- * Will change depending on how many modded cards there are.
8029
- *
8030
- * Equal to `itemConfig.GetTrinkets().Size - 1`. (We subtract one to account for
8031
- * `TrinketType.NULL`.)
8032
- */
8033
- export declare const NUM_TRINKET_TYPES: number;
8034
-
8035
8162
  /** Calculated from the `Card` enum. `Card.NULL` is not included. */
8036
8163
  export declare const NUM_VANILLA_CARDS: number;
8037
8164
 
8038
- /** Calculated from the `CollectibleType` enum. `CollectibleType.NULL` is not included. */
8165
+ /** Calculated from the `CollectibleType` enum. (`CollectibleType.NULL` is not included.) */
8039
8166
  export declare const NUM_VANILLA_COLLECTIBLE_TYPES: number;
8040
8167
 
8041
8168
  /**
8042
8169
  * Calculated from the `PillEffect` enum.
8043
8170
  *
8044
- * (There is no `PillEffect.NULL` in the custom enum, so we don't have to subtract one here.)
8171
+ * (There is no `PillEffect.NULL` in the custom enum, so we do not have to subtract one here.)
8045
8172
  */
8046
8173
  export declare const NUM_VANILLA_PILL_EFFECTS: number;
8047
8174
 
8048
- /** Calculated from the `TrinketType` enum. `TrinketType.NULL` is not included. */
8175
+ /** Calculated from the `TrinketType` enum. (`TrinketType.NULL` is not included.) */
8049
8176
  export declare const NUM_VANILLA_TRINKET_TYPES: number;
8050
8177
 
8051
8178
  export declare function onAscent(): boolean;
@@ -8841,6 +8968,12 @@ export declare function registerHotkey(keyboardOrFunc: Keyboard | (() => Keyboar
8841
8968
  */
8842
8969
  export declare function reloadRoom(): void;
8843
8970
 
8971
+ /**
8972
+ * Helper function to remove all of the active items from a player. This includes the Schoolbag item
8973
+ * and any pocket actives.
8974
+ */
8975
+ export declare function removeAllActiveItems(player: EntityPlayer): void;
8976
+
8844
8977
  /**
8845
8978
  * Helper function to remove all of the batteries in the room.
8846
8979
  *
@@ -9088,6 +9221,14 @@ export declare function removeAllPits(pitVariant?: PitVariant, updateRoom?: bool
9088
9221
 
9089
9222
  export declare function removeAllPlayerHealth(player: EntityPlayer): void;
9090
9223
 
9224
+ /**
9225
+ * Helper function to remove all of the held trinkets from a player.
9226
+ *
9227
+ * This will not remove any smelted trinkets, unless the player happens to be holding a trinket that
9228
+ * they also have smelted. (In that case, both the held and the smelted trinket will be removed.)
9229
+ */
9230
+ export declare function removeAllPlayerTrinkets(player: EntityPlayer): void;
9231
+
9091
9232
  /**
9092
9233
  * Helper function to remove all of the `GridEntityPoop` in the room.
9093
9234
  *
@@ -11260,6 +11401,7 @@ export declare function trimPrefix(string: string, prefix: string): string;
11260
11401
  /** Helper function to trim a suffix from a string, if it exists. Returns the trimmed string. */
11261
11402
  export declare function trimSuffix(string: string, prefix: string): string;
11262
11403
 
11404
+ /** Helper function to check in the item config if a given trinket has a given cache flag. */
11263
11405
  export declare function trinketHasCacheFlag(trinketType: TrinketType, cacheFlag: CacheFlag): boolean;
11264
11406
 
11265
11407
  /** This is used by the `temporarilyRemoveTrinkets` and related helper functions. */