UNPKG

isaac-typescript-definitions

Version:

TypeScript definitions for The Binding of Isaac: Repentance.

738 lines (737 loc) 17.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TearFlagZero = exports.TearFlag = void 0; /** * For `EntityType.TEAR` (2). * * This enum was renamed from "TearFlags" to be consistent with the other flag enums. * * This is represented as an object instead of an enum due to limitations with TypeScript enums. (We * want this type to be a child of the `BitFlag` type. Furthermore, enums cannot be instantiated * with `BitSet128` objects.) * * Generally, the `TearVariant` affects the graphics of the tear, while the `TearFlag` affects the * gameplay mechanic. For example, the Euthanasia collectible grants a chance for needle tears that * explode. `TearVariant.NEEDLE` makes the tear look like a needle, and the exploding effect comes * from `TearFlag.NEEDLE`. * * However, there are some exceptions. For example, Sharp Key makes Isaac shoot key tears that deal * extra damage. Both the graphical effect and the extra damage are granted by * `TearVariant.KEY_BLOOD`. * * @enum * @notExported * @rename TearFlag */ const TearFlagInternal = { /** * Default tear (no special effects). * * 1 << -1 (0) */ NORMAL: BitSet128(0, 0), /** * Goes through obstacles. Used by Ouija Board. * * 1 << 0 (1) */ SPECTRAL: getTearFlag(0), /** * Goes through enemies. Used by Cupid's Arrow. * * 1 << 1 (2) */ PIERCING: getTearFlag(1), /** * Used by Spoon Bender. * * 1 << 2 (4) */ HOMING: getTearFlag(2), /** * Slows enemies on contact. Used by Spider Bite. * * 1 << 3 (8) */ SLOW: getTearFlag(3), /** * Used by The Common Cold. * * 1 << 4 (16) */ POISON: getTearFlag(4), /** * Freezes enemies in place. (For the ice effect, see `TearFlag.TEAR_ICE`.) Used by Mom's * Contacts. * * 1 << 5 (32) */ FREEZE: getTearFlag(5), /** * Splits into two different tears on collision. Used by The Parasite. * * 1 << 6 (64) */ SPLIT: getTearFlag(6), /** * The tear increases in size and damage the longer it travels. Used by Lump of Coal. * * 1 << 7 (128) */ GROW: getTearFlag(7), /** * Returns backwards after traveling for a little while. Used by My Reflection. * * 1 << 8 (256) */ BOOMERANG: getTearFlag(8), /** * Keeps going past enemies that it kills (with less damage). Used by Polyphemus. * * 1 << 9 (512) */ PERSISTENT: getTearFlag(9), /** * Used by the Wiggle Worm trinket. * * 1 << 10 (1024) */ WIGGLE: getTearFlag(10), /** * Created a blue fly on hit. Used by The Mulligan. * * 1 << 11 (2048) */ MULLIGAN: getTearFlag(11), /** * Explodes on hit. Used by Ipecac. * * 1 << 12 (4096) */ EXPLOSIVE: getTearFlag(12), /** * Used by Mom's Eyeshadow. * * 1 << 13 (8192) */ CHARM: getTearFlag(13), /** * Used by Iron Bar. * * 1 << 14 (16384) */ CONFUSION: getTearFlag(14), /** * Enemies killed have a 33% chance to drop a heart. Used by Tainted Magdalene. * * 1 << 15 (32768) */ HP_DROP: getTearFlag(15), /** * Tears orbit around the player. Used by Tiny Planet. * * 1 << 16 (65536) */ ORBIT: getTearFlag(16), /** * Floats in place until the player releases the fire button. Used by Anti-Gravity. * * 1 << 17 (131072) */ WAIT: getTearFlag(17), /** * Splits into four different tears on collision. Used by Cricket's Body. * * 1 << 18 (262144) */ QUAD_SPLIT: getTearFlag(18), /** * Bounces off of enemies, walls, rocks, and so on. Used by Rubber Cement. * * 1 << 19 (524288) */ BOUNCE: getTearFlag(19), /** * Used by Mom's Perfume. * * 1 << 20 (1048576) */ FEAR: getTearFlag(20), /** * The tear shrinks the longer it travels. Used by Proptosis. * * 1 << 21 (2097152) */ SHRINK: getTearFlag(21), /** * Used by Fire Mind. * * 1 << 22 (4194304) */ BURN: getTearFlag(22), /** * Attracts enemies and pickups. Used by Strange Attractor. * * 1 << 23 (8388608) */ ATTRACTOR: getTearFlag(23), /** * Pushes enemies back further than normal. * * 1 << 24 (16777216) */ KNOCKBACK: getTearFlag(24), /** * Used by Pulse Worm. * * 1 << 25 (33554432) */ PULSE: getTearFlag(25), /** * Used by Ring Worm. * * 1 << 26 (67108864) */ SPIRAL: getTearFlag(26), /** * Used by Flat Worm. * * 1 << 27 (134217728) */ FLAT: getTearFlag(27), /** * Makes tears explode out of the bomb. Used by Sad Bombs. * * 1 << 28 (268435456) */ SAD_BOMB: getTearFlag(28), /** * Damages everything in the room when it explodes. Used by Butt Bombs. * * 1 << 29 (536870912) */ BUTT_BOMB: getTearFlag(29), /** * Used by Hook Worm. * * 1 << 30 (1073741824) */ SQUARE: getTearFlag(30), /** * Creates an aura around the tear. Used by Godhead. * * 1 << 31 (2147483648) */ GLOW: getTearFlag(31), /** * Slows enemies and colors them black. Used by Lil Gish. * * 1 << 32 (4294967296) */ GISH: getTearFlag(32), /** * Spawns green creep on hit. Used by Mysterious Liquid. * * 1 << 33 */ MYSTERIOUS_LIQUID_CREEP: getTearFlag(33), /** * Deletes projectiles that it collides with. Used by Lost Contact. * * 1 << 34 */ SHIELDED: getTearFlag(34), /** * Spawns a pickup upon exploding. Used by Glitter Bombs. * * 1 << 35 */ GLITTER_BOMB: getTearFlag(35), /** * Splits into 5 little bombs upon exploding. Used by Scatter Bombs. * * 1 << 36 */ SCATTER_BOMB: getTearFlag(36), /** * Sticks to enemies and continues to deal damage. Used by Explosivo and Sticky Bombs. * * 1 << 37 */ STICKY: getTearFlag(37), /** * Pass through walls to loop around the screen. Used by Continuum. * * 1 << 38 */ CONTINUUM: getTearFlag(38), /** * Creates a light beam on hit. Used by Holy Light. * * 1 << 39 */ LIGHT_FROM_HEAVEN: getTearFlag(39), /** * Spawns a coin on hit. Used by Bumbo. * * 1 << 40 */ COIN_DROP: getTearFlag(40), /** * Enemies killed will spawn a black heart. * * 1 << 41 */ BLACK_HP_DROP: getTearFlag(41), /** * Follows the parent player's beam. Used by Tractor Beam. * * 1 << 42 */ TRACTOR_BEAM: getTearFlag(42), /** * Shrink enemies on hit. Used by God's Flesh. * * 1 << 43 */ GODS_FLESH: getTearFlag(43), /** * Have a chance to spawn a coin on hit. * * 1 << 44 */ GREED_COIN: getTearFlag(44), /** * Causes a large explosion in the shape of a cross. Used by Bomber Boy. * * 1 << 45 */ CROSS_BOMB: getTearFlag(45), /** * Used by Ouroboros Worm. * * 1 << 46 */ BIG_SPIRAL: getTearFlag(46), /** * Used by Glaucoma. * * 1 << 47 */ PERMANENT_CONFUSION: getTearFlag(47), /** * Sticks to enemies and does damage over time. Used by Sinus Infection. * * 1 << 48 */ BOOGER: getTearFlag(48), /** * Spawns creep on hit and spawns blue flies or spiders. Used by Parasitoid. * * 1 << 49 */ EGG: getTearFlag(49), /** * Can open doors or break grid entities. Used by Sulfuric Acid. * * 1 << 50 */ ACID: getTearFlag(50), /** * Splits into two tears. Used by Compound Fracture. * * 1 << 51 */ BONE: getTearFlag(51), /** * Piercing. When passing through an enemy, gains homing and does double damage. Used by Eye of * Belial. * * 1 << 52 */ BELIAL: getTearFlag(52), /** * Enemies turn gold and drop coins on death. Used by Midas' Touch. * * 1 << 53 */ MIDAS: getTearFlag(53), /** * Used by Euthanasia. * * 1 << 54 */ NEEDLE: getTearFlag(54), /** * Causes electricity to ripple around the room, damaging enemies. Used by Jacob's Ladder. * * 1 << 55 */ JACOBS: getTearFlag(55), /** * Void tears. Instantly kills enemies. Used by Little Horn. * * 1 << 56 */ HORN: getTearFlag(56), /** * Electricity arcs between tears. Used by Technology Zero. * * 1 << 57 */ LASER: getTearFlag(57), /** * Tears stay in the air and bump into each other. Used by Pop! * * 1 << 58 */ POP: getTearFlag(58), /** * Tears combine when they collide into each other. Used by Lachryphagy. * * 1 << 59 */ ABSORB: getTearFlag(59), /** * Lasers are generated on top of the tear. Used by Trisagion. * * 1 << 60 */ LASER_SHOT: getTearFlag(60), /** * Continually bounces as it travels. Used by Flat Stone. * * 1 << 61 */ HYDRO_BOUNCE: getTearFlag(61), /** * Arcing shots that split into smaller tears on impact. Used by Haemolacria. * * 1 << 62 */ BURST_SPLIT: getTearFlag(62), /** * Spawns green creep. Used by Bob's Bladder. * * 1 << 63 */ CREEP_TRAIL: getTearFlag(63), /** * Knockback tears. Used by Knockout Drops. * * 1 << 64 */ PUNCH: getTearFlag(64), /** * Enemies become frozen on death. (For the freeze-in-place effect, see `TearFlag.FREEZE`.) * * 1 << 65 */ ICE: getTearFlag(65), /** * Enemies being magnetized and pull other things towards them. Used by Lodestone. * * 1 << 66 */ MAGNETIZE: getTearFlag(66), /** * Marks enemies. Marked enemies will attack and damage each other, as well as have reduced * movement speed. Used by Rotten Tomato. * * 1 << 67 */ BAIT: getTearFlag(67), /** * Velocity can be adjusted by the player while in the air. Used by Eye of the Occult. * * 1 << 68 */ OCCULT: getTearFlag(68), /** * Tears orbit in a narrow and stable orbit. Used by Saturnus. * * 1 << 69 */ ORBIT_ADVANCED: getTearFlag(69), /** * Chance to break rocks and open doors. Deals extra damage to rock-type enemies. * * 1 << 70 */ ROCK: getTearFlag(70), /** * Tears turn and go horizontally when moving past an enemy. Used by Brain Worm. * * 1 << 71 */ TURN_HORIZONTAL: getTearFlag(71), /** * Spawns red creep. * * 1 << 72 */ BLOOD_BOMB: getTearFlag(72), /** * Enemies are turned into poop. * * 1 << 73 */ ECOLI: getTearFlag(73), /** * Enemies have a chance to drop a coin on death. Used by The Hanged Man? * * 1 << 74 */ COIN_DROP_DEATH: getTearFlag(74), /** * Explosion creates a Brimstone laser cross pattern. * * 1 << 75 */ BRIMSTONE_BOMB: getTearFlag(75), /** * Creates a black hole on impact. * * 1 << 76 */ RIFT: getTearFlag(76), /** * Sticks to enemies and multiplies on enemy death. * * 1 << 77 */ SPORE: getTearFlag(77), /** * Spawns a ghost upon explosion. * * 1 << 78 */ GHOST_BOMB: getTearFlag(78), /** * Killed enemies will drop a random tarot card. * * 1 << 79 */ CARD_DROP_DEATH: getTearFlag(79), /** * Killed enemies will drop a random rune. * * 1 << 80 */ RUNE_DROP_DEATH: getTearFlag(80), /** * Enemies will teleport to a different part of the room on hit. * * 1 << 81 */ TELEPORT: getTearFlag(81), /** * Used on tears fired on the G-Fuel seed to keep them lingering on a single spot before dropping * to the ground. (This is only present on some of the weapon types.) * * 1 << 82 */ TEAR_DECELERATE: getTearFlag(82), /** * Used on tears fired on the G-Fuel seed to make them accelerate over time. (This is only present * on some of the weapon types.) * * 1 << 83 */ TEAR_ACCELERATE: getTearFlag(83), /** * This is a reserved flag and cannot be randomly picked. * * Similar to `TearFlag.BOUNCE` but only bounces off walls, not enemies. * * 1 << 104 */ BOUNCE_WALLS_ONLY: getTearFlag(104), /** * This is a reserved flag and cannot be randomly picked. * * Cannot deal damage to grid entities. This is used by Saturnus to prevent unfair damage in some * rooms. * * 1 << 105 */ NO_GRID_DAMAGE: getTearFlag(105), /** * This is a reserved flag and cannot be randomly picked. * * Deals extra damage from behind and inflicts bleeding. * * 1 << 106 */ BACKSTAB: getTearFlag(106), /** * This is a reserved flag and cannot be randomly picked. * * Fetuses whack their target with a sword and perform spin attacks. * * 1 << 107 */ FETUS_SWORD: getTearFlag(107), /** * This is a reserved flag and cannot be randomly picked. * * Fetuses whack their target with a bone club instead of ramming into them. * * 1 << 108 */ FETUS_BONE: getTearFlag(108), /** * This is a reserved flag and cannot be randomly picked. * * Fetuses carry a knife. * * 1 << 109 */ FETUS_KNIFE: getTearFlag(109), /** * This is a reserved flag and cannot be randomly picked. * * Fetuses have a Tech X ring around them. * * 1 << 110 */ FETUS_TECH_X: getTearFlag(110), /** * This is a reserved flag and cannot be randomly picked. * * Fetuses keep their distance and occasionally shoot tech lasers at their target. * * 1 << 111 */ FETUS_TECH: getTearFlag(111), /** * This is a reserved flag and cannot be randomly picked. * * Fetuses shoot a brimstone beam at the first enemy they hit. * * 1 << 112 */ FETUS_BRIMSTONE: getTearFlag(112), /** * This is a reserved flag and cannot be randomly picked. * * Fetuses drop a bomb on their first impact with an enemy. * * 1 << 113 */ FETUS_BOMBER: getTearFlag(113), /** * This is a reserved flag and cannot be randomly picked. * * The base flag for C-Section fetuses. * * 1 << 114 */ FETUS: getTearFlag(114), /** * This is a reserved flag and cannot be randomly picked. * * 1 << 115 */ REROLL_ROCK_WISP: getTearFlag(115), /** * This is a reserved flag and cannot be randomly picked. * * 1 << 116 */ MOM_STOMP_WISP: getTearFlag(116), /** * This is a reserved flag and cannot be randomly picked. * * 1 << 117 */ ENEMY_TO_WISP: getTearFlag(117), /** * Chance to reroll the enemy on hit. Used by D10 wisps. * * This is a reserved flag and cannot be randomly picked. * * 1 << 118 */ REROLL_ENEMY: getTearFlag(118), /** * Causes giant explosions that create pits. Used by Giga Bombs. * * This is a reserved flag and cannot be randomly picked. * * 1 << 119 */ GIGA_BOMB: getTearFlag(119), /** * Enemies explode into more gibs on death than normal. Used by Berserk! * * This is a reserved flag and cannot be randomly picked. * * 1 << 120 */ EXTRA_GORE: getTearFlag(120), /** * Lasers cycle between colors, causing a rainbow effect. * * This is a reserved flag and cannot be randomly picked. * * 1 << 121 */ RAINBOW: getTearFlag(121), /** * Bombs can be detonated by Remote Detonator. * * This is a reserved flag and cannot be randomly picked. * * 1 << 122 */ DETONATE: getTearFlag(122), /** * Tears stick to each other and form a chain that can be swung around. Used by Akeldama. * * This is a reserved flag and cannot be randomly picked. * * 1 << 123 */ CHAIN: getTearFlag(123), /** * Black aura effect. Used by Dark Matter. * * This is a reserved flag and cannot be randomly picked. * * 1 << 124 */ DARK_MATTER: getTearFlag(124), /** * Bombs dropped while having a Golden Bomb will have this flag. * * This is a reserved flag and cannot be randomly picked. * * 1 << 125 */ GOLDEN_BOMB: getTearFlag(125), /** * Bombs dropped while having Fast Bombs will have this flag. * * This is a reserved flag and cannot be randomly picked. * * 1 << 126 */ FAST_BOMB: getTearFlag(126), /** * A single tear controlled by the player with the shooting keys. Used by The Ludovico Technique. * * This is a reserved flag and cannot be randomly picked. * * 1 << 127 */ LUDOVICO: getTearFlag(127), }; exports.TearFlag = TearFlagInternal; exports.TearFlagZero = exports.TearFlag.NORMAL; /** Identical to the `TEARFLAG` function in "enums.lua". */ function getTearFlag(shift) { return shift >= 64 ? BitSet128(0, 1 << (shift - 64)) : BitSet128(1 << shift, 0); }