isaacscript-common 1.0.479 → 1.0.483
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/postPlayerFatalDamage.lua +5 -1
- package/dist/constants.d.ts +5 -0
- package/dist/constants.lua +1 -0
- package/dist/features/deployJSONRoom.lua +2 -0
- package/dist/functions/entity.d.ts +46 -0
- package/dist/functions/entity.lua +46 -0
- package/dist/functions/gridEntity.d.ts +22 -1
- package/dist/functions/gridEntity.lua +13 -4
- package/dist/functions/player.d.ts +2 -1
- package/dist/functions/player.lua +15 -8
- package/dist/functions/rooms.d.ts +7 -0
- package/dist/functions/rooms.lua +18 -2
- package/package.json +1 -1
|
@@ -21,7 +21,7 @@ function entityTakeDmgPlayer(self, tookDamage, damageAmount, _damageFlags, _dama
|
|
|
21
21
|
if willPlayerRevive(nil, player) then
|
|
22
22
|
return nil
|
|
23
23
|
end
|
|
24
|
-
if (not
|
|
24
|
+
if (not damageIsFatal(nil, player, damageAmount)) and (not hasLostCurse(nil, player)) then
|
|
25
25
|
return nil
|
|
26
26
|
end
|
|
27
27
|
local shouldSustainDeath = postPlayerFatalDamage:fire(player)
|
|
@@ -31,6 +31,10 @@ function entityTakeDmgPlayer(self, tookDamage, damageAmount, _damageFlags, _dama
|
|
|
31
31
|
return nil
|
|
32
32
|
end
|
|
33
33
|
function damageIsFatal(self, player, damageAmount)
|
|
34
|
+
local character = player:GetPlayerType()
|
|
35
|
+
if character == PlayerType.PLAYER_JACOB2_B then
|
|
36
|
+
return true
|
|
37
|
+
end
|
|
34
38
|
local playerNumAllHearts = getPlayerNumAllHearts(nil, player)
|
|
35
39
|
if damageAmount < playerNumAllHearts then
|
|
36
40
|
return false
|
package/dist/constants.d.ts
CHANGED
|
@@ -35,6 +35,11 @@ export declare const GRID_ENTITY_XML_MAP: Map<GridEntityXMLType, [GridEntityType
|
|
|
35
35
|
export declare const GRID_INDEX_CENTER_OF_1X1_ROOM = 67;
|
|
36
36
|
export declare const GAME_FRAMES_PER_SECOND = 30;
|
|
37
37
|
export declare const ISAAC_FRAMES_PER_SECOND = 60;
|
|
38
|
+
/**
|
|
39
|
+
* This is the set of characters that look like The Lost and play the "LostDeath" animation when
|
|
40
|
+
* they die.
|
|
41
|
+
*/
|
|
42
|
+
export declare const LOST_STYLE_PLAYER_TYPES: Set<PlayerType>;
|
|
38
43
|
/** In a 2x2 room, there can be 8 doors. */
|
|
39
44
|
export declare const MAX_NUM_DOORS = 8;
|
|
40
45
|
/**
|
package/dist/constants.lua
CHANGED
|
@@ -17,6 +17,7 @@ ____exports.GRID_ENTITY_XML_MAP = __TS__New(Map, {{1000, {GridEntityType.GRID_RO
|
|
|
17
17
|
____exports.GRID_INDEX_CENTER_OF_1X1_ROOM = 67
|
|
18
18
|
____exports.GAME_FRAMES_PER_SECOND = 30
|
|
19
19
|
____exports.ISAAC_FRAMES_PER_SECOND = 60
|
|
20
|
+
____exports.LOST_STYLE_PLAYER_TYPES = __TS__New(Set, {PlayerType.PLAYER_THELOST, PlayerType.PLAYER_THESOUL, PlayerType.PLAYER_THELOST_B, PlayerType.PLAYER_JACOB2_B, PlayerType.PLAYER_THESOUL_B})
|
|
20
21
|
____exports.MAX_NUM_DOORS = 8
|
|
21
22
|
____exports.MAX_NUM_FAMILIARS = 64
|
|
22
23
|
____exports.MAX_NUM_INPUTS = 4
|
|
@@ -201,6 +201,8 @@ function spawnAllEntities(self, jsonRoom, seed, verbose)
|
|
|
201
201
|
log("Setting the room to be uncleared since there were one or more battle NPCs spawned.")
|
|
202
202
|
end
|
|
203
203
|
setRoomUncleared(nil)
|
|
204
|
+
elseif verbose then
|
|
205
|
+
log("Leaving the room cleared since there were no battle NPCs spawned.")
|
|
204
206
|
end
|
|
205
207
|
return seed
|
|
206
208
|
end
|
|
@@ -60,6 +60,25 @@ export declare function getEffects(matchingVariant?: number, matchingSubType?: n
|
|
|
60
60
|
* returned. False by default. Will only be taken into account if `matchingEntityType` is specified.
|
|
61
61
|
*/
|
|
62
62
|
export declare function getEntities(matchingEntityType?: EntityType | int, matchingVariant?: number, matchingSubType?: number, ignoreFriendly?: boolean): Entity[];
|
|
63
|
+
/**
|
|
64
|
+
* Helper function to get a map containing the positions of every entity in the current room.
|
|
65
|
+
*
|
|
66
|
+
* This is useful for rewinding entity positions at a later time. Also see `setEntityPositions()`.
|
|
67
|
+
*
|
|
68
|
+
* @param entities Optional. If provided, will only get the positions of the provided entities. This
|
|
69
|
+
* can be used to cache the entities to avoid invoking `Isaac.GetRoomEntities()` multiple times.
|
|
70
|
+
*/
|
|
71
|
+
export declare function getEntityPositions(entities?: Entity[]): Map<PtrHash, Vector>;
|
|
72
|
+
/**
|
|
73
|
+
* Helper function to get a map containing the velocities of every entity in the current room.
|
|
74
|
+
*
|
|
75
|
+
* This is useful for rewinding entity velocities at a later time. Also see `setEntityVelocities()`.
|
|
76
|
+
*
|
|
77
|
+
* @param entities Optional. If provided, will only get the velocities of the provided entities.
|
|
78
|
+
* This can be used to cache the entities to avoid invoking `Isaac.GetRoomEntities()` multiple
|
|
79
|
+
* times.
|
|
80
|
+
*/
|
|
81
|
+
export declare function getEntityVelocities(entities?: Entity[]): Map<PtrHash, Vector>;
|
|
63
82
|
/**
|
|
64
83
|
* Helper function to get all of the familiars in the room.
|
|
65
84
|
*
|
|
@@ -144,4 +163,31 @@ export declare function removeAllMatchingEntities(entityType: int, entityVariant
|
|
|
144
163
|
export declare function removeAllPickups(): void;
|
|
145
164
|
export declare function removeAllProjectiles(): void;
|
|
146
165
|
export declare function removeAllTears(): void;
|
|
166
|
+
/**
|
|
167
|
+
* Helper function to set the position of every entity in the room based on a map of positions. If
|
|
168
|
+
* an entity is found that does not have matching element in the provided map, then that entity will
|
|
169
|
+
* be skipped.
|
|
170
|
+
*
|
|
171
|
+
* This function is useful for rewinding entity positions at a later time. Also see
|
|
172
|
+
* `getEntityPositions()`.
|
|
173
|
+
*
|
|
174
|
+
* @param entityPositions The map providing the positions for every entity.
|
|
175
|
+
* @param entities Optional. If provided, will only set the positions of the provided entities. This
|
|
176
|
+
* can be used to cache the entities to avoid invoking `Isaac.GetRoomEntities()` multiple times.
|
|
177
|
+
*/
|
|
178
|
+
export declare function setEntityPositions(entityPositions: Map<PtrHash, Vector>, entities?: Entity[]): void;
|
|
147
179
|
export declare function setEntityRandomColor(entity: Entity): void;
|
|
180
|
+
/**
|
|
181
|
+
* Helper function to set the velocity of every entity in the room based on a map of velocities. If
|
|
182
|
+
* an entity is found that does not have matching element in the provided map, then that entity will
|
|
183
|
+
* be skipped.
|
|
184
|
+
*
|
|
185
|
+
* This function is useful for rewinding entity velocities at a later time. Also see
|
|
186
|
+
* `getEntityVelocities()`.
|
|
187
|
+
*
|
|
188
|
+
* @param entityVelocities The map providing the velocities for every entity.
|
|
189
|
+
* @param entities Optional. If provided, will only set the velocities of the provided entities.
|
|
190
|
+
* This can be used to cache the entities to avoid invoking `Isaac.GetRoomEntities()` multiple
|
|
191
|
+
* times.
|
|
192
|
+
*/
|
|
193
|
+
export declare function setEntityVelocities(entityVelocities: Map<PtrHash, Vector>, entities?: Entity[]): void;
|
|
@@ -76,6 +76,28 @@ function ____exports.getEntities(self, matchingEntityType, matchingVariant, matc
|
|
|
76
76
|
end
|
|
77
77
|
return Isaac.FindByType(matchingEntityType, matchingVariant, matchingSubType, ignoreFriendly)
|
|
78
78
|
end
|
|
79
|
+
function ____exports.getEntityPositions(self, entities)
|
|
80
|
+
if entities == nil then
|
|
81
|
+
entities = ____exports.getEntities(nil)
|
|
82
|
+
end
|
|
83
|
+
local entityPositions = __TS__New(Map)
|
|
84
|
+
for ____, entity in ipairs(entities) do
|
|
85
|
+
local ptrHash = GetPtrHash(entity)
|
|
86
|
+
entityPositions:set(ptrHash, entity.Position)
|
|
87
|
+
end
|
|
88
|
+
return entityPositions
|
|
89
|
+
end
|
|
90
|
+
function ____exports.getEntityVelocities(self, entities)
|
|
91
|
+
if entities == nil then
|
|
92
|
+
entities = ____exports.getEntities(nil)
|
|
93
|
+
end
|
|
94
|
+
local entityVelocities = __TS__New(Map)
|
|
95
|
+
for ____, entity in ipairs(entities) do
|
|
96
|
+
local ptrHash = GetPtrHash(entity)
|
|
97
|
+
entityVelocities:set(ptrHash, entity.Velocity)
|
|
98
|
+
end
|
|
99
|
+
return entityVelocities
|
|
100
|
+
end
|
|
79
101
|
function ____exports.getFamiliars(self, matchingVariant, matchingSubType)
|
|
80
102
|
if matchingVariant == nil then
|
|
81
103
|
matchingVariant = -1
|
|
@@ -251,6 +273,18 @@ function ____exports.removeAllTears(self)
|
|
|
251
273
|
tear:Remove()
|
|
252
274
|
end
|
|
253
275
|
end
|
|
276
|
+
function ____exports.setEntityPositions(self, entityPositions, entities)
|
|
277
|
+
if entities == nil then
|
|
278
|
+
entities = ____exports.getEntities(nil)
|
|
279
|
+
end
|
|
280
|
+
for ____, entity in ipairs(entities) do
|
|
281
|
+
local ptrHash = GetPtrHash(entity)
|
|
282
|
+
local entityPosition = entityPositions:get(ptrHash)
|
|
283
|
+
if entityPosition ~= nil then
|
|
284
|
+
entity.Position = entityPosition
|
|
285
|
+
end
|
|
286
|
+
end
|
|
287
|
+
end
|
|
254
288
|
function ____exports.setEntityRandomColor(self, entity)
|
|
255
289
|
local colorValues = {}
|
|
256
290
|
local seed = entity.InitSeed
|
|
@@ -266,4 +300,16 @@ function ____exports.setEntityRandomColor(self, entity)
|
|
|
266
300
|
local color = Color(colorValues[1], colorValues[2], colorValues[3])
|
|
267
301
|
entity:SetColor(color, 100000, 100000, false, false)
|
|
268
302
|
end
|
|
303
|
+
function ____exports.setEntityVelocities(self, entityVelocities, entities)
|
|
304
|
+
if entities == nil then
|
|
305
|
+
entities = ____exports.getEntities(nil)
|
|
306
|
+
end
|
|
307
|
+
for ____, entity in ipairs(entities) do
|
|
308
|
+
local ptrHash = GetPtrHash(entity)
|
|
309
|
+
local entityVelocity = entityVelocities:get(ptrHash)
|
|
310
|
+
if entityVelocity ~= nil then
|
|
311
|
+
entity.Velocity = entityVelocity
|
|
312
|
+
end
|
|
313
|
+
end
|
|
314
|
+
end
|
|
269
315
|
return ____exports
|
|
@@ -38,9 +38,30 @@ export declare function isAllPressurePlatesPushed(): boolean;
|
|
|
38
38
|
* at the VarData of the entity.)
|
|
39
39
|
*/
|
|
40
40
|
export declare function isPostBossVoidPortal(gridEntity: GridEntity): boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Helper function to remove most grid entities in the room.
|
|
43
|
+
*
|
|
44
|
+
* Example:
|
|
45
|
+
* ```
|
|
46
|
+
* removeAllGridEntitiesExceptFor(
|
|
47
|
+
* GridEntityType.GRID_WALL,
|
|
48
|
+
* GridEntityType.GRID_DOOR,
|
|
49
|
+
* );
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
41
52
|
export declare function removeAllGridEntitiesExceptFor(...gridEntityTypes: GridEntityType[]): void;
|
|
42
53
|
export declare function removeAllMatchingGridEntities(gridEntityType: GridEntityType): void;
|
|
43
|
-
|
|
54
|
+
/**
|
|
55
|
+
* Helper function to remove a grid entity simply by providing the grid entity object.
|
|
56
|
+
*
|
|
57
|
+
* @param gridEntity The grid entity to remove.
|
|
58
|
+
* @param updateRoom Optional. Whether or not to update the room after the grid entity is removed.
|
|
59
|
+
* True by default. This is generally a good idea because if the room is not updated, you will be
|
|
60
|
+
* unable to spawn another grid entity on the same tile until a frame has passed. However, doing
|
|
61
|
+
* this is expensive, since it involves a call to `Isaac.GetRoomEntities()`, so set it to false if
|
|
62
|
+
* you need to invoke this function multiple times.
|
|
63
|
+
*/
|
|
64
|
+
export declare function removeGridEntity(gridEntity: GridEntity, updateRoom?: boolean): void;
|
|
44
65
|
/**
|
|
45
66
|
* Helper function to make a grid entity invisible. This is accomplished by setting its sprite to
|
|
46
67
|
* "gfx/none.png" (a non-existent PNG file).
|
|
@@ -3,12 +3,19 @@ require("lualib_bundle");
|
|
|
3
3
|
local ____exports = {}
|
|
4
4
|
local ____constants = require("constants")
|
|
5
5
|
local GRID_ENTITY_XML_MAP = ____constants.GRID_ENTITY_XML_MAP
|
|
6
|
-
|
|
6
|
+
local ____rooms = require("functions.rooms")
|
|
7
|
+
local roomUpdateSafe = ____rooms.roomUpdateSafe
|
|
8
|
+
function ____exports.removeGridEntity(self, gridEntity, updateRoom)
|
|
9
|
+
if updateRoom == nil then
|
|
10
|
+
updateRoom = true
|
|
11
|
+
end
|
|
7
12
|
local game = Game()
|
|
8
13
|
local room = game:GetRoom()
|
|
9
14
|
local gridIndex = gridEntity:GetGridIndex()
|
|
10
15
|
room:RemoveGridEntity(gridIndex, 0, false)
|
|
11
|
-
|
|
16
|
+
if updateRoom then
|
|
17
|
+
roomUpdateSafe(nil)
|
|
18
|
+
end
|
|
12
19
|
end
|
|
13
20
|
function ____exports.spawnGridEntityWithVariant(self, gridEntityType, variant, gridIndex)
|
|
14
21
|
local game = Game()
|
|
@@ -113,15 +120,17 @@ function ____exports.removeAllGridEntitiesExceptFor(self, ...)
|
|
|
113
120
|
for ____, gridEntity in ipairs(gridEntities) do
|
|
114
121
|
local gridEntityType = gridEntity:GetType()
|
|
115
122
|
if not gridEntityTypeExceptions:has(gridEntityType) then
|
|
116
|
-
____exports.removeGridEntity(nil, gridEntity)
|
|
123
|
+
____exports.removeGridEntity(nil, gridEntity, false)
|
|
117
124
|
end
|
|
118
125
|
end
|
|
126
|
+
roomUpdateSafe(nil)
|
|
119
127
|
end
|
|
120
128
|
function ____exports.removeAllMatchingGridEntities(self, gridEntityType)
|
|
121
129
|
local gridEntities = ____exports.getGridEntities(nil, gridEntityType)
|
|
122
130
|
for ____, gridEntity in ipairs(gridEntities) do
|
|
123
|
-
____exports.removeGridEntity(nil, gridEntity)
|
|
131
|
+
____exports.removeGridEntity(nil, gridEntity, false)
|
|
124
132
|
end
|
|
133
|
+
roomUpdateSafe(nil)
|
|
125
134
|
end
|
|
126
135
|
function ____exports.setGridEntityInvisible(self, gridEntity)
|
|
127
136
|
local sprite = gridEntity:GetSprite()
|
|
@@ -31,7 +31,8 @@ export declare function getAzazelBrimstoneDistance(playerOrTearHeight: EntityPla
|
|
|
31
31
|
export declare function getClosestPlayer(position: Vector): EntityPlayer;
|
|
32
32
|
/**
|
|
33
33
|
* Most characters have a 56 frame death animation (i.e. the "Death" animation).
|
|
34
|
-
* The Lost and Tainted Lost
|
|
34
|
+
* The Lost and Tainted Lost have a 38 frame death animation (i.e. the "LostDeath" animation).
|
|
35
|
+
* Tainted Forgotten have a 20 frame death animation (i.e. the "ForgottenDeath" animation).
|
|
35
36
|
*/
|
|
36
37
|
export declare function getDeathAnimationName(player: EntityPlayer): string;
|
|
37
38
|
/**
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
require("lualib_bundle");
|
|
3
3
|
local ____exports = {}
|
|
4
4
|
local EXCLUDED_CHARACTERS
|
|
5
|
+
local ____constants = require("constants")
|
|
6
|
+
local LOST_STYLE_PLAYER_TYPES = ____constants.LOST_STYLE_PLAYER_TYPES
|
|
5
7
|
local ____HealthType = require("types.HealthType")
|
|
6
8
|
local HealthType = ____HealthType.HealthType
|
|
7
9
|
local ____PocketItemType = require("types.PocketItemType")
|
|
@@ -23,18 +25,18 @@ function ____exports.getPlayers(self, performExclusions)
|
|
|
23
25
|
do
|
|
24
26
|
local player = Isaac.GetPlayer(i)
|
|
25
27
|
if player == nil then
|
|
26
|
-
goto
|
|
28
|
+
goto __continue55
|
|
27
29
|
end
|
|
28
30
|
if ____exports.isChildPlayer(nil, player) then
|
|
29
|
-
goto
|
|
31
|
+
goto __continue55
|
|
30
32
|
end
|
|
31
33
|
local character = player:GetPlayerType()
|
|
32
34
|
if performExclusions and EXCLUDED_CHARACTERS:has(character) then
|
|
33
|
-
goto
|
|
35
|
+
goto __continue55
|
|
34
36
|
end
|
|
35
37
|
__TS__ArrayPush(players, player)
|
|
36
38
|
end
|
|
37
|
-
::
|
|
39
|
+
::__continue55::
|
|
38
40
|
i = i + 1
|
|
39
41
|
end
|
|
40
42
|
end
|
|
@@ -135,8 +137,13 @@ function ____exports.getClosestPlayer(self, position)
|
|
|
135
137
|
end
|
|
136
138
|
function ____exports.getDeathAnimationName(self, player)
|
|
137
139
|
local character = player:GetPlayerType()
|
|
138
|
-
|
|
139
|
-
|
|
140
|
+
if LOST_STYLE_PLAYER_TYPES:has(character) then
|
|
141
|
+
return "LostDeath"
|
|
142
|
+
end
|
|
143
|
+
if character == PlayerType.PLAYER_THEFORGOTTEN_B then
|
|
144
|
+
return "ForgottenDeath"
|
|
145
|
+
end
|
|
146
|
+
return "Death"
|
|
140
147
|
end
|
|
141
148
|
function ____exports.getLastHeart(self, player)
|
|
142
149
|
local hearts = player:GetHearts()
|
|
@@ -272,14 +279,14 @@ function ____exports.getPlayerIndexVanilla(self, playerToFind)
|
|
|
272
279
|
do
|
|
273
280
|
local player = Isaac.GetPlayer(i)
|
|
274
281
|
if player == nil then
|
|
275
|
-
goto
|
|
282
|
+
goto __continue64
|
|
276
283
|
end
|
|
277
284
|
local playerHash = GetPtrHash(player)
|
|
278
285
|
if playerHash == playerToFindHash then
|
|
279
286
|
return i
|
|
280
287
|
end
|
|
281
288
|
end
|
|
282
|
-
::
|
|
289
|
+
::__continue64::
|
|
283
290
|
i = i + 1
|
|
284
291
|
end
|
|
285
292
|
end
|
|
@@ -108,6 +108,13 @@ export declare function inDimension(dimension: Dimension): boolean;
|
|
|
108
108
|
export declare function inLRoom(): boolean;
|
|
109
109
|
export declare function inGenesisRoom(): boolean;
|
|
110
110
|
export declare function inStartingRoom(): boolean;
|
|
111
|
+
/**
|
|
112
|
+
* If `Room.Update()` is called in a PostNewRoom callback, then some entities will slide around
|
|
113
|
+
* (such as the player). Since those entity velocities are already at zero, setting them to zero
|
|
114
|
+
* will have no effect. Thus, a generic solution is to record all of the entity positions/velocities
|
|
115
|
+
* before updating the room, and then restore those positions/velocities.
|
|
116
|
+
*/
|
|
117
|
+
export declare function roomUpdateSafe(): void;
|
|
111
118
|
/**
|
|
112
119
|
* Helper function to convert an uncleared room to a cleared room in the PostNewRoom callback. This
|
|
113
120
|
* is useful because if enemies are removed in this callback, a room drop will be awarded and the
|
package/dist/functions/rooms.lua
CHANGED
|
@@ -11,6 +11,12 @@ local ____doors = require("functions.doors")
|
|
|
11
11
|
local closeAllDoors = ____doors.closeAllDoors
|
|
12
12
|
local getDoors = ____doors.getDoors
|
|
13
13
|
local isHiddenSecretRoomDoor = ____doors.isHiddenSecretRoomDoor
|
|
14
|
+
local ____entity = require("functions.entity")
|
|
15
|
+
local getEntities = ____entity.getEntities
|
|
16
|
+
local getEntityPositions = ____entity.getEntityPositions
|
|
17
|
+
local getEntityVelocities = ____entity.getEntityVelocities
|
|
18
|
+
local setEntityPositions = ____entity.setEntityPositions
|
|
19
|
+
local setEntityVelocities = ____entity.setEntityVelocities
|
|
14
20
|
local ____flag = require("functions.flag")
|
|
15
21
|
local hasFlag = ____flag.hasFlag
|
|
16
22
|
function ____exports.getRoomIndex(self)
|
|
@@ -196,6 +202,16 @@ function ____exports.inStartingRoom(self)
|
|
|
196
202
|
local roomIndex = ____exports.getRoomIndex(nil)
|
|
197
203
|
return roomIndex == startingRoomIndex
|
|
198
204
|
end
|
|
205
|
+
function ____exports.roomUpdateSafe(self)
|
|
206
|
+
local game = Game()
|
|
207
|
+
local room = game:GetRoom()
|
|
208
|
+
local entities = getEntities(nil)
|
|
209
|
+
local entityPositions = getEntityPositions(nil, entities)
|
|
210
|
+
local entityVelocities = getEntityVelocities(nil, entities)
|
|
211
|
+
room:Update()
|
|
212
|
+
setEntityPositions(nil, entityPositions, entities)
|
|
213
|
+
setEntityVelocities(nil, entityVelocities, entities)
|
|
214
|
+
end
|
|
199
215
|
function ____exports.setRoomCleared(self)
|
|
200
216
|
local game = Game()
|
|
201
217
|
local room = game:GetRoom()
|
|
@@ -210,14 +226,14 @@ function ____exports.setRoomCleared(self)
|
|
|
210
226
|
) do
|
|
211
227
|
do
|
|
212
228
|
if isHiddenSecretRoomDoor(nil, door) then
|
|
213
|
-
goto
|
|
229
|
+
goto __continue39
|
|
214
230
|
end
|
|
215
231
|
door.State = DoorState.STATE_OPEN
|
|
216
232
|
local sprite = door:GetSprite()
|
|
217
233
|
sprite:Play("Opened", true)
|
|
218
234
|
door.ExtraVisible = false
|
|
219
235
|
end
|
|
220
|
-
::
|
|
236
|
+
::__continue39::
|
|
221
237
|
end
|
|
222
238
|
sfx:Stop(SoundEffect.SOUND_DOOR_HEAVY_OPEN)
|
|
223
239
|
game:ShakeScreen(0)
|