isaacscript-common 39.6.0 → 40.0.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.
@@ -4456,6 +4456,11 @@ declare class FlipDetection extends Feature {
4456
4456
  private readonly postUseItemFlip;
4457
4457
  }
4458
4458
 
4459
+ /**
4460
+ * An array containing every flying character. This includes non-main characters such as The Soul.
4461
+ */
4462
+ export declare const FLYING_CHARACTERS: readonly [PlayerType.AZAZEL, PlayerType.LOST, PlayerType.SOUL, PlayerType.LOST_B, PlayerType.JACOB_2_B, PlayerType.SOUL_B];
4463
+
4459
4464
  declare class FlyingDetection extends Feature {
4460
4465
  private readonly moddedElementSets;
4461
4466
  /**
@@ -8700,7 +8705,7 @@ export declare function isFirstPlayer(player: EntityPlayer): boolean;
8700
8705
  */
8701
8706
  export declare function isFirstSlotPocketActiveItem(player: EntityPlayer): boolean;
8702
8707
 
8703
- export declare function isFlyingCharacter(player: EntityPlayer): boolean;
8708
+ export declare function isFlyingCharacter(character: PlayerType): boolean;
8704
8709
 
8705
8710
  /**
8706
8711
  * Helper function to detect if a particular player is the Found Soul player provided by the
@@ -10010,6 +10015,12 @@ export declare function logVector(this: void, vector: Vector, name?: string, rou
10010
10015
  /** Helper type to match all of the lowercase keys of an object. */
10011
10016
  export declare type LowercaseKeys<T> = StartsWithLowercase<keyof T>;
10012
10017
 
10018
+ /**
10019
+ * An array containing every character that is selectable from the main menu (and has achievements
10020
+ * related to completing the various bosses and so on).
10021
+ */
10022
+ export declare const MAIN_CHARACTERS: readonly [PlayerType.ISAAC, PlayerType.MAGDALENE, PlayerType.CAIN, PlayerType.JUDAS, PlayerType.BLUE_BABY, PlayerType.EVE, PlayerType.SAMSON, PlayerType.AZAZEL, PlayerType.LAZARUS, PlayerType.EDEN, PlayerType.LOST, PlayerType.LILITH, PlayerType.KEEPER, PlayerType.APOLLYON, PlayerType.FORGOTTEN, PlayerType.BETHANY, PlayerType.JACOB, PlayerType.ISAAC_B, PlayerType.MAGDALENE_B, PlayerType.CAIN_B, PlayerType.JUDAS_B, PlayerType.BLUE_BABY_B, PlayerType.EVE_B, PlayerType.SAMSON_B, PlayerType.AZAZEL_B, PlayerType.LAZARUS_B, PlayerType.EDEN_B, PlayerType.LOST_B, PlayerType.LILITH_B, PlayerType.KEEPER_B, PlayerType.APOLLYON_B, PlayerType.FORGOTTEN_B, PlayerType.BETHANY_B, PlayerType.JACOB_B];
10023
+
10013
10024
  /**
10014
10025
  * Helper function for non-TypeScript users to convert all of the elements in an array to something
10015
10026
  * else.
@@ -1,6 +1,6 @@
1
1
  --[[
2
2
 
3
- isaacscript-common 39.6.0
3
+ isaacscript-common 40.0.0
4
4
 
5
5
  This is the "isaacscript-common" library, which was created with the IsaacScript tool.
6
6
 
@@ -17938,6 +17938,7 @@ local CollectibleType = ____isaac_2Dtypescript_2Ddefinitions.CollectibleType
17938
17938
  local Dimension = ____isaac_2Dtypescript_2Ddefinitions.Dimension
17939
17939
  local DisplayFlag = ____isaac_2Dtypescript_2Ddefinitions.DisplayFlag
17940
17940
  local ItemPoolType = ____isaac_2Dtypescript_2Ddefinitions.ItemPoolType
17941
+ local PlayerType = ____isaac_2Dtypescript_2Ddefinitions.PlayerType
17941
17942
  local TrinketSlot = ____isaac_2Dtypescript_2Ddefinitions.TrinketSlot
17942
17943
  local ____enums = require("src.functions.enums")
17943
17944
  local getEnumLength = ____enums.getEnumLength
@@ -17963,8 +17964,52 @@ ____exports.DOOR_HITBOX_RADIUS = 11
17963
17964
  ____exports.EGGY_STATE_FRAME_OF_FINAL_SPIDER = 45
17964
17965
  ____exports.EMPTY_PNG_PATH = "gfx/none.png"
17965
17966
  ____exports.FIRST_GLITCHED_COLLECTIBLE_TYPE = asCollectibleType(nil, (1 << 32) - 1)
17967
+ ____exports.FLYING_CHARACTERS = {
17968
+ PlayerType.AZAZEL,
17969
+ PlayerType.LOST,
17970
+ PlayerType.SOUL,
17971
+ PlayerType.LOST_B,
17972
+ PlayerType.JACOB_2_B,
17973
+ PlayerType.SOUL_B
17974
+ }
17966
17975
  ____exports.GAME_FRAMES_PER_SECOND = 30
17967
17976
  ____exports.GAME_FRAMES_PER_MINUTE = ____exports.GAME_FRAMES_PER_SECOND * 60
17977
+ ____exports.MAIN_CHARACTERS = {
17978
+ PlayerType.ISAAC,
17979
+ PlayerType.MAGDALENE,
17980
+ PlayerType.CAIN,
17981
+ PlayerType.JUDAS,
17982
+ PlayerType.BLUE_BABY,
17983
+ PlayerType.EVE,
17984
+ PlayerType.SAMSON,
17985
+ PlayerType.AZAZEL,
17986
+ PlayerType.LAZARUS,
17987
+ PlayerType.EDEN,
17988
+ PlayerType.LOST,
17989
+ PlayerType.LILITH,
17990
+ PlayerType.KEEPER,
17991
+ PlayerType.APOLLYON,
17992
+ PlayerType.FORGOTTEN,
17993
+ PlayerType.BETHANY,
17994
+ PlayerType.JACOB,
17995
+ PlayerType.ISAAC_B,
17996
+ PlayerType.MAGDALENE_B,
17997
+ PlayerType.CAIN_B,
17998
+ PlayerType.JUDAS_B,
17999
+ PlayerType.BLUE_BABY_B,
18000
+ PlayerType.EVE_B,
18001
+ PlayerType.SAMSON_B,
18002
+ PlayerType.AZAZEL_B,
18003
+ PlayerType.LAZARUS_B,
18004
+ PlayerType.EDEN_B,
18005
+ PlayerType.LOST_B,
18006
+ PlayerType.LILITH_B,
18007
+ PlayerType.KEEPER_B,
18008
+ PlayerType.APOLLYON_B,
18009
+ PlayerType.FORGOTTEN_B,
18010
+ PlayerType.BETHANY_B,
18011
+ PlayerType.JACOB_B
18012
+ }
17968
18013
  ____exports.RENDER_FRAMES_PER_SECOND = 60
17969
18014
  ____exports.RENDER_FRAMES_PER_MINUTE = ____exports.RENDER_FRAMES_PER_SECOND * 60
17970
18015
  ____exports.GRID_INDEX_CENTER_OF_1X1_ROOM = 67
@@ -19269,6 +19314,9 @@ local __TS__New = ____lualib.__TS__New
19269
19314
  local ____exports = {}
19270
19315
  local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
19271
19316
  local PlayerType = ____isaac_2Dtypescript_2Ddefinitions.PlayerType
19317
+ local ____constants = require("src.core.constants")
19318
+ local FLYING_CHARACTERS = ____constants.FLYING_CHARACTERS
19319
+ local MAIN_CHARACTERS = ____constants.MAIN_CHARACTERS
19272
19320
  local ____constantsFirstLast = require("src.core.constantsFirstLast")
19273
19321
  local LAST_VANILLA_CHARACTER = ____constantsFirstLast.LAST_VANILLA_CHARACTER
19274
19322
  local ____characterDamageMultipliers = require("src.objects.characterDamageMultipliers")
@@ -19297,50 +19345,8 @@ end
19297
19345
  function ____exports.isVanillaCharacter(self, character)
19298
19346
  return character <= LAST_VANILLA_CHARACTER
19299
19347
  end
19300
- local FLYING_CHARACTERS_SET = __TS__New(ReadonlySet, {
19301
- PlayerType.AZAZEL,
19302
- PlayerType.LOST,
19303
- PlayerType.SOUL,
19304
- PlayerType.LOST_B,
19305
- PlayerType.JACOB_2_B,
19306
- PlayerType.SOUL_B
19307
- })
19308
- local MAIN_CHARACTERS_SET = __TS__New(ReadonlySet, {
19309
- PlayerType.ISAAC,
19310
- PlayerType.MAGDALENE,
19311
- PlayerType.CAIN,
19312
- PlayerType.JUDAS,
19313
- PlayerType.BLUE_BABY,
19314
- PlayerType.EVE,
19315
- PlayerType.SAMSON,
19316
- PlayerType.AZAZEL,
19317
- PlayerType.LAZARUS,
19318
- PlayerType.EDEN,
19319
- PlayerType.LOST,
19320
- PlayerType.LILITH,
19321
- PlayerType.KEEPER,
19322
- PlayerType.APOLLYON,
19323
- PlayerType.FORGOTTEN,
19324
- PlayerType.BETHANY,
19325
- PlayerType.JACOB,
19326
- PlayerType.ISAAC_B,
19327
- PlayerType.MAGDALENE_B,
19328
- PlayerType.CAIN_B,
19329
- PlayerType.JUDAS_B,
19330
- PlayerType.BLUE_BABY_B,
19331
- PlayerType.EVE_B,
19332
- PlayerType.SAMSON_B,
19333
- PlayerType.AZAZEL_B,
19334
- PlayerType.LAZARUS_B,
19335
- PlayerType.EDEN_B,
19336
- PlayerType.LOST_B,
19337
- PlayerType.LILITH_B,
19338
- PlayerType.KEEPER_B,
19339
- PlayerType.APOLLYON_B,
19340
- PlayerType.FORGOTTEN_B,
19341
- PlayerType.BETHANY_B,
19342
- PlayerType.JACOB_B
19343
- })
19348
+ local FLYING_CHARACTERS_SET = __TS__New(ReadonlySet, FLYING_CHARACTERS)
19349
+ local MAIN_CHARACTERS_SET = __TS__New(ReadonlySet, MAIN_CHARACTERS)
19344
19350
  function ____exports.characterCanHaveRedHearts(self, character)
19345
19351
  return not CHARACTERS_WITH_NO_RED_HEARTS_SET:has(character)
19346
19352
  end
@@ -19398,8 +19404,7 @@ end
19398
19404
  function ____exports.getCharacterStartingCollectibles(self, character)
19399
19405
  return CHARACTER_STARTING_COLLECTIBLES[character]
19400
19406
  end
19401
- function ____exports.isFlyingCharacter(self, player)
19402
- local character = player:GetPlayerType()
19407
+ function ____exports.isFlyingCharacter(self, character)
19403
19408
  return FLYING_CHARACTERS_SET:has(character)
19404
19409
  end
19405
19410
  function ____exports.isMainCharacter(self, character)
@@ -1,4 +1,4 @@
1
- import { CollectibleType, ItemPoolType } from "isaac-typescript-definitions";
1
+ import { CollectibleType, ItemPoolType, PlayerType } from "isaac-typescript-definitions";
2
2
  /**
3
3
  * The combination of the following flags:
4
4
  * - `DisplayFlag.VISIBLE` (1 << 0)
@@ -48,10 +48,19 @@ export declare const EMPTY_PNG_PATH = "gfx/none.png";
48
48
  * This is equal to 4294967295.
49
49
  */
50
50
  export declare const FIRST_GLITCHED_COLLECTIBLE_TYPE: CollectibleType;
51
+ /**
52
+ * An array containing every flying character. This includes non-main characters such as The Soul.
53
+ */
54
+ export declare const FLYING_CHARACTERS: readonly [PlayerType.AZAZEL, PlayerType.LOST, PlayerType.SOUL, PlayerType.LOST_B, PlayerType.JACOB_2_B, PlayerType.SOUL_B];
51
55
  /** Game frames are what is returned by the `Game.GetFrameCount` method. */
52
56
  export declare const GAME_FRAMES_PER_SECOND = 30;
53
57
  /** Game frames are what is returned by the `Game.GetFrameCount` method. */
54
58
  export declare const GAME_FRAMES_PER_MINUTE: number;
59
+ /**
60
+ * An array containing every character that is selectable from the main menu (and has achievements
61
+ * related to completing the various bosses and so on).
62
+ */
63
+ export declare const MAIN_CHARACTERS: readonly [PlayerType.ISAAC, PlayerType.MAGDALENE, PlayerType.CAIN, PlayerType.JUDAS, PlayerType.BLUE_BABY, PlayerType.EVE, PlayerType.SAMSON, PlayerType.AZAZEL, PlayerType.LAZARUS, PlayerType.EDEN, PlayerType.LOST, PlayerType.LILITH, PlayerType.KEEPER, PlayerType.APOLLYON, PlayerType.FORGOTTEN, PlayerType.BETHANY, PlayerType.JACOB, PlayerType.ISAAC_B, PlayerType.MAGDALENE_B, PlayerType.CAIN_B, PlayerType.JUDAS_B, PlayerType.BLUE_BABY_B, PlayerType.EVE_B, PlayerType.SAMSON_B, PlayerType.AZAZEL_B, PlayerType.LAZARUS_B, PlayerType.EDEN_B, PlayerType.LOST_B, PlayerType.LILITH_B, PlayerType.KEEPER_B, PlayerType.APOLLYON_B, PlayerType.FORGOTTEN_B, PlayerType.BETHANY_B, PlayerType.JACOB_B];
55
64
  /** Render frames are what is returned by the `Isaac.GetFrameCount` method. */
56
65
  export declare const RENDER_FRAMES_PER_SECOND = 60;
57
66
  /** Render frames are what is returned by the `Isaac.GetFrameCount` method. */
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/core/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/core/constants.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ local CollectibleType = ____isaac_2Dtypescript_2Ddefinitions.CollectibleType
4
4
  local Dimension = ____isaac_2Dtypescript_2Ddefinitions.Dimension
5
5
  local DisplayFlag = ____isaac_2Dtypescript_2Ddefinitions.DisplayFlag
6
6
  local ItemPoolType = ____isaac_2Dtypescript_2Ddefinitions.ItemPoolType
7
+ local PlayerType = ____isaac_2Dtypescript_2Ddefinitions.PlayerType
7
8
  local TrinketSlot = ____isaac_2Dtypescript_2Ddefinitions.TrinketSlot
8
9
  local ____enums = require("src.functions.enums")
9
10
  local getEnumLength = ____enums.getEnumLength
@@ -50,10 +51,57 @@ ____exports.EMPTY_PNG_PATH = "gfx/none.png"
50
51
  --
51
52
  -- This is equal to 4294967295.
52
53
  ____exports.FIRST_GLITCHED_COLLECTIBLE_TYPE = asCollectibleType(nil, (1 << 32) - 1)
54
+ --- An array containing every flying character. This includes non-main characters such as The Soul.
55
+ ____exports.FLYING_CHARACTERS = {
56
+ PlayerType.AZAZEL,
57
+ PlayerType.LOST,
58
+ PlayerType.SOUL,
59
+ PlayerType.LOST_B,
60
+ PlayerType.JACOB_2_B,
61
+ PlayerType.SOUL_B
62
+ }
53
63
  --- Game frames are what is returned by the `Game.GetFrameCount` method.
54
64
  ____exports.GAME_FRAMES_PER_SECOND = 30
55
65
  --- Game frames are what is returned by the `Game.GetFrameCount` method.
56
66
  ____exports.GAME_FRAMES_PER_MINUTE = ____exports.GAME_FRAMES_PER_SECOND * 60
67
+ --- An array containing every character that is selectable from the main menu (and has achievements
68
+ -- related to completing the various bosses and so on).
69
+ ____exports.MAIN_CHARACTERS = {
70
+ PlayerType.ISAAC,
71
+ PlayerType.MAGDALENE,
72
+ PlayerType.CAIN,
73
+ PlayerType.JUDAS,
74
+ PlayerType.BLUE_BABY,
75
+ PlayerType.EVE,
76
+ PlayerType.SAMSON,
77
+ PlayerType.AZAZEL,
78
+ PlayerType.LAZARUS,
79
+ PlayerType.EDEN,
80
+ PlayerType.LOST,
81
+ PlayerType.LILITH,
82
+ PlayerType.KEEPER,
83
+ PlayerType.APOLLYON,
84
+ PlayerType.FORGOTTEN,
85
+ PlayerType.BETHANY,
86
+ PlayerType.JACOB,
87
+ PlayerType.ISAAC_B,
88
+ PlayerType.MAGDALENE_B,
89
+ PlayerType.CAIN_B,
90
+ PlayerType.JUDAS_B,
91
+ PlayerType.BLUE_BABY_B,
92
+ PlayerType.EVE_B,
93
+ PlayerType.SAMSON_B,
94
+ PlayerType.AZAZEL_B,
95
+ PlayerType.LAZARUS_B,
96
+ PlayerType.EDEN_B,
97
+ PlayerType.LOST_B,
98
+ PlayerType.LILITH_B,
99
+ PlayerType.KEEPER_B,
100
+ PlayerType.APOLLYON_B,
101
+ PlayerType.FORGOTTEN_B,
102
+ PlayerType.BETHANY_B,
103
+ PlayerType.JACOB_B
104
+ }
57
105
  --- Render frames are what is returned by the `Isaac.GetFrameCount` method.
58
106
  ____exports.RENDER_FRAMES_PER_SECOND = 60
59
107
  --- Render frames are what is returned by the `Isaac.GetFrameCount` method.
@@ -54,7 +54,7 @@ export declare function getCharacterName(character: PlayerType): string;
54
54
  * Note that this will return an empty array for Eden and Tainted Eden.
55
55
  */
56
56
  export declare function getCharacterStartingCollectibles(character: PlayerType): readonly CollectibleType[];
57
- export declare function isFlyingCharacter(player: EntityPlayer): boolean;
57
+ export declare function isFlyingCharacter(character: PlayerType): boolean;
58
58
  /**
59
59
  * Helper function to check if the provided character is one of the characters that are selectable
60
60
  * from the main menu (and have achievements related to completing the various bosses and so on).
@@ -1 +1 @@
1
- {"version":3,"file":"characters.d.ts","sourceRoot":"","sources":["../../../src/functions/characters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AA2D1D;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAExE;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAEzE;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAE7E;AAED;;;;GAIG;AACH,wBAAgB,uCAAuC,CACrD,SAAS,EAAE,UAAU,GACpB,OAAO,CAET;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAE5E;AAED,8EAA8E;AAC9E,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,UAAU,EACrB,iBAAiB,UAAQ,GACxB,KAAK,CAMP;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,SAAS,EAAE,UAAU,GAAG,MAAM,CAU5E;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,SAAS,EAAE,UAAU,GAAG,GAAG,CAsBzE;AAED,+FAA+F;AAC/F,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,UAAU,GAAG,MAAM,CAM9D;AAED;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAC9C,SAAS,EAAE,UAAU,GACpB,SAAS,eAAe,EAAE,CAE5B;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAG/D;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAE9D;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAEhE;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAEjE"}
1
+ {"version":3,"file":"characters.d.ts","sourceRoot":"","sources":["../../../src/functions/characters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAiB1D;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAExE;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAEzE;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAE7E;AAED;;;;GAIG;AACH,wBAAgB,uCAAuC,CACrD,SAAS,EAAE,UAAU,GACpB,OAAO,CAET;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAE5E;AAED,8EAA8E;AAC9E,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,UAAU,EACrB,iBAAiB,UAAQ,GACxB,KAAK,CAMP;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,SAAS,EAAE,UAAU,GAAG,MAAM,CAU5E;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,SAAS,EAAE,UAAU,GAAG,GAAG,CAsBzE;AAED,+FAA+F;AAC/F,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,UAAU,GAAG,MAAM,CAM9D;AAED;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAC9C,SAAS,EAAE,UAAU,GACpB,SAAS,eAAe,EAAE,CAE5B;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAEhE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAE9D;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAEhE;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAEjE"}
@@ -3,6 +3,9 @@ local __TS__New = ____lualib.__TS__New
3
3
  local ____exports = {}
4
4
  local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
5
5
  local PlayerType = ____isaac_2Dtypescript_2Ddefinitions.PlayerType
6
+ local ____constants = require("src.core.constants")
7
+ local FLYING_CHARACTERS = ____constants.FLYING_CHARACTERS
8
+ local MAIN_CHARACTERS = ____constants.MAIN_CHARACTERS
6
9
  local ____constantsFirstLast = require("src.core.constantsFirstLast")
7
10
  local LAST_VANILLA_CHARACTER = ____constantsFirstLast.LAST_VANILLA_CHARACTER
8
11
  local ____characterDamageMultipliers = require("src.objects.characterDamageMultipliers")
@@ -31,50 +34,8 @@ end
31
34
  function ____exports.isVanillaCharacter(self, character)
32
35
  return character <= LAST_VANILLA_CHARACTER
33
36
  end
34
- local FLYING_CHARACTERS_SET = __TS__New(ReadonlySet, {
35
- PlayerType.AZAZEL,
36
- PlayerType.LOST,
37
- PlayerType.SOUL,
38
- PlayerType.LOST_B,
39
- PlayerType.JACOB_2_B,
40
- PlayerType.SOUL_B
41
- })
42
- local MAIN_CHARACTERS_SET = __TS__New(ReadonlySet, {
43
- PlayerType.ISAAC,
44
- PlayerType.MAGDALENE,
45
- PlayerType.CAIN,
46
- PlayerType.JUDAS,
47
- PlayerType.BLUE_BABY,
48
- PlayerType.EVE,
49
- PlayerType.SAMSON,
50
- PlayerType.AZAZEL,
51
- PlayerType.LAZARUS,
52
- PlayerType.EDEN,
53
- PlayerType.LOST,
54
- PlayerType.LILITH,
55
- PlayerType.KEEPER,
56
- PlayerType.APOLLYON,
57
- PlayerType.FORGOTTEN,
58
- PlayerType.BETHANY,
59
- PlayerType.JACOB,
60
- PlayerType.ISAAC_B,
61
- PlayerType.MAGDALENE_B,
62
- PlayerType.CAIN_B,
63
- PlayerType.JUDAS_B,
64
- PlayerType.BLUE_BABY_B,
65
- PlayerType.EVE_B,
66
- PlayerType.SAMSON_B,
67
- PlayerType.AZAZEL_B,
68
- PlayerType.LAZARUS_B,
69
- PlayerType.EDEN_B,
70
- PlayerType.LOST_B,
71
- PlayerType.LILITH_B,
72
- PlayerType.KEEPER_B,
73
- PlayerType.APOLLYON_B,
74
- PlayerType.FORGOTTEN_B,
75
- PlayerType.BETHANY_B,
76
- PlayerType.JACOB_B
77
- })
37
+ local FLYING_CHARACTERS_SET = __TS__New(ReadonlySet, FLYING_CHARACTERS)
38
+ local MAIN_CHARACTERS_SET = __TS__New(ReadonlySet, MAIN_CHARACTERS)
78
39
  --- Helper function to determine if the given character can have red heart containers. Returns true
79
40
  -- for characters like Isaac, Magdalene, or Cain. Returns true for Keeper and Tainted Keeper, even
80
41
  -- though coin containers are not technically the same as red heart containers. Returns false for
@@ -160,8 +121,7 @@ end
160
121
  function ____exports.getCharacterStartingCollectibles(self, character)
161
122
  return CHARACTER_STARTING_COLLECTIBLES[character]
162
123
  end
163
- function ____exports.isFlyingCharacter(self, player)
164
- local character = player:GetPlayerType()
124
+ function ____exports.isFlyingCharacter(self, character)
165
125
  return FLYING_CHARACTERS_SET:has(character)
166
126
  end
167
127
  --- Helper function to check if the provided character is one of the characters that are selectable
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "isaacscript-common",
3
- "version": "39.6.0",
3
+ "version": "40.0.0",
4
4
  "description": "Helper functions and features for IsaacScript mods.",
5
5
  "keywords": [
6
6
  "isaac",
@@ -3,6 +3,7 @@ import {
3
3
  Dimension,
4
4
  DisplayFlag,
5
5
  ItemPoolType,
6
+ PlayerType,
6
7
  TrinketSlot,
7
8
  } from "isaac-typescript-definitions";
8
9
  import { getEnumLength } from "../functions/enums";
@@ -77,12 +78,65 @@ export const EMPTY_PNG_PATH = "gfx/none.png";
77
78
 
78
79
  export const FIRST_GLITCHED_COLLECTIBLE_TYPE = asCollectibleType((1 << 32) - 1);
79
80
 
81
+ /**
82
+ * An array containing every flying character. This includes non-main characters such as The Soul.
83
+ */
84
+ export const FLYING_CHARACTERS = [
85
+ PlayerType.AZAZEL, // 7
86
+ PlayerType.LOST, // 10
87
+ PlayerType.SOUL, // 17
88
+ PlayerType.LOST_B, // 31
89
+ PlayerType.JACOB_2_B, // 39
90
+ PlayerType.SOUL_B, // 40
91
+ ] as const;
92
+
80
93
  /** Game frames are what is returned by the `Game.GetFrameCount` method. */
81
94
  export const GAME_FRAMES_PER_SECOND = 30;
82
95
 
83
96
  /** Game frames are what is returned by the `Game.GetFrameCount` method. */
84
97
  export const GAME_FRAMES_PER_MINUTE = GAME_FRAMES_PER_SECOND * 60;
85
98
 
99
+ /**
100
+ * An array containing every character that is selectable from the main menu (and has achievements
101
+ * related to completing the various bosses and so on).
102
+ */
103
+ export const MAIN_CHARACTERS = [
104
+ PlayerType.ISAAC, // 0
105
+ PlayerType.MAGDALENE, // 1
106
+ PlayerType.CAIN, // 2
107
+ PlayerType.JUDAS, // 3
108
+ PlayerType.BLUE_BABY, // 4
109
+ PlayerType.EVE, // 5
110
+ PlayerType.SAMSON, // 6
111
+ PlayerType.AZAZEL, // 7
112
+ PlayerType.LAZARUS, // 8
113
+ PlayerType.EDEN, // 9
114
+ PlayerType.LOST, // 10
115
+ PlayerType.LILITH, // 13
116
+ PlayerType.KEEPER, // 14
117
+ PlayerType.APOLLYON, // 15
118
+ PlayerType.FORGOTTEN, // 16
119
+ PlayerType.BETHANY, // 18
120
+ PlayerType.JACOB, // 19
121
+ PlayerType.ISAAC_B, // 21
122
+ PlayerType.MAGDALENE_B, // 22
123
+ PlayerType.CAIN_B, // 23
124
+ PlayerType.JUDAS_B, // 24
125
+ PlayerType.BLUE_BABY_B, // 25
126
+ PlayerType.EVE_B, // 26
127
+ PlayerType.SAMSON_B, // 27
128
+ PlayerType.AZAZEL_B, // 28
129
+ PlayerType.LAZARUS_B, // 29
130
+ PlayerType.EDEN_B, // 30
131
+ PlayerType.LOST_B, // 31
132
+ PlayerType.LILITH_B, // 32
133
+ PlayerType.KEEPER_B, // 33
134
+ PlayerType.APOLLYON_B, // 34
135
+ PlayerType.FORGOTTEN_B, // 35
136
+ PlayerType.BETHANY_B, // 36
137
+ PlayerType.JACOB_B, // 37
138
+ ] as const;
139
+
86
140
  /** Render frames are what is returned by the `Isaac.GetFrameCount` method. */
87
141
  export const RENDER_FRAMES_PER_SECOND = 60;
88
142
 
@@ -1,5 +1,6 @@
1
1
  import type { CollectibleType } from "isaac-typescript-definitions";
2
2
  import { PlayerType } from "isaac-typescript-definitions";
3
+ import { FLYING_CHARACTERS, MAIN_CHARACTERS } from "../core/constants";
3
4
  import { LAST_VANILLA_CHARACTER } from "../core/constantsFirstLast";
4
5
  import { CHARACTER_DAMAGE_MULTIPLIERS } from "../objects/characterDamageMultipliers";
5
6
  import { CHARACTER_NAMES } from "../objects/characterNames";
@@ -12,51 +13,8 @@ import { CHARACTERS_WITH_NO_SOUL_HEARTS_SET } from "../sets/charactersWithNoSoul
12
13
  import { LOST_STYLE_CHARACTERS_SET } from "../sets/lostStyleCharactersSet";
13
14
  import { ReadonlySet } from "../types/ReadonlySet";
14
15
 
15
- const FLYING_CHARACTERS_SET = new ReadonlySet<PlayerType>([
16
- PlayerType.AZAZEL, // 7
17
- PlayerType.LOST, // 10
18
- PlayerType.SOUL, // 17
19
- PlayerType.LOST_B, // 31
20
- PlayerType.JACOB_2_B, // 39
21
- PlayerType.SOUL_B, // 40
22
- ]);
23
-
24
- const MAIN_CHARACTERS_SET = new ReadonlySet<PlayerType>([
25
- PlayerType.ISAAC, // 0
26
- PlayerType.MAGDALENE, // 1
27
- PlayerType.CAIN, // 2
28
- PlayerType.JUDAS, // 3
29
- PlayerType.BLUE_BABY, // 4
30
- PlayerType.EVE, // 5
31
- PlayerType.SAMSON, // 6
32
- PlayerType.AZAZEL, // 7
33
- PlayerType.LAZARUS, // 8
34
- PlayerType.EDEN, // 9
35
- PlayerType.LOST, // 10
36
- PlayerType.LILITH, // 13
37
- PlayerType.KEEPER, // 14
38
- PlayerType.APOLLYON, // 15
39
- PlayerType.FORGOTTEN, // 16
40
- PlayerType.BETHANY, // 18
41
- PlayerType.JACOB, // 19
42
- PlayerType.ISAAC_B, // 21
43
- PlayerType.MAGDALENE_B, // 22
44
- PlayerType.CAIN_B, // 23
45
- PlayerType.JUDAS_B, // 24
46
- PlayerType.BLUE_BABY_B, // 25
47
- PlayerType.EVE_B, // 26
48
- PlayerType.SAMSON_B, // 27
49
- PlayerType.AZAZEL_B, // 28
50
- PlayerType.LAZARUS_B, // 29
51
- PlayerType.EDEN_B, // 30
52
- PlayerType.LOST_B, // 31
53
- PlayerType.LILITH_B, // 32
54
- PlayerType.KEEPER_B, // 33
55
- PlayerType.APOLLYON_B, // 34
56
- PlayerType.FORGOTTEN_B, // 35
57
- PlayerType.BETHANY_B, // 36
58
- PlayerType.JACOB_B, // 37
59
- ]);
16
+ const FLYING_CHARACTERS_SET = new ReadonlySet<PlayerType>(FLYING_CHARACTERS);
17
+ const MAIN_CHARACTERS_SET = new ReadonlySet<PlayerType>(MAIN_CHARACTERS);
60
18
 
61
19
  /**
62
20
  * Helper function to determine if the given character can have red heart containers. Returns true
@@ -185,8 +143,7 @@ export function getCharacterStartingCollectibles(
185
143
  return CHARACTER_STARTING_COLLECTIBLES[character];
186
144
  }
187
145
 
188
- export function isFlyingCharacter(player: EntityPlayer): boolean {
189
- const character = player.GetPlayerType();
146
+ export function isFlyingCharacter(character: PlayerType): boolean {
190
147
  return FLYING_CHARACTERS_SET.has(character);
191
148
  }
192
149