isaacscript-common 4.0.1-dev.0 → 4.0.4

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 (378) hide show
  1. package/callbacks/postCursedTeleport.lua +2 -1
  2. package/callbacks/postEsauJr.lua +2 -1
  3. package/callbacks/postFlip.lua +4 -3
  4. package/callbacks/postItemDischarged.lua +4 -3
  5. package/callbacks/postNewRoomEarly.lua +2 -1
  6. package/callbacks/postSacrifice.lua +3 -2
  7. package/callbacks/postTrinketBreak.lua +3 -2
  8. package/callbacks/reorderedCallbacks.lua +1 -0
  9. package/classes/ModUpgraded.d.ts +5 -1
  10. package/classes/ModUpgraded.lua +2 -2
  11. package/features/playerInventory.lua +1 -0
  12. package/functions/player.lua +9 -14
  13. package/package.json +2 -2
  14. package/cachedClasses.ts +0 -39
  15. package/callbacks/customRevive.ts +0 -215
  16. package/callbacks/itemPickup.ts +0 -101
  17. package/callbacks/postAmbush.ts +0 -73
  18. package/callbacks/postBombExploded.ts +0 -26
  19. package/callbacks/postBombInitLate.ts +0 -36
  20. package/callbacks/postBoneSwing.ts +0 -64
  21. package/callbacks/postCollectibleInitFirst.ts +0 -40
  22. package/callbacks/postCursedTeleport.ts +0 -183
  23. package/callbacks/postCustomDoorEnter.ts +0 -292
  24. package/callbacks/postDiceRoomActivated.ts +0 -60
  25. package/callbacks/postDoorRender.ts +0 -26
  26. package/callbacks/postDoorUpdate.ts +0 -26
  27. package/callbacks/postEffectInitLate.ts +0 -36
  28. package/callbacks/postEffectStateChanged.ts +0 -43
  29. package/callbacks/postEsauJr.ts +0 -107
  30. package/callbacks/postFamiliarInitLate.ts +0 -36
  31. package/callbacks/postFamiliarStateChanged.ts +0 -43
  32. package/callbacks/postFlip.ts +0 -88
  33. package/callbacks/postGreedModeWave.ts +0 -41
  34. package/callbacks/postGridEntity.ts +0 -164
  35. package/callbacks/postGridEntityCollision.ts +0 -69
  36. package/callbacks/postGridEntityRender.ts +0 -26
  37. package/callbacks/postHolyMantleRemoved.ts +0 -55
  38. package/callbacks/postItemDischarged.ts +0 -149
  39. package/callbacks/postKnifeInitLate.ts +0 -36
  40. package/callbacks/postLaserInitLate.ts +0 -36
  41. package/callbacks/postNPCInitLate.ts +0 -36
  42. package/callbacks/postNPCStateChanged.ts +0 -42
  43. package/callbacks/postNewRoomEarly.ts +0 -90
  44. package/callbacks/postPickupCollect.ts +0 -48
  45. package/callbacks/postPickupInitFirst.ts +0 -70
  46. package/callbacks/postPickupInitLate.ts +0 -36
  47. package/callbacks/postPickupStateChanged.ts +0 -43
  48. package/callbacks/postPitRender.ts +0 -26
  49. package/callbacks/postPitUpdate.ts +0 -26
  50. package/callbacks/postPlayerChangeHealth.ts +0 -62
  51. package/callbacks/postPlayerChangeType.ts +0 -56
  52. package/callbacks/postPlayerCollectible.ts +0 -113
  53. package/callbacks/postPlayerFatalDamage.ts +0 -141
  54. package/callbacks/postPlayerInitLate.ts +0 -37
  55. package/callbacks/postPlayerReordered.ts +0 -142
  56. package/callbacks/postPoopRender.ts +0 -26
  57. package/callbacks/postPoopUpdate.ts +0 -26
  58. package/callbacks/postPressurePlateRender.ts +0 -26
  59. package/callbacks/postPressurePlateUpdate.ts +0 -26
  60. package/callbacks/postProjectileInitLate.ts +0 -36
  61. package/callbacks/postPurchase.ts +0 -64
  62. package/callbacks/postRockRender.ts +0 -26
  63. package/callbacks/postRockUpdate.ts +0 -26
  64. package/callbacks/postRoomClearChanged.ts +0 -57
  65. package/callbacks/postSacrifice.ts +0 -62
  66. package/callbacks/postSlotDestroyed.ts +0 -92
  67. package/callbacks/postSlotInitUpdate.ts +0 -68
  68. package/callbacks/postSlotRender.ts +0 -69
  69. package/callbacks/postSpikesRender.ts +0 -26
  70. package/callbacks/postSpikesUpdate.ts +0 -26
  71. package/callbacks/postTNTRender.ts +0 -26
  72. package/callbacks/postTNTUpdate.ts +0 -26
  73. package/callbacks/postTearInitLate.ts +0 -36
  74. package/callbacks/postTearInitVeryLate.ts +0 -41
  75. package/callbacks/postTransformation.ts +0 -59
  76. package/callbacks/postTrinketBreak.ts +0 -110
  77. package/callbacks/preBerserkDeath.ts +0 -49
  78. package/callbacks/preNewLevel.ts +0 -55
  79. package/callbacks/reorderedCallbacks.ts +0 -166
  80. package/callbacks/subscriptions/postAmbushFinished.ts +0 -32
  81. package/callbacks/subscriptions/postAmbushStarted.ts +0 -32
  82. package/callbacks/subscriptions/postBombInitLate.ts +0 -32
  83. package/callbacks/subscriptions/postBoneExploded.ts +0 -32
  84. package/callbacks/subscriptions/postBoneSwing.ts +0 -24
  85. package/callbacks/subscriptions/postCollectibleInitFirst.ts +0 -37
  86. package/callbacks/subscriptions/postCursedTeleport.ts +0 -24
  87. package/callbacks/subscriptions/postCustomDoorEnter.ts +0 -45
  88. package/callbacks/subscriptions/postCustomRevive.ts +0 -36
  89. package/callbacks/subscriptions/postDiceRoomActivated.ts +0 -38
  90. package/callbacks/subscriptions/postDoorRender.ts +0 -35
  91. package/callbacks/subscriptions/postDoorUpdate.ts +0 -35
  92. package/callbacks/subscriptions/postEffectInitLate.ts +0 -32
  93. package/callbacks/subscriptions/postEffectStateChanged.ts +0 -40
  94. package/callbacks/subscriptions/postEsauJr.ts +0 -24
  95. package/callbacks/subscriptions/postFamiliarInitLate.ts +0 -32
  96. package/callbacks/subscriptions/postFamiliarStateChanged.ts +0 -40
  97. package/callbacks/subscriptions/postFirstEsauJr.ts +0 -24
  98. package/callbacks/subscriptions/postFirstFlip.ts +0 -24
  99. package/callbacks/subscriptions/postFlip.ts +0 -22
  100. package/callbacks/subscriptions/postGameStartedReordered.ts +0 -24
  101. package/callbacks/subscriptions/postGreedModeWave.ts +0 -24
  102. package/callbacks/subscriptions/postGridEntityBroken.ts +0 -51
  103. package/callbacks/subscriptions/postGridEntityCollision.ts +0 -54
  104. package/callbacks/subscriptions/postGridEntityInit.ts +0 -51
  105. package/callbacks/subscriptions/postGridEntityRemove.ts +0 -52
  106. package/callbacks/subscriptions/postGridEntityRender.ts +0 -51
  107. package/callbacks/subscriptions/postGridEntityStateChanged.ts +0 -55
  108. package/callbacks/subscriptions/postGridEntityUpdate.ts +0 -51
  109. package/callbacks/subscriptions/postHolyMantleRemoved.ts +0 -48
  110. package/callbacks/subscriptions/postItemDischarged.ts +0 -43
  111. package/callbacks/subscriptions/postItemPickup.ts +0 -64
  112. package/callbacks/subscriptions/postKnifeInitLate.ts +0 -32
  113. package/callbacks/subscriptions/postLaserInitLate.ts +0 -32
  114. package/callbacks/subscriptions/postNPCInitLate.ts +0 -32
  115. package/callbacks/subscriptions/postNPCStateChanged.ts +0 -42
  116. package/callbacks/subscriptions/postNewLevelReordered.ts +0 -22
  117. package/callbacks/subscriptions/postNewRoomEarly.ts +0 -22
  118. package/callbacks/subscriptions/postNewRoomReordered.ts +0 -22
  119. package/callbacks/subscriptions/postPEffectUpdateReordered.ts +0 -40
  120. package/callbacks/subscriptions/postPickupCollect.ts +0 -35
  121. package/callbacks/subscriptions/postPickupInitFirst.ts +0 -32
  122. package/callbacks/subscriptions/postPickupInitLate.ts +0 -32
  123. package/callbacks/subscriptions/postPickupStateChanged.ts +0 -40
  124. package/callbacks/subscriptions/postPitRender.ts +0 -35
  125. package/callbacks/subscriptions/postPitUpdate.ts +0 -35
  126. package/callbacks/subscriptions/postPlayerChangeHealth.ts +0 -49
  127. package/callbacks/subscriptions/postPlayerChangeType.ts +0 -40
  128. package/callbacks/subscriptions/postPlayerCollectibleAdded.ts +0 -38
  129. package/callbacks/subscriptions/postPlayerCollectibleRemoved.ts +0 -38
  130. package/callbacks/subscriptions/postPlayerFatalDamage.ts +0 -68
  131. package/callbacks/subscriptions/postPlayerInitLate.ts +0 -40
  132. package/callbacks/subscriptions/postPlayerInitReordered.ts +0 -40
  133. package/callbacks/subscriptions/postPlayerRenderReordered.ts +0 -40
  134. package/callbacks/subscriptions/postPlayerUpdateReordered.ts +0 -40
  135. package/callbacks/subscriptions/postPoopRender.ts +0 -35
  136. package/callbacks/subscriptions/postPoopUpdate.ts +0 -35
  137. package/callbacks/subscriptions/postPressurePlateRender.ts +0 -37
  138. package/callbacks/subscriptions/postPressurePlateUpdate.ts +0 -37
  139. package/callbacks/subscriptions/postProjectileInitLate.ts +0 -35
  140. package/callbacks/subscriptions/postPurchase.ts +0 -31
  141. package/callbacks/subscriptions/postRockRender.ts +0 -35
  142. package/callbacks/subscriptions/postRockUpdate.ts +0 -35
  143. package/callbacks/subscriptions/postRoomClearChanged.ts +0 -30
  144. package/callbacks/subscriptions/postSacrifice.ts +0 -43
  145. package/callbacks/subscriptions/postSlotAnimationChanged.ts +0 -40
  146. package/callbacks/subscriptions/postSlotDestroyed.ts +0 -55
  147. package/callbacks/subscriptions/postSlotInit.ts +0 -32
  148. package/callbacks/subscriptions/postSlotRender.ts +0 -32
  149. package/callbacks/subscriptions/postSlotUpdate.ts +0 -32
  150. package/callbacks/subscriptions/postSpikesRender.ts +0 -35
  151. package/callbacks/subscriptions/postSpikesUpdate.ts +0 -35
  152. package/callbacks/subscriptions/postTNTRender.ts +0 -35
  153. package/callbacks/subscriptions/postTNTUpdate.ts +0 -35
  154. package/callbacks/subscriptions/postTearInitLate.ts +0 -32
  155. package/callbacks/subscriptions/postTearInitVeryLate.ts +0 -32
  156. package/callbacks/subscriptions/postTransformation.ts +0 -40
  157. package/callbacks/subscriptions/postTrinketBreak.ts +0 -38
  158. package/callbacks/subscriptions/preBerserkDeath.ts +0 -42
  159. package/callbacks/subscriptions/preCustomRevive.ts +0 -46
  160. package/callbacks/subscriptions/preItemPickup.ts +0 -64
  161. package/callbacks/subscriptions/preNewLevel.ts +0 -24
  162. package/classes/DefaultMap.ts +0 -174
  163. package/classes/ModUpgraded.ts +0 -77
  164. package/constants.ts +0 -162
  165. package/constantsFirstLast.ts +0 -217
  166. package/enums/AmbushType.ts +0 -4
  167. package/enums/HealthType.ts +0 -16
  168. package/enums/ModCallbackCustom.ts +0 -1278
  169. package/enums/PocketItemType.ts +0 -8
  170. package/enums/SerializationType.ts +0 -5
  171. package/enums/SlotDestructionType.ts +0 -4
  172. package/enums/private/CopyableIsaacAPIClassType.ts +0 -7
  173. package/enums/private/SaveDataKey.ts +0 -14
  174. package/enums/private/SerializationBrand.ts +0 -42
  175. package/features/characterHealthConversion.ts +0 -111
  176. package/features/characterStats.ts +0 -61
  177. package/features/debugDisplay/debugDisplay.ts +0 -221
  178. package/features/debugDisplay/exports.ts +0 -368
  179. package/features/debugDisplay/v.ts +0 -65
  180. package/features/deployJSONRoom.ts +0 -743
  181. package/features/disableInputs.ts +0 -193
  182. package/features/disableSound.ts +0 -77
  183. package/features/extraConsoleCommands/commandsDisplay.ts +0 -290
  184. package/features/extraConsoleCommands/commandsSubroutines.ts +0 -139
  185. package/features/extraConsoleCommands/init.ts +0 -334
  186. package/features/extraConsoleCommands/listCommands.ts +0 -1299
  187. package/features/extraConsoleCommands/v.ts +0 -14
  188. package/features/fadeInRemover.ts +0 -60
  189. package/features/fastReset.ts +0 -75
  190. package/features/forgottenSwitch.ts +0 -50
  191. package/features/getCollectibleItemPoolType.ts +0 -66
  192. package/features/persistentEntities.ts +0 -183
  193. package/features/playerInventory.ts +0 -133
  194. package/features/ponyDetection.ts +0 -74
  195. package/features/preventCollectibleRotation.ts +0 -115
  196. package/features/runInNFrames.ts +0 -148
  197. package/features/saveDataManager/constants.ts +0 -4
  198. package/features/saveDataManager/exports.ts +0 -229
  199. package/features/saveDataManager/load.ts +0 -99
  200. package/features/saveDataManager/main.ts +0 -195
  201. package/features/saveDataManager/maps.ts +0 -13
  202. package/features/saveDataManager/merge.ts +0 -194
  203. package/features/saveDataManager/save.ts +0 -74
  204. package/features/saveDataManager/serializationBrand.ts +0 -16
  205. package/features/sirenHelpers.ts +0 -129
  206. package/features/taintedLazarusPlayers.ts +0 -113
  207. package/featuresInitialized.ts +0 -20
  208. package/functions/ambush.ts +0 -47
  209. package/functions/array.ts +0 -410
  210. package/functions/benchmark.ts +0 -36
  211. package/functions/bitwise.ts +0 -24
  212. package/functions/bombs.ts +0 -12
  213. package/functions/boss.ts +0 -227
  214. package/functions/cacheFlag.ts +0 -12
  215. package/functions/cards.ts +0 -271
  216. package/functions/challenges.ts +0 -13
  217. package/functions/character.ts +0 -126
  218. package/functions/charge.ts +0 -237
  219. package/functions/chargeBar.ts +0 -67
  220. package/functions/collectibleCacheFlag.ts +0 -90
  221. package/functions/collectibleSet.ts +0 -56
  222. package/functions/collectibleTag.ts +0 -89
  223. package/functions/collectibles.ts +0 -659
  224. package/functions/color.ts +0 -128
  225. package/functions/debug.ts +0 -68
  226. package/functions/deepCopy.ts +0 -535
  227. package/functions/deepCopyTests.ts +0 -386
  228. package/functions/direction.ts +0 -49
  229. package/functions/doors.ts +0 -347
  230. package/functions/easing.ts +0 -182
  231. package/functions/eden.ts +0 -47
  232. package/functions/effects.ts +0 -20
  233. package/functions/entity.ts +0 -439
  234. package/functions/entitySpecific.ts +0 -889
  235. package/functions/entityTypes.ts +0 -6
  236. package/functions/enums.ts +0 -146
  237. package/functions/familiars.ts +0 -106
  238. package/functions/flag.ts +0 -165
  239. package/functions/flying.ts +0 -117
  240. package/functions/globals.ts +0 -242
  241. package/functions/gridEntity.ts +0 -511
  242. package/functions/gridEntitySpecific.ts +0 -112
  243. package/functions/input.ts +0 -139
  244. package/functions/isaacAPIClass.ts +0 -67
  245. package/functions/jsonHelpers.ts +0 -45
  246. package/functions/jsonRoom.ts +0 -100
  247. package/functions/kColor.ts +0 -129
  248. package/functions/language.ts +0 -13
  249. package/functions/level.ts +0 -31
  250. package/functions/log.ts +0 -720
  251. package/functions/map.ts +0 -56
  252. package/functions/math.ts +0 -149
  253. package/functions/mergeTests.ts +0 -288
  254. package/functions/npc.ts +0 -148
  255. package/functions/pickupVariants.ts +0 -60
  256. package/functions/pickups.ts +0 -499
  257. package/functions/pills.ts +0 -205
  258. package/functions/player.ts +0 -1060
  259. package/functions/playerDataStructures.ts +0 -150
  260. package/functions/playerHealth.ts +0 -382
  261. package/functions/playerIndex.ts +0 -195
  262. package/functions/pocketItems.ts +0 -149
  263. package/functions/positionVelocity.ts +0 -188
  264. package/functions/random.ts +0 -77
  265. package/functions/revive.ts +0 -201
  266. package/functions/rng.ts +0 -172
  267. package/functions/roomData.ts +0 -199
  268. package/functions/roomGrid.ts +0 -109
  269. package/functions/roomShape.ts +0 -80
  270. package/functions/rooms.ts +0 -648
  271. package/functions/run.ts +0 -36
  272. package/functions/saveFile.ts +0 -128
  273. package/functions/seeds.ts +0 -19
  274. package/functions/serialization.ts +0 -91
  275. package/functions/set.ts +0 -95
  276. package/functions/sound.ts +0 -9
  277. package/functions/spawnCollectible.ts +0 -104
  278. package/functions/sprite.ts +0 -107
  279. package/functions/stage.ts +0 -125
  280. package/functions/string.ts +0 -47
  281. package/functions/table.ts +0 -189
  282. package/functions/tears.ts +0 -32
  283. package/functions/transformations.ts +0 -131
  284. package/functions/trinketCacheFlag.ts +0 -60
  285. package/functions/trinketGive.ts +0 -157
  286. package/functions/trinkets.ts +0 -215
  287. package/functions/tstlClass.ts +0 -157
  288. package/functions/types.ts +0 -36
  289. package/functions/ui.ts +0 -138
  290. package/functions/utils.ts +0 -189
  291. package/functions/vector.ts +0 -126
  292. package/index.ts +0 -172
  293. package/initCustomCallbacks.ts +0 -132
  294. package/initFeatures.ts +0 -39
  295. package/interfaces/AddCallbackParameterCustom.ts +0 -188
  296. package/interfaces/ChargeBarSprites.ts +0 -12
  297. package/interfaces/JSONDoor.ts +0 -13
  298. package/interfaces/JSONEntity.ts +0 -16
  299. package/interfaces/JSONRoom.ts +0 -36
  300. package/interfaces/JSONRooms.ts +0 -12
  301. package/interfaces/JSONSpawn.ts +0 -14
  302. package/interfaces/PlayerHealth.ts +0 -16
  303. package/interfaces/PocketItemDescription.ts +0 -9
  304. package/interfaces/SaveData.ts +0 -29
  305. package/interfaces/TrinketSituation.ts +0 -9
  306. package/interfaces/private/TSTLClassMetatable.ts +0 -8
  307. package/maps/PHDPillConversions.ts +0 -21
  308. package/maps/cardMap.ts +0 -209
  309. package/maps/characterMap.ts +0 -87
  310. package/maps/collectibleDescriptionMap.ts +0 -732
  311. package/maps/collectibleNameMap.ts +0 -731
  312. package/maps/defaultPlayerStatMap.ts +0 -17
  313. package/maps/falsePHDPillConversions.ts +0 -35
  314. package/maps/gridEntityTypeToBrokenStateMap.ts +0 -50
  315. package/maps/gridEntityXMLMap.ts +0 -176
  316. package/maps/pillEffectMap.ts +0 -88
  317. package/maps/roomShapeToTopLeftWallGridIndexMap.ts +0 -18
  318. package/maps/roomTypeMap.ts +0 -40
  319. package/maps/trinketDescriptionMap.ts +0 -200
  320. package/maps/trinketNameMap.ts +0 -198
  321. package/objects/LRoomShapeToRectangles.ts +0 -44
  322. package/objects/callbackRegisterFunctions.ts +0 -187
  323. package/objects/cardDescriptions.ts +0 -105
  324. package/objects/cardNames.ts +0 -105
  325. package/objects/cardTypes.ts +0 -104
  326. package/objects/challengeNames.ts +0 -52
  327. package/objects/characterNames.ts +0 -48
  328. package/objects/coinSubTypeToValue.ts +0 -14
  329. package/objects/colors.ts +0 -16
  330. package/objects/directionNames.ts +0 -11
  331. package/objects/directionToDegrees.ts +0 -11
  332. package/objects/directionToVector.ts +0 -12
  333. package/objects/doorSlotFlagToDoorSlot.ts +0 -16
  334. package/objects/doorSlotToDirection.ts +0 -14
  335. package/objects/isaacAPIClassTypeToBrand.ts +0 -11
  336. package/objects/isaacAPIClassTypeToCopyFunction.ts +0 -18
  337. package/objects/languageNames.ts +0 -13
  338. package/objects/oppositeDoorSlots.ts +0 -15
  339. package/objects/pillEffectClasses.ts +0 -63
  340. package/objects/pillEffectNames.ts +0 -57
  341. package/objects/pillEffectTypes.ts +0 -62
  342. package/objects/roomShapeBounds.ts +0 -71
  343. package/objects/roomShapeLayoutSizes.ts +0 -45
  344. package/objects/roomShapeToBottomRightPosition.ts +0 -25
  345. package/objects/roomShapeToDoorSlots.ts +0 -83
  346. package/objects/roomShapeToDoorSlotsToGridIndexDelta.ts +0 -127
  347. package/objects/roomShapeToGridWidth.ts +0 -21
  348. package/objects/roomShapeToTopLeftPosition.ts +0 -26
  349. package/objects/roomShapeVolumes.ts +0 -38
  350. package/objects/roomTypeNames.ts +0 -36
  351. package/objects/serializedIsaacAPIClassTypeToIdentityFunction.ts +0 -14
  352. package/objects/stageTypeToLetter.ts +0 -15
  353. package/objects/transformationNames.ts +0 -18
  354. package/patchErrorFunctions.ts +0 -92
  355. package/sets/LRoomShapesSet.ts +0 -8
  356. package/sets/bossSets.ts +0 -470
  357. package/sets/charactersThatStartWithAnActiveItemSet.ts +0 -16
  358. package/sets/charactersWithBlackHeartFromEternalHeartSet.ts +0 -7
  359. package/sets/charactersWithFreeDevilDealsSet.ts +0 -4
  360. package/sets/charactersWithNoRedHeartsSet.ts +0 -17
  361. package/sets/charactersWithNoSoulHeartsSet.ts +0 -14
  362. package/sets/chestPickupVariantsSet.ts +0 -16
  363. package/sets/familiarsThatShootPlayerTearsSet.ts +0 -13
  364. package/sets/lostStyleCharactersSet.ts +0 -13
  365. package/sets/mineShaftRoomSubTypesSet.ts +0 -10
  366. package/sets/redHeartSubTypesSet.ts +0 -7
  367. package/sets/sinEntityTypesSet.ts +0 -11
  368. package/sets/singleUseActiveCollectibleTypesSet.ts +0 -13
  369. package/sets/storyBossesSet.ts +0 -17
  370. package/types/AnyEntity.ts +0 -12
  371. package/types/AwaitingTextInput.d.ts +0 -2
  372. package/types/CollectibleIndex.ts +0 -16
  373. package/types/PickingUpItem.ts +0 -89
  374. package/types/PlayerIndex.ts +0 -13
  375. package/types/private/IsaacAPIClass.ts +0 -3
  376. package/types/private/SerializedIsaacAPIClass.ts +0 -3
  377. package/types/private/TSTLClass.ts +0 -3
  378. package/upgradeMod.ts +0 -55
