isaacscript-common 83.4.0 → 83.5.0
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/classes/callbacks/PostPlayerFatalDamage.d.ts.map +1 -1
- package/dist/classes/callbacks/PostPlayerFatalDamage.lua +6 -0
- package/dist/classes/features/other/EdenStartingStatsHealth.d.ts +40 -1
- package/dist/classes/features/other/EdenStartingStatsHealth.d.ts.map +1 -1
- package/dist/classes/features/other/EdenStartingStatsHealth.lua +38 -0
- package/dist/index.rollup.d.ts +39 -0
- package/dist/isaacscript-common.lua +45 -1
- package/dist/tsdoc-metadata.json +1 -1
- package/package.json +1 -1
- package/src/classes/callbacks/PostPlayerFatalDamage.ts +9 -5
- package/src/classes/features/other/EdenStartingStatsHealth.ts +104 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PostPlayerFatalDamage.d.ts","sourceRoot":"","sources":["../../../src/classes/callbacks/PostPlayerFatalDamage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PostPlayerFatalDamage.d.ts","sourceRoot":"","sources":["../../../src/classes/callbacks/PostPlayerFatalDamage.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAYlE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAS3D,qBAAa,qBAAsB,SAAQ,cAAc,CAAC,iBAAiB,CAAC,wBAAwB,CAAC;IACnF,CAAC;;YANf,6DAA6D;;;MAMzC;;IAetB,UAAmB,UAAU,0BAAoB;IAEjD;;;OAGG;IAGH,OAAO,CAAC,QAAQ,CAAC,eAAe,CA8B9B;IAGF,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CA+ClC;CACH"}
|
|
@@ -7,12 +7,15 @@ local ____exports = {}
|
|
|
7
7
|
local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
|
|
8
8
|
local BossID = ____isaac_2Dtypescript_2Ddefinitions.BossID
|
|
9
9
|
local CollectibleType = ____isaac_2Dtypescript_2Ddefinitions.CollectibleType
|
|
10
|
+
local DamageFlag = ____isaac_2Dtypescript_2Ddefinitions.DamageFlag
|
|
10
11
|
local DamageFlagZero = ____isaac_2Dtypescript_2Ddefinitions.DamageFlagZero
|
|
11
12
|
local ModCallback = ____isaac_2Dtypescript_2Ddefinitions.ModCallback
|
|
12
13
|
local ____cachedClasses = require("core.cachedClasses")
|
|
13
14
|
local game = ____cachedClasses.game
|
|
14
15
|
local ____ModCallbackCustom = require("enums.ModCallbackCustom")
|
|
15
16
|
local ModCallbackCustom = ____ModCallbackCustom.ModCallbackCustom
|
|
17
|
+
local ____flag = require("functions.flag")
|
|
18
|
+
local hasFlag = ____flag.hasFlag
|
|
16
19
|
local ____playerDataStructures = require("functions.playerDataStructures")
|
|
17
20
|
local mapGetPlayer = ____playerDataStructures.mapGetPlayer
|
|
18
21
|
local mapSetPlayer = ____playerDataStructures.mapSetPlayer
|
|
@@ -62,6 +65,9 @@ function PostPlayerFatalDamage.prototype.____constructor(self)
|
|
|
62
65
|
local gameFrameCount = game:GetFrameCount()
|
|
63
66
|
local lastDamageGameFrame = mapGetPlayer(nil, v.run.playersLastDamageGameFrame, player)
|
|
64
67
|
mapSetPlayer(nil, v.run.playersLastDamageGameFrame, player, gameFrameCount)
|
|
68
|
+
if hasFlag(nil, damageFlags, DamageFlag.NO_KILL) then
|
|
69
|
+
return nil
|
|
70
|
+
end
|
|
65
71
|
if willPlayerRevive(nil, player) then
|
|
66
72
|
return nil
|
|
67
73
|
end
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import type { CollectibleType } from "isaac-typescript-definitions";
|
|
2
2
|
import type { PlayerStat } from "../../../enums/PlayerStat";
|
|
3
3
|
import type { PlayerHealth } from "../../../interfaces/PlayerHealth";
|
|
4
4
|
import type { PlayerStats } from "../../../interfaces/PlayerStats";
|
|
@@ -11,6 +11,34 @@ export declare class EdenStartingStatsHealth extends Feature {
|
|
|
11
11
|
private readonly postPlayerInit;
|
|
12
12
|
private getEdenStats;
|
|
13
13
|
private getEdenHealth;
|
|
14
|
+
/**
|
|
15
|
+
* We must use the `POST_PLAYER_COLLECTIBLE_ADDED` callback since the collectibles are not yet
|
|
16
|
+
* granted in the `POST_PLAYER_INIT` callback.
|
|
17
|
+
*/
|
|
18
|
+
private readonly postPlayerCollectibleAdded;
|
|
19
|
+
/**
|
|
20
|
+
* Helper function to get the active collectible that Eden started with at the beginning of the
|
|
21
|
+
* run.
|
|
22
|
+
*
|
|
23
|
+
* Returns undefined if passed a player that is not Eden or if the starting collectibles are not
|
|
24
|
+
* yet added. (Eden's starting collectibles are added after the `POST_PLAYER_INIT` callback has
|
|
25
|
+
* fired.)
|
|
26
|
+
*
|
|
27
|
+
* @public
|
|
28
|
+
*/
|
|
29
|
+
getEdenStartingActiveCollectible(player: EntityPlayer): CollectibleType | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* Helper function to get an array containing the active collectible and the passive collectible
|
|
32
|
+
* that Eden started with at the beginning of the run. The active collectible will be the first
|
|
33
|
+
* element and the passive collectible will be the second element.
|
|
34
|
+
*
|
|
35
|
+
* Returns an empty array if passed a player that is not Eden or if the starting collectibles are
|
|
36
|
+
* not yet added. (Eden's starting collectibles are added after the `POST_PLAYER_INIT` callback
|
|
37
|
+
* has fired.)
|
|
38
|
+
*
|
|
39
|
+
* @public
|
|
40
|
+
*/
|
|
41
|
+
getEdenStartingCollectibles(player: EntityPlayer): CollectibleType[];
|
|
14
42
|
/**
|
|
15
43
|
* Helper function to get the health that Eden started with at the beginning of the run before any
|
|
16
44
|
* of the random collectibles were added.
|
|
@@ -22,6 +50,17 @@ export declare class EdenStartingStatsHealth extends Feature {
|
|
|
22
50
|
* @public
|
|
23
51
|
*/
|
|
24
52
|
getEdenStartingHealth(player: EntityPlayer): Readonly<PlayerHealth> | undefined;
|
|
53
|
+
/**
|
|
54
|
+
* Helper function to get the passive collectible that Eden started with at the beginning of the
|
|
55
|
+
* run.
|
|
56
|
+
*
|
|
57
|
+
* Returns undefined if passed a player that is not Eden or if the starting collectibles are not
|
|
58
|
+
* yet added. (Eden's starting collectibles are added after the `POST_PLAYER_INIT` callback has
|
|
59
|
+
* fired.)
|
|
60
|
+
*
|
|
61
|
+
* @public
|
|
62
|
+
*/
|
|
63
|
+
getEdenStartingPassiveCollectible(player: EntityPlayer): CollectibleType | undefined;
|
|
25
64
|
/**
|
|
26
65
|
* Helper function to get the value of the randomized starting stat for Eden that was assigned at
|
|
27
66
|
* the beginning of the run before any of the random collectibles were added.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EdenStartingStatsHealth.d.ts","sourceRoot":"","sources":["../../../../src/classes/features/other/EdenStartingStatsHealth.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"EdenStartingStatsHealth.d.ts","sourceRoot":"","sources":["../../../../src/classes/features/other/EdenStartingStatsHealth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAIpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAU5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAEnE,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAWhD,qBAAa,uBAAwB,SAAQ,OAAO;IAqBlD;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAO7B;IAEF,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,aAAa;IAUrB;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAezC;IAEF;;;;;;;;;OASG;IAEI,gCAAgC,CACrC,MAAM,EAAE,YAAY,GACnB,eAAe,GAAG,SAAS;IAI9B;;;;;;;;;;OAUG;IAEI,2BAA2B,CAAC,MAAM,EAAE,YAAY,GAAG,eAAe,EAAE;IAwB3E;;;;;;;;;OASG;IAEI,qBAAqB,CAC1B,MAAM,EAAE,YAAY,GACnB,QAAQ,CAAC,YAAY,CAAC,GAAG,SAAS;IAIrC;;;;;;;;;OASG;IAEI,iCAAiC,CACtC,MAAM,EAAE,YAAY,GACnB,eAAe,GAAG,SAAS;IAI9B;;;;;;;;;OASG;IAEI,mBAAmB,CAAC,CAAC,SAAS,UAAU,EAC7C,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,CAAC,GACZ,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS;IAS7B;;;;;;;;;OASG;IAEI,oBAAoB,CACzB,MAAM,EAAE,YAAY,GACnB,QAAQ,CAAC,WAAW,CAAC,GAAG,SAAS;CAGrC"}
|
|
@@ -9,8 +9,13 @@ local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitio
|
|
|
9
9
|
local ModCallback = ____isaac_2Dtypescript_2Ddefinitions.ModCallback
|
|
10
10
|
local ____decorators = require("decorators")
|
|
11
11
|
local Exported = ____decorators.Exported
|
|
12
|
+
local ____ModCallbackCustom = require("enums.ModCallbackCustom")
|
|
13
|
+
local ModCallbackCustom = ____ModCallbackCustom.ModCallbackCustom
|
|
14
|
+
local ____collectibles = require("functions.collectibles")
|
|
15
|
+
local isActiveCollectible = ____collectibles.isActiveCollectible
|
|
12
16
|
local ____playerDataStructures = require("functions.playerDataStructures")
|
|
13
17
|
local mapGetPlayer = ____playerDataStructures.mapGetPlayer
|
|
18
|
+
local mapHasPlayer = ____playerDataStructures.mapHasPlayer
|
|
14
19
|
local mapSetPlayer = ____playerDataStructures.mapSetPlayer
|
|
15
20
|
local ____playerHealth = require("functions.playerHealth")
|
|
16
21
|
local getPlayerHealth = ____playerHealth.getPlayerHealth
|
|
@@ -21,6 +26,8 @@ local getPlayerStats = ____stats.getPlayerStats
|
|
|
21
26
|
local ____Feature = require("classes.private.Feature")
|
|
22
27
|
local Feature = ____Feature.Feature
|
|
23
28
|
local v = {run = {
|
|
29
|
+
edenActiveCollectibles = __TS__New(Map),
|
|
30
|
+
edenPassiveCollectibles = __TS__New(Map),
|
|
24
31
|
edenPlayerStats = __TS__New(Map),
|
|
25
32
|
edenPlayerHealth = __TS__New(Map)
|
|
26
33
|
}}
|
|
@@ -38,7 +45,17 @@ function EdenStartingStatsHealth.prototype.____constructor(self)
|
|
|
38
45
|
self:getEdenStats(player)
|
|
39
46
|
self:getEdenHealth(player)
|
|
40
47
|
end
|
|
48
|
+
self.postPlayerCollectibleAdded = function(____, player, collectibleType)
|
|
49
|
+
if not isEden(nil, player) then
|
|
50
|
+
return
|
|
51
|
+
end
|
|
52
|
+
local map = isActiveCollectible(nil, collectibleType) and v.run.edenActiveCollectibles or v.run.edenPassiveCollectibles
|
|
53
|
+
if not mapHasPlayer(nil, map, player) then
|
|
54
|
+
mapSetPlayer(nil, map, player, collectibleType)
|
|
55
|
+
end
|
|
56
|
+
end
|
|
41
57
|
self.callbacksUsed = {{ModCallback.POST_PLAYER_INIT, self.postPlayerInit}}
|
|
58
|
+
self.customCallbacksUsed = {{ModCallbackCustom.POST_PLAYER_COLLECTIBLE_ADDED, self.postPlayerCollectibleAdded}}
|
|
42
59
|
end
|
|
43
60
|
function EdenStartingStatsHealth.prototype.getEdenStats(self, player)
|
|
44
61
|
local existingStatMap = mapGetPlayer(nil, v.run.edenPlayerStats, player)
|
|
@@ -56,10 +73,31 @@ function EdenStartingStatsHealth.prototype.getEdenHealth(self, player)
|
|
|
56
73
|
local playerHealth = getPlayerHealth(nil, player)
|
|
57
74
|
mapSetPlayer(nil, v.run.edenPlayerHealth, player, playerHealth)
|
|
58
75
|
end
|
|
76
|
+
function EdenStartingStatsHealth.prototype.getEdenStartingActiveCollectible(self, player)
|
|
77
|
+
return mapGetPlayer(nil, v.run.edenActiveCollectibles, player)
|
|
78
|
+
end
|
|
79
|
+
__TS__DecorateLegacy({Exported}, EdenStartingStatsHealth.prototype, "getEdenStartingActiveCollectible", true)
|
|
80
|
+
function EdenStartingStatsHealth.prototype.getEdenStartingCollectibles(self, player)
|
|
81
|
+
local collectibleTypes = {}
|
|
82
|
+
local activeCollectibleType = mapGetPlayer(nil, v.run.edenActiveCollectibles, player)
|
|
83
|
+
if activeCollectibleType ~= nil then
|
|
84
|
+
collectibleTypes[#collectibleTypes + 1] = activeCollectibleType
|
|
85
|
+
end
|
|
86
|
+
local passiveCollectibleType = mapGetPlayer(nil, v.run.edenPassiveCollectibles, player)
|
|
87
|
+
if passiveCollectibleType ~= nil then
|
|
88
|
+
collectibleTypes[#collectibleTypes + 1] = passiveCollectibleType
|
|
89
|
+
end
|
|
90
|
+
return collectibleTypes
|
|
91
|
+
end
|
|
92
|
+
__TS__DecorateLegacy({Exported}, EdenStartingStatsHealth.prototype, "getEdenStartingCollectibles", true)
|
|
59
93
|
function EdenStartingStatsHealth.prototype.getEdenStartingHealth(self, player)
|
|
60
94
|
return mapGetPlayer(nil, v.run.edenPlayerHealth, player)
|
|
61
95
|
end
|
|
62
96
|
__TS__DecorateLegacy({Exported}, EdenStartingStatsHealth.prototype, "getEdenStartingHealth", true)
|
|
97
|
+
function EdenStartingStatsHealth.prototype.getEdenStartingPassiveCollectible(self, player)
|
|
98
|
+
return mapGetPlayer(nil, v.run.edenPassiveCollectibles, player)
|
|
99
|
+
end
|
|
100
|
+
__TS__DecorateLegacy({Exported}, EdenStartingStatsHealth.prototype, "getEdenStartingPassiveCollectible", true)
|
|
63
101
|
function EdenStartingStatsHealth.prototype.getEdenStartingStat(self, player, playerStat)
|
|
64
102
|
local playerStats = mapGetPlayer(nil, v.run.edenPlayerStats, player)
|
|
65
103
|
if playerStats == nil then
|
package/dist/index.rollup.d.ts
CHANGED
|
@@ -4260,6 +4260,34 @@ declare class EdenStartingStatsHealth extends Feature {
|
|
|
4260
4260
|
private readonly postPlayerInit;
|
|
4261
4261
|
private getEdenStats;
|
|
4262
4262
|
private getEdenHealth;
|
|
4263
|
+
/**
|
|
4264
|
+
* We must use the `POST_PLAYER_COLLECTIBLE_ADDED` callback since the collectibles are not yet
|
|
4265
|
+
* granted in the `POST_PLAYER_INIT` callback.
|
|
4266
|
+
*/
|
|
4267
|
+
private readonly postPlayerCollectibleAdded;
|
|
4268
|
+
/**
|
|
4269
|
+
* Helper function to get the active collectible that Eden started with at the beginning of the
|
|
4270
|
+
* run.
|
|
4271
|
+
*
|
|
4272
|
+
* Returns undefined if passed a player that is not Eden or if the starting collectibles are not
|
|
4273
|
+
* yet added. (Eden's starting collectibles are added after the `POST_PLAYER_INIT` callback has
|
|
4274
|
+
* fired.)
|
|
4275
|
+
*
|
|
4276
|
+
* @public
|
|
4277
|
+
*/
|
|
4278
|
+
getEdenStartingActiveCollectible(player: EntityPlayer): CollectibleType | undefined;
|
|
4279
|
+
/**
|
|
4280
|
+
* Helper function to get an array containing the active collectible and the passive collectible
|
|
4281
|
+
* that Eden started with at the beginning of the run. The active collectible will be the first
|
|
4282
|
+
* element and the passive collectible will be the second element.
|
|
4283
|
+
*
|
|
4284
|
+
* Returns an empty array if passed a player that is not Eden or if the starting collectibles are
|
|
4285
|
+
* not yet added. (Eden's starting collectibles are added after the `POST_PLAYER_INIT` callback
|
|
4286
|
+
* has fired.)
|
|
4287
|
+
*
|
|
4288
|
+
* @public
|
|
4289
|
+
*/
|
|
4290
|
+
getEdenStartingCollectibles(player: EntityPlayer): CollectibleType[];
|
|
4263
4291
|
/**
|
|
4264
4292
|
* Helper function to get the health that Eden started with at the beginning of the run before any
|
|
4265
4293
|
* of the random collectibles were added.
|
|
@@ -4271,6 +4299,17 @@ declare class EdenStartingStatsHealth extends Feature {
|
|
|
4271
4299
|
* @public
|
|
4272
4300
|
*/
|
|
4273
4301
|
getEdenStartingHealth(player: EntityPlayer): Readonly<PlayerHealth> | undefined;
|
|
4302
|
+
/**
|
|
4303
|
+
* Helper function to get the passive collectible that Eden started with at the beginning of the
|
|
4304
|
+
* run.
|
|
4305
|
+
*
|
|
4306
|
+
* Returns undefined if passed a player that is not Eden or if the starting collectibles are not
|
|
4307
|
+
* yet added. (Eden's starting collectibles are added after the `POST_PLAYER_INIT` callback has
|
|
4308
|
+
* fired.)
|
|
4309
|
+
*
|
|
4310
|
+
* @public
|
|
4311
|
+
*/
|
|
4312
|
+
getEdenStartingPassiveCollectible(player: EntityPlayer): CollectibleType | undefined;
|
|
4274
4313
|
/**
|
|
4275
4314
|
* Helper function to get the value of the randomized starting stat for Eden that was assigned at
|
|
4276
4315
|
* the beginning of the run before any of the random collectibles were added.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
--[[
|
|
2
2
|
|
|
3
|
-
isaacscript-common 83.
|
|
3
|
+
isaacscript-common 83.4.1
|
|
4
4
|
|
|
5
5
|
This is the "isaacscript-common" library, which was created with the IsaacScript tool.
|
|
6
6
|
|
|
@@ -37042,12 +37042,15 @@ local ____exports = {}
|
|
|
37042
37042
|
local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.index")
|
|
37043
37043
|
local BossID = ____isaac_2Dtypescript_2Ddefinitions.BossID
|
|
37044
37044
|
local CollectibleType = ____isaac_2Dtypescript_2Ddefinitions.CollectibleType
|
|
37045
|
+
local DamageFlag = ____isaac_2Dtypescript_2Ddefinitions.DamageFlag
|
|
37045
37046
|
local DamageFlagZero = ____isaac_2Dtypescript_2Ddefinitions.DamageFlagZero
|
|
37046
37047
|
local ModCallback = ____isaac_2Dtypescript_2Ddefinitions.ModCallback
|
|
37047
37048
|
local ____cachedClasses = require("core.cachedClasses")
|
|
37048
37049
|
local game = ____cachedClasses.game
|
|
37049
37050
|
local ____ModCallbackCustom = require("enums.ModCallbackCustom")
|
|
37050
37051
|
local ModCallbackCustom = ____ModCallbackCustom.ModCallbackCustom
|
|
37052
|
+
local ____flag = require("functions.flag")
|
|
37053
|
+
local hasFlag = ____flag.hasFlag
|
|
37051
37054
|
local ____playerDataStructures = require("functions.playerDataStructures")
|
|
37052
37055
|
local mapGetPlayer = ____playerDataStructures.mapGetPlayer
|
|
37053
37056
|
local mapSetPlayer = ____playerDataStructures.mapSetPlayer
|
|
@@ -37097,6 +37100,9 @@ function PostPlayerFatalDamage.prototype.____constructor(self)
|
|
|
37097
37100
|
local gameFrameCount = game:GetFrameCount()
|
|
37098
37101
|
local lastDamageGameFrame = mapGetPlayer(nil, v.run.playersLastDamageGameFrame, player)
|
|
37099
37102
|
mapSetPlayer(nil, v.run.playersLastDamageGameFrame, player, gameFrameCount)
|
|
37103
|
+
if hasFlag(nil, damageFlags, DamageFlag.NO_KILL) then
|
|
37104
|
+
return nil
|
|
37105
|
+
end
|
|
37100
37106
|
if willPlayerRevive(nil, player) then
|
|
37101
37107
|
return nil
|
|
37102
37108
|
end
|
|
@@ -55089,8 +55095,13 @@ local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescri
|
|
|
55089
55095
|
local ModCallback = ____isaac_2Dtypescript_2Ddefinitions.ModCallback
|
|
55090
55096
|
local ____decorators = require("decorators")
|
|
55091
55097
|
local Exported = ____decorators.Exported
|
|
55098
|
+
local ____ModCallbackCustom = require("enums.ModCallbackCustom")
|
|
55099
|
+
local ModCallbackCustom = ____ModCallbackCustom.ModCallbackCustom
|
|
55100
|
+
local ____collectibles = require("functions.collectibles")
|
|
55101
|
+
local isActiveCollectible = ____collectibles.isActiveCollectible
|
|
55092
55102
|
local ____playerDataStructures = require("functions.playerDataStructures")
|
|
55093
55103
|
local mapGetPlayer = ____playerDataStructures.mapGetPlayer
|
|
55104
|
+
local mapHasPlayer = ____playerDataStructures.mapHasPlayer
|
|
55094
55105
|
local mapSetPlayer = ____playerDataStructures.mapSetPlayer
|
|
55095
55106
|
local ____playerHealth = require("functions.playerHealth")
|
|
55096
55107
|
local getPlayerHealth = ____playerHealth.getPlayerHealth
|
|
@@ -55101,6 +55112,8 @@ local getPlayerStats = ____stats.getPlayerStats
|
|
|
55101
55112
|
local ____Feature = require("classes.private.Feature")
|
|
55102
55113
|
local Feature = ____Feature.Feature
|
|
55103
55114
|
local v = {run = {
|
|
55115
|
+
edenActiveCollectibles = __TS__New(Map),
|
|
55116
|
+
edenPassiveCollectibles = __TS__New(Map),
|
|
55104
55117
|
edenPlayerStats = __TS__New(Map),
|
|
55105
55118
|
edenPlayerHealth = __TS__New(Map)
|
|
55106
55119
|
}}
|
|
@@ -55118,7 +55131,17 @@ function EdenStartingStatsHealth.prototype.____constructor(self)
|
|
|
55118
55131
|
self:getEdenStats(player)
|
|
55119
55132
|
self:getEdenHealth(player)
|
|
55120
55133
|
end
|
|
55134
|
+
self.postPlayerCollectibleAdded = function(____, player, collectibleType)
|
|
55135
|
+
if not isEden(nil, player) then
|
|
55136
|
+
return
|
|
55137
|
+
end
|
|
55138
|
+
local map = isActiveCollectible(nil, collectibleType) and v.run.edenActiveCollectibles or v.run.edenPassiveCollectibles
|
|
55139
|
+
if not mapHasPlayer(nil, map, player) then
|
|
55140
|
+
mapSetPlayer(nil, map, player, collectibleType)
|
|
55141
|
+
end
|
|
55142
|
+
end
|
|
55121
55143
|
self.callbacksUsed = {{ModCallback.POST_PLAYER_INIT, self.postPlayerInit}}
|
|
55144
|
+
self.customCallbacksUsed = {{ModCallbackCustom.POST_PLAYER_COLLECTIBLE_ADDED, self.postPlayerCollectibleAdded}}
|
|
55122
55145
|
end
|
|
55123
55146
|
function EdenStartingStatsHealth.prototype.getEdenStats(self, player)
|
|
55124
55147
|
local existingStatMap = mapGetPlayer(nil, v.run.edenPlayerStats, player)
|
|
@@ -55136,10 +55159,31 @@ function EdenStartingStatsHealth.prototype.getEdenHealth(self, player)
|
|
|
55136
55159
|
local playerHealth = getPlayerHealth(nil, player)
|
|
55137
55160
|
mapSetPlayer(nil, v.run.edenPlayerHealth, player, playerHealth)
|
|
55138
55161
|
end
|
|
55162
|
+
function EdenStartingStatsHealth.prototype.getEdenStartingActiveCollectible(self, player)
|
|
55163
|
+
return mapGetPlayer(nil, v.run.edenActiveCollectibles, player)
|
|
55164
|
+
end
|
|
55165
|
+
__TS__DecorateLegacy({Exported}, EdenStartingStatsHealth.prototype, "getEdenStartingActiveCollectible", true)
|
|
55166
|
+
function EdenStartingStatsHealth.prototype.getEdenStartingCollectibles(self, player)
|
|
55167
|
+
local collectibleTypes = {}
|
|
55168
|
+
local activeCollectibleType = mapGetPlayer(nil, v.run.edenActiveCollectibles, player)
|
|
55169
|
+
if activeCollectibleType ~= nil then
|
|
55170
|
+
collectibleTypes[#collectibleTypes + 1] = activeCollectibleType
|
|
55171
|
+
end
|
|
55172
|
+
local passiveCollectibleType = mapGetPlayer(nil, v.run.edenPassiveCollectibles, player)
|
|
55173
|
+
if passiveCollectibleType ~= nil then
|
|
55174
|
+
collectibleTypes[#collectibleTypes + 1] = passiveCollectibleType
|
|
55175
|
+
end
|
|
55176
|
+
return collectibleTypes
|
|
55177
|
+
end
|
|
55178
|
+
__TS__DecorateLegacy({Exported}, EdenStartingStatsHealth.prototype, "getEdenStartingCollectibles", true)
|
|
55139
55179
|
function EdenStartingStatsHealth.prototype.getEdenStartingHealth(self, player)
|
|
55140
55180
|
return mapGetPlayer(nil, v.run.edenPlayerHealth, player)
|
|
55141
55181
|
end
|
|
55142
55182
|
__TS__DecorateLegacy({Exported}, EdenStartingStatsHealth.prototype, "getEdenStartingHealth", true)
|
|
55183
|
+
function EdenStartingStatsHealth.prototype.getEdenStartingPassiveCollectible(self, player)
|
|
55184
|
+
return mapGetPlayer(nil, v.run.edenPassiveCollectibles, player)
|
|
55185
|
+
end
|
|
55186
|
+
__TS__DecorateLegacy({Exported}, EdenStartingStatsHealth.prototype, "getEdenStartingPassiveCollectible", true)
|
|
55143
55187
|
function EdenStartingStatsHealth.prototype.getEdenStartingStat(self, player, playerStat)
|
|
55144
55188
|
local playerStats = mapGetPlayer(nil, v.run.edenPlayerStats, player)
|
|
55145
55189
|
if playerStats == nil then
|
package/dist/tsdoc-metadata.json
CHANGED
package/package.json
CHANGED
|
@@ -1,16 +1,14 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
ActiveSlot,
|
|
3
|
-
DamageFlag,
|
|
4
|
-
UseFlag,
|
|
5
|
-
} from "isaac-typescript-definitions";
|
|
1
|
+
import type { ActiveSlot, UseFlag } from "isaac-typescript-definitions";
|
|
6
2
|
import {
|
|
7
3
|
BossID,
|
|
8
4
|
CollectibleType,
|
|
5
|
+
DamageFlag,
|
|
9
6
|
DamageFlagZero,
|
|
10
7
|
ModCallback,
|
|
11
8
|
} from "isaac-typescript-definitions";
|
|
12
9
|
import { game } from "../../core/cachedClasses";
|
|
13
10
|
import { ModCallbackCustom } from "../../enums/ModCallbackCustom";
|
|
11
|
+
import { hasFlag } from "../../functions/flag";
|
|
14
12
|
import {
|
|
15
13
|
mapGetPlayer,
|
|
16
14
|
mapSetPlayer,
|
|
@@ -109,6 +107,12 @@ export class PostPlayerFatalDamage extends CustomCallback<ModCallbackCustom.POST
|
|
|
109
107
|
);
|
|
110
108
|
mapSetPlayer(v.run.playersLastDamageGameFrame, player, gameFrameCount);
|
|
111
109
|
|
|
110
|
+
// If the damage has the damage flag of `DamageFlag.NO_KILL` (1 << 0), this will not be fatal
|
|
111
|
+
// damage. (This is present on things like the Bad Trip pill.)
|
|
112
|
+
if (hasFlag(damageFlags, DamageFlag.NO_KILL)) {
|
|
113
|
+
return undefined;
|
|
114
|
+
}
|
|
115
|
+
|
|
112
116
|
// If the player has a revival item such as Dead Cat, this will not be fatal damage.
|
|
113
117
|
if (willPlayerRevive(player)) {
|
|
114
118
|
return undefined;
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
+
import type { CollectibleType } from "isaac-typescript-definitions";
|
|
1
2
|
import { ModCallback } from "isaac-typescript-definitions";
|
|
2
3
|
import { Exported } from "../../../decorators";
|
|
4
|
+
import { ModCallbackCustom } from "../../../enums/ModCallbackCustom";
|
|
3
5
|
import type { PlayerStat } from "../../../enums/PlayerStat";
|
|
6
|
+
import { isActiveCollectible } from "../../../functions/collectibles";
|
|
4
7
|
import {
|
|
5
8
|
mapGetPlayer,
|
|
9
|
+
mapHasPlayer,
|
|
6
10
|
mapSetPlayer,
|
|
7
11
|
} from "../../../functions/playerDataStructures";
|
|
8
12
|
import { getPlayerHealth } from "../../../functions/playerHealth";
|
|
@@ -15,6 +19,8 @@ import { Feature } from "../../private/Feature";
|
|
|
15
19
|
|
|
16
20
|
const v = {
|
|
17
21
|
run: {
|
|
22
|
+
edenActiveCollectibles: new Map<PlayerIndex, CollectibleType>(),
|
|
23
|
+
edenPassiveCollectibles: new Map<PlayerIndex, CollectibleType>(),
|
|
18
24
|
edenPlayerStats: new Map<PlayerIndex, PlayerStats>(),
|
|
19
25
|
edenPlayerHealth: new Map<PlayerIndex, PlayerHealth>(),
|
|
20
26
|
},
|
|
@@ -32,6 +38,13 @@ export class EdenStartingStatsHealth extends Feature {
|
|
|
32
38
|
// 9
|
|
33
39
|
[ModCallback.POST_PLAYER_INIT, this.postPlayerInit],
|
|
34
40
|
];
|
|
41
|
+
|
|
42
|
+
this.customCallbacksUsed = [
|
|
43
|
+
[
|
|
44
|
+
ModCallbackCustom.POST_PLAYER_COLLECTIBLE_ADDED,
|
|
45
|
+
this.postPlayerCollectibleAdded,
|
|
46
|
+
],
|
|
47
|
+
];
|
|
35
48
|
}
|
|
36
49
|
|
|
37
50
|
/**
|
|
@@ -67,6 +80,80 @@ export class EdenStartingStatsHealth extends Feature {
|
|
|
67
80
|
mapSetPlayer(v.run.edenPlayerHealth, player, playerHealth);
|
|
68
81
|
}
|
|
69
82
|
|
|
83
|
+
/**
|
|
84
|
+
* We must use the `POST_PLAYER_COLLECTIBLE_ADDED` callback since the collectibles are not yet
|
|
85
|
+
* granted in the `POST_PLAYER_INIT` callback.
|
|
86
|
+
*/
|
|
87
|
+
private readonly postPlayerCollectibleAdded = (
|
|
88
|
+
player: EntityPlayer,
|
|
89
|
+
collectibleType: CollectibleType,
|
|
90
|
+
): void => {
|
|
91
|
+
if (!isEden(player)) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
const map = isActiveCollectible(collectibleType)
|
|
96
|
+
? v.run.edenActiveCollectibles
|
|
97
|
+
: v.run.edenPassiveCollectibles;
|
|
98
|
+
|
|
99
|
+
if (!mapHasPlayer(map, player)) {
|
|
100
|
+
mapSetPlayer(map, player, collectibleType);
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Helper function to get the active collectible that Eden started with at the beginning of the
|
|
106
|
+
* run.
|
|
107
|
+
*
|
|
108
|
+
* Returns undefined if passed a player that is not Eden or if the starting collectibles are not
|
|
109
|
+
* yet added. (Eden's starting collectibles are added after the `POST_PLAYER_INIT` callback has
|
|
110
|
+
* fired.)
|
|
111
|
+
*
|
|
112
|
+
* @public
|
|
113
|
+
*/
|
|
114
|
+
@Exported
|
|
115
|
+
public getEdenStartingActiveCollectible(
|
|
116
|
+
player: EntityPlayer,
|
|
117
|
+
): CollectibleType | undefined {
|
|
118
|
+
return mapGetPlayer(v.run.edenActiveCollectibles, player);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Helper function to get an array containing the active collectible and the passive collectible
|
|
123
|
+
* that Eden started with at the beginning of the run. The active collectible will be the first
|
|
124
|
+
* element and the passive collectible will be the second element.
|
|
125
|
+
*
|
|
126
|
+
* Returns an empty array if passed a player that is not Eden or if the starting collectibles are
|
|
127
|
+
* not yet added. (Eden's starting collectibles are added after the `POST_PLAYER_INIT` callback
|
|
128
|
+
* has fired.)
|
|
129
|
+
*
|
|
130
|
+
* @public
|
|
131
|
+
*/
|
|
132
|
+
@Exported
|
|
133
|
+
public getEdenStartingCollectibles(player: EntityPlayer): CollectibleType[] {
|
|
134
|
+
const collectibleTypes: CollectibleType[] = [];
|
|
135
|
+
|
|
136
|
+
const activeCollectibleType = mapGetPlayer(
|
|
137
|
+
v.run.edenActiveCollectibles,
|
|
138
|
+
player,
|
|
139
|
+
);
|
|
140
|
+
|
|
141
|
+
if (activeCollectibleType !== undefined) {
|
|
142
|
+
collectibleTypes.push(activeCollectibleType);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
const passiveCollectibleType = mapGetPlayer(
|
|
146
|
+
v.run.edenPassiveCollectibles,
|
|
147
|
+
player,
|
|
148
|
+
);
|
|
149
|
+
|
|
150
|
+
if (passiveCollectibleType !== undefined) {
|
|
151
|
+
collectibleTypes.push(passiveCollectibleType);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
return collectibleTypes;
|
|
155
|
+
}
|
|
156
|
+
|
|
70
157
|
/**
|
|
71
158
|
* Helper function to get the health that Eden started with at the beginning of the run before any
|
|
72
159
|
* of the random collectibles were added.
|
|
@@ -84,6 +171,23 @@ export class EdenStartingStatsHealth extends Feature {
|
|
|
84
171
|
return mapGetPlayer(v.run.edenPlayerHealth, player);
|
|
85
172
|
}
|
|
86
173
|
|
|
174
|
+
/**
|
|
175
|
+
* Helper function to get the passive collectible that Eden started with at the beginning of the
|
|
176
|
+
* run.
|
|
177
|
+
*
|
|
178
|
+
* Returns undefined if passed a player that is not Eden or if the starting collectibles are not
|
|
179
|
+
* yet added. (Eden's starting collectibles are added after the `POST_PLAYER_INIT` callback has
|
|
180
|
+
* fired.)
|
|
181
|
+
*
|
|
182
|
+
* @public
|
|
183
|
+
*/
|
|
184
|
+
@Exported
|
|
185
|
+
public getEdenStartingPassiveCollectible(
|
|
186
|
+
player: EntityPlayer,
|
|
187
|
+
): CollectibleType | undefined {
|
|
188
|
+
return mapGetPlayer(v.run.edenPassiveCollectibles, player);
|
|
189
|
+
}
|
|
190
|
+
|
|
87
191
|
/**
|
|
88
192
|
* Helper function to get the value of the randomized starting stat for Eden that was assigned at
|
|
89
193
|
* the beginning of the run before any of the random collectibles were added.
|