isaacscript-common 8.4.3 → 8.4.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.
- package/dist/callbacks/postCursedTeleport.lua +4 -4
- package/dist/callbacks/postPlayerFatalDamage.lua +7 -7
- package/dist/callbacks/postSacrifice.lua +2 -2
- package/dist/callbacks/postTrinketBreak.lua +2 -2
- package/dist/callbacks/subscriptions/postPlayerFatalDamage.d.ts +2 -2
- package/dist/callbacks/subscriptions/postPlayerFatalDamage.d.ts.map +1 -1
- package/dist/callbacks/subscriptions/postPlayerFatalDamage.lua +4 -4
- package/dist/features/customGridEntity.d.ts.map +1 -1
- package/dist/features/customGridEntity.lua +3 -36
- package/dist/features/extraConsoleCommands/init.d.ts.map +1 -1
- package/dist/features/extraConsoleCommands/init.lua +1 -1
- package/dist/functions/collectibleSet.d.ts +0 -6
- package/dist/functions/collectibleSet.d.ts.map +1 -1
- package/dist/functions/collectibleSet.lua +35 -46
- package/dist/functions/collectibles.d.ts +2 -1
- package/dist/functions/collectibles.d.ts.map +1 -1
- package/dist/functions/collectibles.lua +2 -1
- package/dist/functions/flag.d.ts +1 -1
- package/dist/functions/flag.lua +1 -1
- package/dist/functions/revive.d.ts +1 -1
- package/dist/functions/revive.d.ts.map +1 -1
- package/dist/functions/revive.lua +3 -3
- package/dist/functions/trinketSet.d.ts +0 -6
- package/dist/functions/trinketSet.d.ts.map +1 -1
- package/dist/functions/trinketSet.lua +35 -46
- package/dist/index.d.ts +5 -16
- package/package.json +2 -2
- package/src/callbacks/postCursedTeleport.ts +7 -7
- package/src/callbacks/postPlayerFatalDamage.ts +9 -16
- package/src/callbacks/postSacrifice.ts +5 -5
- package/src/callbacks/postTrinketBreak.ts +5 -5
- package/src/callbacks/subscriptions/postPlayerFatalDamage.ts +9 -9
- package/src/features/customGridEntity.ts +0 -55
- package/src/features/extraConsoleCommands/init.ts +8 -1
- package/src/functions/collectibleSet.ts +38 -45
- package/src/functions/collectibles.ts +2 -1
- package/src/functions/flag.ts +1 -1
- package/src/functions/revive.ts +4 -4
- package/src/functions/trinketSet.ts +38 -45
|
@@ -376,7 +376,8 @@ export function getCollectibleTags(
|
|
|
376
376
|
* collectible types.
|
|
377
377
|
*
|
|
378
378
|
* This function is only useful when building collectible type objects. For most purposes, you
|
|
379
|
-
* should use the `getVanillaCollectibleSet` helper
|
|
379
|
+
* should use the `getVanillaCollectibleArray` or `getVanillaCollectibleSet` helper functions
|
|
380
|
+
* instead.
|
|
380
381
|
*/
|
|
381
382
|
export function getVanillaCollectibleTypeRange(): CollectibleType[] {
|
|
382
383
|
return irange(FIRST_COLLECTIBLE_TYPE, LAST_VANILLA_COLLECTIBLE_TYPE);
|
package/src/functions/flag.ts
CHANGED
|
@@ -119,7 +119,7 @@ export function isEmptyFlag<T extends BitFlag | BitFlag128>(flag: T): boolean {
|
|
|
119
119
|
}
|
|
120
120
|
|
|
121
121
|
/**
|
|
122
|
-
* Helper function to determine whether damage to a player in the
|
|
122
|
+
* Helper function to determine whether damage to a player in the `ENTITY_TAKE_DMG` callback was
|
|
123
123
|
* self-inflicted. For example, damage from a Curse Room door, a Razor, or a Blood Donation Machine
|
|
124
124
|
* would count as self-inflicted damage.
|
|
125
125
|
*/
|
package/src/functions/revive.ts
CHANGED
|
@@ -26,8 +26,8 @@ import { giveTrinketsBack, temporarilyRemoveTrinket } from "./trinketGive";
|
|
|
26
26
|
*/
|
|
27
27
|
export function isDamageToPlayerFatal(
|
|
28
28
|
player: EntityPlayer,
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
amount: int,
|
|
30
|
+
source: EntityRef,
|
|
31
31
|
lastDamageGameFrame: int | undefined,
|
|
32
32
|
): boolean {
|
|
33
33
|
const gameFrameCount = game.GetFrameCount();
|
|
@@ -39,7 +39,7 @@ export function isDamageToPlayerFatal(
|
|
|
39
39
|
// (because we will transform into Tainted Jacob's lost form).
|
|
40
40
|
if (
|
|
41
41
|
character === PlayerType.JACOB_B &&
|
|
42
|
-
|
|
42
|
+
source.Type === EntityType.DARK_ESAU
|
|
43
43
|
) {
|
|
44
44
|
return false;
|
|
45
45
|
}
|
|
@@ -79,7 +79,7 @@ export function isDamageToPlayerFatal(
|
|
|
79
79
|
}
|
|
80
80
|
|
|
81
81
|
const playerNumAllHearts = getPlayerNumHitsRemaining(player);
|
|
82
|
-
if (
|
|
82
|
+
if (amount < playerNumAllHearts) {
|
|
83
83
|
return false;
|
|
84
84
|
}
|
|
85
85
|
|
|
@@ -1,57 +1,56 @@
|
|
|
1
1
|
import { TrinketType } from "isaac-typescript-definitions";
|
|
2
2
|
import { itemConfig } from "../core/cachedClasses";
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
LAST_VANILLA_TRINKET_TYPE,
|
|
6
|
-
} from "../core/constantsFirstLast";
|
|
7
|
-
import { getLastTrinketType } from "../features/firstLast";
|
|
8
|
-
import { irange } from "./utils";
|
|
3
|
+
import { getModdedTrinketTypes } from "../features/firstLast";
|
|
4
|
+
import { getVanillaTrinketTypes } from "./trinkets";
|
|
9
5
|
|
|
10
6
|
const ALL_TRINKETS_ARRAY: TrinketType[] = [];
|
|
11
|
-
const VANILLA_TRINKETS_ARRAY: TrinketType[] = [];
|
|
12
|
-
const MODDED_TRINKETS_ARRAY: TrinketType[] = [];
|
|
13
|
-
|
|
14
7
|
const ALL_TRINKETS_SET = new Set<TrinketType>();
|
|
8
|
+
|
|
9
|
+
const VANILLA_TRINKETS_ARRAY: TrinketType[] = [];
|
|
15
10
|
const VANILLA_TRINKETS_SET = new Set<TrinketType>();
|
|
11
|
+
|
|
12
|
+
const MODDED_TRINKETS_ARRAY: TrinketType[] = [];
|
|
16
13
|
const MODDED_TRINKETS_SET = new Set<TrinketType>();
|
|
17
14
|
|
|
18
|
-
function
|
|
19
|
-
if (
|
|
15
|
+
function lazyInitVanillaTrinkets() {
|
|
16
|
+
if (VANILLA_TRINKETS_ARRAY.length > 0) {
|
|
20
17
|
return;
|
|
21
18
|
}
|
|
22
19
|
|
|
23
|
-
const
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
lastTrinketType,
|
|
27
|
-
) as TrinketType[];
|
|
28
|
-
for (const trinketType of trinketTypeRange) {
|
|
20
|
+
const vanillaTrinketTypes = getVanillaTrinketTypes();
|
|
21
|
+
for (const trinketType of vanillaTrinketTypes) {
|
|
22
|
+
// Vanilla trinket types are contiguous, but we check every value just in case.
|
|
29
23
|
const itemConfigItem = itemConfig.GetTrinket(trinketType);
|
|
30
|
-
if (itemConfigItem
|
|
31
|
-
continue;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
ALL_TRINKETS_ARRAY.push(trinketType);
|
|
35
|
-
if (trinketType <= LAST_VANILLA_TRINKET_TYPE) {
|
|
24
|
+
if (itemConfigItem !== undefined) {
|
|
36
25
|
VANILLA_TRINKETS_ARRAY.push(trinketType);
|
|
37
|
-
|
|
38
|
-
MODDED_TRINKETS_ARRAY.push(trinketType);
|
|
26
|
+
VANILLA_TRINKETS_SET.add(trinketType);
|
|
39
27
|
}
|
|
40
28
|
}
|
|
29
|
+
}
|
|
41
30
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
31
|
+
function lazyInitModdedTrinkets() {
|
|
32
|
+
if (MODDED_TRINKETS_ARRAY.length > 0) {
|
|
33
|
+
return;
|
|
45
34
|
}
|
|
46
35
|
|
|
47
|
-
|
|
36
|
+
lazyInitVanillaTrinkets();
|
|
37
|
+
|
|
48
38
|
for (const trinketType of VANILLA_TRINKETS_ARRAY) {
|
|
49
|
-
|
|
39
|
+
ALL_TRINKETS_ARRAY.push(trinketType);
|
|
40
|
+
ALL_TRINKETS_SET.add(trinketType);
|
|
50
41
|
}
|
|
51
42
|
|
|
52
|
-
|
|
53
|
-
for (const trinketType of
|
|
54
|
-
|
|
43
|
+
const moddedTrinketTypes = getModdedTrinketTypes();
|
|
44
|
+
for (const trinketType of moddedTrinketTypes) {
|
|
45
|
+
// Modded trinket types are contiguous, but we check every value just in case.
|
|
46
|
+
const itemConfigItem = itemConfig.GetTrinket(trinketType);
|
|
47
|
+
if (itemConfigItem !== undefined) {
|
|
48
|
+
MODDED_TRINKETS_ARRAY.push(trinketType);
|
|
49
|
+
MODDED_TRINKETS_SET.add(trinketType);
|
|
50
|
+
|
|
51
|
+
ALL_TRINKETS_ARRAY.push(trinketType);
|
|
52
|
+
ALL_TRINKETS_SET.add(trinketType);
|
|
53
|
+
}
|
|
55
54
|
}
|
|
56
55
|
}
|
|
57
56
|
|
|
@@ -65,7 +64,7 @@ function lazyInitTrinketArraysAndSets() {
|
|
|
65
64
|
* all trinkets will necessarily be present when a mod first loads (due to mod load order).
|
|
66
65
|
*/
|
|
67
66
|
export function getModdedTrinketArray(): readonly TrinketType[] {
|
|
68
|
-
|
|
67
|
+
lazyInitModdedTrinkets();
|
|
69
68
|
return MODDED_TRINKETS_ARRAY;
|
|
70
69
|
}
|
|
71
70
|
|
|
@@ -79,7 +78,7 @@ export function getModdedTrinketArray(): readonly TrinketType[] {
|
|
|
79
78
|
* all trinkets will necessarily be present when a mod first loads (due to mod load order).
|
|
80
79
|
*/
|
|
81
80
|
export function getModdedTrinketSet(): ReadonlySet<TrinketType> {
|
|
82
|
-
|
|
81
|
+
lazyInitModdedTrinkets();
|
|
83
82
|
return MODDED_TRINKETS_SET;
|
|
84
83
|
}
|
|
85
84
|
|
|
@@ -93,7 +92,7 @@ export function getModdedTrinketSet(): ReadonlySet<TrinketType> {
|
|
|
93
92
|
* all trinkets will necessarily be present when a mod first loads (due to mod load order).
|
|
94
93
|
*/
|
|
95
94
|
export function getTrinketArray(): readonly TrinketType[] {
|
|
96
|
-
|
|
95
|
+
lazyInitModdedTrinkets();
|
|
97
96
|
return ALL_TRINKETS_ARRAY;
|
|
98
97
|
}
|
|
99
98
|
|
|
@@ -107,7 +106,7 @@ export function getTrinketArray(): readonly TrinketType[] {
|
|
|
107
106
|
* all trinkets will necessarily be present when a mod first loads (due to mod load order).
|
|
108
107
|
*/
|
|
109
108
|
export function getTrinketSet(): ReadonlySet<TrinketType> {
|
|
110
|
-
|
|
109
|
+
lazyInitModdedTrinkets();
|
|
111
110
|
return ALL_TRINKETS_SET;
|
|
112
111
|
}
|
|
113
112
|
|
|
@@ -116,12 +115,9 @@ export function getTrinketSet(): ReadonlySet<TrinketType> {
|
|
|
116
115
|
*
|
|
117
116
|
* Use this if you need to iterate over the trinkets in order. If you need to do O(1) lookups, then
|
|
118
117
|
* use the `getVanillaTrinketSet` helper function instead.
|
|
119
|
-
*
|
|
120
|
-
* This function can only be called if at least one callback has been executed. This is because not
|
|
121
|
-
* all trinkets will necessarily be present when a mod first loads (due to mod load order).
|
|
122
118
|
*/
|
|
123
119
|
export function getVanillaTrinketArray(): readonly TrinketType[] {
|
|
124
|
-
|
|
120
|
+
lazyInitVanillaTrinkets();
|
|
125
121
|
return VANILLA_TRINKETS_ARRAY;
|
|
126
122
|
}
|
|
127
123
|
|
|
@@ -130,11 +126,8 @@ export function getVanillaTrinketArray(): readonly TrinketType[] {
|
|
|
130
126
|
*
|
|
131
127
|
* Use this if you need to do O(1) lookups. If you need to iterate over the trinkets in order, then
|
|
132
128
|
* use the `getVanillaTrinketArray` helper function instead.
|
|
133
|
-
*
|
|
134
|
-
* This function can only be called if at least one callback has been executed. This is because not
|
|
135
|
-
* all trinkets will necessarily be present when a mod first loads (due to mod load order).
|
|
136
129
|
*/
|
|
137
130
|
export function getVanillaTrinketSet(): ReadonlySet<TrinketType> {
|
|
138
|
-
|
|
131
|
+
lazyInitVanillaTrinkets();
|
|
139
132
|
return VANILLA_TRINKETS_SET;
|
|
140
133
|
}
|