isaacscript-common 8.4.0 → 8.4.3

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.
@@ -0,0 +1,16 @@
1
+ /// <reference types="isaac-typescript-definitions" />
2
+ /// <reference types="isaac-typescript-definitions" />
3
+ /// <reference types="isaac-typescript-definitions" />
4
+ /**
5
+ * Converts a hex string like "#33aa33" to a KColor object.
6
+ *
7
+ * @param hexString A hex string like "#ffffff" or "ffffff". (The "#" character is optional.)
8
+ */
9
+ export declare function hexToColor(hexString: string, alpha: float): Color;
10
+ /**
11
+ * Converts a hex string like "#33aa33" to a Color object.
12
+ *
13
+ * @param hexString A hex string like "#ffffff" or "ffffff". (The "#" character is optional.)
14
+ */
15
+ export declare function hexToKColor(hexString: string, alpha: float): KColor;
16
+ //# sourceMappingURL=hex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hex.d.ts","sourceRoot":"","sources":["../../src/functions/hex.ts"],"names":[],"mappings":";;;AAIA;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,CAMjE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,CAMnE"}
@@ -0,0 +1,51 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__StringReplace = ____lualib.__TS__StringReplace
3
+ local __TS__StringSubstring = ____lualib.__TS__StringSubstring
4
+ local ____exports = {}
5
+ local hexToRGB, HEX_STRING_LENGTH
6
+ local ____log = require("functions.log")
7
+ local logError = ____log.logError
8
+ function hexToRGB(self, hexString)
9
+ hexString = __TS__StringReplace(hexString, "#", "")
10
+ if #hexString ~= HEX_STRING_LENGTH then
11
+ logError("Hex strings must be of length: " .. tostring(HEX_STRING_LENGTH))
12
+ return {0, 0, 0}
13
+ end
14
+ local rString = __TS__StringSubstring(hexString, 0, 2)
15
+ local r = tonumber("0x" .. rString)
16
+ if r == nil then
17
+ logError(("Failed to convert `0x" .. rString) .. "` to a number.")
18
+ return {0, 0, 0}
19
+ end
20
+ local gString = __TS__StringSubstring(hexString, 2, 4)
21
+ local g = tonumber("0x" .. gString)
22
+ if g == nil then
23
+ logError(("Failed to convert `0x" .. gString) .. "` to a number.")
24
+ return {0, 0, 0}
25
+ end
26
+ local bString = __TS__StringSubstring(hexString, 4, 6)
27
+ local b = tonumber("0x" .. bString)
28
+ if b == nil then
29
+ logError(("Failed to convert `0x" .. bString) .. "` to a number.")
30
+ return {0, 0, 0}
31
+ end
32
+ return {r, g, b}
33
+ end
34
+ HEX_STRING_LENGTH = 6
35
+ --- Converts a hex string like "#33aa33" to a KColor object.
36
+ --
37
+ -- @param hexString A hex string like "#ffffff" or "ffffff". (The "#" character is optional.)
38
+ function ____exports.hexToColor(self, hexString, alpha)
39
+ local r, g, b = table.unpack(hexToRGB(nil, hexString))
40
+ local base = 255
41
+ return Color(r / base, g / base, b / base, alpha)
42
+ end
43
+ --- Converts a hex string like "#33aa33" to a Color object.
44
+ --
45
+ -- @param hexString A hex string like "#ffffff" or "ffffff". (The "#" character is optional.)
46
+ function ____exports.hexToKColor(self, hexString, alpha)
47
+ local r, g, b = table.unpack(hexToRGB(nil, hexString))
48
+ local base = 255
49
+ return KColor(r / base, g / base, b / base, alpha)
50
+ end
51
+ return ____exports
@@ -12,7 +12,7 @@ export declare function addPlayerHealthType(player: EntityPlayer, healthType: He
12
12
  */
13
13
  export declare function getPlayerHealth(player: EntityPlayer): PlayerHealth;
14
14
  export declare function getPlayerHealthType(player: EntityPlayer, healthType: HealthType): int;
15
- /** Returns a `PlayerHealth` object with all 0s. */
15
+ /** Returns a `PlayerHealth` object with all zeros. */
16
16
  export declare function newPlayerHealth(): PlayerHealth;
17
17
  export declare function playerConvertBlackHeartsToSoulHearts(player: EntityPlayer): void;
18
18
  export declare function playerConvertSoulHeartsToBlackHearts(player: EntityPlayer): void;
@@ -1 +1 @@
1
- {"version":3,"file":"playerHealth.d.ts","sourceRoot":"","sources":["../../src/functions/playerHealth.ts"],"names":[],"mappings":";;AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAiB,MAAM,4BAA4B,CAAC;AAWzE,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,GAAG,GACb,IAAI,CA+CN;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,CA2ElE;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,UAAU,GACrB,GAAG,CAmDL;AAED,mDAAmD;AACnD,wBAAgB,eAAe,IAAI,YAAY,CAc9C;AAED,wBAAgB,oCAAoC,CAClD,MAAM,EAAE,YAAY,GACnB,IAAI,CAQN;AAED,wBAAgB,oCAAoC,CAClD,MAAM,EAAE,YAAY,GACnB,IAAI,CAQN;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAMjE;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAwBhE;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,YAAY,GACzB,IAAI,CAyGN"}
1
+ {"version":3,"file":"playerHealth.d.ts","sourceRoot":"","sources":["../../src/functions/playerHealth.ts"],"names":[],"mappings":";;AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAiB,MAAM,4BAA4B,CAAC;AAYzE,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,GAAG,GACb,IAAI,CA+CN;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,CA2ElE;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,UAAU,GACrB,GAAG,CAmDL;AAED,sDAAsD;AACtD,wBAAgB,eAAe,IAAI,YAAY,CAc9C;AAED,wBAAgB,oCAAoC,CAClD,MAAM,EAAE,YAAY,GACnB,IAAI,CAQN;AAED,wBAAgB,oCAAoC,CAClD,MAAM,EAAE,YAAY,GACnB,IAAI,CAQN;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAMjE;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAwBhE;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,YAAY,GACzB,IAAI,CAsHN"}
@@ -21,6 +21,8 @@ local getPlayerHearts = ____players.getPlayerHearts
21
21
  local getPlayerSoulHearts = ____players.getPlayerSoulHearts
22
22
  local isCharacter = ____players.isCharacter
23
23
  local setActiveItem = ____players.setActiveItem
24
+ local ____utils = require("functions.utils")
25
+ local ____repeat = ____utils["repeat"]
24
26
  function ____exports.removeAllPlayerHealth(self, player)
25
27
  local goldenHearts = player:GetGoldenHearts()
26
28
  local eternalHearts = player:GetEternalHearts()
@@ -105,8 +107,23 @@ function ____exports.setPlayerHealth(self, player, playerHealth)
105
107
  )
