isaacscript-common 4.0.3 → 4.0.6

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 (370) hide show
  1. package/callbacks/postPlayerCollectible.lua +4 -2
  2. package/functions/collectibleSet.d.ts +37 -2
  3. package/functions/collectibleSet.lua +62 -15
  4. package/functions/player.lua +3 -4
  5. package/package.json +2 -2
  6. package/cachedClasses.ts +0 -39
  7. package/callbacks/customRevive.ts +0 -215
  8. package/callbacks/itemPickup.ts +0 -101
  9. package/callbacks/postAmbush.ts +0 -73
  10. package/callbacks/postBombExploded.ts +0 -26
  11. package/callbacks/postBombInitLate.ts +0 -36
  12. package/callbacks/postBoneSwing.ts +0 -64
  13. package/callbacks/postCollectibleInitFirst.ts +0 -40
  14. package/callbacks/postCursedTeleport.ts +0 -185
  15. package/callbacks/postCustomDoorEnter.ts +0 -292
  16. package/callbacks/postDiceRoomActivated.ts +0 -60
  17. package/callbacks/postDoorRender.ts +0 -26
  18. package/callbacks/postDoorUpdate.ts +0 -26
  19. package/callbacks/postEffectInitLate.ts +0 -36
  20. package/callbacks/postEffectStateChanged.ts +0 -43
  21. package/callbacks/postEsauJr.ts +0 -109
  22. package/callbacks/postFamiliarInitLate.ts +0 -36
  23. package/callbacks/postFamiliarStateChanged.ts +0 -43
  24. package/callbacks/postFlip.ts +0 -90
  25. package/callbacks/postGreedModeWave.ts +0 -41
  26. package/callbacks/postGridEntity.ts +0 -164
  27. package/callbacks/postGridEntityCollision.ts +0 -69
  28. package/callbacks/postGridEntityRender.ts +0 -26
  29. package/callbacks/postHolyMantleRemoved.ts +0 -55
  30. package/callbacks/postItemDischarged.ts +0 -154
  31. package/callbacks/postKnifeInitLate.ts +0 -36
  32. package/callbacks/postLaserInitLate.ts +0 -36
  33. package/callbacks/postNPCInitLate.ts +0 -36
  34. package/callbacks/postNPCStateChanged.ts +0 -42
  35. package/callbacks/postNewRoomEarly.ts +0 -96
  36. package/callbacks/postPickupCollect.ts +0 -48
  37. package/callbacks/postPickupInitFirst.ts +0 -70
  38. package/callbacks/postPickupInitLate.ts +0 -36
  39. package/callbacks/postPickupStateChanged.ts +0 -43
  40. package/callbacks/postPitRender.ts +0 -26
  41. package/callbacks/postPitUpdate.ts +0 -26
  42. package/callbacks/postPlayerChangeHealth.ts +0 -62
  43. package/callbacks/postPlayerChangeType.ts +0 -56
  44. package/callbacks/postPlayerCollectible.ts +0 -113
  45. package/callbacks/postPlayerFatalDamage.ts +0 -141
  46. package/callbacks/postPlayerInitLate.ts +0 -37
  47. package/callbacks/postPlayerReordered.ts +0 -142
  48. package/callbacks/postPoopRender.ts +0 -26
  49. package/callbacks/postPoopUpdate.ts +0 -26
  50. package/callbacks/postPressurePlateRender.ts +0 -26
  51. package/callbacks/postPressurePlateUpdate.ts +0 -26
  52. package/callbacks/postProjectileInitLate.ts +0 -36
  53. package/callbacks/postPurchase.ts +0 -64
  54. package/callbacks/postRockRender.ts +0 -26
  55. package/callbacks/postRockUpdate.ts +0 -26
  56. package/callbacks/postRoomClearChanged.ts +0 -57
  57. package/callbacks/postSacrifice.ts +0 -64
  58. package/callbacks/postSlotDestroyed.ts +0 -92
  59. package/callbacks/postSlotInitUpdate.ts +0 -68
  60. package/callbacks/postSlotRender.ts +0 -69
  61. package/callbacks/postSpikesRender.ts +0 -26
  62. package/callbacks/postSpikesUpdate.ts +0 -26
  63. package/callbacks/postTNTRender.ts +0 -26
  64. package/callbacks/postTNTUpdate.ts +0 -26
  65. package/callbacks/postTearInitLate.ts +0 -36
  66. package/callbacks/postTearInitVeryLate.ts +0 -41
  67. package/callbacks/postTransformation.ts +0 -59
  68. package/callbacks/postTrinketBreak.ts +0 -112
  69. package/callbacks/preBerserkDeath.ts +0 -49
  70. package/callbacks/preNewLevel.ts +0 -55
  71. package/callbacks/reorderedCallbacks.ts +0 -168
  72. package/callbacks/subscriptions/postAmbushFinished.ts +0 -32
  73. package/callbacks/subscriptions/postAmbushStarted.ts +0 -32
  74. package/callbacks/subscriptions/postBombInitLate.ts +0 -32
  75. package/callbacks/subscriptions/postBoneExploded.ts +0 -32
  76. package/callbacks/subscriptions/postBoneSwing.ts +0 -24
  77. package/callbacks/subscriptions/postCollectibleInitFirst.ts +0 -37
  78. package/callbacks/subscriptions/postCursedTeleport.ts +0 -24
  79. package/callbacks/subscriptions/postCustomDoorEnter.ts +0 -45
  80. package/callbacks/subscriptions/postCustomRevive.ts +0 -36
  81. package/callbacks/subscriptions/postDiceRoomActivated.ts +0 -38
  82. package/callbacks/subscriptions/postDoorRender.ts +0 -35
  83. package/callbacks/subscriptions/postDoorUpdate.ts +0 -35
  84. package/callbacks/subscriptions/postEffectInitLate.ts +0 -32
  85. package/callbacks/subscriptions/postEffectStateChanged.ts +0 -40
  86. package/callbacks/subscriptions/postEsauJr.ts +0 -24
  87. package/callbacks/subscriptions/postFamiliarInitLate.ts +0 -32
  88. package/callbacks/subscriptions/postFamiliarStateChanged.ts +0 -40
  89. package/callbacks/subscriptions/postFirstEsauJr.ts +0 -24
  90. package/callbacks/subscriptions/postFirstFlip.ts +0 -24
  91. package/callbacks/subscriptions/postFlip.ts +0 -22
  92. package/callbacks/subscriptions/postGameStartedReordered.ts +0 -24
  93. package/callbacks/subscriptions/postGreedModeWave.ts +0 -24
  94. package/callbacks/subscriptions/postGridEntityBroken.ts +0 -51
  95. package/callbacks/subscriptions/postGridEntityCollision.ts +0 -54
  96. package/callbacks/subscriptions/postGridEntityInit.ts +0 -51
  97. package/callbacks/subscriptions/postGridEntityRemove.ts +0 -52
  98. package/callbacks/subscriptions/postGridEntityRender.ts +0 -51
  99. package/callbacks/subscriptions/postGridEntityStateChanged.ts +0 -55
  100. package/callbacks/subscriptions/postGridEntityUpdate.ts +0 -51
  101. package/callbacks/subscriptions/postHolyMantleRemoved.ts +0 -48
  102. package/callbacks/subscriptions/postItemDischarged.ts +0 -43
  103. package/callbacks/subscriptions/postItemPickup.ts +0 -64
  104. package/callbacks/subscriptions/postKnifeInitLate.ts +0 -32
  105. package/callbacks/subscriptions/postLaserInitLate.ts +0 -32
  106. package/callbacks/subscriptions/postNPCInitLate.ts +0 -32
  107. package/callbacks/subscriptions/postNPCStateChanged.ts +0 -42
  108. package/callbacks/subscriptions/postNewLevelReordered.ts +0 -22
  109. package/callbacks/subscriptions/postNewRoomEarly.ts +0 -22
  110. package/callbacks/subscriptions/postNewRoomReordered.ts +0 -22
  111. package/callbacks/subscriptions/postPEffectUpdateReordered.ts +0 -40
  112. package/callbacks/subscriptions/postPickupCollect.ts +0 -35
  113. package/callbacks/subscriptions/postPickupInitFirst.ts +0 -32
  114. package/callbacks/subscriptions/postPickupInitLate.ts +0 -32
  115. package/callbacks/subscriptions/postPickupStateChanged.ts +0 -40
  116. package/callbacks/subscriptions/postPitRender.ts +0 -35
  117. package/callbacks/subscriptions/postPitUpdate.ts +0 -35
  118. package/callbacks/subscriptions/postPlayerChangeHealth.ts +0 -49
  119. package/callbacks/subscriptions/postPlayerChangeType.ts +0 -40
  120. package/callbacks/subscriptions/postPlayerCollectibleAdded.ts +0 -38
  121. package/callbacks/subscriptions/postPlayerCollectibleRemoved.ts +0 -38
  122. package/callbacks/subscriptions/postPlayerFatalDamage.ts +0 -68
  123. package/callbacks/subscriptions/postPlayerInitLate.ts +0 -40
  124. package/callbacks/subscriptions/postPlayerInitReordered.ts +0 -40
  125. package/callbacks/subscriptions/postPlayerRenderReordered.ts +0 -40
  126. package/callbacks/subscriptions/postPlayerUpdateReordered.ts +0 -40
  127. package/callbacks/subscriptions/postPoopRender.ts +0 -35
  128. package/callbacks/subscriptions/postPoopUpdate.ts +0 -35
  129. package/callbacks/subscriptions/postPressurePlateRender.ts +0 -37
  130. package/callbacks/subscriptions/postPressurePlateUpdate.ts +0 -37
  131. package/callbacks/subscriptions/postProjectileInitLate.ts +0 -35
  132. package/callbacks/subscriptions/postPurchase.ts +0 -31
  133. package/callbacks/subscriptions/postRockRender.ts +0 -35
  134. package/callbacks/subscriptions/postRockUpdate.ts +0 -35
  135. package/callbacks/subscriptions/postRoomClearChanged.ts +0 -30
  136. package/callbacks/subscriptions/postSacrifice.ts +0 -43
  137. package/callbacks/subscriptions/postSlotAnimationChanged.ts +0 -40
  138. package/callbacks/subscriptions/postSlotDestroyed.ts +0 -55
  139. package/callbacks/subscriptions/postSlotInit.ts +0 -32
  140. package/callbacks/subscriptions/postSlotRender.ts +0 -32
  141. package/callbacks/subscriptions/postSlotUpdate.ts +0 -32
  142. package/callbacks/subscriptions/postSpikesRender.ts +0 -35
  143. package/callbacks/subscriptions/postSpikesUpdate.ts +0 -35
  144. package/callbacks/subscriptions/postTNTRender.ts +0 -35
  145. package/callbacks/subscriptions/postTNTUpdate.ts +0 -35
  146. package/callbacks/subscriptions/postTearInitLate.ts +0 -32
  147. package/callbacks/subscriptions/postTearInitVeryLate.ts +0 -32
  148. package/callbacks/subscriptions/postTransformation.ts +0 -40
  149. package/callbacks/subscriptions/postTrinketBreak.ts +0 -38
  150. package/callbacks/subscriptions/preBerserkDeath.ts +0 -42
  151. package/callbacks/subscriptions/preCustomRevive.ts +0 -46
  152. package/callbacks/subscriptions/preItemPickup.ts +0 -64
  153. package/callbacks/subscriptions/preNewLevel.ts +0 -24
  154. package/classes/DefaultMap.ts +0 -174
  155. package/classes/ModUpgraded.ts +0 -84
  156. package/constants.ts +0 -162
  157. package/constantsFirstLast.ts +0 -217
  158. package/enums/AmbushType.ts +0 -4
  159. package/enums/HealthType.ts +0 -16
  160. package/enums/ModCallbackCustom.ts +0 -1278
  161. package/enums/PocketItemType.ts +0 -8
  162. package/enums/SerializationType.ts +0 -5
  163. package/enums/SlotDestructionType.ts +0 -4
  164. package/enums/private/CopyableIsaacAPIClassType.ts +0 -7
  165. package/enums/private/SaveDataKey.ts +0 -14
  166. package/enums/private/SerializationBrand.ts +0 -42
  167. package/features/characterHealthConversion.ts +0 -111
  168. package/features/characterStats.ts +0 -61
  169. package/features/debugDisplay/debugDisplay.ts +0 -221
  170. package/features/debugDisplay/exports.ts +0 -368
  171. package/features/debugDisplay/v.ts +0 -65
  172. package/features/deployJSONRoom.ts +0 -743
  173. package/features/disableInputs.ts +0 -193
  174. package/features/disableSound.ts +0 -77
  175. package/features/extraConsoleCommands/commandsDisplay.ts +0 -290
  176. package/features/extraConsoleCommands/commandsSubroutines.ts +0 -139
  177. package/features/extraConsoleCommands/init.ts +0 -334
  178. package/features/extraConsoleCommands/listCommands.ts +0 -1299
  179. package/features/extraConsoleCommands/v.ts +0 -14
  180. package/features/fadeInRemover.ts +0 -60
  181. package/features/fastReset.ts +0 -75
  182. package/features/forgottenSwitch.ts +0 -50
  183. package/features/getCollectibleItemPoolType.ts +0 -66
  184. package/features/persistentEntities.ts +0 -183
  185. package/features/playerInventory.ts +0 -135
  186. package/features/ponyDetection.ts +0 -74
  187. package/features/preventCollectibleRotation.ts +0 -115
  188. package/features/runInNFrames.ts +0 -148
  189. package/features/saveDataManager/constants.ts +0 -4
  190. package/features/saveDataManager/exports.ts +0 -229
  191. package/features/saveDataManager/load.ts +0 -99
  192. package/features/saveDataManager/main.ts +0 -195
  193. package/features/saveDataManager/maps.ts +0 -13
  194. package/features/saveDataManager/merge.ts +0 -194
  195. package/features/saveDataManager/save.ts +0 -74
  196. package/features/saveDataManager/serializationBrand.ts +0 -16
  197. package/features/sirenHelpers.ts +0 -129
  198. package/features/taintedLazarusPlayers.ts +0 -113
  199. package/featuresInitialized.ts +0 -20
  200. package/functions/ambush.ts +0 -47
  201. package/functions/array.ts +0 -410
  202. package/functions/benchmark.ts +0 -36
  203. package/functions/bitwise.ts +0 -24
  204. package/functions/bombs.ts +0 -12
  205. package/functions/boss.ts +0 -227
  206. package/functions/cacheFlag.ts +0 -12
  207. package/functions/cards.ts +0 -271
  208. package/functions/challenges.ts +0 -13
  209. package/functions/character.ts +0 -126
  210. package/functions/charge.ts +0 -237
  211. package/functions/chargeBar.ts +0 -67
  212. package/functions/collectibleCacheFlag.ts +0 -90
  213. package/functions/collectibleSet.ts +0 -56
  214. package/functions/collectibleTag.ts +0 -89
  215. package/functions/collectibles.ts +0 -659
  216. package/functions/color.ts +0 -128
  217. package/functions/debug.ts +0 -68
  218. package/functions/deepCopy.ts +0 -535
  219. package/functions/deepCopyTests.ts +0 -386
  220. package/functions/direction.ts +0 -49
  221. package/functions/doors.ts +0 -347
  222. package/functions/easing.ts +0 -182
  223. package/functions/eden.ts +0 -47
  224. package/functions/effects.ts +0 -20
  225. package/functions/entity.ts +0 -439
  226. package/functions/entitySpecific.ts +0 -889
  227. package/functions/entityTypes.ts +0 -6
  228. package/functions/enums.ts +0 -146
  229. package/functions/familiars.ts +0 -106
  230. package/functions/flag.ts +0 -165
  231. package/functions/flying.ts +0 -117
  232. package/functions/globals.ts +0 -242
  233. package/functions/gridEntity.ts +0 -511
  234. package/functions/gridEntitySpecific.ts +0 -112
  235. package/functions/input.ts +0 -139
  236. package/functions/isaacAPIClass.ts +0 -67
  237. package/functions/jsonHelpers.ts +0 -45
  238. package/functions/jsonRoom.ts +0 -100
  239. package/functions/kColor.ts +0 -129
  240. package/functions/language.ts +0 -13
  241. package/functions/level.ts +0 -31
  242. package/functions/log.ts +0 -720
  243. package/functions/map.ts +0 -56
  244. package/functions/math.ts +0 -149
  245. package/functions/mergeTests.ts +0 -288
  246. package/functions/npc.ts +0 -148
  247. package/functions/pickupVariants.ts +0 -60
  248. package/functions/pickups.ts +0 -499
  249. package/functions/pills.ts +0 -205
  250. package/functions/player.ts +0 -1056
  251. package/functions/playerDataStructures.ts +0 -150
  252. package/functions/playerHealth.ts +0 -382
  253. package/functions/playerIndex.ts +0 -195
  254. package/functions/pocketItems.ts +0 -149
  255. package/functions/positionVelocity.ts +0 -188
  256. package/functions/random.ts +0 -77
  257. package/functions/revive.ts +0 -201
  258. package/functions/rng.ts +0 -172
  259. package/functions/roomData.ts +0 -199
  260. package/functions/roomGrid.ts +0 -109
  261. package/functions/roomShape.ts +0 -80
  262. package/functions/rooms.ts +0 -648
  263. package/functions/run.ts +0 -36
  264. package/functions/saveFile.ts +0 -128
  265. package/functions/seeds.ts +0 -19
  266. package/functions/serialization.ts +0 -91
  267. package/functions/set.ts +0 -95
  268. package/functions/sound.ts +0 -9
  269. package/functions/spawnCollectible.ts +0 -104
  270. package/functions/sprite.ts +0 -107
  271. package/functions/stage.ts +0 -125
  272. package/functions/string.ts +0 -47
  273. package/functions/table.ts +0 -189
  274. package/functions/tears.ts +0 -32
  275. package/functions/transformations.ts +0 -131
  276. package/functions/trinketCacheFlag.ts +0 -60
  277. package/functions/trinketGive.ts +0 -157
  278. package/functions/trinkets.ts +0 -215
  279. package/functions/tstlClass.ts +0 -157
  280. package/functions/types.ts +0 -36
  281. package/functions/ui.ts +0 -138
  282. package/functions/utils.ts +0 -189
  283. package/functions/vector.ts +0 -126
  284. package/index.ts +0 -172
  285. package/initCustomCallbacks.ts +0 -132
  286. package/initFeatures.ts +0 -39
  287. package/interfaces/AddCallbackParameterCustom.ts +0 -188
  288. package/interfaces/ChargeBarSprites.ts +0 -12
  289. package/interfaces/JSONDoor.ts +0 -13
  290. package/interfaces/JSONEntity.ts +0 -16
  291. package/interfaces/JSONRoom.ts +0 -36
  292. package/interfaces/JSONRooms.ts +0 -12
  293. package/interfaces/JSONSpawn.ts +0 -14
  294. package/interfaces/PlayerHealth.ts +0 -16
  295. package/interfaces/PocketItemDescription.ts +0 -9
  296. package/interfaces/SaveData.ts +0 -29
  297. package/interfaces/TrinketSituation.ts +0 -9
  298. package/interfaces/private/TSTLClassMetatable.ts +0 -8
  299. package/maps/PHDPillConversions.ts +0 -21
  300. package/maps/cardMap.ts +0 -209
  301. package/maps/characterMap.ts +0 -87
  302. package/maps/collectibleDescriptionMap.ts +0 -732
  303. package/maps/collectibleNameMap.ts +0 -731
  304. package/maps/defaultPlayerStatMap.ts +0 -17
  305. package/maps/falsePHDPillConversions.ts +0 -35
  306. package/maps/gridEntityTypeToBrokenStateMap.ts +0 -50
  307. package/maps/gridEntityXMLMap.ts +0 -176
  308. package/maps/pillEffectMap.ts +0 -88
  309. package/maps/roomShapeToTopLeftWallGridIndexMap.ts +0 -18
  310. package/maps/roomTypeMap.ts +0 -40
  311. package/maps/trinketDescriptionMap.ts +0 -200
  312. package/maps/trinketNameMap.ts +0 -198
  313. package/objects/LRoomShapeToRectangles.ts +0 -44
  314. package/objects/callbackRegisterFunctions.ts +0 -187
  315. package/objects/cardDescriptions.ts +0 -105
  316. package/objects/cardNames.ts +0 -105
  317. package/objects/cardTypes.ts +0 -104
  318. package/objects/challengeNames.ts +0 -52
  319. package/objects/characterNames.ts +0 -48
  320. package/objects/coinSubTypeToValue.ts +0 -14
  321. package/objects/colors.ts +0 -16
  322. package/objects/directionNames.ts +0 -11
  323. package/objects/directionToDegrees.ts +0 -11
  324. package/objects/directionToVector.ts +0 -12
  325. package/objects/doorSlotFlagToDoorSlot.ts +0 -16
  326. package/objects/doorSlotToDirection.ts +0 -14
  327. package/objects/isaacAPIClassTypeToBrand.ts +0 -11
  328. package/objects/isaacAPIClassTypeToCopyFunction.ts +0 -18
  329. package/objects/languageNames.ts +0 -13
  330. package/objects/oppositeDoorSlots.ts +0 -15
  331. package/objects/pillEffectClasses.ts +0 -63
  332. package/objects/pillEffectNames.ts +0 -57
  333. package/objects/pillEffectTypes.ts +0 -62
  334. package/objects/roomShapeBounds.ts +0 -71
  335. package/objects/roomShapeLayoutSizes.ts +0 -45
  336. package/objects/roomShapeToBottomRightPosition.ts +0 -25
  337. package/objects/roomShapeToDoorSlots.ts +0 -83
  338. package/objects/roomShapeToDoorSlotsToGridIndexDelta.ts +0 -127
  339. package/objects/roomShapeToGridWidth.ts +0 -21
  340. package/objects/roomShapeToTopLeftPosition.ts +0 -26
  341. package/objects/roomShapeVolumes.ts +0 -38
  342. package/objects/roomTypeNames.ts +0 -36
  343. package/objects/serializedIsaacAPIClassTypeToIdentityFunction.ts +0 -14
  344. package/objects/stageTypeToLetter.ts +0 -15
  345. package/objects/transformationNames.ts +0 -18
  346. package/patchErrorFunctions.ts +0 -92
  347. package/sets/LRoomShapesSet.ts +0 -8
  348. package/sets/bossSets.ts +0 -470
  349. package/sets/charactersThatStartWithAnActiveItemSet.ts +0 -16
  350. package/sets/charactersWithBlackHeartFromEternalHeartSet.ts +0 -7
  351. package/sets/charactersWithFreeDevilDealsSet.ts +0 -4
  352. package/sets/charactersWithNoRedHeartsSet.ts +0 -17
  353. package/sets/charactersWithNoSoulHeartsSet.ts +0 -14
  354. package/sets/chestPickupVariantsSet.ts +0 -16
  355. package/sets/familiarsThatShootPlayerTearsSet.ts +0 -13
  356. package/sets/lostStyleCharactersSet.ts +0 -13
  357. package/sets/mineShaftRoomSubTypesSet.ts +0 -10
  358. package/sets/redHeartSubTypesSet.ts +0 -7
  359. package/sets/sinEntityTypesSet.ts +0 -11
  360. package/sets/singleUseActiveCollectibleTypesSet.ts +0 -13
  361. package/sets/storyBossesSet.ts +0 -17
  362. package/types/AnyEntity.ts +0 -12
  363. package/types/AwaitingTextInput.d.ts +0 -2
  364. package/types/CollectibleIndex.ts +0 -16
  365. package/types/PickingUpItem.ts +0 -89
  366. package/types/PlayerIndex.ts +0 -13
  367. package/types/private/IsaacAPIClass.ts +0 -3
  368. package/types/private/SerializedIsaacAPIClass.ts +0 -3
  369. package/types/private/TSTLClass.ts +0 -3
  370. package/upgradeMod.ts +0 -55