@@ -1,237 +0,0 @@
1
- import {
2
- ActiveSlot,
3
- CollectibleType,
4
- RoomShape,
5
- SoundEffect,
6
- TrinketType,
7
- } from "isaac-typescript-definitions";
8
- import { game, sfxManager } from "../cachedClasses";
9
- import { getCollectibleMaxCharges } from "./collectibles";
10
- import { getPlayers } from "./playerIndex";
11
-
12
- /**
13
- * Helper function to add a charge to a player's active item, emulating what happens when a room is
14
- * cleared.
15
- *
16
- * This function will take the following things into account:
17
- * - L rooms and 2x2 rooms granting a double charge
18
- * - The Battery
19
- * - AAA Battery
20
- *
21
- * @param player The player to grant the charges to.
22
- * @param ignoreBigRoomDoubleCharge Optional. If set to true, it will treat the current room as a
23
- * 1x1 room for the purposes of calculating how much charge to
24
- * grant. Default is false.
25
- */
26
- export function addRoomClearCharge(
27
- player: EntityPlayer,
28
- ignoreBigRoomDoubleCharge = false,
29
- ): void {
30
- for (const activeSlot of [
31
- ActiveSlot.PRIMARY,
32
- ActiveSlot.SECONDARY,
33
- ActiveSlot.POCKET,
34
- ]) {
35
- addRoomClearChargeToSlot(player, activeSlot, ignoreBigRoomDoubleCharge);
36
- }
37
- }
38
-
39
- /**
40
- * Helper function to add a charge to one of a player's active items, emulating what happens when a
41
- * room is cleared.
42
- *
43
- * This function will take the following things into account:
44
- * - L rooms and 2x2 rooms granting a double charge
45
- * - The Battery
46
- * - AAA Battery
47
- *
48
- * @param player The player to grant the charges to.
49
- * @param activeSlot The active item slot to grant the charges to.
50
- * @param ignoreBigRoomDoubleCharge Optional. If set to true, it will treat the current room as a
51
- * 1x1 room for the purposes of calculating how much charge to
52
- * grant. Default is false.
53
- */
54
- export function addRoomClearChargeToSlot(
55
- player: EntityPlayer,
56
- activeSlot: ActiveSlot,
57
- ignoreBigRoomDoubleCharge = false,
58
- ): void {
59
- if (!player.NeedsCharge(activeSlot)) {
60
- return;
61
- }
62
-
63
- const hud = game.GetHUD();
64
-
65
- // Find out the new charge to set on the item.
66
- const totalCharge = getTotalCharge(player, activeSlot);
67
- const chargesToAdd = getNumChargesToAdd(
68
- player,
69
- activeSlot,
70
- ignoreBigRoomDoubleCharge,
71
- );
72
- const modifiedChargesToAdd = getNumChargesWithAAAModifier(
73
- player,
74
- activeSlot,
75
- chargesToAdd,
76
- );
77
- const newCharge = totalCharge + modifiedChargesToAdd;
78
-
79
- player.SetActiveCharge(newCharge, activeSlot);
80
- hud.FlashChargeBar(player, activeSlot);
81
-
82
- playChargeSoundEffect(player, activeSlot);
83
- }
84
-
85
- function getNumChargesToAdd(
86
- player: EntityPlayer,
87
- activeSlot: ActiveSlot,
88
- ignoreBigRoomDoubleCharge = false,
89
- ) {
90
- const room = game.GetRoom();
91
- const roomShape = room.GetRoomShape();
92
- const activeItem = player.GetActiveItem(activeSlot);
93
- const activeCharge = player.GetActiveCharge(activeSlot);
94
- const batteryCharge = player.GetBatteryCharge(activeSlot);
95
- const hasBattery = player.HasCollectible(CollectibleType.BATTERY);
96
- const maxCharges = getCollectibleMaxCharges(activeItem);
97
-
98
- if (!hasBattery && activeCharge === maxCharges) {
99
- return 0;
100
- }
101
-
102
- if (hasBattery && batteryCharge === maxCharges) {
103
- return 0;
104
- }
105
-
106
- if (!hasBattery && activeCharge + 1 === maxCharges) {
107
- // We are only 1 charge away from a full charge, so only add one charge to avoid an overcharge.
108
- // (It is possible to set orange charges without the player actually having The Battery.)
109
- return 1;
110
- }
111
-
112
- if (hasBattery && batteryCharge + 1 === maxCharges) {
113
- // We are only 1 charge away from a full double-charge, so only add one charge to avoid an
114
- // overcharge.
115
- return 1;
116
- }
117
-
118
- if (roomShape >= RoomShape.SHAPE_2x2 && !ignoreBigRoomDoubleCharge) {
119
- // 2x2 rooms and L rooms should grant 2 charges.
120
- return 2;
121
- }
122
-
123
- // Clearing a room grants 1 charge by default.
124
- return 1;
125
- }
126
-
127
- /**
128
- * The AAA Battery should grant an extra charge when the active item is one away from being fully
129
- * charged.
130
- */
131
- function getNumChargesWithAAAModifier(
132
- player: EntityPlayer,
133
- activeSlot: ActiveSlot,
134
- chargesToAdd: int,
135
- ) {
136
- const activeItem = player.GetActiveItem(activeSlot);
137
- const activeCharge = player.GetActiveCharge(activeSlot);
138
- const batteryCharge = player.GetBatteryCharge(activeSlot);
139
- const hasBattery = player.HasCollectible(CollectibleType.BATTERY);
140
- const hasAAABattery = player.HasTrinket(TrinketType.AAA_BATTERY);
141
- const maxCharges = getCollectibleMaxCharges(activeItem);
142
-
143
- if (!hasAAABattery) {
144
- return chargesToAdd;
145
- }
146
-
147
- if (!hasBattery && activeCharge + chargesToAdd === maxCharges - 1) {
148
- return maxCharges + 1;
149
- }
150
-
151
- if (hasBattery && batteryCharge + chargesToAdd === maxCharges - 1) {
152
- return maxCharges + 1;
153
- }
154
-
155
- return chargesToAdd;
156
- }
157
-
158
- /**
159
- * Helper function to add a charge to every player's active item, emulating what happens when a room
160
- * is cleared.
161
- *
162
- * This function will take the following things into account:
163
- * - L rooms and 2x2 rooms granting a double charge
164
- * - The Battery
165
- * - AAA Battery
166
- *
167
- * @param ignoreBigRoomDoubleCharge Optional. If set to true, it will treat the current room as a
168
- * 1x1 room for the purposes of calculating how much charge to
169
- * grant. Default is false.
170
- */
171
- export function addRoomClearCharges(ignoreBigRoomDoubleCharge = false): void {
172
- for (const player of getPlayers()) {
173
- addRoomClearCharge(player, ignoreBigRoomDoubleCharge);
174
- }
175
- }
176
-
177
- /**
178
- * Helper function to get the combined normal charge and the battery charge for the player's active
179
- * item. This is useful because you have to add these two values together when setting the active
180
- * charge.
181
- */
182
- export function getTotalCharge(
183
- player: EntityPlayer,
184
- activeSlot: ActiveSlot,
185
- ): int {
186
- const activeCharge = player.GetActiveCharge(activeSlot);
187
- const batteryCharge = player.GetBatteryCharge(activeSlot);
188
-
189
- return activeCharge + batteryCharge;
190
- }
191
-
192
- export function isActiveSlotDoubleCharged(
193
- player: EntityPlayer,
194
- activeSlot: ActiveSlot,
195
- ): boolean {
196
- const collectibleType = player.GetActiveItem(activeSlot);
197
- const batteryCharge = player.GetBatteryCharge(activeSlot);
198
- const maxCharges = getCollectibleMaxCharges(collectibleType);
199
-
200
- return batteryCharge >= maxCharges;
201
- }
202
-
203
- export function playChargeSoundEffect(
204
- player: EntityPlayer,
205
- activeSlot: ActiveSlot,
206
- ): void {
207
- for (const soundEffect of [SoundEffect.BATTERY_CHARGE, SoundEffect.BEEP]) {
208
- sfxManager.Stop(soundEffect);
209
- }
210
-
211
- const chargeSoundEffect = shouldPlayFullRechargeSound(player, activeSlot)
212
- ? SoundEffect.BATTERY_CHARGE
213
- : SoundEffect.BEEP;
214
- sfxManager.Play(chargeSoundEffect);
215
- }
216
-
217
- function shouldPlayFullRechargeSound(
218
- player: EntityPlayer,
219
- activeSlot: ActiveSlot,
220
- ) {
221
- const activeItem = player.GetActiveItem(activeSlot);
222
- const activeCharge = player.GetActiveCharge(activeSlot);
223
- const batteryCharge = player.GetBatteryCharge(activeSlot);
224
- const hasBattery = player.HasCollectible(CollectibleType.BATTERY);
225
- const maxCharges = getCollectibleMaxCharges(activeItem);
226
-
227
- if (!hasBattery) {
228
- // Play the full recharge sound if we are now fully charged.
229
- return !player.NeedsCharge(activeSlot);
230
- }
231
-
232
- // Play the full recharge sound if we are now fully charged or we are exactly half-way charged.
233
- return (
234
- !player.NeedsCharge(activeSlot) ||
235
- (activeCharge === maxCharges && batteryCharge === 0)
236
- );
237
- }
@@ -1,67 +0,0 @@
1
- import { VectorZero } from "../constants";
2
- import { ChargeBarSprites } from "../interfaces/ChargeBarSprites";
3
-
4
- const CHARGE_BAR_ANM2 = "gfx/ui/ui_chargebar.anm2";
5
-
6
- /**
7
- * Constructor for a `ChargeBarSprites` object. For more information, see the `renderChargeBar`
8
- * helper function.
9
- */
10
- export function newChargeBarSprites(maxCharges: int): ChargeBarSprites {
11
- const back = Sprite();
12
- back.Load(CHARGE_BAR_ANM2, true);
13
- back.Play("BarEmpty", true);
14
-
15
- const meter = Sprite();
16
- meter.Load(CHARGE_BAR_ANM2, true);
17
- meter.Play("BarFull", true);
18
-
19
- const meterBattery = Sprite();
20
- meterBattery.Load(CHARGE_BAR_ANM2, true);
21
- meterBattery.Play("BarFull", true);
22
-
23
- const lines = Sprite();
24
- lines.Load(CHARGE_BAR_ANM2, true);
25
- lines.Play(`BarOverlay${maxCharges}`, true);
26
-
27
- return {
28
- back,
29
- meter,
30
- meterBattery,
31
- lines,
32
- maxCharges,
33
- };
34
- }
35
-
36
- /**
37
- * Helper function to render a charge bar on the screen. First, call the `newChargeBarSprites`
38
- * function to initialize the sprites, and then call this function on every render frame.
39
- */
40
- export function renderChargeBar(
41
- sprites: ChargeBarSprites,
42
- position: Vector,
43
- normalCharges: int,
44
- batteryCharges: int,
45
- ): void {
46
- sprites.back.Render(position, VectorZero, VectorZero);
47
-
48
- const normalChargesClamp = getChargeBarClamp(
49
- normalCharges,
50
- sprites.maxCharges,
51
- );
52
- sprites.meter.Render(position, normalChargesClamp, VectorZero);
53
-
54
- const batteryChargesClamp = getChargeBarClamp(
55
- batteryCharges,
56
- sprites.maxCharges,
57
- );
58
- sprites.meterBattery.Render(position, batteryChargesClamp, VectorZero);
59
-
60
- sprites.lines.Render(position, VectorZero, VectorZero);
61
- }
62
-
63
- function getChargeBarClamp(charges: int, maxCharges: int) {
64
- const meterMultiplier = 24 / maxCharges;
65
- const meterClip = 26 - charges * meterMultiplier;
66
- return Vector(0, meterClip);
67
- }
@@ -1,90 +0,0 @@
1
- import { CacheFlag, CollectibleType } from "isaac-typescript-definitions";
2
- import { itemConfig } from "../cachedClasses";
3
- import { getCollectibleTypeRange } from "./collectibles";
4
- import { getEnumValues } from "./enums";
5
- import { hasFlag } from "./flag";
6
- import { copySet, getSortedSetValues } from "./set";
7
- import { repeat } from "./utils";
8
-
9
- const CACHE_FLAG_TO_COLLECTIBLES_MAP = new Map<
10
- CacheFlag,
11
- Set<CollectibleType>
12
- >();
13
-
14
- function initCacheFlagMap() {
15
- for (const cacheFlag of getEnumValues(CacheFlag)) {
16
- const collectiblesSet = new Set<CollectibleType>();
17
-
18
- for (const collectibleType of getCollectibleTypeRange()) {
19
- if (collectibleHasCacheFlag(collectibleType, cacheFlag)) {
20
- collectiblesSet.add(collectibleType);
21
- }
22
- }
23
-
24
- CACHE_FLAG_TO_COLLECTIBLES_MAP.set(cacheFlag, collectiblesSet);
25
- }
26
- }
27
-
28
- export function collectibleHasCacheFlag(
29
- collectibleType: CollectibleType,
30
- cacheFlag: CacheFlag,
31
- ): boolean {
32
- const itemConfigItem = itemConfig.GetCollectible(collectibleType);
33
- if (itemConfigItem === undefined) {
34
- return false;
35
- }
36
-
37
- return hasFlag(itemConfigItem.CacheFlags, cacheFlag);
38
- }
39
-
40
- /**
41
- * Returns a set containing every collectible type with the given cache flag, including modded
42
- * collectibles.
43
- */
44
- export function getCollectiblesForCacheFlag(
45
- cacheFlag: CacheFlag,
46
- ): Set<CollectibleType> {
47
- // Lazy initialize the map.
48
- if (CACHE_FLAG_TO_COLLECTIBLES_MAP.size === 0) {
49
- initCacheFlagMap();
50
- }
51
-
52
- const collectiblesSet = CACHE_FLAG_TO_COLLECTIBLES_MAP.get(cacheFlag);
53
- if (collectiblesSet === undefined) {
54
- return new Set();
55
- }
56
-
57
- return copySet(collectiblesSet);
58
- }
59
-
60
- /**
61
- * Returns an array containing every collectible type that the player has that matches the provided
62
- * CacheFlag.
63
- *
64
- * For example, if the cache flag is `CacheFlag.FLYING`, and the player has one Lord of the Pit and
65
- * two Dead Doves, then this function would return:
66
- *
67
- * ```ts
68
- * [
69
- * CollectibleType.LORD_OF_THE_PIT,
70
- * CollectibleType.DEAD_DOVE,
71
- * CollectibleType.DEAD_DOVE,
72
- * ]
73
- * ```
74
- */
75
- export function getPlayerCollectiblesForCacheFlag(
76
- player: EntityPlayer,
77
- cacheFlag: CacheFlag,
78
- ): CollectibleType[] {
79
- const collectiblesForCacheFlag = getCollectiblesForCacheFlag(cacheFlag);
80
-
81
- const playerCollectibles: CollectibleType[] = [];
82
- for (const collectibleType of getSortedSetValues(collectiblesForCacheFlag)) {
83
- const numCollectibles = player.GetCollectibleNum(collectibleType);
84
- repeat(numCollectibles, () => {
85
- playerCollectibles.push(collectibleType);
86
- });
87
- }
88
-
89
- return playerCollectibles;
90
- }
@@ -1,56 +0,0 @@
1
- import { CollectibleType } from "isaac-typescript-definitions";
2
- import { itemConfig } from "../cachedClasses";
3
- import { LAST_VANILLA_COLLECTIBLE_TYPE } from "../constantsFirstLast";
4
- import { getCollectibleTypeRange } from "./collectibles";
5
-
6
- const ALL_COLLECTIBLES_SET = new Set<CollectibleType>();
7
- const VANILLA_COLLECTIBLES_SET = new Set<CollectibleType>();
8
- const MODDED_COLLECTIBLES_SET = new Set<CollectibleType>();
9
-
10
- function initCollectibleSets() {
11
- for (const collectibleType of getCollectibleTypeRange()) {
12
- const itemConfigItem = itemConfig.GetCollectible(collectibleType);
13
- if (itemConfigItem === undefined) {
14
- continue;
15
- }
16
-
17
- ALL_COLLECTIBLES_SET.add(collectibleType);
18
- if (collectibleType <= LAST_VANILLA_COLLECTIBLE_TYPE) {
19
- VANILLA_COLLECTIBLES_SET.add(collectibleType);
20
- } else {
21
- MODDED_COLLECTIBLES_SET.add(collectibleType);
22
- }
23
- }
24
- }
25
-
26
- /**
27
- * Returns a set containing every valid collectible type in the game, including modded collectibles.
28
- */
29
- export function getCollectibleSet(): ReadonlySet<CollectibleType> {
30
- // Lazy initialize the sets.
31
- if (ALL_COLLECTIBLES_SET.size === 0) {
32
- initCollectibleSets();
33
- }
34
-
35
- return ALL_COLLECTIBLES_SET;
36
- }
37
-
38
- /** Returns a set containing every modded collectible type in the game. */
39
- export function getModdedCollectibleSet(): ReadonlySet<CollectibleType> {
40
- // Lazy initialize the sets.
41
- if (ALL_COLLECTIBLES_SET.size === 0) {
42
- initCollectibleSets();
43
- }
44
-
45
- return MODDED_COLLECTIBLES_SET;
46
- }
47
-
48
- /** Returns a set containing every valid vanilla collectible type in the game. */
49
- export function getVanillaCollectibleSet(): ReadonlySet<CollectibleType> {
50
- // Lazy initialize the sets.
51
- if (ALL_COLLECTIBLES_SET.size === 0) {
52
- initCollectibleSets();
53
- }
54
-
55
- return VANILLA_COLLECTIBLES_SET;
56
- }
@@ -1,89 +0,0 @@
1
- import { CollectibleType, ItemConfigTag } from "isaac-typescript-definitions";
2
- import { itemConfig } from "../cachedClasses";
3
- import { getCollectibleTypeRange } from "./collectibles";
4
- import { getEnumValues } from "./enums";
5
- import { getFlagName } from "./flag";
6
- import { getPlayerCollectibleCount } from "./player";
7
- import { copySet } from "./set";
8
-
9
- const TAG_TO_COLLECTIBLE_TYPES_MAP = new Map<
10
- ItemConfigTag,
11
- Set<CollectibleType>
12
- >();
13
-
14
- function initTagMap() {
15
- // The tag to collectible types map should be valid for every tag, so we initialize it with empty
16
- // sets.
17
- for (const itemConfigTag of getEnumValues(ItemConfigTag)) {
18
- TAG_TO_COLLECTIBLE_TYPES_MAP.set(itemConfigTag, new Set());
19
- }
20
-
21
- for (const collectibleType of getCollectibleTypeRange()) {
22
- for (const itemConfigTag of getEnumValues(ItemConfigTag)) {
23
- if (!collectibleHasTag(collectibleType, itemConfigTag)) {
24
- continue;
25
- }
26
-
27
- const collectibleTypesSet =
28
- TAG_TO_COLLECTIBLE_TYPES_MAP.get(itemConfigTag);
29
- if (collectibleTypesSet === undefined) {
30
- const flagName = getFlagName(itemConfigTag, ItemConfigTag);
31
- error(`Failed to get the collectible types for item tag: ${flagName}`);
32
- }
33
- collectibleTypesSet.add(collectibleType);
34
- }
35
- }
36
- }
37
-
38
- export function collectibleHasTag(
39
- collectibleType: CollectibleType,
40
- tag: ItemConfigTag,
41
- ): boolean {
42
- const itemConfigItem = itemConfig.GetCollectible(collectibleType);
43
- if (itemConfigItem === undefined) {
44
- return false;
45
- }
46
-
47
- return itemConfigItem.HasTags(tag);
48
- }
49
-
50
- /**
51
- * Helper function to get all of the collectible types in the game that have a certain tag.
52
- *
53
- * For example, to get all of the collectible types that count as offensive for the purposes of
54
- * Tainted Lost:
55
- *
56
- * ```ts
57
- * const offensiveCollectibleTypes = getCollectibleTypesWithTag(ItemConfigTag.OFFENSIVE);
58
- * ```
59
- */
60
- export function getCollectibleTypesWithTag(
61
- itemConfigTag: ItemConfigTag,
62
- ): Set<CollectibleType> {
63
- // Lazy initialize the map.
64
- if (TAG_TO_COLLECTIBLE_TYPES_MAP.size === 0) {
65
- initTagMap();
66
- }
67
-
68
- const collectibleTypes = TAG_TO_COLLECTIBLE_TYPES_MAP.get(itemConfigTag);
69
- if (collectibleTypes === undefined) {
70
- error(
71
- `The item config tag of ${itemConfigTag} is not a valid value of the ItemConfigTag enum.`,
72
- );
73
- }
74
-
75
- return copySet(collectibleTypes);
76
- }
77
-
78
- /** Returns the number of items that a player has towards a particular transformation. */
79
- export function getPlayerNumCollectiblesWithTag(
80
- player: EntityPlayer,
81
- itemConfigTag: ItemConfigTag,
82
- ): int {
83
- const collectibleTypesSet = getCollectibleTypesWithTag(itemConfigTag);
84
- return getPlayerCollectibleCount(player, ...collectibleTypesSet.values());
85
- }
86
-
87
- export function isQuestCollectible(collectibleType: CollectibleType): boolean {
88
- return collectibleHasTag(collectibleType, ItemConfigTag.QUEST);
89
- }