106
108
  player:AddRottenHearts(playerHealth.rottenHearts)
107
109
  if character == PlayerType.MAGDALENE_B then
108
- local effectiveHearts = playerHealth.hearts / 2
109
- player:AddHearts(effectiveHearts)
110
+ ____repeat(
111
+ nil,
112
+ playerHealth.hearts,
113
+ function()
114
+ if player:HasFullHearts() then
115
+ return
116
+ end
117
+ local hearts = player:GetHearts()
118
+ local maxHearts = player:GetMaxHearts()
119
+ if hearts == maxHearts - 1 then
120
+ player:AddHearts(1)
121
+ return
122
+ end
123
+ player:AddHearts(1)
124
+ player:AddHearts(-1)
125
+ end
126
+ )
110
127
  else
111
128
  player:AddHearts(playerHealth.hearts)
112
129
  end
@@ -323,7 +340,7 @@ function ____exports.getPlayerHealthType(self, player, healthType)
323
340
  end
324
341
  until true
325
342
  end
326
- --- Returns a `PlayerHealth` object with all 0s.
343
+ --- Returns a `PlayerHealth` object with all zeros.
327
344
  function ____exports.newPlayerHealth(self)
328
345
  return {
329
346
  maxHearts = 0,
@@ -48,7 +48,7 @@ export declare function getVanillaTrinketTypes(): TrinketType[];
48
48
  * items. (Only Tainted Forgotten can pick up items.)
49
49
  */
50
50
  export declare function hasOpenTrinketSlot(player: EntityPlayer): boolean;
51
- export declare function isGoldenTrinket(trinketType: TrinketType): boolean;
51
+ export declare function isGoldenTrinketType(trinketType: TrinketType): boolean;
52
52
  export declare function isModdedTrinketType(trinketType: TrinketType): boolean;
53
53
  export declare function isVanillaTrinketType(trinketType: TrinketType): boolean;
54
54
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"trinkets.d.ts","sourceRoot":"","sources":["../../src/functions/trinkets.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,WAAW,EACZ,MAAM,8BAA8B,CAAC;AA6BtC;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,WAAW,GAAG,WAAW,CAE1E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,GAAG,GAAG,SAAS,CAkBxE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,CActE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,CAc/D;AAED,kFAAkF;AAClF,wBAAgB,sBAAsB,IAAI,WAAW,EAAE,CAEtD;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAOhE;AAED,wBAAgB,eAAe,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAEjE;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAErE;AAED,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAEtE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,IAAI,CAeN"}
1
+ {"version":3,"file":"trinkets.d.ts","sourceRoot":"","sources":["../../src/functions/trinkets.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,WAAW,EACZ,MAAM,8BAA8B,CAAC;AA6BtC;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,WAAW,GAAG,WAAW,CAE1E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,GAAG,GAAG,SAAS,CAkBxE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,CActE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,CAc/D;AAED,kFAAkF;AAClF,wBAAgB,sBAAsB,IAAI,WAAW,EAAE,CAEtD;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAOhE;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAErE;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAErE;AAED,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAEtE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,IAAI,CAeN"}
@@ -119,7 +119,7 @@ function ____exports.hasOpenTrinketSlot(self, player)
119
119
  local openTrinketSlot = ____exports.getOpenTrinketSlot(nil, player)
120
120
  return openTrinketSlot ~= nil
121
121
  end
122
- function ____exports.isGoldenTrinket(self, trinketType)
122
+ function ____exports.isGoldenTrinketType(self, trinketType)
123
123
  return asNumber(nil, trinketType) > GOLDEN_TRINKET_ADJUSTMENT
124
124
  end
125
125
  function ____exports.isModdedTrinketType(self, trinketType)
@@ -1,6 +1,4 @@
1
1
  /// <reference types="isaac-typescript-definitions" />
2
- /// <reference types="isaac-typescript-definitions" />
3
- /// <reference types="isaac-typescript-definitions" />
4
2
  /**
5
3
  * Helper function to return an array with the elements from start to end. It is inclusive at the
6
4
  * start and exclusive at the end. (The "e" stands for exclusive.)
@@ -16,18 +14,6 @@ export declare function erange(start: int, end?: int): int[];
16
14
  * structures.
17
15
  */
18
16
  export declare function getTraversalDescription(key: unknown, traversalDescription: string): string;
19
- /**
20
- * Converts a hex string like "#33aa33" to a KColor object.
21
- *
22
- * @param hexString A hex string like "#ffffff" or "ffffff". (The "#" character is optional.)
23
- */
24
- export declare function hexToColor(hexString: string, alpha: float): Color;
25
- /**
26
- * Converts a hex string like "#33aa33" to a Color object.
27
- *
28
- * @param hexString A hex string like "#ffffff" or "ffffff". (The "#" character is optional.)
29
- */
30
- export declare function hexToKColor(hexString: string, alpha: float): KColor;
31
17
  /**
32
18
  * Helper function to return an array with the elements from start to end, inclusive. (The "i"
33
19
  * stands for inclusive.)
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/functions/utils.ts"],"names":[],"mappings":";;;AAMA;;;;;;;;GAQG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,EAAE,CAYnD;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,OAAO,EACZ,oBAAoB,EAAE,MAAM,GAC3B,MAAM,CAQR;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,CAMjE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,CAMnE;AA6BD;;;;;;;;GAQG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,EAAE,CAYnD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAI5C;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAEpE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAE9C;AAED,iGAAiG;AACjG,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAGxE;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CAI3D;AAED;;;;;;;;;;;;GAYG;AAEH,wBAAgB,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAG;AAEjD;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAYhE"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/functions/utils.ts"],"names":[],"mappings":";AAIA;;;;;;;;GAQG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,EAAE,CAYnD;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,OAAO,EACZ,oBAAoB,EAAE,MAAM,GAC3B,MAAM,CAQR;AAED;;;;;;;;GAQG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,EAAE,CAYnD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAI5C;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAEpE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAE9C;AAED,iGAAiG;AACjG,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAGxE;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CAI3D;AAED;;;;;;;;;;;;GAYG;AAEH,wBAAgB,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAG;AAEjD;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAYhE"}
@@ -1,37 +1,10 @@
1
- local ____lualib = require("lualib_bundle")
2
- local __TS__StringReplace = ____lualib.__TS__StringReplace
3
- local __TS__StringSubstring = ____lualib.__TS__StringSubstring
4
1
  local ____exports = {}
5
- local hexToRGB, HEX_STRING_LENGTH
6
2
  local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
7
3
  local RenderMode = ____isaac_2Dtypescript_2Ddefinitions.RenderMode
8
4
  local ____cachedClasses = require("core.cachedClasses")
9
5
  local game = ____cachedClasses.game
10
6
  local ____consoleCommandsSet = require("sets.consoleCommandsSet")
11
7
  local CONSOLE_COMMANDS_SET = ____consoleCommandsSet.CONSOLE_COMMANDS_SET
12
- function hexToRGB(self, hexString)
13
- hexString = __TS__StringReplace(hexString, "#", "")
14
- if #hexString ~= HEX_STRING_LENGTH then
15
- error("Hex strings must be of length: " .. tostring(HEX_STRING_LENGTH))
16
- end
17
- local rString = __TS__StringSubstring(hexString, 0, 2)
18
- local r = tonumber("0x" .. rString)
19
- if r == nil then
20
- error(("Failed to convert `0x" .. rString) .. "` to a number.")
21
- end
22
- local gString = __TS__StringSubstring(hexString, 2, 4)
23
- local g = tonumber("0x" .. gString)
24
- if g == nil then
25
- error(("Failed to convert `0x" .. gString) .. "` to a number.")
26
- end
27
- local bString = __TS__StringSubstring(hexString, 4, 6)
28
- local b = tonumber("0x" .. bString)
29
- if b == nil then
30
- error(("Failed to convert `0x" .. bString) .. "` to a number.")
31
- end
32
- return {r, g, b}
33
- end
34
- HEX_STRING_LENGTH = 6
35
8
  --- Helper function to return an array with the elements from start to end. It is inclusive at the
36
9
  -- start and exclusive at the end. (The "e" stands for exclusive.)
37
10
  --
@@ -63,22 +36,6 @@ function ____exports.getTraversalDescription(self, key, traversalDescription)
63
36
  traversalDescription = traversalDescription .. tostring(key)
64
37
  return traversalDescription
65
38
  end
66
- --- Converts a hex string like "#33aa33" to a KColor object.
67
- --
68
- -- @param hexString A hex string like "#ffffff" or "ffffff". (The "#" character is optional.)
69
- function ____exports.hexToColor(self, hexString, alpha)
70
- local r, g, b = table.unpack(hexToRGB(nil, hexString))
71
- local base = 255
72
- return Color(r / base, g / base, b / base, alpha)
73
- end
74
- --- Converts a hex string like "#33aa33" to a Color object.
75
- --
76
- -- @param hexString A hex string like "#ffffff" or "ffffff". (The "#" character is optional.)
77
- function ____exports.hexToKColor(self, hexString, alpha)
78
- local r, g, b = table.unpack(hexToRGB(nil, hexString))
79
- local base = 255
80
- return KColor(r / base, g / base, b / base, alpha)
81
- end
82
39
  --- Helper function to return an array with the elements from start to end, inclusive. (The "i"
83
40
  -- stands for inclusive.)
84
41
  --
package/dist/index.d.ts CHANGED
@@ -5803,7 +5803,7 @@ export declare function isFunction(variable: unknown): variable is Function;
5803
5803
  */
5804
5804
  export declare function isGlitchedCollectible(pickup: EntityPickup): boolean;
5805
5805
 
5806
- export declare function isGoldenTrinket(trinketType: TrinketType): boolean;
5806
+ export declare function isGoldenTrinketType(trinketType: TrinketType): boolean;
5807
5807
 
5808
5808
  /** Helper function to detect if a variable is of type `GridEntity`. */
5809
5809
  export declare function isGridEntity(variable: unknown): variable is GridEntity;
@@ -8143,7 +8143,7 @@ export declare function newChargeBarSprites(maxCharges: int): ChargeBarSprites;
8143
8143
 
8144
8144
  export declare function newPickingUpItem(): PickingUpItem;
8145
8145
 
8146
- /** Returns a `PlayerHealth` object with all 0s. */
8146
+ /** Returns a `PlayerHealth` object with all zeros. */
8147
8147
  export declare function newPlayerHealth(): PlayerHealth;
8148
8148
 
8149
8149
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kBAAkB,CAAC;AACjC,cAAc,sCAAsC,CAAC;AACrD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oCAAoC,CAAC;AACnD,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,yCAAyC,CAAC;AACxD,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,uCAAuC,CAAC;AACtD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oCAAoC,CAAC;AACnD,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kCAAkC,CAAC;AACjD,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kCAAkC,CAAC;AACjD,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,cAAc,kCAAkC,CAAC;AACjD,cAAc,mCAAmC,CAAC;AAClD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oCAAoC,CAAC;AACnD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,mBAAmB,CAAC"}
package/dist/index.lua CHANGED
@@ -687,6 +687,14 @@ do
687
687
  end
688
688
  end
689
689
  end
690
+ do
691
+ local ____export = require("functions.hex")
692
+ for ____exportKey, ____exportValue in pairs(____export) do
693
+ if ____exportKey ~= "default" then
694
+ ____exports[____exportKey] = ____exportValue
695
+ end
696
+ end
697
+ end
690
698
  do
691
699
  local ____export = require("functions.input")
692
700
  for ____exportKey, ____exportValue in pairs(____export) do
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "isaacscript-common",
3
- "version": "8.4.0",
3
+ "version": "8.4.3",
4
4
  "description": "Helper functions and features for IsaacScript mods.",
5
5
  "keywords": [
6
6
  "isaac",
@@ -0,0 +1,60 @@
1
+ import { logError } from "./log";
2
+
3
+ const HEX_STRING_LENGTH = 6;
4
+
5
+ /**
6
+ * Converts a hex string like "#33aa33" to a KColor object.
7
+ *
8
+ * @param hexString A hex string like "#ffffff" or "ffffff". (The "#" character is optional.)
9
+ */
10
+ export function hexToColor(hexString: string, alpha: float): Color {
11
+ const [r, g, b] = hexToRGB(hexString);
12
+
13
+ // Color values should be between 0 and 1.
14
+ const base = 255;
15
+ return Color(r / base, g / base, b / base, alpha);
16
+ }
17
+
18
+ /**
19
+ * Converts a hex string like "#33aa33" to a Color object.
20
+ *
21
+ * @param hexString A hex string like "#ffffff" or "ffffff". (The "#" character is optional.)
22
+ */
23
+ export function hexToKColor(hexString: string, alpha: float): KColor {
24
+ const [r, g, b] = hexToRGB(hexString);
25
+
26
+ // KColor values should be between 0 and 1.
27
+ const base = 255;
28
+ return KColor(r / base, g / base, b / base, alpha);
29
+ }
30
+
31
+ function hexToRGB(hexString: string): [r: float, g: float, b: float] {
32
+ hexString = hexString.replace("#", "");
33
+ if (hexString.length !== HEX_STRING_LENGTH) {
34
+ logError(`Hex strings must be of length: ${HEX_STRING_LENGTH}`);
35
+ return [0, 0, 0];
36
+ }
37
+
38
+ const rString = hexString.substring(0, 2);
39
+ const r = tonumber(`0x${rString}`);
40
+ if (r === undefined) {
41
+ logError(`Failed to convert \`0x${rString}\` to a number.`);
42
+ return [0, 0, 0];
43
+ }
44
+
45
+ const gString = hexString.substring(2, 4);
46
+ const g = tonumber(`0x${gString}`);
47
+ if (g === undefined) {
48
+ logError(`Failed to convert \`0x${gString}\` to a number.`);
49
+ return [0, 0, 0];
50
+ }
51
+
52
+ const bString = hexString.substring(4, 6);
53
+ const b = tonumber(`0x${bString}`);
54
+ if (b === undefined) {
55
+ logError(`Failed to convert \`0x${bString}\` to a number.`);
56
+ return [0, 0, 0];
57
+ }
58
+
59
+ return [r, g, b];
60
+ }
@@ -16,6 +16,7 @@ import {
16
16
  isCharacter,
17
17
  setActiveItem,
18
18
  } from "./players";
19
+ import { repeat } from "./utils";
19
20
 
20
21
  export function addPlayerHealthType(
21
22
  player: EntityPlayer,
@@ -210,7 +211,7 @@ export function getPlayerHealthType(
210
211
  }
211
212
  }
212
213
 
213
- /** Returns a `PlayerHealth` object with all 0s. */
214
+ /** Returns a `PlayerHealth` object with all zeros. */
214
215
  export function newPlayerHealth(): PlayerHealth {
215
216
  return {
216
217
  maxHearts: 0,
@@ -381,8 +382,21 @@ export function setPlayerHealth(
381
382
 
382
383
  if (character === PlayerType.MAGDALENE_B) {
383
384
  // Adding 1 heart to Tainted Magdalene will actually add two hearts.
384
- const effectiveHearts = playerHealth.hearts / 2;
385
- player.AddHearts(effectiveHearts);
385
+ repeat(playerHealth.hearts, () => {
386
+ if (player.HasFullHearts()) {
387
+ return;
388
+ }
389
+
390
+ const hearts = player.GetHearts();
391
+ const maxHearts = player.GetMaxHearts();
392
+ if (hearts === maxHearts - 1) {
393
+ player.AddHearts(1);
394
+ return;
395
+ }
396
+
397
+ player.AddHearts(1);
398
+ player.AddHearts(-1);
399
+ });
386
400
  } else {
387
401
  player.AddHearts(playerHealth.hearts);
388
402
  }
@@ -143,7 +143,7 @@ export function hasOpenTrinketSlot(player: EntityPlayer): boolean {
143
143
  return openTrinketSlot !== undefined;
144
144
  }
145
145
 
146
- export function isGoldenTrinket(trinketType: TrinketType): boolean {
146
+ export function isGoldenTrinketType(trinketType: TrinketType): boolean {
147
147
  return asNumber(trinketType) > GOLDEN_TRINKET_ADJUSTMENT;
148
148
  }
149
149
 
@@ -2,8 +2,6 @@ import { RenderMode } from "isaac-typescript-definitions";
2
2
  import { game } from "../core/cachedClasses";
3
3
  import { CONSOLE_COMMANDS_SET } from "../sets/consoleCommandsSet";
4
4
 
5
- const HEX_STRING_LENGTH = 6;
6
-
7
5
  /**
8
6
  * Helper function to return an array with the elements from start to end. It is inclusive at the
9
7
  * start and exclusive at the end. (The "e" stands for exclusive.)
@@ -44,59 +42,6 @@ export function getTraversalDescription(
44
42
  return traversalDescription;
45
43
  }
46
44
 
47
- /**
48
- * Converts a hex string like "#33aa33" to a KColor object.
49
- *
50
- * @param hexString A hex string like "#ffffff" or "ffffff". (The "#" character is optional.)
51
- */
52
- export function hexToColor(hexString: string, alpha: float): Color {
53
- const [r, g, b] = hexToRGB(hexString);
54
-
55
- // Color values should be between 0 and 1.
56
- const base = 255;
57
- return Color(r / base, g / base, b / base, alpha);
58
- }
59
-
60
- /**
61
- * Converts a hex string like "#33aa33" to a Color object.
62
- *
63
- * @param hexString A hex string like "#ffffff" or "ffffff". (The "#" character is optional.)
64
- */
65
- export function hexToKColor(hexString: string, alpha: float): KColor {
66
- const [r, g, b] = hexToRGB(hexString);
67
-
68
- // KColor values should be between 0 and 1.
69
- const base = 255;
70
- return KColor(r / base, g / base, b / base, alpha);
71
- }
72
-
73
- function hexToRGB(hexString: string): [r: float, g: float, b: float] {
74
- hexString = hexString.replace("#", "");
75
- if (hexString.length !== HEX_STRING_LENGTH) {
76
- error(`Hex strings must be of length: ${HEX_STRING_LENGTH}`);
77
- }
78
-
79
- const rString = hexString.substring(0, 2);
80
- const r = tonumber(`0x${rString}`);
81
- if (r === undefined) {
82
- error(`Failed to convert \`0x${rString}\` to a number.`);
83
- }
84
-
85
- const gString = hexString.substring(2, 4);
86
- const g = tonumber(`0x${gString}`);
87
- if (g === undefined) {
88
- error(`Failed to convert \`0x${gString}\` to a number.`);
89
- }
90
-
91
- const bString = hexString.substring(4, 6);
92
- const b = tonumber(`0x${bString}`);
93
- if (b === undefined) {
94
- error(`Failed to convert \`0x${bString}\` to a number.`);
95
- }
96
-
97
- return [r, g, b];
98
- }
99
-
100
45
  /**
101
46
  * Helper function to return an array with the elements from start to end, inclusive. (The "i"
102
47
  * stands for inclusive.)
package/src/index.ts CHANGED
@@ -84,6 +84,7 @@ export * from "./functions/flying";
84
84
  export * from "./functions/globals";
85
85
  export * from "./functions/gridEntities";
86
86
  export * from "./functions/gridEntitiesSpecific";
87
+ export * from "./functions/hex";
87
88
  export * from "./functions/input";
88
89
  export * from "./functions/isaacAPIClass";
89
90
  export * from "./functions/itemPool";