@@ -1,38 +0,0 @@
1
- import { TrinketType } from "isaac-typescript-definitions";
2
-
3
- export type PostTrinketBreakRegisterParameters = [
4
- callback: (player: EntityPlayer, trinketType: TrinketType) => void,
5
- trinketType?: TrinketType,
6
- ];
7
-
8
- const subscriptions: PostTrinketBreakRegisterParameters[] = [];
9
-
10
- /** @internal */
11
- export function postTrinketBreakHasSubscriptions(): boolean {
12
- return subscriptions.length > 0;
13
- }
14
-
15
- /** @internal */
16
- export function postTrinketBreakRegister(
17
- ...args: PostTrinketBreakRegisterParameters
18
- ): void {
19
- subscriptions.push(args);
20
- }
21
-
22
- /** @internal */
23
- export function postTrinketBreakFire(
24
- player: EntityPlayer,
25
- trinketType: TrinketType,
26
- ): void {
27
- for (const [callback, callbackTrinketType] of subscriptions) {
28
- // Handle the optional 2nd callback argument.
29
- if (
30
- callbackTrinketType !== undefined &&
31
- callbackTrinketType !== trinketType
32
- ) {
33
- continue;
34
- }
35
-
36
- callback(player, trinketType);
37
- }
38
- }
@@ -1,42 +0,0 @@
1
- import { PlayerType, PlayerVariant } from "isaac-typescript-definitions";
2
-
3
- export type PreBerserkDeathRegisterParameters = [
4
- callback: (player: EntityPlayer) => void,
5
- playerVariant?: PlayerVariant,
6
- character?: PlayerType,
7
- ];
8
-
9
- const subscriptions: PreBerserkDeathRegisterParameters[] = [];
10
-
11
- /** @internal */
12
- export function preBerserkDeathHasSubscriptions(): boolean {
13
- return subscriptions.length > 0;
14
- }
15
-
16
- /** @internal */
17
- export function preBerserkDeathRegister(
18
- ...args: PreBerserkDeathRegisterParameters
19
- ): void {
20
- subscriptions.push(args);
21
- }
22
-
23
- /** @internal */
24
- export function preBerserkDeathFire(player: EntityPlayer): void {
25
- const character = player.GetPlayerType();
26
-
27
- for (const [callback, playerVariant, callbackCharacter] of subscriptions) {
28
- // Handle the optional 2nd callback argument.
29
- if (playerVariant !== undefined && playerVariant !== player.Variant) {
30
- continue;
31
- }
32
-
33
- // Handle the optional 3rd callback argument.
34
- if (callbackCharacter !== undefined && callbackCharacter !== character) {
35
- continue;
36
- }
37
-
38
- callback(player);
39
- }
40
-
41
- return undefined;
42
- }
@@ -1,46 +0,0 @@
1
- import { PlayerType, PlayerVariant } from "isaac-typescript-definitions";
2
-
3
- export type PreCustomReviveRegisterParameters = [
4
- callback: (player: EntityPlayer) => int | undefined,
5
- playerVariant?: PlayerVariant,
6
- character?: PlayerType,
7
- ];
8
-
9
- const subscriptions: PreCustomReviveRegisterParameters[] = [];
10
-
11
- /** @internal */
12
- export function preCustomReviveHasSubscriptions(): boolean {
13
- return subscriptions.length > 0;
14
- }
15
-
16
- /** @internal */
17
- export function preCustomReviveRegister(
18
- ...args: PreCustomReviveRegisterParameters
19
- ): void {
20
- subscriptions.push(args);
21
- }
22
-
23
- /** @internal */
24
- export function preCustomReviveFire(player: EntityPlayer): int | undefined {
25
- const character = player.GetPlayerType();
26
-
27
- for (const [callback, playerVariant, callbackCharacter] of subscriptions) {
28
- // Handle the optional 2nd callback argument.
29
- if (playerVariant !== undefined && playerVariant !== player.Variant) {
30
- continue;
31
- }
32
-
33
- // Handle the optional 3rd callback argument.
34
- if (callbackCharacter !== undefined && callbackCharacter !== character) {
35
- continue;
36
- }
37
-
38
- const revivalType = callback(player);
39
-
40
- if (revivalType !== undefined) {
41
- return revivalType;
42
- }
43
- }
44
-
45
- return undefined;
46
- }
@@ -1,64 +0,0 @@
1
- import {
2
- CollectibleType,
3
- ItemType,
4
- TrinketType,
5
- } from "isaac-typescript-definitions";
6
- import {
7
- PickingUpItem,
8
- PickingUpItemCollectible,
9
- PickingUpItemTrinket,
10
- } from "../../types/PickingUpItem";
11
-
12
- export type PreItemPickupRegisterParameters =
13
- | [callback: (player: EntityPlayer, pickingUpItem: PickingUpItem) => void]
14
- | [
15
- callback: (
16
- player: EntityPlayer,
17
- pickingUpItem: PickingUpItemCollectible,
18
- ) => void,
19
- itemType: ItemType.PASSIVE | ItemType.ACTIVE | ItemType.FAMILIAR,
20
- collectibleType?: CollectibleType,
21
- ]
22
- | [
23
- callback: (
24
- player: EntityPlayer,
25
- pickingUpItem: PickingUpItemTrinket,
26
- ) => void,
27
- itemType: ItemType.TRINKET,
28
- trinketType?: TrinketType,
29
- ];
30
-
31
- const subscriptions: PreItemPickupRegisterParameters[] = [];
32
-
33
- /** @internal */
34
- export function preItemPickupHasSubscriptions(): boolean {
35
- return subscriptions.length > 0;
36
- }
37
-
38
- /** @internal */
39
- export function preItemPickupRegister(
40
- ...args: PreItemPickupRegisterParameters
41
- ): void {
42
- subscriptions.push(args);
43
- }
44
-
45
- /** @internal */
46
- export function preItemPickupFire(
47
- player: EntityPlayer,
48
- pickingUpItem: PickingUpItem,
49
- ): void {
50
- for (const [callback, itemType, subType] of subscriptions) {
51
- // Handle the optional 2nd callback argument.
52
- if (itemType !== undefined && itemType !== pickingUpItem.itemType) {
53
- continue;
54
- }
55
-
56
- // Handle the optional 3rd callback argument.
57
- if (subType !== undefined && subType !== pickingUpItem.subType) {
58
- continue;
59
- }
60
-
61
- // @ts-expect-error TypeScript isn't smart enough to treat the above checks as type narrowing.
62
- callback(player, pickingUpItem);
63
- }
64
- }
@@ -1,24 +0,0 @@
1
- export type PreNewLevelRegisterParameters = [
2
- callback: (player: EntityPlayer) => void,
3
- ];
4
-
5
- const subscriptions: PreNewLevelRegisterParameters[] = [];
6
-
7
- /** @internal */
8
- export function preNewLevelHasSubscriptions(): boolean {
9
- return subscriptions.length > 0;
10
- }
11
-
12
- /** @internal */
13
- export function preNewLevelRegister(
14
- ...args: PreNewLevelRegisterParameters
15
- ): void {
16
- subscriptions.push(args);
17
- }
18
-
19
- /** @internal */
20
- export function preNewLevelFire(player: EntityPlayer): void {
21
- for (const [callback] of subscriptions) {
22
- callback(player);
23
- }
24
- }
@@ -1,174 +0,0 @@
1
- /* eslint-disable sort-exports/sort-exports */
2
-
3
- import { isFunction, isPrimitive } from "../functions/types";
4
-
5
- // eslint-disable-next-line isaacscript/complete-sentences-jsdoc
6
- /**
7
- * A function that creates the default value for your `DefaultMap`. For example, if it was a
8
- * `DefaultMap` containing maps, the factory function would be: `() => new Map()`
9
- */
10
- export type FactoryFunction<V, Args extends unknown[]> = (
11
- ...extraArgs: Args
12
- ) => V;
13
-
14
- /**
15
- * `DefaultMap` is a data structure that makes working with default values easier.
16
- *
17
- * It is a common pattern to look up a value in a `Map`, and then, if the value does not exist, set
18
- * a default value for the key, and then return the default value. `DefaultMap` abstracts this
19
- * operation away by providing the `getAndSetDefault` method.
20
- *
21
- * Using a `DefaultMap` is nice because it makes code more declarative, since you specify what the
22
- * default value is alongside the types of the keys/values.
23
- *
24
- * When instantiating a new `DefaultMap`, you must specify default value as the first argument. (The
25
- * default value is the initial value that will be assigned to every new entry in the
26
- * `getAndSetDefault` method.) For example:
27
- *
28
- * ```ts
29
- * // Initializes a new empty DefaultMap with a default value of "foo".
30
- * const defaultMapWithString = new DefaultMap<string, string>("foo");
31
- *
32
- * const value = defaultMapWithString.getAndSetDefault("bar");
33
- * // value is now "foo" and an entry for "bar" is now set.
34
- * ```
35
- *
36
- * Sometimes, instead of having a static initial value for every entry in the map, you will want a
37
- * dynamic initial value that is contingent upon the key or some other variable. In these cases, you
38
- * can instead specify that the `DefaultMap` should run a function that will return the initial
39
- * value. (This is referred to as a "factory function".) For example:
40
- *
41
- * ```ts
42
- * // Initializes a new empty DefaultMap with a default value based on "someGlobalVariable".
43
- * const factoryFunction = () => someGlobalVariable ? 0 : 1;
44
- * const defaultMapWithFactoryFunction = new DefaultMap<string, string>(factoryFunction);
45
- * ```
46
- *
47
- * Note that in TypeScript and Lua, booleans, numbers, and strings are "passed by value". This means
48
- * that when the `DefaultMap` creates a new entry, if the default value is one of these 3 types, the
49
- * values will be copied. On the other hand, arrays and maps and other complex data structures are
50
- * "passed by reference". This means that when the `DefaultMap` creates a new entry, if the default
51
- * value is an array, then it would not be copied. Instead, the same shared array would be assigned
52
- * to every entry. Thus, to solve this problem, any variable that is passed by reference must be
53
- * created using a factory function to ensure that each copy is unique. For example:
54
- *
55
- * ```ts
56
- * // Initializes a new empty DefaultMap with a default value of a new empty array.
57
- * const factoryFunction = () => [];
58
- * const defaultMapWithArray = new DefaultMap<string, string[]>(factoryFunction);
59
- * ```
60
- *
61
- * In the previous two examples, the factory functions did not have any arguments. But you can also
62
- * specify a factory function that takes one or more arguments:
63
- *
64
- * ```ts
65
- * const factoryFunction = (arg: boolean) => arg ? 0 : 1;
66
- * const defaultMapWithArg = new DefaultMap<string, string, [arg: boolean]>(factoryFunction);
67
- * ```
68
- *
69
- * Similar to a normal `Map`, you can also include an initializer list in the constructor as the
70
- * second argument:
71
- *
72
- * ```ts
73
- * // Initializes a DefaultMap with a default value of "foo" and some initial values.
74
- * const defaultMapWithInitialValues = new DefaultMap<string, string>("foo", [
75
- * ["a1", "a2"],
76
- * ["b1", "b2"],
77
- * ], );
78
- * ```
79
- *
80
- * Finally, note that `DefaultMap` has the following additional utility methods:
81
- *
82
- * - `getAndSetDefault` - The method that is called inside the overridden `get` method. In most
83
- * cases, you can use the overridden `get` method instead of calling this function directly.
84
- * However, if a factory function was provided during instantiation, and the factory function has
85
- * one or more arguments, then you must call this method instead (and provide the corresponding
86
- * arguments).
87
- * - `getWithoutDefault` - Calls the original `Map.get` function (without setting the default
88
- * value).
89
- * - `getDefaultValue` - Returns the default value to be used for a new key. (If a factory function
90
- * was provided during instantiation, this will execute the factory function.)
91
- * - `getConstructorArg` - Helper method for cloning the map. Returns either the default value or
92
- * the reference to the factory function.
93
- */
94
- export class DefaultMap<Key, Value, Args extends unknown[] = []> extends Map<
95
- Key,
96
- Value
97
- > {
98
- private defaultValue: Value | undefined;
99
- private defaultValueFactory: FactoryFunction<Value, Args> | undefined;
100
-
101
- /**
102
- * See the main `DefaultMap` documentation:
103
- * https://isaacscript.github.io/isaacscript-common/classes/classes_DefaultMap.DefaultMap
104
- */
105
- constructor(
106
- defaultValueOrFactoryFunction: Value | FactoryFunction<Value, Args>,
107
- initializerArray?: Iterable<[Key, Value]>,
108
- ) {
109
- const argIsPrimitive = isPrimitive(defaultValueOrFactoryFunction);
110
- const argIsFunction = isFunction(defaultValueOrFactoryFunction);
111
- if (!argIsPrimitive && !argIsFunction) {
112
- error(
113
- `Failed to instantiate a DefaultMap since the provided default value was of type "${typeof defaultValueOrFactoryFunction}". This error usually means that you are trying to use an array (or some other non-primitive data structure that is passed by reference) as the default value. Instead, return the data structure in a factory function, like "() => []". See the DefaultMap documentation for more details.`,
114
- );
115
- }
116
-
117
- super(initializerArray);
118
-
119
- if (argIsFunction) {
120
- this.defaultValue = undefined;
121
- this.defaultValueFactory = defaultValueOrFactoryFunction;
122
- } else {
123
- this.defaultValue = defaultValueOrFactoryFunction as Value;
124
- this.defaultValueFactory = undefined;
125
- }
126
- }
127
-
128
- /**
129
- * If the key exists, this will return the same thing as the normal `Map.get` method. Otherwise,
130
- * it will set a default value for the provided key, and then return the default value.
131
- */
132
- getAndSetDefault(key: Key, ...extraArgs: Args): Value {
133
- const value = super.get(key);
134
- if (value !== undefined) {
135
- return value;
136
- }
137
-
138
- const defaultValue = this.getDefaultValue(...extraArgs);
139
- this.set(key, defaultValue);
140
- return defaultValue;
141
- }
142
-
143
- /**
144
- * Returns the default value to be used for a new key. (If a factory function was provided during
145
- * instantiation, this will execute the factory function.)
146
- */
147
- getDefaultValue(...extraArgs: Args): Value {
148
- if (this.defaultValue !== undefined) {
149
- return this.defaultValue;
150
- }
151
-
152
- if (this.defaultValueFactory !== undefined) {
153
- return this.defaultValueFactory(...extraArgs);
154
- }
155
-
156
- return error("A DefaultMap was incorrectly instantiated.");
157
- }
158
-
159
- /**
160
- * Helper method for cloning the map. Returns either the default value or a reference to the
161
- * factory function.
162
- */
163
- getConstructorArg(): Value | FactoryFunction<Value, Args> {
164
- if (this.defaultValue !== undefined) {
165
- return this.defaultValue;
166
- }
167
-
168
- if (this.defaultValueFactory !== undefined) {
169
- return this.defaultValueFactory;
170
- }
171
-
172
- return error("A DefaultMap was incorrectly instantiated.");
173
- }
174
- }
@@ -1,84 +0,0 @@
1
- import { ModCallback } from "isaac-typescript-definitions";
2
- import { ModCallbackCustom } from "../enums/ModCallbackCustom";
3
- import { AddCallbackParameterCustom } from "../interfaces/AddCallbackParameterCustom";
4
- import { CALLBACK_REGISTER_FUNCTIONS } from "../objects/callbackRegisterFunctions";
5
-
6
- /**
7
- * `isaacscript-common` has many custom callbacks that you can use in your mods. Instead of
8
- * hijacking the vanilla `Mod` object, we provide a `ModUpgraded` object for you to use, which
9
- * extends the base class and adds a new method of `AddCallbackCustom`.
10
- *
11
- * To upgrade your mod, use the `upgradeMod` helper function.
12
- */
13
- export class ModUpgraded implements Mod {
14
- // -----------------
15
- // Vanilla variables
16
- // -----------------
17
-
18
- Name: string; // The vanilla mod object stores this for some reason
19
-
20
- // ----------------
21
- // Custom variables
22
- // ----------------
23
-
24
- /** We store a copy of the original mod object so that we can re-implement its functions. */
25
- Mod: Mod;
26
-
27
- constructor(mod: Mod) {
28
- this.Name = mod.Name;
29
-
30
- this.Mod = mod;
31
- }
32
-
33
- // ---------------
34
- // Vanilla methods
35
- // ---------------
36
-
37
- AddCallback<T extends ModCallback>(
38
- modCallback: T,
39
- ...args: AddCallbackParameter[T]
40
- ): void {
41
- this.Mod.AddCallback(modCallback, ...args);
42
- }
43
-
44
- HasData(): boolean {
45
- return this.Mod.HasData();
46
- }
47
-
48
- LoadData(): string {
49
- return this.Mod.LoadData();
50
- }
51
-
52
- /**
53
- * This method does not care about the tertiary argument. Regardless of the conditions of how you
54
- * registered the callback, it will be removed.
55
- */
56
- RemoveCallback<T extends ModCallback>(
57
- modCallback: T,
58
- callback: AddCallbackParameter[T][0],
59
- ): void {
60
- this.Mod.RemoveCallback(modCallback, callback);
61
- }
62
-
63
- RemoveData(): void {
64
- this.Mod.RemoveData();
65
- }
66
-
67
- SaveData(data: string): void {
68
- this.Mod.SaveData(data);
69
- }
70
-
71
- // --------------
72
- // Custom methods
73
- // --------------
74
-
75
- // eslint-disable-next-line class-methods-use-this
76
- AddCallbackCustom<T extends ModCallbackCustom>(
77
- modCallbackCustom: T,
78
- ...args: AddCallbackParameterCustom[T]
79
- ): void {
80
- const callbackRegisterFunction =
81
- CALLBACK_REGISTER_FUNCTIONS[modCallbackCustom];
82
- callbackRegisterFunction(...args);
83
- }
84
- }
package/constants.ts DELETED
@@ -1,162 +0,0 @@
1
- /**
2
- * @module Constants
3
- */
4
-
5
- import {
6
- CollectibleType,
7
- Dimension,
8
- ItemPoolType,
9
- LevelStage,
10
- RoomType,
11
- TrinketSlot,
12
- } from "isaac-typescript-definitions";
13
- import { NUM_NORMAL_PILL_COLORS } from "./constantsFirstLast";
14
- import { getEnumLength, getLastEnumValue } from "./functions/enums";
15
-
16
- /**
17
- * The distance of the laser when Azazel does not have any range up items yet. For more info, see
18
- * the documentation for the `getAzazelBrimstoneDistance` function.
19
- */
20
- export const AZAZEL_DEFAULT_BRIMSTONE_DISTANCE = 75.125;
21
-
22
- /**
23
- * The path to the png file for collectible items during Curse of the Blind, making them appear with
24
- * a red question mark.
25
- */
26
- export const BLIND_ITEM_PNG_PATH = "gfx/items/collectibles/questionmark.png";
27
-
28
- /** Bombs explode when their frame count is equal to this value. */
29
- export const BOMB_EXPLODE_FRAME = 45;
30
-
31
- /** This is the initial value of the `EntityPickup.Wait` property after a collectible is spawned. */
32
- export const COLLECTIBLE_INITIAL_WAIT = 20;
33
-
34
- export const DEFAULT_ITEM_POOL_TYPE = ItemPoolType.TREASURE;
35
-
36
- /** This is also the distance that a player spawns from the door that they enter a room from. */
37
- export const DISTANCE_OF_GRID_TILE = 40;
38
-
39
- export const DOOR_HITBOX_RADIUS = 11;
40
-
41
- /**
42
- * When Eggies take fatal damage, they go into NpcState.STATE_SUICIDE and spawn 14 Swarm Spiders
43
- * while their StateFrame ticks upwards. The 14th spider appears when the StateFrame is at this
44
- * value.
45
- */
46
- export const EGGY_STATE_FRAME_OF_FINAL_SPIDER = 45;
47
-
48
- /**
49
- * A non-existent or completely transparent PNG file for use in clearing sprites. For more
50
- * information, see the documentation for the `clearSprite` helper function.
51
- */
52
- export const EMPTY_PNG_PATH = "gfx/none.png";
53
-
54
- /**
55
- * The random items that appear when the player has TMTRAINER are generated on the fly as they are
56
- * encountered by the player. The first TMTRAINER item takes the final possible 32 bit number. The
57
- * second TMTRAINER item subtracts one from that, and so on.
58
- */
59
- export const FIRST_GLITCHED_COLLECTIBLE_TYPE = ((1 << 32) -
60
- 1) as CollectibleType;
61
-
62
- export const GAME_FRAMES_PER_SECOND = 30;
63
- export const GRID_INDEX_CENTER_OF_1X1_ROOM = 67;
64
- export const ISAAC_FRAMES_PER_SECOND = 60;
65
-
66
- /**
67
- * The floor is represented by a 13x13 grid. Room indexes start at 0. The first column is
68
- * represented by grid indexes 0, 13, 26, and so on.
69
- */
70
- export const LEVEL_GRID_COLUMN_HEIGHT = 13;
71
-
72
- /**
73
- * The floor is represented by a 13x13 grid. Room indexes start at 0. The first row is represented
74
- * by grid indexes from 0 to 12. The second row is represented by grid indexes from 13 to 25, and so
75
- * on.
76
- */
77
- export const LEVEL_GRID_ROW_WIDTH = 13;
78
-
79
- /**
80
- * The floor is represented by a 13x13 grid. Room indexes start at 0. The first row is represented
81
- * by grid indexes from 0 to 12. The second row is represented by grid indexes from 13 to 25, and so
82
- * on. The maximum room index possible is 168. (It is not 169 because we start at 0 instead of 1.)
83
- */
84
- export const MAX_LEVEL_GRID_INDEX = 168;
85
-
86
- /**
87
- * The game has a limit on the number of currently spawned familiars and will refuse to spawn any
88
- * more if it reaches the limit. Blue flies and blue spiders have a lower priority and will be
89
- * deleted to make room for other familiars.
90
- */
91
- export const MAX_NUM_FAMILIARS = 64;
92
-
93
- /** The game can only handle up to four different players. */
94
- export const MAX_NUM_INPUTS = 4;
95
-
96
- /** With Birthright, it is possible for Magdalene to have 18 heart containers. */
97
- export const MAX_PLAYER_HEART_CONTAINERS = 18;
98
-
99
- /**
100
- * As the player continues to move in a direction, they will accelerate. When going from one wall to
101
- * another in a 2x2 room at 2.0 speed (the maximum that the speed stat can rise to), the amount of
102
- * units moved per update frame will climb to around 9.797 as they hit the opposite wall. The
103
- * constant specifies a value of 9.8 to be safe.
104
- */
105
- export const MAX_PLAYER_SPEED_IN_UNITS = 9.8;
106
-
107
- export const MAX_PLAYER_TRINKET_SLOTS = getEnumLength(TrinketSlot);
108
-
109
- /** If you set `EntityPlayer.ShotSpeed` lower than this value, it will have no effect. */
110
- export const MIN_PLAYER_SHOT_SPEED_STAT = 0.6;
111
-
112
- /** If you set `EntityPlayer.Speed` lower than this value, it will have no effect. */
113
- export const MIN_PLAYER_SPEED_STAT = 0.1;
114
-
115
- export const FIRST_ROOM_TYPE = RoomType.DEFAULT; // eslint-disable-line sort-exports/sort-exports
116
- export const LAST_ROOM_TYPE = getLastEnumValue(RoomType);
117
-
118
- /**
119
- * The maximum speed stat that a player can have. Any additional speed beyond this will not take
120
- * effect.
121
- */
122
- export const MAX_SPEED_STAT = 2.0;
123
-
124
- export const FIRST_STAGE = LevelStage.BASEMENT_1; // eslint-disable-line sort-exports/sort-exports
125
- export const LAST_STAGE = getLastEnumValue(LevelStage);
126
-
127
- /** Corresponds to the maximum value for `EntityPlayer.SamsonBerserkCharge`. */
128
- export const MAX_TAINTED_SAMSON_BERSERK_CHARGE = 100000;
129
-
130
- export const NUM_DIMENSIONS = getEnumLength(Dimension) - 1; // Account for "Dimension.CURRENT"
131
-
132
- /**
133
- * The pill pool for each run is comprised of one effect for each unique pill color (minus gold and
134
- * horse pills.)
135
- */
136
- export const NUM_PILLS_IN_POOL = NUM_NORMAL_PILL_COLORS;
137
-
138
- export const SECOND_IN_MILLISECONDS = 1000;
139
- export const MINUTE_IN_MILLISECONDS = 60 * SECOND_IN_MILLISECONDS; // eslint-disable-line sort-exports/sort-exports
140
-
141
- export const ONE_BY_ONE_ROOM_GRID_SIZE = 135;
142
-
143
- /** After taking damage, `EntityPlayer.SamsonBerserkCharge` is incremented by this amount. */
144
- export const TAINTED_SAMSON_BERSERK_CHARGE_FROM_TAKING_DAMAGE = 10000;
145
-
146
- /**
147
- * This is the number of draw coordinates that each heart spans on the UI in the upper left hand
148
- * corner.
149
- */
150
- export const UI_HEART_WIDTH = 12;
151
-
152
- /**
153
- * This is a safer version of the `Vector.One` constant. (Other mods can mutate this `Vector.One`,
154
- * so it is not safe to use.)
155
- */
156
- export const VectorOne: Readonly<Vector> = Vector(1, 1);
157
-
158
- /**
159
- * This is a safer version of the `Vector.Zero` constant. (Other mods can mutate `Vector.Zero`
160
- * vector, so it is not safe to use.)
161
- */
162
- export const VectorZero: Readonly<Vector> = Vector(0, 0);