UNPKG

@slippi/slippi-js

Version:
3,330 lines (3,323 loc) 882 kB
'use strict'; var get = require('lodash/get'); var isEqual = require('lodash/isEqual'); var keyBy = require('lodash/keyBy'); var last = require('lodash/last'); var set = require('lodash/set'); var size = require('lodash/size'); var filter = require('lodash/filter'); var groupBy = require('lodash/groupBy'); var orderBy = require('lodash/orderBy'); var first = require('lodash/first'); var flatten = require('lodash/flatten'); var mapValues = require('lodash/mapValues'); var zip = require('lodash/zip'); var dateFns = require('date-fns'); var semver = require('semver'); var iconvCp932 = require('iconv-cp932'); var map = require('lodash/map'); // eslint-disable-next-line function getDeathDirection(actionStateId) { if (actionStateId > 0xa) { return undefined; } switch (actionStateId) { case 0: return "down"; case 1: return "left"; case 2: return "right"; default: return "up"; } } var animationUtils = /*#__PURE__*/Object.freeze({ __proto__: null, getDeathDirection: getDeathDirection }); var characters = { "0": { name: "Captain Falcon", shortName: "Falcon", colors: [ "Black", "Red", "White", "Green", "Blue" ] }, "1": { name: "Donkey Kong", shortName: "DK", colors: [ "Black", "Red", "Blue", "Green" ] }, "2": { name: "Fox", colors: [ "Red", "Blue", "Green" ] }, "3": { name: "Mr. Game & Watch", shortName: "G&W", colors: [ "Red", "Blue", "Green" ] }, "4": { name: "Kirby", colors: [ "Yellow", "Blue", "Red", "Green", "White" ] }, "5": { name: "Bowser", colors: [ "Red", "Blue", "Black" ] }, "6": { name: "Link", colors: [ "Red", "Blue", "Black", "White" ] }, "7": { name: "Luigi", colors: [ "White", "Blue", "Red" ] }, "8": { name: "Mario", colors: [ "Yellow", "Black", "Blue", "Green" ] }, "9": { name: "Marth", colors: [ "Red", "Green", "Black", "White" ] }, "10": { name: "Mewtwo", colors: [ "Red", "Blue", "Green" ] }, "11": { name: "Ness", colors: [ "Yellow", "Blue", "Green" ] }, "12": { name: "Peach", colors: [ "Daisy", "White", "Blue", "Green" ] }, "13": { name: "Pikachu", colors: [ "Red", "Party Hat", "Cowboy Hat" ] }, "14": { name: "Ice Climbers", shortName: "ICs", colors: [ "Green", "Orange", "Red" ] }, "15": { name: "Jigglypuff", shortName: "Puff", colors: [ "Red", "Blue", "Headband", "Crown" ] }, "16": { name: "Samus", colors: [ "Pink", "Black", "Green", "Purple" ] }, "17": { name: "Yoshi", colors: [ "Red", "Blue", "Yellow", "Pink", "Cyan" ] }, "18": { name: "Zelda", colors: [ "Red", "Blue", "Green", "White" ] }, "19": { name: "Sheik", colors: [ "Red", "Blue", "Green", "White" ] }, "20": { name: "Falco", colors: [ "Red", "Blue", "Green" ] }, "21": { name: "Young Link", shortName: "YLink", colors: [ "Red", "Blue", "White", "Black" ] }, "22": { name: "Dr. Mario", shortName: "Doc", colors: [ "Red", "Blue", "Green", "Black" ] }, "23": { name: "Roy", colors: [ "Red", "Blue", "Green", "Yellow" ] }, "24": { name: "Pichu", colors: [ "Red", "Blue", "Green" ] }, "25": { name: "Ganondorf", shortName: "Ganon", colors: [ "Red", "Blue", "Green", "Purple" ] }, "26": { name: "Master Hand" }, "27": { name: "Wireframe (Male)" }, "28": { name: "Wireframe (Female)" }, "29": { name: "Gigabowser" }, "30": { name: "Crazy Hand" }, "31": { name: "Sandbag" }, "32": { name: "Popo" } }; const DEFAULT_COLOR = "Default"; const UnknownCharacter = { id: -1, name: "Unknown Character", shortName: "Unknown", colors: [DEFAULT_COLOR], }; function generateCharacterInfo(id, info) { var _a, _b; if (!info) { return UnknownCharacter; } return { id, name: info.name, shortName: (_a = info.shortName) !== null && _a !== void 0 ? _a : info.name, colors: [DEFAULT_COLOR, ...((_b = info.colors) !== null && _b !== void 0 ? _b : [])], }; } function getAllCharacters() { return Object.entries(characters) .map(([id, data]) => generateCharacterInfo(parseInt(id, 10), data)) .sort((a, b) => a.id - b.id); } function getCharacterInfo(externalCharacterId) { const data = characters[externalCharacterId.toString()]; return generateCharacterInfo(externalCharacterId, data); } function getCharacterShortName(externalCharacterId) { const character = getCharacterInfo(externalCharacterId); return character.shortName; } function getCharacterName(externalCharacterId) { const character = getCharacterInfo(externalCharacterId); return character.name; } // Return a human-readable color from a characterCode. function getCharacterColorName(externalCharacterId, characterColor) { const character = getCharacterInfo(externalCharacterId); const color = character.colors[characterColor]; if (color) { return color; } return DEFAULT_COLOR; } var characterUtils = /*#__PURE__*/Object.freeze({ __proto__: null, UnknownCharacter: UnknownCharacter, getAllCharacters: getAllCharacters, getCharacterColorName: getCharacterColorName, getCharacterInfo: getCharacterInfo, getCharacterName: getCharacterName, getCharacterShortName: getCharacterShortName }); var Bowser = { jab1: { subactionIndex: 46, subactionName: "PlyKoopa5K_Share_ACTION_Attack11_figatree", totalFrames: 24, iasa: 21, hitFrames: [ { start: 7, end: 9, hitboxes: [ 0 ] } ], hitboxes: [ { damage: 5, angle: 83, kbGrowth: 100, weightDepKb: 20, hitboxInteraction: 3, baseKb: 0, element: "slash", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, jab2: { subactionIndex: 47, subactionName: "PlyKoopa5K_Share_ACTION_Attack12_figatree", totalFrames: 29, iasa: 26, hitFrames: [ { start: 8, end: 10, hitboxes: [ 0 ] } ], hitboxes: [ { damage: 6, angle: 361, kbGrowth: 110, weightDepKb: 0, hitboxInteraction: 3, baseKb: 30, element: "slash", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, jab3: null, rapidjabs_start: null, rapidjabs_loop: null, rapidjabs_end: null, dashattack: { subactionIndex: 52, subactionName: "PlyKoopa5K_Share_ACTION_AttackDash_figatree", totalFrames: 59, iasa: 56, hitFrames: [ { start: 10, end: 13, hitboxes: [ 0 ] }, { start: 14, end: 17, hitboxes: [ 0, 1 ] } ], hitboxes: [ { damage: 11, angle: 80, kbGrowth: 30, weightDepKb: 0, hitboxInteraction: 3, baseKb: 120, element: "normal", shieldDamage: 1, hitGrounded: true, hitAirborne: true }, { damage: 8, angle: 80, kbGrowth: 30, weightDepKb: 0, hitboxInteraction: 3, baseKb: 80, element: "normal", shieldDamage: 1, hitGrounded: true, hitAirborne: true } ] }, ftilt_h: { subactionIndex: 53, subactionName: "PlyKoopa5K_Share_ACTION_AttackS3Hi_figatree", totalFrames: 47, iasa: 37, hitFrames: [ { start: 12, end: 16, hitboxes: [ 0, 1 ] } ], hitboxes: [ { damage: 15, angle: 361, kbGrowth: 100, weightDepKb: 0, hitboxInteraction: 3, baseKb: 29, element: "normal", shieldDamage: 0, hitGrounded: true, hitAirborne: true }, { damage: 13, angle: 361, kbGrowth: 100, weightDepKb: 0, hitboxInteraction: 3, baseKb: 29, element: "normal", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, ftilt_mh: null, ftilt_m: { subactionIndex: 55, subactionName: "PlyKoopa5K_Share_ACTION_AttackS3S_figatree", totalFrames: 47, iasa: 37, hitFrames: [ { start: 12, end: 16, hitboxes: [ 0, 1, 2 ] } ], hitboxes: [ { damage: 14, angle: 361, kbGrowth: 100, weightDepKb: 0, hitboxInteraction: 3, baseKb: 25, element: "normal", shieldDamage: 0, hitGrounded: true, hitAirborne: true }, { damage: 12, angle: 361, kbGrowth: 100, weightDepKb: 0, hitboxInteraction: 3, baseKb: 25, element: "normal", shieldDamage: 0, hitGrounded: true, hitAirborne: true }, { damage: 13, angle: 361, kbGrowth: 100, weightDepKb: 0, hitboxInteraction: 3, baseKb: 25, element: "normal", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, ftilt_ml: null, ftilt_l: { subactionIndex: 57, subactionName: "PlyKoopa5K_Share_ACTION_AttackS3Lw_figatree", totalFrames: 47, iasa: 37, hitFrames: [ { start: 12, end: 16, hitboxes: [ 0, 1 ] } ], hitboxes: [ { damage: 13, angle: 361, kbGrowth: 100, weightDepKb: 0, hitboxInteraction: 3, baseKb: 31, element: "normal", shieldDamage: 0, hitGrounded: true, hitAirborne: true }, { damage: 11, angle: 361, kbGrowth: 100, weightDepKb: 0, hitboxInteraction: 3, baseKb: 32, element: "normal", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, utilt: { subactionIndex: 58, subactionName: "PlyKoopa5K_Share_ACTION_AttackHi3_figatree", totalFrames: 54, iasa: 50, hitFrames: [ { start: 7, end: 10, hitboxes: [ 0 ] } ], hitboxes: [ { damage: 13, angle: 100, kbGrowth: 120, weightDepKb: 0, hitboxInteraction: 3, baseKb: 40, element: "slash", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, dtilt: { subactionIndex: 59, subactionName: "PlyKoopa5K_Share_ACTION_AttackLw3_figatree", totalFrames: 59, iasa: 55, hitFrames: [ { start: 14, end: 18, hitboxes: [ 0 ] }, { start: 27, end: 31, hitboxes: [ 1 ] } ], hitboxes: [ { damage: 13, angle: 361, kbGrowth: 100, weightDepKb: 0, hitboxInteraction: 3, baseKb: 15, element: "slash", shieldDamage: 0, hitGrounded: true, hitAirborne: true }, { damage: 10, angle: 361, kbGrowth: 100, weightDepKb: 0, hitboxInteraction: 3, baseKb: 12, element: "slash", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, fsmash_h: null, fsmash_mh: null, fsmash_m: { subactionIndex: 62, subactionName: "PlyKoopa5K_Share_ACTION_AttackS4_figatree", totalFrames: 69, chargeFrame: 10, iasa: 66, hitFrames: [ { start: 29, end: 33, hitboxes: [ 0, 1 ] } ], hitboxes: [ { damage: 24, angle: 361, kbGrowth: 100, weightDepKb: 0, hitboxInteraction: 3, baseKb: 30, element: "normal", shieldDamage: 0, hitGrounded: true, hitAirborne: true }, { damage: 24, angle: 60, kbGrowth: 100, weightDepKb: 0, hitboxInteraction: 3, baseKb: 30, element: "normal", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, fsmash_ml: null, fsmash_l: null, usmash: { subactionIndex: 66, subactionName: "PlyKoopa5K_Share_ACTION_AttackHi4_figatree", totalFrames: 59, chargeFrame: 10, iasa: 53, hitFrames: [ { start: 16, end: 21, hitboxes: [ 0, 1 ] }, { start: 30, end: 30, hitboxes: [ 2 ] } ], hitboxes: [ { damage: 20, angle: 90, kbGrowth: 86, weightDepKb: 0, hitboxInteraction: 3, baseKb: 40, element: "slash", shieldDamage: 0, hitGrounded: true, hitAirborne: true }, { damage: 17, angle: 90, kbGrowth: 86, weightDepKb: 0, hitboxInteraction: 3, baseKb: 40, element: "slash", shieldDamage: 0, hitGrounded: true, hitAirborne: true }, { damage: 12, angle: 74, kbGrowth: 100, weightDepKb: 0, hitboxInteraction: 3, baseKb: 60, element: "normal", shieldDamage: 0, hitGrounded: true, hitAirborne: false } ] }, dsmash: { subactionIndex: 67, subactionName: "PlyKoopa5K_Share_ACTION_AttackLw4_figatree", totalFrames: 69, chargeFrame: 8, iasa: 68, hitFrames: [ { start: 14, end: 15, hitboxes: [ 0, 1 ] }, { start: 17, end: 18, hitboxes: [ 0, 1 ] }, { start: 20, end: 21, hitboxes: [ 0, 1 ] }, { start: 23, end: 24, hitboxes: [ 0, 1 ] }, { start: 26, end: 27, hitboxes: [ 0, 1 ] }, { start: 29, end: 30, hitboxes: [ 0, 1 ] }, { start: 32, end: 33, hitboxes: [ 0, 1 ] }, { start: 35, end: 35, hitboxes: [ 2 ] } ], hitboxes: [ { damage: 2, angle: 150, kbGrowth: 50, weightDepKb: 0, hitboxInteraction: 3, baseKb: 40, element: "slash", shieldDamage: 0, hitGrounded: true, hitAirborne: true }, { damage: 2, angle: 190, kbGrowth: 50, weightDepKb: 0, hitboxInteraction: 3, baseKb: 40, element: "slash", shieldDamage: 0, hitGrounded: true, hitAirborne: true }, { damage: 10, angle: 90, kbGrowth: 140, weightDepKb: 0, hitboxInteraction: 3, baseKb: 40, element: "slash", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, nair: { subactionIndex: 68, subactionName: "PlyKoopa5K_Share_ACTION_AttackAirN_figatree", totalFrames: 49, iasa: 48, autoCancelBefore: 8, autoCancelAfter: 39, landingLag: 30, lcancelledLandingLag: 15, hitFrames: [ { start: 8, end: 23, hitboxes: [ 0 ] } ], hitboxes: [ { damage: 13, angle: 361, kbGrowth: 80, weightDepKb: 0, hitboxInteraction: 3, baseKb: 20, element: "normal", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, fair: { subactionIndex: 69, subactionName: "PlyKoopa5K_Share_ACTION_AttackAirF_figatree", totalFrames: 45, iasa: 42, autoCancelBefore: 9, autoCancelAfter: 30, landingLag: 30, lcancelledLandingLag: 15, hitFrames: [ { start: 8, end: 11, hitboxes: [ 0, 1, 2 ] } ], hitboxes: [ { damage: 14, angle: 361, kbGrowth: 80, weightDepKb: 0, hitboxInteraction: 3, baseKb: 50, element: "normal", shieldDamage: 0, hitGrounded: true, hitAirborne: true }, { damage: 12, angle: 361, kbGrowth: 80, weightDepKb: 0, hitboxInteraction: 3, baseKb: 50, element: "normal", shieldDamage: 0, hitGrounded: true, hitAirborne: true }, { damage: 11, angle: 361, kbGrowth: 80, weightDepKb: 0, hitboxInteraction: 3, baseKb: 50, element: "normal", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, bair: { subactionIndex: 70, subactionName: "PlyKoopa5K_Share_ACTION_AttackAirB_figatree", totalFrames: 49, iasa: null, autoCancelBefore: 9, autoCancelAfter: 44, landingLag: 35, lcancelledLandingLag: 17, hitFrames: [ { start: 9, end: 10, hitboxes: [ 0 ] }, { start: 11, end: 17, hitboxes: [ 1 ] } ], hitboxes: [ { damage: 13, angle: 24, kbGrowth: 80, weightDepKb: 0, hitboxInteraction: 3, baseKb: 25, element: "slash", shieldDamage: 0, hitGrounded: true, hitAirborne: true }, { damage: 9, angle: 361, kbGrowth: 80, weightDepKb: 0, hitboxInteraction: 3, baseKb: 25, element: "slash", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, upair: { subactionIndex: 71, subactionName: "PlyKoopa5K_Share_ACTION_AttackAirHi_figatree", totalFrames: 47, iasa: 45, autoCancelBefore: 10, autoCancelAfter: 39, landingLag: 30, lcancelledLandingLag: 15, hitFrames: [ { start: 22, end: 25, hitboxes: [ 0 ] } ], hitboxes: [ { damage: 17, angle: 85, kbGrowth: 100, weightDepKb: 0, hitboxInteraction: 3, baseKb: 50, element: "normal", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, dair: { subactionIndex: 72, subactionName: "PlyKoopa5K_Share_ACTION_AttackAirLw_figatree", totalFrames: 79, iasa: 78, autoCancelBefore: 14, autoCancelAfter: 69, landingLag: 40, lcancelledLandingLag: 20, hitFrames: [ { start: 14, end: 15, hitboxes: [ 0 ] }, { start: 17, end: 18, hitboxes: [ 0 ] }, { start: 20, end: 21, hitboxes: [ 0 ] }, { start: 23, end: 24, hitboxes: [ 0 ] }, { start: 26, end: 27, hitboxes: [ 0 ] }, { start: 29, end: 30, hitboxes: [ 0 ] }, { start: 32, end: 33, hitboxes: [ 0 ] }, { start: 35, end: 36, hitboxes: [ 0 ] }, { start: 38, end: 39, hitboxes: [ 0 ] }, { start: 41, end: 42, hitboxes: [ 0 ] } ], hitboxes: [ { damage: 3, angle: 80, kbGrowth: 100, weightDepKb: 10, hitboxInteraction: 3, baseKb: 0, element: "slash", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, grab: { subactionIndex: 242, subactionName: "PlyKoopa5K_Share_ACTION_Catch_figatree", totalFrames: 39, iasa: null, hitFrames: [ { start: 8, end: 9, hitboxes: [ 0 ] } ], hitboxes: [ { damage: 0, angle: 361, kbGrowth: 100, weightDepKb: 0, hitboxInteraction: 2, baseKb: 0, element: "grab", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, dashgrab: { subactionIndex: 243, subactionName: "PlyKoopa5K_Share_ACTION_CatchDash_figatree", totalFrames: 49, iasa: null, hitFrames: [ { start: 9, end: 11, hitboxes: [ 0 ] } ], hitboxes: [ { damage: 0, angle: 361, kbGrowth: 100, weightDepKb: 0, hitboxInteraction: 2, baseKb: 0, element: "grab", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, pummel: { subactionIndex: 245, subactionName: "PlyKoopa5K_Share_ACTION_CatchAttack_figatree", totalFrames: 23, iasa: null, hitFrames: [ { start: 9, end: 9, hitboxes: [ 0 ] } ], hitboxes: [ { damage: 3, angle: 80, kbGrowth: 100, weightDepKb: 30, hitboxInteraction: 1, baseKb: 0, element: "normal", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, fthrow: { subactionIndex: 247, subactionName: "PlyKoopa5K_Share_ACTION_ThrowF_figatree", totalFrames: 59, iasa: null, "throw": { damage: 10, angle: 45, kbGrowth: 50, weightDepKb: 0, baseKb: 15, element: 0 }, hitFrames: [ ], hitboxes: [ ] }, bthrow: { subactionIndex: 248, subactionName: "PlyKoopa5K_Share_ACTION_ThrowB_figatree", totalFrames: 39, iasa: null, "throw": { damage: 10, angle: 45, kbGrowth: 50, weightDepKb: 0, baseKb: 15, element: 0 }, hitFrames: [ ], hitboxes: [ ] }, uthrow: { subactionIndex: 249, subactionName: "PlyKoopa5K_Share_ACTION_ThrowHi_figatree", totalFrames: 69, iasa: null, "throw": { damage: 2, angle: 70, kbGrowth: 100, weightDepKb: 30, baseKb: 0, element: 0 }, hitFrames: [ { start: 20, end: 23, hitboxes: [ 0 ] }, { start: 24, end: 27, hitboxes: [ 0 ] }, { start: 28, end: 31, hitboxes: [ 0 ] }, { start: 32, end: 35, hitboxes: [ 0 ] }, { start: 36, end: 39, hitboxes: [ 0 ] }, { start: 40, end: 43, hitboxes: [ 0 ] }, { start: 44, end: 47, hitboxes: [ 0 ] }, { start: 48, end: 51, hitboxes: [ 0 ] }, { start: 52, end: 55, hitboxes: [ 0 ] } ], hitboxes: [ { damage: 1, angle: 0, kbGrowth: 100, weightDepKb: 0, hitboxInteraction: 0, baseKb: 0, element: "slash", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, dthrow: { subactionIndex: 250, subactionName: "PlyKoopa5K_Share_ACTION_ThrowLw_figatree", totalFrames: 84, iasa: null, "throw": { damage: 0, angle: 50, kbGrowth: 30, weightDepKb: 0, baseKb: 18, element: 12 }, hitFrames: [ { start: 47, end: 47, hitboxes: [ 0 ] } ], hitboxes: [ { damage: 12, angle: 0, kbGrowth: 100, weightDepKb: 0, hitboxInteraction: 1, baseKb: 0, element: "normal", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, "0x127": { subactionIndex: 295, subactionName: "PlyKoopa5K_Share_ACTION_SpecialNStart_figatree", totalFrames: 21, iasa: null, hitFrames: [ ], hitboxes: [ ] }, "0x128": { subactionIndex: 296, subactionName: "PlyKoopa5K_Share_ACTION_SpecialN_figatree", totalFrames: 19, iasa: null, hitFrames: [ ], hitboxes: [ ] }, "0x129": { subactionIndex: 297, subactionName: "PlyKoopa5K_Share_ACTION_SpecialNEnd_figatree", totalFrames: 29, iasa: null, hitFrames: [ ], hitboxes: [ ] }, "0x12a": { subactionIndex: 298, subactionName: "PlyKoopa5K_Share_ACTION_SpecialAirNStart_figatree", totalFrames: 21, iasa: null, hitFrames: [ ], hitboxes: [ ] }, "0x12b": { subactionIndex: 299, subactionName: "PlyKoopa5K_Share_ACTION_SpecialAirN_figatree", totalFrames: 19, iasa: null, hitFrames: [ ], hitboxes: [ ] }, "0x12c": { subactionIndex: 300, subactionName: "PlyKoopa5K_Share_ACTION_SpecialAirNEnd_figatree", totalFrames: 29, iasa: null, hitFrames: [ ], hitboxes: [ ] }, "0x12d": { subactionIndex: 301, subactionName: "PlyKoopa5K_Share_ACTION_SpecialSStart_figatree", totalFrames: 59, iasa: null, hitFrames: [ { start: 16, end: 18, hitboxes: [ 0, 1, 2, 3 ] } ], hitboxes: [ { damage: 8, angle: 0, kbGrowth: 100, weightDepKb: 0, hitboxInteraction: 1, baseKb: 0, element: "grab", shieldDamage: 0, hitGrounded: false, hitAirborne: true }, { damage: 8, angle: 0, kbGrowth: 100, weightDepKb: 0, hitboxInteraction: 1, baseKb: 0, element: "grab", shieldDamage: 0, hitGrounded: true, hitAirborne: false }, { damage: 12, angle: 80, kbGrowth: 90, weightDepKb: 0, hitboxInteraction: 3, baseKb: 80, element: "slash", shieldDamage: 0, hitGrounded: true, hitAirborne: true }, { damage: 10, angle: 80, kbGrowth: 90, weightDepKb: 0, hitboxInteraction: 3, baseKb: 80, element: "slash", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, "0x12e": { subactionIndex: 302, subactionName: "PlyKoopa5K_Share_ACTION_SpecialSHit_figatree", totalFrames: 29, iasa: null, "throw": { damage: 11, angle: 30, kbGrowth: 20, weightDepKb: 0, baseKb: 12, element: 8 }, hitFrames: [ { start: 18, end: 19, hitboxes: [ 0 ] }, { start: 21, end: 22, hitboxes: [ 1 ] } ], hitboxes: [ { damage: 4, angle: 80, kbGrowth: 0, weightDepKb: 0, hitboxInteraction: 2, baseKb: 0, element: "slash", shieldDamage: 0, hitGrounded: true, hitAirborne: true }, { damage: 4, angle: 80, kbGrowth: 15, weightDepKb: 0, hitboxInteraction: 2, baseKb: 140, element: "slash", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, "0x12f": { subactionIndex: 303, subactionName: "PlyKoopa5K_Share_ACTION_SpecialSHit_figatree", totalFrames: 29, iasa: null, hitFrames: [ { start: 18, end: 19, hitboxes: [ 0 ] } ], hitboxes: [ { damage: 4, angle: 80, kbGrowth: 0, weightDepKb: 0, hitboxInteraction: 2, baseKb: 0, element: "slash", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, "0x130": { subactionIndex: 304, subactionName: "PlyKoopa5K_Share_ACTION_SpecialSEndF_figatree", totalFrames: 39, iasa: null, "throw": { damage: 11, angle: 30, kbGrowth: 20, weightDepKb: 0, baseKb: 12, element: 8 }, hitFrames: [ { start: 17, end: 18, hitboxes: [ 0 ] } ], hitboxes: [ { damage: 4, angle: 80, kbGrowth: 15, weightDepKb: 0, hitboxInteraction: 2, baseKb: 140, element: "slash", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, "0x131": { subactionIndex: 305, subactionName: "PlyKoopa5K_Share_ACTION_SpecialSEndB_figatree", totalFrames: 39, iasa: null, "throw": { damage: 11, angle: 361, kbGrowth: 100, weightDepKb: 0, baseKb: 15, element: 0 }, hitFrames: [ ], hitboxes: [ ] }, "0x132": { subactionIndex: 306, subactionName: "PlyKoopa5K_Share_ACTION_SpecialAirSStart_figatree", totalFrames: 59, iasa: null, "throw": { damage: 11, angle: 30, kbGrowth: 20, weightDepKb: 0, baseKb: 12, element: 8 }, hitFrames: [ { start: 16, end: 18, hitboxes: [ 0, 1, 2, 3 ] }, { start: 50, end: 51, hitboxes: [ 4 ] }, { start: 53, end: 54, hitboxes: [ 5 ] } ], hitboxes: [ { damage: 8, angle: 0, kbGrowth: 100, weightDepKb: 0, hitboxInteraction: 1, baseKb: 0, element: "grab", shieldDamage: 0, hitGrounded: false, hitAirborne: true }, { damage: 8, angle: 0, kbGrowth: 100, weightDepKb: 0, hitboxInteraction: 1, baseKb: 0, element: "grab", shieldDamage: 0, hitGrounded: true, hitAirborne: false }, { damage: 12, angle: 80, kbGrowth: 90, weightDepKb: 0, hitboxInteraction: 3, baseKb: 80, element: "slash", shieldDamage: 0, hitGrounded: true, hitAirborne: true }, { damage: 10, angle: 80, kbGrowth: 90, weightDepKb: 0, hitboxInteraction: 3, baseKb: 80, element: "slash", shieldDamage: 0, hitGrounded: true, hitAirborne: true }, { damage: 4, angle: 80, kbGrowth: 0, weightDepKb: 0, hitboxInteraction: 2, baseKb: 0, element: "slash", shieldDamage: 0, hitGrounded: true, hitAirborne: true }, { damage: 4, angle: 80, kbGrowth: 15, weightDepKb: 0, hitboxInteraction: 2, baseKb: 140, element: "slash", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, "0x133": { subactionIndex: 307, subactionName: "PlyKoopa5K_Share_ACTION_SpecialAirSHit_figatree", totalFrames: 29, iasa: null, "throw": { damage: 11, angle: 30, kbGrowth: 20, weightDepKb: 0, baseKb: 12, element: 8 }, hitFrames: [ { start: 18, end: 19, hitboxes: [ 0 ] }, { start: 21, end: 22, hitboxes: [ 1 ] } ], hitboxes: [ { damage: 4, angle: 80, kbGrowth: 0, weightDepKb: 0, hitboxInteraction: 2, baseKb: 0, element: "slash", shieldDamage: 0, hitGrounded: true, hitAirborne: true }, { damage: 4, angle: 80, kbGrowth: 15, weightDepKb: 0, hitboxInteraction: 2, baseKb: 140, element: "slash", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, "0x134": { subactionIndex: 308, subactionName: "PlyKoopa5K_Share_ACTION_SpecialAirSHit_figatree", totalFrames: 29, iasa: null, "throw": { damage: 11, angle: 30, kbGrowth: 20, weightDepKb: 0, baseKb: 12, element: 8 }, hitFrames: [ { start: 18, end: 19, hitboxes: [ 0 ] }, { start: 21, end: 22, hitboxes: [ 1 ] } ], hitboxes: [ { damage: 4, angle: 80, kbGrowth: 0, weightDepKb: 0, hitboxInteraction: 2, baseKb: 0, element: "slash", shieldDamage: 0, hitGrounded: true, hitAirborne: true }, { damage: 4, angle: 80, kbGrowth: 15, weightDepKb: 0, hitboxInteraction: 2, baseKb: 140, element: "slash", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, "0x135": { subactionIndex: 309, subactionName: "PlyKoopa5K_Share_ACTION_SpecialAirSEndF_figatree", totalFrames: 39, iasa: null, "throw": { damage: 11, angle: 30, kbGrowth: 20, weightDepKb: 0, baseKb: 12, element: 8 }, hitFrames: [ { start: 17, end: 18, hitboxes: [ 0 ] } ], hitboxes: [ { damage: 4, angle: 80, kbGrowth: 15, weightDepKb: 0, hitboxInteraction: 2, baseKb: 140, element: "slash", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, "0x136": { subactionIndex: 310, subactionName: "PlyKoopa5K_Share_ACTION_SpecialAirSEndB_figatree", totalFrames: 39, iasa: null, "throw": { damage: 10, angle: 361, kbGrowth: 100, weightDepKb: 0, baseKb: 15, element: 0 }, hitFrames: [ ], hitboxes: [ ] }, "0x137": { subactionIndex: 311, subactionName: "PlyKoopa5K_Share_ACTION_SpecialHi_figatree", totalFrames: 79, iasa: null, hitFrames: [ { start: 5, end: 6, hitboxes: [ 0 ] }, { start: 7, end: 10, hitboxes: [ 1 ] }, { start: 11, end: 14, hitboxes: [ 1 ] }, { start: 15, end: 18, hitboxes: [ 1 ] }, { start: 19, end: 22, hitboxes: [ 1 ] }, { start: 23, end: 26, hitboxes: [ 1 ] }, { start: 27, end: 30, hitboxes: [ 1 ] }, { start: 31, end: 34, hitboxes: [ 2 ] }, { start: 35, end: 38, hitboxes: [ 2 ] }, { start: 39, end: 42, hitboxes: [ 2 ] }, { start: 43, end: 46, hitboxes: [ 2 ] }, { start: 47, end: 50, hitboxes: [ 2 ] }, { start: 51, end: 54, hitboxes: [ 2 ] } ], hitboxes: [ { damage: 13, angle: 80, kbGrowth: 80, weightDepKb: 0, hitboxInteraction: 3, baseKb: 90, element: "normal", shieldDamage: 3, hitGrounded: true, hitAirborne: true }, { damage: 5, angle: 90, kbGrowth: 50, weightDepKb: 0, hitboxInteraction: 3, baseKb: 80, element: "slash", shieldDamage: 0, hitGrounded: true, hitAirborne: true }, { damage: 3, angle: 70, kbGrowth: 50, weightDepKb: 0, hitboxInteraction: 3, baseKb: 50, element: "slash", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, "0x138": { subactionIndex: 312, subactionName: "PlyKoopa5K_Share_ACTION_SpecialAirHi_figatree", totalFrames: 79, iasa: null, hitFrames: [ { start: 5, end: 6, hitboxes: [ 0 ] }, { start: 7, end: 10, hitboxes: [ 1 ] }, { start: 11, end: 14, hitboxes: [ 1 ] }, { start: 15, end: 18, hitboxes: [ 1 ] }, { start: 19, end: 22, hitboxes: [ 1 ] }, { start: 23, end: 26, hitboxes: [ 1 ] }, { start: 27, end: 30, hitboxes: [ 1 ] }, { start: 31, end: 34, hitboxes: [ 2 ] }, { start: 35, end: 38, hitboxes: [ 2 ] }, { start: 39, end: 42, hitboxes: [ 2 ] }, { start: 43, end: 46, hitboxes: [ 2 ] }, { start: 47, end: 50, hitboxes: [ 2 ] }, { start: 51, end: 54, hitboxes: [ 2 ] } ], hitboxes: [ { damage: 10, angle: 80, kbGrowth: 60, weightDepKb: 0, hitboxInteraction: 3, baseKb: 80, element: "normal", shieldDamage: 3, hitGrounded: true, hitAirborne: true }, { damage: 3, angle: 84, kbGrowth: 20, weightDepKb: 0, hitboxInteraction: 3, baseKb: 50, element: "slash", shieldDamage: 0, hitGrounded: true, hitAirborne: true }, { damage: 2, angle: 84, kbGrowth: 20, weightDepKb: 0, hitboxInteraction: 3, baseKb: 50, element: "slash", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, "0x139": { subactionIndex: 313, subactionName: "PlyKoopa5K_Share_ACTION_SpecialLw_figatree", totalFrames: 39, iasa: null, hitFrames: [ ], hitboxes: [ ] }, "0x13a": { subactionIndex: 314, subactionName: "PlyKoopa5K_Share_ACTION_SpecialAirLw_figatree", totalFrames: 31, iasa: null, hitFrames: [ ], hitboxes: [ ] }, "0x13b": { subactionIndex: 315, subactionName: "PlyKoopa5K_Share_ACTION_SpecialLwLanding_figatree", totalFrames: 59, iasa: null, hitFrames: [ { start: 1, end: 2, hitboxes: [ 0 ] } ], hitboxes: [ { damage: 8, angle: 76, kbGrowth: 72, weightDepKb: 0, hitboxInteraction: 3, baseKb: 60, element: "normal", shieldDamage: 5, hitGrounded: true, hitAirborne: false } ] } }; var Falco = { jab1: { subactionIndex: 46, subactionName: "PlyFalco5K_Share_ACTION_Attack11_figatree", totalFrames: 17, iasa: 16, hitFrames: [ { start: 2, end: 3, hitboxes: [ 0 ] } ], hitboxes: [ { damage: 4, angle: 70, kbGrowth: 100, weightDepKb: 0, hitboxInteraction: 3, baseKb: 0, element: "normal", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, jab2: { subactionIndex: 47, subactionName: "PlyFalco5K_Share_ACTION_Attack12_figatree", totalFrames: 19, iasa: 18, hitFrames: [ { start: 2, end: 3, hitboxes: [ 0 ] } ], hitboxes: [ { damage: 4, angle: 50, kbGrowth: 100, weightDepKb: 0, hitboxInteraction: 3, baseKb: 0, element: "normal", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, jab3: null, rapidjabs_start: { subactionIndex: 49, subactionName: "PlyFalco5K_Share_ACTION_Attack100Start_figatree", totalFrames: 6, iasa: null, hitFrames: [ ], hitboxes: [ ] }, rapidjabs_loop: { subactionIndex: 50, subactionName: "PlyFalco5K_Share_ACTION_Attack100Loop_figatree", totalFrames: 35, iasa: null, hitFrames: [ { start: 2, end: 3, hitboxes: [ 0 ] } ], hitboxes: [ { damage: 1, angle: 80, kbGrowth: 80, weightDepKb: 0, hitboxInteraction: 3, baseKb: 10, element: "normal", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, rapidjabs_end: { subactionIndex: 51, subactionName: "PlyFalco5K_Share_ACTION_Attack100End_figatree", totalFrames: 8, iasa: null, hitFrames: [ ], hitboxes: [ ] }, dashattack: { subactionIndex: 52, subactionName: "PlyFalco5K_Share_ACTION_AttackDash_figatree", totalFrames: 39, iasa: 36, hitFrames: [ { start: 4, end: 7, hitboxes: [ 0 ] }, { start: 8, end: 17, hitboxes: [ 1 ] } ], hitboxes: [ { damage: 9, angle: 72, kbGrowth: 90, weightDepKb: 0, hitboxInteraction: 3, baseKb: 35, element: "normal", shieldDamage: 1, hitGrounded: true, hitAirborne: true }, { damage: 6, angle: 72, kbGrowth: 90, weightDepKb: 0, hitboxInteraction: 3, baseKb: 20, element: "normal", shieldDamage: 1, hitGrounded: true, hitAirborne: true } ] }, ftilt_h: { subactionIndex: 53, subactionName: "PlyFalco5K_Share_ACTION_AttackS3Hi_figatree", totalFrames: 26, iasa: null, hitFrames: [ { start: 5, end: 9, hitboxes: [ 0 ] } ], hitboxes: [ { damage: 9, angle: 361, kbGrowth: 100, weightDepKb: 0, hitboxInteraction: 3, baseKb: 0, element: "normal", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, ftilt_mh: { subactionIndex: 54, subactionName: "PlyFalco5K_Share_ACTION_AttackS3HiS_figatree", totalFrames: 26, iasa: null, hitFrames: [ { start: 5, end: 9, hitboxes: [ 0 ] } ], hitboxes: [ { damage: 9, angle: 361, kbGrowth: 100, weightDepKb: 0, hitboxInteraction: 3, baseKb: 0, element: "normal", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, ftilt_m: { subactionIndex: 55, subactionName: "PlyFalco5K_Share_ACTION_AttackS3S_figatree", totalFrames: 26, iasa: null, hitFrames: [ { start: 5, end: 9, hitboxes: [ 0 ] } ], hitboxes: [ { damage: 9, angle: 361, kbGrowth: 100, weightDepKb: 0, hitboxInteraction: 3, baseKb: 0, element: "normal", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, ftilt_ml: { subactionIndex: 56, subactionName: "PlyFalco5K_Share_ACTION_AttackS3LwS_figatree", totalFrames: 26, iasa: null, hitFrames: [ { start: 5, end: 9, hitboxes: [ 0 ] } ], hitboxes: [ { damage: 9, angle: 361, kbGrowth: 100, weightDepKb: 0, hitboxInteraction: 3, baseKb: 0, element: "normal", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, ftilt_l: { subactionIndex: 57, subactionName: "PlyFalco5K_Share_ACTION_AttackS3Lw_figatree", totalFrames: 26, iasa: null, hitFrames: [ { start: 5, end: 9, hitboxes: [ 0 ] } ], hitboxes: [ { damage: 9, angle: 361, kbGrowth: 100, weightDepKb: 0, hitboxInteraction: 3, baseKb: 0, element: "normal", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, utilt: { subactionIndex: 58, subactionName: "PlyFalco5K_Share_ACTION_AttackHi3_figatree", totalFrames: 23, iasa: 23, hitFrames: [ { start: 5, end: 11, hitboxes: [ 0, 1 ] } ], hitboxes: [ { damage: 9, angle: 97, kbGrowth: 120, weightDepKb: 0, hitboxInteraction: 3, baseKb: 30, element: "normal", shieldDamage: 0, hitGrounded: true, hitAirborne: true }, { damage: 9, angle: 90, kbGrowth: 120, weightDepKb: 0, hitboxInteraction: 3, baseKb: 30, element: "normal", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, dtilt: { subactionIndex: 59, subactionName: "PlyFalco5K_Share_ACTION_AttackLw3_figatree", totalFrames: 29, iasa: 28, hitFrames: [ { start: 7, end: 9, hitboxes: [ 0 ] } ], hitboxes: [ { damage: 13, angle: 75, kbGrowth: 125, weightDepKb: 0, hitboxInteraction: 3, baseKb: 25, element: "slash", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, fsmash_h: null, fsmash_mh: null, fsmash_m: { subactionIndex: 62, subactionName: "PlyFalco5K_Share_ACTION_AttackS4_figatree", totalFrames: 39, chargeFrame: 7, iasa: null, hitFrames: [ { start: 12, end: 16, hitboxes: [ 0, 1 ] }, { start: 17, end: 21, hitboxes: [ 2 ] } ], hitboxes: [ { damage: 17, angle: 361, kbGrowth: 90, weightDepKb: 0, hitboxInteraction: 2, baseKb: 40, element: "normal", shieldDamage: 0, hitGrounded: true, hitAirborne: true }, { damage: 17, angle: 110, kbGrowth: 90, weightDepKb: 0, hitboxInteraction: 2, baseKb: 40, element: "normal", shieldDamage: 0, hitGrounded: true, hitAirborne: true }, { damage: 14, angle: 361, kbGrowth: 105, weightDepKb: 0, hitboxInteraction: 2, baseKb: 10, element: "normal", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, fsmash_ml: null, fsmash_l: null, usmash: { subactionIndex: 66, subactionName: "PlyFalco5K_Share_ACTION_AttackHi4_figatree", totalFrames: 43, chargeFrame: 2, iasa: null, hitFrames: [ { start: 7, end: 10, hitboxes: [ 0 ] }, { start: 11, end: 15, hitboxes: [ 1 ] } ], hitboxes: [ { damage: 14, angle: 95, kbGrowth: 100, weightDepKb: 0, hitboxInteraction: 3, baseKb: 25, element: "normal", shieldDamage: 0, hitGrounded: true, hitAirborne: true }, { damage: 12, angle: 361, kbGrowth: 100, weightDepKb: 0, hitboxInteraction: 3, baseKb: 10, element: "normal", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, dsmash: { subactionIndex: 67, subactionName: "PlyFalco5K_Share_ACTION_AttackLw4_figatree", totalFrames: 49, chargeFrame: 2, iasa: 46, hitFrames: [ { start: 6, end: 10, hitboxes: [ 0, 1 ] } ], hitboxes: [ { damage: 16, angle: 25, kbGrowth: 70, weightDepKb: 0, hitboxInteraction: 3, baseKb: 20, element: "normal", shieldDamage: 0, hitGrounded: true, hitAirborne: true }, { damage: 13, angle: 80, kbGrowth: 70, weightDepKb: 0, hitboxInteraction: 3, baseKb: 20, element: "normal", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, nair: { subactionIndex: 68, subactionName: "PlyFalco5K_Share_ACTION_AttackAirN_figatree", totalFrames: 49, iasa: 42, autoCancelBefore: 4, autoCancelAfter: 36, landingLag: 15, lcancelledLandingLag: 7, hitFrames: [ { start: 4, end: 7, hitboxes: [ 0 ] }, { start: 8, end: 31, hitboxes: [ 1 ] } ], hitboxes: [ { damage: 12, angle: 361, kbGrowth: 100, weightDepKb: 0, hitboxInteraction: 3, baseKb: 10, element: "normal", shieldDamage: 0, hitGrounded: true, hitAirborne: true }, { damage: 9, angle: 361, kbGrowth: 100, weightDepKb: 0, hitboxInteraction: 3, baseKb: 0, element: "normal", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, fair: { subactionIndex: 69, subactionName: "PlyFalco5K_Share_ACTION_AttackAirF_figatree", totalFrames: 59, iasa: 53, autoCancelBefore: 6, autoCancelAfter: 48, landingLag: 22, lcancelledLandingLag: 11, hitFrames: [ { start: 6, end: 8, hitboxes: [ 0 ] }, { start: 16, end: 18, hitboxes: [ 1 ] }, { start: 24, end: 26, hitboxes: [ 2 ] }, { start: 33, end: 35, hitboxes: [ 3 ] }, { start: 43, end: 45, hitboxes: [ 4 ] } ], hitboxes: [ { damage: 9, angle: 361, kbGrowth: 100, weightDepKb: 0, hitboxInteraction: 3, baseKb: 10, element: "normal", shieldDamage: 0, hitGrounded: true, hitAirborne: true }, { damage: 8, angle: 361, kbGrowth: 100, weightDepKb: 0, hitboxInteraction: 3, baseKb: 10, element: "normal", shieldDamage: 0, hitGrounded: true, hitAirborne: true }, { damage: 7, angle: 361, kbGrowth: 100, weightDepKb: 0, hitboxInteraction: 3, baseKb: 10, element: "normal", shieldDamage: 0, hitGrounded: true, hitAirborne: true }, { damage: 5, angle: 361, kbGrowth: 100, weightDepKb: 0, hitboxInteraction: 3, baseKb: 10, element: "normal", shieldDamage: 0, hitGrounded: true, hitAirborne: true }, { damage: 3, angle: 361, kbGrowth: 100, weightDepKb: 0, hitboxInteraction: 3, baseKb: 50, element: "normal", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, bair: { subactionIndex: 70, subactionName: "PlyFalco5K_Share_ACTION_AttackAirB_figatree", totalFrames: 39, iasa: 38, autoCancelBefore: 4, autoCancelAfter: 22, landingLag: 20, lcancelledLandingLag: 10, hitFrames: [ { start: 4, end: 7, hitboxes: [ 0, 1 ] }, { start: 8, end: 19, hitboxes: [ 1 ] } ], hitboxes: [ { damage: 15, angle: 361, kbGrowth: 100, weightDepKb: 0, hitboxInteraction: 3, baseKb: 0, element: "normal", shieldDamage: 0, hitGrounded: true, hitAirborne: true }, { damage: 9, angle: 361, kbGrowth: 100, weightDepKb: 0, hitboxInteraction: 3, baseKb: 0, element: "normal", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, upair: { subactionIndex: 71, subactionName: "PlyFalco5K_Share_ACTION_AttackAirHi_figatree", totalFrames: 39, iasa: 36, autoCancelBefore: 8, autoCancelAfter: 25, landingLag: 18, lcancelledLandingLag: 9, hitFrames: [ { start: 8, end: 9, hitboxes: [ 0, 1 ] }, { start: 11, end: 14, hitboxes: [ 2, 3 ] } ], hitboxes: [ { damage: 6, angle: 90, kbGrowth: 20, weightDepKb: 0, hitboxInteraction: 1, baseKb: 40, element: "slash", shieldDamage: 0, hitGrounded: true, hitAirborne: true }, { damage: 6, angle: 90, kbGrowth: 20, weightDepKb: 0, hitboxInteraction: 1, baseKb: 30, element: "slash", shieldDamage: 0, hitGrounded: true, hitAirborne: true }, { damage: 10, angle: 70, kbGrowth: 120, weightDepKb: 0, hitboxInteraction: 3, baseKb: 22, element: "normal", shieldDamage: 0, hitGrounded: true, hitAirborne: true }, { damage: 10, angle: 90, kbGrowth: 20, weightDepKb: 0, hitboxInteraction: 1, baseKb: 30, element: "slash", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, dair: { subactionIndex: 72, subactionName: "PlyFalco5K_Share_ACTION_AttackAirLw_figatree", totalFrames: 49, iasa: null, autoCancelBefore: 5, autoCancelAfter: 29, landingLag: 18, lcancelledLandingLag: 9, hitFrames: [ { start: 5, end: 14, hitboxes: [ 0 ] }, { start: 15, end: 24, hitboxes: [ 1 ] } ], hitboxes: [ { damage: 12, angle: 290, kbGrowth: 100, weightDepKb: 0, hitboxInteraction: 3, baseKb: 10, element: "normal", shieldDamage: 0, hitGrounded: true, hitAirborne: true }, { damage: 9, angle: 290, kbGrowth: 100, weightDepKb: 0, hitboxInteraction: 3, baseKb: 20, element: "normal", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, grab: { subactionIndex: 242, subactionName: "PlyFalco5K_Share_ACTION_Catch_figatree", totalFrames: 29, iasa: null, hitFrames: [ { start: 6, end: 7, hitboxes: [ 0 ] } ], hitboxes: [ { damage: 0, angle: 361, kbGrowth: 100, weightDepKb: 0, hitboxInteraction: 2, baseKb: 0, element: "grab", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, dashgrab: { subactionIndex: 243, subactionName: "PlyFalco5K_Share_ACTION_CatchDash_figatree", totalFrames: 39, iasa: null, hitFrames: [ { start: 11, end: 12, hitboxes: [ 0 ] } ], hitboxes: [ { damage: 0, angle: 361, kbGrowth: 100, weightDepKb: 0, hitboxInteraction: 2, baseKb: 0, element: "grab", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, pummel: { subactionIndex: 245, subactionName: "PlyFalco5K_Share_ACTION_CatchAttack_figatree", totalFrames: 23, iasa: null, hitFrames: [ { start: 4, end: 4, hitboxes: [ 0 ] } ], hitboxes: [ { damage: 3, angle: 80, kbGrowth: 100, weightDepKb: 30, hitboxInteraction: 1, baseKb: 0, element: "normal", shieldDamage: 0, hitGrounded: true, hitAirborne: true } ] }, fthrow: { subactionIndex: 247, subactionName: "PlyFalco5K_Share_ACTION_ThrowF_figatree", totalFrames: 33, iasa: null, "throw": { damage: 3, angle: 45, kbGrowth: 135, weightDepKb: 0, baseKb: 8, element: 12 }, hitFrames: [ { start: 10, end: 10, hitboxes: [ 0 ] } ], hitboxes: [ { damage: 4, angle: 60, kbGrowth: 180, weightDepKb: 0, hitboxInteraction: 0, baseKb: 60, element: "normal", shieldDamage: 1, hitGrounded: true, hitAirborne: true } ] }, bthrow: { subactionIndex: 248, subactionName: "PlyFalco5K_Share_ACTION_ThrowB_figatree", totalFrames: 38, projectiles: [ 15, 18, 21 ], iasa: null, "throw": { damage: 2, angle: 56, kbGrowth: 85, weightDepKb: 0, baseKb: 20, element: 0 }, hitFrames: [ ], hitboxes: [ ] }, uthrow: { subactionIndex: 249, subactionName: