isaacscript-common 1.0.566 → 1.0.570
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.
- package/dist/constants.d.ts +2 -2
- package/dist/constants.lua +2 -2
- package/dist/functions/entity.d.ts +15 -0
- package/dist/functions/entity.lua +28 -0
- package/dist/functions/log.d.ts +1 -0
- package/dist/functions/log.lua +45 -0
- package/dist/functions/npc.d.ts +14 -0
- package/dist/functions/npc.lua +14 -0
- package/dist/functions/rooms.d.ts +7 -0
- package/dist/index.d.ts +1 -0
- package/dist/types/AnyEntity.d.ts +2 -0
- package/dist/types/AnyEntity.lua +3 -0
- package/package.json +2 -2
package/dist/constants.d.ts
CHANGED
|
@@ -60,8 +60,8 @@ export declare const FINAL_STAGE: number;
|
|
|
60
60
|
* second TMTRAINER item subtracts one from that, and so on.
|
|
61
61
|
*/
|
|
62
62
|
export declare const FIRST_GLITCHED_COLLECTIBLE_TYPE: number;
|
|
63
|
-
export declare const GENESIS_ROOM_VARIANT =
|
|
64
|
-
export declare const GENESIS_ROOM_SUBTYPE =
|
|
63
|
+
export declare const GENESIS_ROOM_VARIANT = -1;
|
|
64
|
+
export declare const GENESIS_ROOM_SUBTYPE = -1;
|
|
65
65
|
export declare const GOLDEN_TRINKET_SHIFT: number;
|
|
66
66
|
export declare const GRID_INDEX_CENTER_OF_1X1_ROOM = 67;
|
|
67
67
|
export declare const GAME_FRAMES_PER_SECOND = 30;
|
package/dist/constants.lua
CHANGED
|
@@ -25,8 +25,8 @@ ____exports.EMPTY_PNG_PATH = "gfx/none.png"
|
|
|
25
25
|
____exports.FAMILIARS_THAT_SHOOT_PLAYER_TEARS = __TS__New(Set, {FamiliarVariant.SCISSORS, FamiliarVariant.INCUBUS, FamiliarVariant.FATES_REWARD, FamiliarVariant.SPRINKLER, FamiliarVariant.LOST_SOUL, FamiliarVariant.TWISTED_BABY, FamiliarVariant.BLOOD_BABY, FamiliarVariant.DECAP_ATTACK})
|
|
26
26
|
____exports.FINAL_STAGE = LevelStage.NUM_STAGES - 1
|
|
27
27
|
____exports.FIRST_GLITCHED_COLLECTIBLE_TYPE = (1 << 32) - 1
|
|
28
|
-
____exports.GENESIS_ROOM_VARIANT =
|
|
29
|
-
____exports.GENESIS_ROOM_SUBTYPE =
|
|
28
|
+
____exports.GENESIS_ROOM_VARIANT = -1
|
|
29
|
+
____exports.GENESIS_ROOM_SUBTYPE = -1
|
|
30
30
|
____exports.GOLDEN_TRINKET_SHIFT = 1 << 15
|
|
31
31
|
____exports.GRID_INDEX_CENTER_OF_1X1_ROOM = 67
|
|
32
32
|
____exports.GAME_FRAMES_PER_SECOND = 30
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/// <reference types="isaac-typescript-definitions" />
|
|
2
|
+
import { AnyEntity } from "../types/AnyEntity";
|
|
2
3
|
export declare function anyEntityCloserThan(entities: Entity[], position: Vector, distance: int): boolean;
|
|
3
4
|
/**
|
|
4
5
|
* Helper function to get all of the bombs in the room.
|
|
@@ -24,6 +25,11 @@ export declare function getBombs(matchingVariant?: number, matchingSubType?: num
|
|
|
24
25
|
* ```
|
|
25
26
|
*/
|
|
26
27
|
export declare function getClosestEntityTo(referenceEntity: Entity, entities: Entity[]): Entity;
|
|
28
|
+
/**
|
|
29
|
+
* Helper function to compare two different arrays of entities. Returns the entities that are in the
|
|
30
|
+
* second array but not in the first array.
|
|
31
|
+
*/
|
|
32
|
+
export declare function getFilteredNewEntities<T extends AnyEntity>(oldEntities: T[], newEntities: T[]): T[];
|
|
27
33
|
/**
|
|
28
34
|
* Helper function to get all of the effects in the room.
|
|
29
35
|
*
|
|
@@ -251,6 +257,15 @@ export declare function removeAllProjectiles(variant?: ProjectileVariant | int,
|
|
|
251
257
|
* @returns True if one or more tears was removed, false otherwise.
|
|
252
258
|
*/
|
|
253
259
|
export declare function removeAllTears(variant?: TearVariant | int, subType?: int, cap?: int): boolean;
|
|
260
|
+
/**
|
|
261
|
+
* Game().RerollEnemy rerolls a boolean of whether or not the enemy was rerolled. However, you
|
|
262
|
+
* cannot use the same entity object after a reroll. This function calls game.RerollEnemy and
|
|
263
|
+
* returns the new entity object.
|
|
264
|
+
*
|
|
265
|
+
* @param entity The entity to reroll
|
|
266
|
+
* @returns If the entity was not rerolled, returns the original entity. otherwise, returns the resulting entity from the reroll
|
|
267
|
+
*/
|
|
268
|
+
export declare function rerollEnemy(entity: Entity): Entity;
|
|
254
269
|
/**
|
|
255
270
|
* Helper function to set the position of every entity in the room based on a map of positions. If
|
|
256
271
|
* an entity is found that does not have matching element in the provided map, then that entity will
|
|
@@ -44,6 +44,20 @@ function ____exports.getClosestEntityTo(self, referenceEntity, entities)
|
|
|
44
44
|
end
|
|
45
45
|
return closestEntity
|
|
46
46
|
end
|
|
47
|
+
function ____exports.getFilteredNewEntities(self, oldEntities, newEntities)
|
|
48
|
+
local oldEntitiesSet = __TS__New(Set)
|
|
49
|
+
for ____, entity in ipairs(oldEntities) do
|
|
50
|
+
local ptrHash = GetPtrHash(entity)
|
|
51
|
+
oldEntitiesSet:add(ptrHash)
|
|
52
|
+
end
|
|
53
|
+
return __TS__ArrayFilter(
|
|
54
|
+
newEntities,
|
|
55
|
+
function(____, entity)
|
|
56
|
+
local ptrHash = GetPtrHash(entity)
|
|
57
|
+
return not oldEntitiesSet:has(ptrHash)
|
|
58
|
+
end
|
|
59
|
+
)
|
|
60
|
+
end
|
|
47
61
|
function ____exports.getEffects(self, matchingVariant, matchingSubType)
|
|
48
62
|
if matchingVariant == nil then
|
|
49
63
|
matchingVariant = -1
|
|
@@ -280,6 +294,20 @@ function ____exports.removeAllTears(self, variant, subType, cap)
|
|
|
280
294
|
local tears = ____exports.getTears(nil, variant, subType)
|
|
281
295
|
return ____exports.removeEntities(nil, tears, cap)
|
|
282
296
|
end
|
|
297
|
+
function ____exports.rerollEnemy(self, entity)
|
|
298
|
+
local game = Game()
|
|
299
|
+
local oldEntities = ____exports.getEntities(nil)
|
|
300
|
+
local wasRerolled = game:RerollEnemy(entity)
|
|
301
|
+
if not wasRerolled then
|
|
302
|
+
return entity
|
|
303
|
+
end
|
|
304
|
+
local newEntities = ____exports.getEntities(nil)
|
|
305
|
+
local filteredNewEntities = ____exports.getFilteredNewEntities(nil, oldEntities, newEntities)
|
|
306
|
+
if #filteredNewEntities ~= 0 then
|
|
307
|
+
error("Failed to find the new entity generated by the \"RerollEnemy\" method.")
|
|
308
|
+
end
|
|
309
|
+
return filteredNewEntities[1]
|
|
310
|
+
end
|
|
283
311
|
function ____exports.setEntityPositions(self, entityPositions, entities)
|
|
284
312
|
if entities == nil then
|
|
285
313
|
entities = ____exports.getEntities(nil)
|
package/dist/functions/log.d.ts
CHANGED
|
@@ -39,6 +39,7 @@ export declare function logEntity(this: void, entity: Entity): void;
|
|
|
39
39
|
export declare function logKColor(this: void, kColor: KColor): void;
|
|
40
40
|
export declare function logMap(this: void, map: Map<AnyNotNil, unknown>): void;
|
|
41
41
|
export declare function logTable(this: void, table: unknown): void;
|
|
42
|
+
export declare function logTemporaryEffects(this: void, player: EntityPlayer): void;
|
|
42
43
|
export declare function logSet(this: void, set: Set<AnyNotNil>): void;
|
|
43
44
|
export declare function logVector(this: void, vector: Vector): void;
|
|
44
45
|
/**
|
package/dist/functions/log.lua
CHANGED
|
@@ -3,8 +3,12 @@ require("lualib_bundle");
|
|
|
3
3
|
local ____exports = {}
|
|
4
4
|
local ____array = require("functions.array")
|
|
5
5
|
local arrayToString = ____array.arrayToString
|
|
6
|
+
local ____collectibles = require("functions.collectibles")
|
|
7
|
+
local getCollectibleName = ____collectibles.getCollectibleName
|
|
6
8
|
local ____flag = require("functions.flag")
|
|
7
9
|
local hasFlag = ____flag.hasFlag
|
|
10
|
+
local ____trinkets = require("functions.trinkets")
|
|
11
|
+
local getTrinketName = ____trinkets.getTrinketName
|
|
8
12
|
function ____exports.getDebugPrependString(self, msg, numParentFunctions)
|
|
9
13
|
if numParentFunctions == nil then
|
|
10
14
|
numParentFunctions = 3
|
|
@@ -166,6 +170,47 @@ function ____exports.logTable(____table)
|
|
|
166
170
|
)
|
|
167
171
|
end
|
|
168
172
|
end
|
|
173
|
+
function ____exports.logTemporaryEffects(player)
|
|
174
|
+
local effects = player:GetEffects()
|
|
175
|
+
local effectsList = effects:GetEffectsList()
|
|
176
|
+
____exports.log("Logging all player temporary effects:")
|
|
177
|
+
if effectsList.Size == 0 then
|
|
178
|
+
____exports.log(" n/a (no temporary effects)")
|
|
179
|
+
return
|
|
180
|
+
end
|
|
181
|
+
do
|
|
182
|
+
local i = 0
|
|
183
|
+
while i < effectsList.Size do
|
|
184
|
+
do
|
|
185
|
+
local effect = effectsList:Get(i)
|
|
186
|
+
if effect == nil then
|
|
187
|
+
goto __continue35
|
|
188
|
+
end
|
|
189
|
+
if effect.Item:IsCollectible() then
|
|
190
|
+
local collectibleName = getCollectibleName(nil, effect.Item.ID)
|
|
191
|
+
____exports.log(
|
|
192
|
+
((" " .. tostring(i + 1)) .. ") ") .. collectibleName
|
|
193
|
+
)
|
|
194
|
+
elseif effect.Item:IsTrinket() then
|
|
195
|
+
local trinketName = getTrinketName(nil, effect.Item.ID)
|
|
196
|
+
____exports.log(
|
|
197
|
+
((" " .. tostring(i + 1)) .. ") ") .. trinketName
|
|
198
|
+
)
|
|
199
|
+
elseif effect.Item:IsNull() then
|
|
200
|
+
____exports.log(
|
|
201
|
+
((" " .. tostring(i + 1)) .. ") Null item: ") .. tostring(effect.Item.ID)
|
|
202
|
+
)
|
|
203
|
+
else
|
|
204
|
+
____exports.log(
|
|
205
|
+
((" " .. tostring(i + 1)) .. ") Unknown type of temporary effect: ") .. tostring(effect.Item.ID)
|
|
206
|
+
)
|
|
207
|
+
end
|
|
208
|
+
end
|
|
209
|
+
::__continue35::
|
|
210
|
+
i = i + 1
|
|
211
|
+
end
|
|
212
|
+
end
|
|
213
|
+
end
|
|
169
214
|
function ____exports.logSet(set)
|
|
170
215
|
____exports.log("Printing out a TSTL Set:")
|
|
171
216
|
for ____, value in __TS__Iterator(
|
package/dist/functions/npc.d.ts
CHANGED
|
@@ -1,4 +1,18 @@
|
|
|
1
1
|
/// <reference types="isaac-typescript-definitions" />
|
|
2
|
+
/**
|
|
3
|
+
* Helper function to make an NPC fire a projectile. Returns the fired projectile. Use this function
|
|
4
|
+
* instead of `EntityNPC.FireProjectiles()`, since that returns void.
|
|
5
|
+
*
|
|
6
|
+
* @param npc The NPC to fire the projectile from.
|
|
7
|
+
* @param position The staring position of the projectile.
|
|
8
|
+
* @param velocity The starting velocity of the projectile.
|
|
9
|
+
* @param projectilesMode The mode of the projectile. Optional. Equal to
|
|
10
|
+
* `ProjectilesMode.ONE_PROJECTILE` by default.
|
|
11
|
+
* @param projectileParams The parameters of the projectile. Optional. Equal to `ProjectileParams()`
|
|
12
|
+
* by default.
|
|
13
|
+
* @returns The fired projectile.
|
|
14
|
+
*/
|
|
15
|
+
export declare function fireProjectiles(npc: EntityNPC, position: Vector, velocity: Vector, projectilesMode?: ProjectilesMode, projectileParams?: ProjectileParams): EntityProjectile[];
|
|
2
16
|
/**
|
|
3
17
|
* Helper function to get all of the non-dead bosses in the room.
|
|
4
18
|
*
|
package/dist/functions/npc.lua
CHANGED
|
@@ -6,6 +6,8 @@ local ____constants = require("constants")
|
|
|
6
6
|
local EGGY_STATE_FRAME_OF_FINAL_SPIDER = ____constants.EGGY_STATE_FRAME_OF_FINAL_SPIDER
|
|
7
7
|
local ____entity = require("functions.entity")
|
|
8
8
|
local getEntities = ____entity.getEntities
|
|
9
|
+
local getFilteredNewEntities = ____entity.getFilteredNewEntities
|
|
10
|
+
local getProjectiles = ____entity.getProjectiles
|
|
9
11
|
local removeEntities = ____entity.removeEntities
|
|
10
12
|
function ____exports.getBosses(self)
|
|
11
13
|
local bosses = {}
|
|
@@ -75,6 +77,18 @@ NON_ALIVE_NPCS_TYPE_VARIANT_SUBTYPE = __TS__New(
|
|
|
75
77
|
(((tostring(EntityType.ENTITY_CHARGER) .. ".") .. 0) .. ".") .. 1
|
|
76
78
|
}
|
|
77
79
|
)
|
|
80
|
+
function ____exports.fireProjectiles(self, npc, position, velocity, projectilesMode, projectileParams)
|
|
81
|
+
if projectilesMode == nil then
|
|
82
|
+
projectilesMode = 0
|
|
83
|
+
end
|
|
84
|
+
if projectileParams == nil then
|
|
85
|
+
projectileParams = ProjectileParams()
|
|
86
|
+
end
|
|
87
|
+
local oldProjectiles = getProjectiles(nil, projectileParams.Variant)
|
|
88
|
+
npc:FireProjectiles(position, velocity, projectilesMode, projectileParams)
|
|
89
|
+
local newProjectiles = getProjectiles(nil, projectileParams.Variant)
|
|
90
|
+
return getFilteredNewEntities(nil, oldProjectiles, newProjectiles)
|
|
91
|
+
end
|
|
78
92
|
function ____exports.getAliveBosses(self)
|
|
79
93
|
local aliveBosses = {}
|
|
80
94
|
for ____, boss in ipairs(
|
|
@@ -6,6 +6,13 @@
|
|
|
6
6
|
*/
|
|
7
7
|
export declare function changeRoom(roomGridIndex: int): void;
|
|
8
8
|
export declare function getAllRoomGridIndexes(): int[];
|
|
9
|
+
/**
|
|
10
|
+
* Helper function to get the current dimension. Most of the time, this will be `Dimension.MAIN`,
|
|
11
|
+
* but it can change if e.g. the player is in the mirror world of Downpour/Dross.
|
|
12
|
+
*
|
|
13
|
+
* Note that this function does correctly handle detecting the Death Certificate dimension, which is
|
|
14
|
+
* tricky to properly detect.
|
|
15
|
+
*/
|
|
9
16
|
export declare function getCurrentDimension(): Dimension;
|
|
10
17
|
/** An alias to the `Level.GetCurrentRoomDesc()` method. */
|
|
11
18
|
export declare function getCurrentRoomDescReadOnly(): RoomDescriptorReadOnly;
|
package/dist/index.d.ts
CHANGED
|
@@ -61,6 +61,7 @@ export * from "./maps/transformationMaps";
|
|
|
61
61
|
export * from "./maps/transformationNameMap";
|
|
62
62
|
export * from "./maps/trinketNameMap";
|
|
63
63
|
export * from "./sets/cards";
|
|
64
|
+
export * from "./types/AnyEntity";
|
|
64
65
|
export * from "./types/CallbackParametersCustom";
|
|
65
66
|
export * from "./types/HealthType";
|
|
66
67
|
export * from "./types/JSONDoor";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "isaacscript-common",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.570",
|
|
4
4
|
"description": "Helper functions for IsaacScript mods",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"isaac",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"dist/**/*.d.ts"
|
|
26
26
|
],
|
|
27
27
|
"devDependencies": {
|
|
28
|
-
"isaac-typescript-definitions": "^1.0.
|
|
28
|
+
"isaac-typescript-definitions": "^1.0.315",
|
|
29
29
|
"isaacscript-lint": "^1.0.74",
|
|
30
30
|
"typedoc": "^0.22.10",
|
|
31
31
|
"typescript": "4.4.4",
|