require("config.util") local mods = {} function mods.no_bounce_2a(pat) pat:update_frame(303, 0, 3, { hit_ani_ground = 0 }) end function mods.startup_fa(pat) pat:update_frame(301, 0, 0, { duration = 3 }) pat:update_frame(301, 0, 1, { duration = 4 }) end function mods.recovery_ja(pat) for idx = 4, 12 do pat:update_frame(306, 0, idx, function(frame) frame.duration = frame.duration - 1 end) end end function mods.hitbox_j6a(pat) local boxes = pat:get_frame(307, 1, 0).attackbox for idx = 1, 5 do pat:update_frame(307, 1, idx, function(frame) frame.attackbox = table.map(boxes, table.shallow_copy) end) end end function mods.hurtbox_j6a(pat) for idx = 0, 5 do pat:update_frame(307, 1, idx, function(frame) table.remove(frame.hurtbox) end) end end function mods.startup_j2a(pat) pat:update_frame(308, 0, 0, { duration = 3 }) pat:update_frame(308, 0, 1, { duration = 3 }) pat:update_frame(308, 0, 2, { duration = 4 }) end function mods.bounce_j2a(pat) for idx = 1, 2 do pat:update_frame(308, 1, idx, { hit_ani_air = 88, hit_ani_ground = 88 }) end end function mods.modify_6b(pat) table.foreach({{0, 0}, {0, 1}, {4, 0}, {5, 0}}, function(off, idx) pat:update_frame(801, off, idx, { attack_level = 2, -- heavy untech = 45, hit_effect = 3, combo_correction = 1, -- lift attack hit_ani_ground = 71, velocity_y = 1500 }) end) end function mods.hurtbox_2c(pat) for idx = 2, 4 do pat:update_frame(412, 0, idx, function(frame) table.remove(frame.hurtbox, 2) end) end end function mods.m_cancel_6c(pat) pat:update_frame(411, 0, 11, function(frame) set_fflag(frame, FF_MOTION_CANCEL) end) end function mods.m_cancel_j6c(pat) pat:update_frame(415, 0, 11, function(frame) set_fflag(frame, FF_MOTION_CANCEL) end) end function mods.m_cancel_j2c(pat) pat:update_frame(416, 0, 11, function(frame) set_fflag(frame, FF_MOTION_CANCEL) end) end function mods.startup_ground_melt(pat) for _, seq_id in ipairs({520, 521, 523}) do for idx = 0, 6 do pat:update_frame(seq_id, 0, idx, { duration = 3 }) end for idx = 4, 7 do pat:update_frame(seq_id, 1, idx, function(frame) set_fflag(frame, FF_MOTION_CANCEL) end) end end pat:update_frame(815, 7, 0, { duration = 15 }) pat:update_frame(815, 9, 0, { duration = 15 }) end function mods.startup_ten_suns(pat) pat:remove_frame(604, 0, 5) pat:remove_frame(604, 0, 5) end function mods.startup_j66_15(pat) pat:update_frame(202, 0, 3, { duration = 5 }) pat:update_frame(202, 0, 4, { duration = 5 }) pat:remove_frame(202, 0, 1) pat:remove_frame(202, 0, 1) end function mods.startup_j44_16(pat) for idx = 0, 3 do pat:update_frame(203, 0, idx, { duration = 4 }) end end function mods.startup_j44_12(pat) pat:set_frame(203, 0, 1, pat:get_frame(203, 0, 0)) pat:set_frame(203, 0, 2, pat:get_frame(203, 0, 3)) for idx = 0, 3 do pat:update_frame(203, 0, idx, { duration = 3 }) end end function mods.startup_flight_12(pat) pat:update_frame(214, 0, 2, { duration = 3 }) end function mods.startup_6dd(pat) pat:update_frame(223, 0, 0, { duration = 7 }) end return function(pat) mods.no_bounce_2a(pat) mods.startup_fa(pat) mods.recovery_ja(pat) mods.hitbox_j6a(pat) mods.hurtbox_j6a(pat) -- mods.startup_j2a(pat) -- mods.bounce_j2a(pat) mods.modify_6b(pat) mods.hurtbox_2c(pat) mods.startup_ground_melt(pat) mods.startup_ten_suns(pat) if config:get("utsuho", "j66", "reduce_startup") then mods.startup_j66_15(pat) end if config:get("utsuho", "j44", "reduce_startup") then mods.startup_j44_12(pat) end if config:get("utsuho", "flight", "reduce_startup") then mods.startup_flight_12(pat) end mods.startup_6dd(pat) end