local mods = {} function mods.teleport_invuln_startup(pat) local function set_graze(frame) set_fflag(frame, FF_GRAZE) end local function set_invinc(frame) set_fflag(frame, FF_MELEE_INV) end for frame = 0, 5 do pat:update_frame(560, 0, frame, set_invinc) end for frame = 0, 5 do pat:update_frame(561, 0, frame, set_graze) end end function mods.add_236_knockdown(pat) local boxes = pat:get_frame(416, 0, 7).attackbox pat:update_frame(416, 0, 6, function(frame) frame.attackbox = table.map(boxes, table.shallow_copy) end) for idx = 0, 2 do pat:update_frame(812, 0, idx, { untech = 6000 }) end end function mods.add_623_knockdown(pat) for move = 502, 503 do for idx = 0, 1 do pat:update_frame(move, 2, idx, function(frame) frame.untech = 9000 set_fflag(frame, FF_CANCEL) frame.damage = 500 end) end for idx = 0, 2 do pat:update_frame(move, 3, idx, function(frame) set_fflag(frame, FF_CANCEL) end) end for idx = 0, 1 do pat:update_frame(move, 5, idx, function(frame) set_fflag(frame, FF_CANCEL) end) end end for idx = 0, 1 do pat:update_frame(501, 2, idx, { untech = 9000 }) end for idx = 0, 1 do pat:update_frame(500, 2, idx, { untech = 9000 }) end end function mods.change_j2a_damage(pat) pat:update_frame(308, 0, 8, { damage = 800, proration = 800 }) end function mods.fix_timeparadox(pat) for idx = 4, 5 do pat:update_frame(570, 2, idx, { damage = 800, proration = 850}) pat:update_frame(823, 4, idx, { untech = 120, damage = 500, proration = 900, launch_vector_y = 2500 }) end -- recovery 52 - 9 for idx = 8, 10 do pat:update_frame(570, 2, idx, { duration = 3 }) end for idx = 0, 4 do pat:update_frame(570, 0, idx, { duration = 2 }) end for idx = 4, 5 do pat:update_frame(571, 4, idx, { damage = 900, untech = 6000 }) end end function mods.modify_j5a_untech(pat) pat:update_frame(306, 0, 7, { untech = 30 }) end function mods.modify_dial_a_untech(pat) pat:update_frame(322, 0, 3, { untech = 6000 }) end function mods.cancel(pat) -- pat:get_sequence(300, 0):set_priority(10, 10) -- 5A pat:get_sequence(320, 0):set_priority(10, 10) -- 5AA pat:get_sequence(303, 0):set_priority(10, 20) -- 2A pat:update_frame(303, 0, 2, { duration = 1 }) -- pat:get_sequence(330, 0):set_priority(10, 10) -- 4A pat:get_sequence(321, 0):set_priority(10, 20) pat:get_sequence(322, 0):set_priority(20, 30) end function mods.modify_j6a_untech(pat) pat:update_frame(307, 0, 3, { untech = 6000, damage = 750 }) end function mods.modify_redslash_untech(pat) pat:update_frame(855, 2, 0, { untech = 6000 }) end function mods.modify_blueslash_untech(pat) pat:update_frame(852, 1, 0, { untech = 6000 }) end function mods.modify_pinkthing(pat) for frame = 0, 2 do pat:update_frame(603, 0, frame, { duration = 1 }) pat:update_frame(653, 0, frame, { duration = 1 }) end for frame = 4, 8 do pat:update_frame(603, 0, frame, { duration = 1 }) pat:update_frame(653, 0, frame, { duration = 1 }) end pat:update_frame(853, 10, 0, { untech = 6000, damage = 140 }) pat:update_frame(853, 9, 0, { untech = 6000, damage = 140 }) pat:update_frame(853, 10, 1, { untech = 6000, damage = 140 }) end function mods.modify_66b(pat) pat:update_frame(408, 0, 3, { untech = 6000 }) pat:update_frame(408, 0, 4, { untech = 6000 }) pat:update_frame(408, 0, 5, { untech = 6000 }) pat:get_sequence(408, 0):set_priority(50, 50) end function mods.modifymeido(pat) pat:update_frame(567, 0, 15, { duration = 9999 }) pat:update_frame(568, 0, 17, { duration = 9999 }) for frame = 11, 14 do pat:update_frame(565, 0, frame, { duration = 6 }) pat:update_frame(566, 0, frame, { duration = 6 }) end for frame = 0, 5 do pat:remove_frame(565, 0, 0) pat:remove_frame(566, 0, 0) pat:remove_frame(567, 0, 0) pat:remove_frame(568, 0, 0) end end function mods.change6astartup(pat) pat:update_frame(302, 0, 1, { duration = 1 }) pat:update_frame(302, 0, 0, { duration = 1 }) end function mods.modifyB(pat) pat:update_frame(800, 0, 0, { proration = 990, damage = 80, untech = 35}) pat:update_frame(800, 1, 0, { proration = 990, damage = 80, untech = 35}) pat:update_frame(800, 2, 0, { proration = 990, damage = 80, untech = 35}) pat:update_frame(801, 0, 0, { untech = 70, damage = 200, proration = 960 }) pat:update_frame(801, 1, 0, { untech = 70, damage = 200, proration = 960 }) pat:update_frame(801, 2, 0, { untech = 70, damage = 200, proration = 960 }) pat:update_frame(802, 1, 0, { untech = 70, damage = 200, proration = 960 }) pat:update_frame(802, 2, 0, { untech = 70, damage = 200, proration = 960 }) end function mods.modify3a(pat) pat:update_frame(304, 1, 2, {launch_vector_y = 2000}) pat:update_frame(304, 1, 4, {launch_vector_y = 2000}) end function mods.modifyj8a(pat) pat:update_frame(309, 0, 6, { untech = 60}) end function mods.modify66c(pat) for frame = 4, 6 do pat:update_frame(418, 0, frame, { launch_vector_x = 10}) end end function mods.modify623HJC(pat) for move = 1, 7 do pat:update_frame(820, move, 0, { proration = 990, untech = 30, hitstop_enemy = 20, blockstop_enemy = 15 }) end for frame = 0, 3 do pat:update_frame(510, 2, frame, function(frame) set_fflag(frame, FF_MOTION_CANCEL) end) end for frame = 2, 3 do pat:update_frame(510, 1, 3, function(frame) set_fflag(frame, FF_CANCEL) set_fflag(frame, FF_MOTION_CANCEL) end) end end function mods.modifysense(pat) for move = 0, 2 do pat:update_frame(817, 0, 2, { damage = 300, proration = 990, untech = 60, hitstop_enemy = 20, blockstop_enemy = 15, hit_ani_ground = 0 }) end pat:update_frame(817, 0, 1, function(frame) frame.attackbox[1] = pat:get_frame(817, 0, 2).attackbox[1] end) pat:update_frame(817, 0, 1, { damage = 300, proration = 990, untech = 60, hitstop_enemy = 20, blockstop_enemy = 15, hit_ani_ground = 0 }) end function mods.modifypropelllingsilver(pat) for frame = 0, 6 do pat:update_frame(505, 0, frame, { duration = 1}) pat:update_frame(506, 0, frame, { duration = 1}) pat:update_frame(505, 3, 3, { duration = 25}) pat:update_frame(506, 3, 3, { duration = 25}) end pat:update_frame(815, 0, 0, { duration = 1 }) pat:update_frame(815, 0, 1, function(frame) frame.sp_damage = 50 frame.damage = 350 frame.hit_ani_ground = 77 frame.untech = 60 frame.launch_vector_y = 2000 frame.launch_vector_x = 500 end) end function mods.modifymisdirection(pat) pat:update_frame(821, 1, 0, { hit_ani_ground = 0}) -- pat:update_frame(821, 0, 1, { duration = 1}) end function mods.maketaunt(pat) --594 0, 7 -- loop the standing animation 'loop' amount of times local onum = pat:get_frame_count(0, 0) local src = pat:get_frame(0, 0, pat:get_frame_count(0, 0) - 1) local oframe = src.duration local onum = pat:get_frame_count(0, 0) for loop = 0, 4 do for count = 0, 5 do pat:split_frame(0, 0, (onum*(loop + 1)) - 1, oframe, 1) end for idx = 0, 5 do local src = pat:get_frame(0, 0, idx) pat:update_frame(0, 0, (onum*(loop + 1) + idx) , function(frame) copy_sprite(frame, src) frame.duration = src.duration end) end end local num = pat:get_frame_count(0, 0) local src = pat:get_frame(0, 0, pat:get_frame_count(0, 0) - 1) local oframe = src.duration for count = 0, 12 do pat:split_frame(0, 0, num - 1, oframe, 1) end for idx = 0, 5 do local src = pat:get_frame(594, 0, idx) pat:update_frame(0, 0, num + idx, function(frame) copy_sprite(frame, src) frame.duration = src.duration + 1 end) end local src = pat:get_frame(594, 0, 6) pat:update_frame(0, 0, num + 6, function(frame) copy_sprite(frame, src) frame.duration = 25 end) for idx = 7, 12 do local src = pat:get_frame(594, 0, 12 - idx) pat:update_frame(0, 0, num + idx, function(frame) copy_sprite(frame, src) frame.duration = src.duration + 2 end) end end return function(pat) mods.maketaunt(pat) mods.modify623HJC(pat) -- mods.global(pat) -- mods.modifymisdirection(pat) mods.modifypropelllingsilver(pat) mods.modifysense(pat) mods.modify66c(pat) mods.modifyj8a(pat) mods.modify3a(pat) mods.modifyB(pat) mods.change6astartup(pat) -- mods.test(pat) mods.modifymeido(pat) mods.modify_66b(pat) mods.modify_pinkthing(pat) mods.modify_blueslash_untech(pat) mods.modify_redslash_untech(pat) mods.modify_j6a_untech(pat) -- mods.teleport_invuln_startup(pat) if config:get("global", "4A/2A", "melty-style jabs") then mods.cancel(pat) end mods.modify_j5a_untech(pat) mods.modify_dial_a_untech(pat) mods.fix_timeparadox(pat) mods.change_j2a_damage(pat) mods.add_236_knockdown(pat) mods.add_623_knockdown(pat) end