isaacscript-common 30.11.4 → 30.11.5
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/index.rollup.d.ts +1 -0
- package/dist/isaacscript-common.lua +11 -6
- package/dist/src/classes/features/other/PreventCollectibleRotation.d.ts +1 -0
- package/dist/src/classes/features/other/PreventCollectibleRotation.d.ts.map +1 -1
- package/dist/src/classes/features/other/PreventCollectibleRotation.lua +9 -3
- package/dist/src/features.d.ts.map +1 -1
- package/dist/src/features.lua +1 -1
- package/dist/src/indexLua.d.ts +186 -0
- package/dist/src/indexLua.d.ts.map +1 -0
- package/dist/src/indexLua.lua +1114 -0
- package/dist/src/objects/pillEffectClasses.d.ts.map +1 -1
- package/dist/src/objects/pillEffectClasses.lua +0 -1
- package/package.json +1 -1
- package/src/classes/features/other/PreventCollectibleRotation.ts +24 -3
- package/src/features.ts +1 -0
- package/src/objects/pillEffectClasses.ts +50 -51
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pillEffectClasses.d.ts","sourceRoot":"","sources":["../../../src/objects/pillEffectClasses.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EAE1B,MAAM,8BAA8B,CAAC;AAEtC,eAAO,MAAM,yBAAyB,mCAAmC,CAAC;AAE1E,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"pillEffectClasses.d.ts","sourceRoot":"","sources":["../../../src/objects/pillEffectClasses.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EAE1B,MAAM,8BAA8B,CAAC;AAEtC,eAAO,MAAM,yBAAyB,mCAAmC,CAAC;AAE1E,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoDkC,CAAC"}
|
|
@@ -53,7 +53,6 @@ ____exports.PILL_EFFECT_CLASSES = {
|
|
|
53
53
|
[PillEffect.VURP] = ItemConfigPillEffectClass.MEDIUM,
|
|
54
54
|
[PillEffect.SHOT_SPEED_DOWN] = ItemConfigPillEffectClass.MAJOR,
|
|
55
55
|
[PillEffect.SHOT_SPEED_UP] = ItemConfigPillEffectClass.MAJOR,
|
|
56
|
-
[PillEffect.EXPERIMENTAL] = ItemConfigPillEffectClass.MAJOR,
|
|
57
56
|
[PillEffect.EXPERIMENTAL] = ItemConfigPillEffectClass.MAJOR
|
|
58
57
|
}
|
|
59
58
|
return ____exports
|
package/package.json
CHANGED
|
@@ -18,6 +18,7 @@ import { PickupIndex } from "../../../types/PickupIndex";
|
|
|
18
18
|
import { ReadonlySet } from "../../../types/ReadonlySet";
|
|
19
19
|
import { Feature } from "../../private/Feature";
|
|
20
20
|
import { PickupIndexCreation } from "./PickupIndexCreation";
|
|
21
|
+
import { RunInNFrames } from "./RunInNFrames";
|
|
21
22
|
|
|
22
23
|
const ROLL_COLLECTIBLE_TYPES = new ReadonlySet([
|
|
23
24
|
// The `PRE_USE_ITEM` D6 callback is fired for D6, D100, Dice Shard, 4-pip Dice Room, and 6-pip
|
|
@@ -44,12 +45,19 @@ export class PreventCollectibleRotation extends Feature {
|
|
|
44
45
|
public override v = v;
|
|
45
46
|
|
|
46
47
|
private pickupIndexCreation: PickupIndexCreation;
|
|
48
|
+
private runInNFrames: RunInNFrames;
|
|
47
49
|
|
|
48
50
|
/** @internal */
|
|
49
|
-
constructor(
|
|
51
|
+
constructor(
|
|
52
|
+
pickupIndexCreation: PickupIndexCreation,
|
|
53
|
+
runInNFrames: RunInNFrames,
|
|
54
|
+
) {
|
|
50
55
|
super();
|
|
51
56
|
|
|
52
|
-
this.featuresUsed = [
|
|
57
|
+
this.featuresUsed = [
|
|
58
|
+
ISCFeature.PICKUP_INDEX_CREATION,
|
|
59
|
+
ISCFeature.RUN_IN_N_FRAMES,
|
|
60
|
+
];
|
|
53
61
|
|
|
54
62
|
this.callbacksUsed = [
|
|
55
63
|
// 5
|
|
@@ -69,6 +77,7 @@ export class PreventCollectibleRotation extends Feature {
|
|
|
69
77
|
];
|
|
70
78
|
|
|
71
79
|
this.pickupIndexCreation = pickupIndexCreation;
|
|
80
|
+
this.runInNFrames = runInNFrames;
|
|
72
81
|
}
|
|
73
82
|
|
|
74
83
|
private preUseItem = (
|
|
@@ -169,7 +178,7 @@ export class PreventCollectibleRotation extends Feature {
|
|
|
169
178
|
if (!isCollectible(collectible)) {
|
|
170
179
|
const entityID = getEntityID(collectible);
|
|
171
180
|
error(
|
|
172
|
-
`The "
|
|
181
|
+
`The "preventCollectibleRotation" function was given a non-collectible: ${entityID}`,
|
|
173
182
|
);
|
|
174
183
|
}
|
|
175
184
|
|
|
@@ -181,5 +190,17 @@ export class PreventCollectibleRotation extends Feature {
|
|
|
181
190
|
if (collectible.SubType !== collectibleType) {
|
|
182
191
|
setCollectibleSubType(collectible, collectibleType);
|
|
183
192
|
}
|
|
193
|
+
|
|
194
|
+
// It takes a frame for the `setCollectibleSubType` function to apply. There is a race condition
|
|
195
|
+
// whereby if the next frame is a collectible rotation (which occurs on frame 30, 60, 90, and so
|
|
196
|
+
// on), the collectible rotation will overwrite the `setCollectibleSubType` function. Thus, we
|
|
197
|
+
// must check again on the next frame. However, we cannot use an `EntityPtr`, because the
|
|
198
|
+
// reference is destroyed when the rotation occurs. Thus, we resort to using the `Exists` method
|
|
199
|
+
// and hope that no crashes occur.
|
|
200
|
+
this.runInNFrames.runNextGameFrame(() => {
|
|
201
|
+
if (collectible.Exists() && collectible.SubType !== collectibleType) {
|
|
202
|
+
setCollectibleSubType(collectible, collectibleType);
|
|
203
|
+
}
|
|
204
|
+
});
|
|
184
205
|
}
|
|
185
206
|
}
|
package/src/features.ts
CHANGED
|
@@ -6,56 +6,55 @@ import {
|
|
|
6
6
|
export const DEFAULT_PILL_EFFECT_CLASS = ItemConfigPillEffectClass.MODDED;
|
|
7
7
|
|
|
8
8
|
export const PILL_EFFECT_CLASSES = {
|
|
9
|
-
[PillEffect.BAD_GAS]: ItemConfigPillEffectClass.MINOR,
|
|
10
|
-
[PillEffect.BAD_TRIP]: ItemConfigPillEffectClass.MEDIUM,
|
|
11
|
-
[PillEffect.BALLS_OF_STEEL]: ItemConfigPillEffectClass.MEDIUM,
|
|
12
|
-
[PillEffect.BOMBS_ARE_KEYS]: ItemConfigPillEffectClass.MEDIUM,
|
|
13
|
-
[PillEffect.EXPLOSIVE_DIARRHEA]: ItemConfigPillEffectClass.MINOR,
|
|
14
|
-
[PillEffect.FULL_HEALTH]: ItemConfigPillEffectClass.MEDIUM,
|
|
15
|
-
[PillEffect.HEALTH_DOWN]: ItemConfigPillEffectClass.MAJOR,
|
|
16
|
-
[PillEffect.HEALTH_UP]: ItemConfigPillEffectClass.MAJOR,
|
|
17
|
-
[PillEffect.I_FOUND_PILLS]: ItemConfigPillEffectClass.JOKE,
|
|
18
|
-
[PillEffect.PUBERTY]: ItemConfigPillEffectClass.JOKE,
|
|
19
|
-
[PillEffect.PRETTY_FLY]: ItemConfigPillEffectClass.MEDIUM,
|
|
20
|
-
[PillEffect.RANGE_DOWN]: ItemConfigPillEffectClass.MAJOR,
|
|
21
|
-
[PillEffect.RANGE_UP]: ItemConfigPillEffectClass.MAJOR,
|
|
22
|
-
[PillEffect.SPEED_DOWN]: ItemConfigPillEffectClass.MAJOR,
|
|
23
|
-
[PillEffect.SPEED_UP]: ItemConfigPillEffectClass.MAJOR,
|
|
24
|
-
[PillEffect.TEARS_DOWN]: ItemConfigPillEffectClass.MAJOR,
|
|
25
|
-
[PillEffect.TEARS_UP]: ItemConfigPillEffectClass.MAJOR,
|
|
26
|
-
[PillEffect.LUCK_DOWN]: ItemConfigPillEffectClass.MAJOR,
|
|
27
|
-
[PillEffect.LUCK_UP]: ItemConfigPillEffectClass.MAJOR,
|
|
28
|
-
[PillEffect.TELEPILLS]: ItemConfigPillEffectClass.MAJOR,
|
|
29
|
-
[PillEffect.FORTY_EIGHT_HOUR_ENERGY]: ItemConfigPillEffectClass.MEDIUM,
|
|
30
|
-
[PillEffect.HEMATEMESIS]: ItemConfigPillEffectClass.MEDIUM,
|
|
31
|
-
[PillEffect.PARALYSIS]: ItemConfigPillEffectClass.MINOR,
|
|
32
|
-
[PillEffect.I_CAN_SEE_FOREVER]: ItemConfigPillEffectClass.MEDIUM,
|
|
33
|
-
[PillEffect.PHEROMONES]: ItemConfigPillEffectClass.MINOR,
|
|
34
|
-
[PillEffect.AMNESIA]: ItemConfigPillEffectClass.MEDIUM,
|
|
35
|
-
[PillEffect.LEMON_PARTY]: ItemConfigPillEffectClass.MINOR,
|
|
36
|
-
[PillEffect.R_U_A_WIZARD]: ItemConfigPillEffectClass.MINOR,
|
|
37
|
-
[PillEffect.PERCS]: ItemConfigPillEffectClass.MINOR,
|
|
38
|
-
[PillEffect.ADDICTED]: ItemConfigPillEffectClass.MINOR,
|
|
39
|
-
[PillEffect.RELAX]: ItemConfigPillEffectClass.JOKE,
|
|
40
|
-
[PillEffect.QUESTION_MARKS]: ItemConfigPillEffectClass.MINOR,
|
|
41
|
-
[PillEffect.ONE_MAKES_YOU_LARGER]: ItemConfigPillEffectClass.MINOR,
|
|
42
|
-
[PillEffect.ONE_MAKES_YOU_SMALL]: ItemConfigPillEffectClass.MINOR,
|
|
43
|
-
[PillEffect.INFESTED_EXCLAMATION]: ItemConfigPillEffectClass.MINOR,
|
|
44
|
-
[PillEffect.INFESTED_QUESTION]: ItemConfigPillEffectClass.MINOR,
|
|
45
|
-
[PillEffect.POWER]: ItemConfigPillEffectClass.MINOR,
|
|
46
|
-
[PillEffect.RETRO_VISION]: ItemConfigPillEffectClass.MINOR,
|
|
47
|
-
[PillEffect.FRIENDS_TILL_THE_END]: ItemConfigPillEffectClass.MINOR,
|
|
48
|
-
[PillEffect.X_LAX]: ItemConfigPillEffectClass.MINOR,
|
|
49
|
-
[PillEffect.SOMETHINGS_WRONG]: ItemConfigPillEffectClass.JOKE,
|
|
50
|
-
[PillEffect.IM_DROWSY]: ItemConfigPillEffectClass.MINOR,
|
|
51
|
-
[PillEffect.IM_EXCITED]: ItemConfigPillEffectClass.MINOR,
|
|
52
|
-
[PillEffect.GULP]: ItemConfigPillEffectClass.MEDIUM,
|
|
53
|
-
[PillEffect.HORF]: ItemConfigPillEffectClass.JOKE,
|
|
9
|
+
[PillEffect.BAD_GAS]: ItemConfigPillEffectClass.MINOR, // 0
|
|
10
|
+
[PillEffect.BAD_TRIP]: ItemConfigPillEffectClass.MEDIUM, // 1
|
|
11
|
+
[PillEffect.BALLS_OF_STEEL]: ItemConfigPillEffectClass.MEDIUM, // 2
|
|
12
|
+
[PillEffect.BOMBS_ARE_KEYS]: ItemConfigPillEffectClass.MEDIUM, // 3
|
|
13
|
+
[PillEffect.EXPLOSIVE_DIARRHEA]: ItemConfigPillEffectClass.MINOR, // 4
|
|
14
|
+
[PillEffect.FULL_HEALTH]: ItemConfigPillEffectClass.MEDIUM, // 5
|
|
15
|
+
[PillEffect.HEALTH_DOWN]: ItemConfigPillEffectClass.MAJOR, // 6
|
|
16
|
+
[PillEffect.HEALTH_UP]: ItemConfigPillEffectClass.MAJOR, // 7
|
|
17
|
+
[PillEffect.I_FOUND_PILLS]: ItemConfigPillEffectClass.JOKE, // 8
|
|
18
|
+
[PillEffect.PUBERTY]: ItemConfigPillEffectClass.JOKE, // 9
|
|
19
|
+
[PillEffect.PRETTY_FLY]: ItemConfigPillEffectClass.MEDIUM, // 10
|
|
20
|
+
[PillEffect.RANGE_DOWN]: ItemConfigPillEffectClass.MAJOR, // 11
|
|
21
|
+
[PillEffect.RANGE_UP]: ItemConfigPillEffectClass.MAJOR, // 12
|
|
22
|
+
[PillEffect.SPEED_DOWN]: ItemConfigPillEffectClass.MAJOR, // 13
|
|
23
|
+
[PillEffect.SPEED_UP]: ItemConfigPillEffectClass.MAJOR, // 14
|
|
24
|
+
[PillEffect.TEARS_DOWN]: ItemConfigPillEffectClass.MAJOR, // 15
|
|
25
|
+
[PillEffect.TEARS_UP]: ItemConfigPillEffectClass.MAJOR, // 16
|
|
26
|
+
[PillEffect.LUCK_DOWN]: ItemConfigPillEffectClass.MAJOR, // 17
|
|
27
|
+
[PillEffect.LUCK_UP]: ItemConfigPillEffectClass.MAJOR, // 18
|
|
28
|
+
[PillEffect.TELEPILLS]: ItemConfigPillEffectClass.MAJOR, // 19
|
|
29
|
+
[PillEffect.FORTY_EIGHT_HOUR_ENERGY]: ItemConfigPillEffectClass.MEDIUM, // 20
|
|
30
|
+
[PillEffect.HEMATEMESIS]: ItemConfigPillEffectClass.MEDIUM, // 21
|
|
31
|
+
[PillEffect.PARALYSIS]: ItemConfigPillEffectClass.MINOR, // 22
|
|
32
|
+
[PillEffect.I_CAN_SEE_FOREVER]: ItemConfigPillEffectClass.MEDIUM, // 23
|
|
33
|
+
[PillEffect.PHEROMONES]: ItemConfigPillEffectClass.MINOR, // 24
|
|
34
|
+
[PillEffect.AMNESIA]: ItemConfigPillEffectClass.MEDIUM, // 25
|
|
35
|
+
[PillEffect.LEMON_PARTY]: ItemConfigPillEffectClass.MINOR, // 26
|
|
36
|
+
[PillEffect.R_U_A_WIZARD]: ItemConfigPillEffectClass.MINOR, // 27
|
|
37
|
+
[PillEffect.PERCS]: ItemConfigPillEffectClass.MINOR, // 28
|
|
38
|
+
[PillEffect.ADDICTED]: ItemConfigPillEffectClass.MINOR, // 29
|
|
39
|
+
[PillEffect.RELAX]: ItemConfigPillEffectClass.JOKE, // 30
|
|
40
|
+
[PillEffect.QUESTION_MARKS]: ItemConfigPillEffectClass.MINOR, // 31
|
|
41
|
+
[PillEffect.ONE_MAKES_YOU_LARGER]: ItemConfigPillEffectClass.MINOR, // 32
|
|
42
|
+
[PillEffect.ONE_MAKES_YOU_SMALL]: ItemConfigPillEffectClass.MINOR, // 33
|
|
43
|
+
[PillEffect.INFESTED_EXCLAMATION]: ItemConfigPillEffectClass.MINOR, // 34
|
|
44
|
+
[PillEffect.INFESTED_QUESTION]: ItemConfigPillEffectClass.MINOR, // 35
|
|
45
|
+
[PillEffect.POWER]: ItemConfigPillEffectClass.MINOR, // 36
|
|
46
|
+
[PillEffect.RETRO_VISION]: ItemConfigPillEffectClass.MINOR, // 37
|
|
47
|
+
[PillEffect.FRIENDS_TILL_THE_END]: ItemConfigPillEffectClass.MINOR, // 38
|
|
48
|
+
[PillEffect.X_LAX]: ItemConfigPillEffectClass.MINOR, // 39
|
|
49
|
+
[PillEffect.SOMETHINGS_WRONG]: ItemConfigPillEffectClass.JOKE, // 40
|
|
50
|
+
[PillEffect.IM_DROWSY]: ItemConfigPillEffectClass.MINOR, // 41
|
|
51
|
+
[PillEffect.IM_EXCITED]: ItemConfigPillEffectClass.MINOR, // 42
|
|
52
|
+
[PillEffect.GULP]: ItemConfigPillEffectClass.MEDIUM, // 43
|
|
53
|
+
[PillEffect.HORF]: ItemConfigPillEffectClass.JOKE, // 44
|
|
54
54
|
[PillEffect.FEELS_LIKE_IM_WALKING_ON_SUNSHINE]:
|
|
55
|
-
ItemConfigPillEffectClass.MINOR,
|
|
56
|
-
[PillEffect.VURP]: ItemConfigPillEffectClass.MEDIUM,
|
|
57
|
-
[PillEffect.SHOT_SPEED_DOWN]: ItemConfigPillEffectClass.MAJOR,
|
|
58
|
-
[PillEffect.SHOT_SPEED_UP]: ItemConfigPillEffectClass.MAJOR,
|
|
59
|
-
[PillEffect.EXPERIMENTAL]: ItemConfigPillEffectClass.MAJOR,
|
|
60
|
-
[PillEffect.EXPERIMENTAL]: ItemConfigPillEffectClass.MAJOR,
|
|
55
|
+
ItemConfigPillEffectClass.MINOR, // 45
|
|
56
|
+
[PillEffect.VURP]: ItemConfigPillEffectClass.MEDIUM, // 46
|
|
57
|
+
[PillEffect.SHOT_SPEED_DOWN]: ItemConfigPillEffectClass.MAJOR, // 47
|
|
58
|
+
[PillEffect.SHOT_SPEED_UP]: ItemConfigPillEffectClass.MAJOR, // 48
|
|
59
|
+
[PillEffect.EXPERIMENTAL]: ItemConfigPillEffectClass.MAJOR, // 49
|
|
61
60
|
} as const satisfies Record<PillEffect, ItemConfigPillEffectClass>;
|