require("config.util") local mods = {} local function remove_last_hurtbox(frame) table.remove(frame.hurtbox) end local function hurtbox_a_da(pat, seq, base) local ref_box = pat:get_frame(seq, 0, base).hurtbox[2] local ref_height = math.abs(ref_box.y2 - ref_box.y1) for idx = base + 1, base + 2 do pat:update_frame(seq, 0, idx, function(frame) local box = frame.hurtbox[2] box.x1 = ref_box.x1 box.x2 = ref_box.x2 box.y2 = box.y1 + ref_height if idx == base + 2 then box.x2 = box.x2 - 15 end end) end end function mods.hurtbox_a(pat) hurtbox_a_da(pat, 300, 6) hurtbox_a_da(pat, 330, 6) end function mods.hurtbox_fa(pat) pat:update_frame(301, 0, 8, function(frame) frame.hurtbox[2] = pat:get_frame(301, 0, 9).hurtbox[2] end) pat:update_frame(301, 0, 6, remove_last_hurtbox) pat:update_frame(301, 0, 7, remove_last_hurtbox) pat:update_frame(301, 0, 9, remove_last_hurtbox) for _, spec in ipairs({{6, 40}, {7, 40}, {8, 15}}) do local idx, clip = table.unpack(spec) pat:update_frame(301, 0, idx, function(frame) frame.hurtbox[2].x2 = frame.hurtbox[2].x2 - clip end) end end function mods.hurtbox_fa_based_on_aa(pat) for idx = 6, 9 do pat:update_frame(301, 0, idx, function(frame) frame.hurtbox = pat:get_frame(320, 0, idx).hurtbox end) end end function mods.hurtbox_da(pat) pat:update_frame(305, 0, 4, function(frame) table.remove(frame.hurtbox) table.remove(frame.hurtbox) end) hurtbox_a_da(pat, 305, 4) end function mods.damage_parameters_j2a(pat, damage, proration, limit) for idx = 5, 8 do pat:update_frame(308, 0, idx, { damage = damage, proration = proration, limit = limit }) end end return function(pat) mods.hurtbox_a(pat) mods.hurtbox_fa(pat) -- mods.hurtbox_fa_based_on_aa(pat) mods.hurtbox_da(pat) -- mods.damage_parameters_j2a(pat, 350, 950, 10) -- mods.damage_parameters_j2a(pat, 350, 960, 10) end