local mods = {} function mods.modify_b_bullet_parameters(pat) table.map({0,1,2,3,12,13,14,15}, function(off) pat:update_frame(800, off, 0, { hitstop_enemy = 15, blockstop_enemy = 2, untech = 40, damage = 150 }) end) end function mods.add_kanako_knockdown(pat) for idx = 0, 2 do pat:update_frame(543, 1, idx, { untech = 9000 }) pat:update_frame(543, 1, idx, { hit_ani_air = 74, }) end for idx = 0, 2 do pat:update_frame(542, 1, idx, { untech = 9000 }) pat:update_frame(542, 1, idx, { hit_ani_air = 74, }) end for idx = 0, 1 do pat:update_frame(820, 1, 3, { untech = 9000 }) pat:update_frame(820, 1, 3, { hit_ani_air = 74, }) pat:update_frame(820, 5, 3, { untech = 9000 }) pat:update_frame(820, 5, 3, { hit_ani_air = 74, }) pat:update_frame(820, 2, idx, { untech = 9000 }) pat:update_frame(820, 2, idx, { hit_ani_air = 74, }) pat:update_frame(820, 6, idx, { untech = 9000 }) pat:update_frame(820, 6, idx, { hit_ani_air = 74, }) end end function mods.wavecall_startup(pat) for move = 505, 506 do for frame = 0, 2 do pat:update_frame(move, 0, frame, { duration = 2 }) pat:update_frame(move, 0, 3, { duration = 3 }) end end for frame = 0, 12 do pat:update_frame(811, 0, frame, { launch_vector_x = 600, launch_vector_y = 1700, combo_correction = 1 }) end end function mods.change6c_untech(pat) pat:update_frame(807, 0, 1, { hitstop_enemy = 10, untech = 9000, damage = 750 }) pat:update_frame(808, 4, 0, { untech = 60 }) pat:update_frame(309, 0, 5, { untech = 60 }) end function mods.modify_j5a_untech(pat) pat:update_frame(306, 0, 3, { untech = 30 }) end function mods.modify_dial_a_untech(pat) for frame = 4, 5 do pat:update_frame(322, 0, frame, { untech = 6000 }) end end function mods.modify_2card_startup(pat) -- pat:update_frame(600, 1, 0, { duration = 40 }) -- for frame = 0, 2 do -- pat:update_frame(600, 2, frame, { duration = 1 }) -- end -- for frame = 0, 3 do -- pat:update_frame(600, 0, frame, { duration = 1 }) -- end for frame = 0, 2 do pat:update_frame(600, 4, frame, { duration = 2 }) end pat:update_frame(850, 0, 0, { launch_vector_y = -10, hitstop_enemy = 20, proration = 999, untech = 6000 }) end function mods.modify_j6a_untech(pat) pat:update_frame(307, 0, 4, { untech = 6000, damage = 800 }) pat:update_frame(418, 0, 4, { proration = 1000 }) end function mods.modify_moses_damage(pat) pat:update_frame(605, 2, 0, { damage = 2500, proration = 900 }) pat:update_frame(605, 3, 0, { damage = 2500, proration = 900 }) pat:update_frame(605, 0, 3, { duration = 30 }) end function mods.modify_packettoss(pat) for frame = 0, 1 do pat:update_frame(853, 5, frame, { untech = 6000, damage = 150 }) pat:update_frame(815, 5, frame, { untech = 50 }) end for frame = 0, 1 do pat:update_frame(853, 7, frame, { untech = 6000 }) pat:update_frame(815, 7, frame, { untech = 50 }) end for frame = 0, 1 do pat:update_frame(853, 8, frame, { untech = 6000 }) pat:update_frame(815, 8, frame, { untech = 6000 }) end for frame = 0, 1 do pat:update_frame(853, 14, frame, { untech = 6000 }) pat:update_frame(815, 14, frame, { untech = 50 }) end for frame = 0, 1 do pat:update_frame(853, 16, frame, { untech = 6000 }) pat:update_frame(815, 16, frame, { untech = 6000 }) end for frame = 0, 1 do pat:update_frame(853, 17, frame, { untech = 6000 }) pat:update_frame(815, 17, frame, { untech = 6000 }) end local function set_graze(frame) set_fflag(frame, FF_BULLET_INV) end for frame = 5, 20 do pat:update_frame(603, 0, frame, set_graze) end end function mods.modifystarthing(pat) for frame = 0, 9 do pat:update_frame(606, 1, frame, { duration = 1 }) end for frame = 0, 1 do pat:update_frame(606, 2, frame, { duration = 1 }) pat:update_frame(606, 3, frame, { duration = 1 }) end for frame = 0, 6 do pat:update_frame(606, 5, frame, { duration = 1 }) end for frame = 0, 5 do pat:update_frame(856, 4, frame, { untech = 6000 }) end 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: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.modifyj2a(pat) pat:get_sequence(308, 2):set_priority(0, 0) pat:get_sequence(308, 3):set_priority(0, 0) for frame = 0, 2 do pat:update_frame(308, 1, frame, { hit_ani_air = 88, hit_ani_ground = 88, damage = 800, hitstop_enemy = 10, launch_vector_y = -1500 }) end end function mods.onbashira(pat) --pat:update_frame(550, 0, 8, { duration = 47 }) --pat:update_frame(551, 0, 11, { duration = 47 }) --pat:update_frame(552, 0, 8, { duration = 47 }) --pat:update_frame(553, 0, 11, { duration = 47 }) for frame = 0, 1 do pat:update_frame(822, 4, frame, function(frame) frame.hit_ani_ground = 88 frame.hit_ani_air = 88 frame.proration = 880 frame.untech = 6000 frame.damage = 1000 frame.hit_sfx = 4 frame.hitstop_enemy = 10 frame.blockstop_enemy = 10 frame.launch_vector_y = -4000 end) end for frame = 0, 10 do pat:update_frame(550, 0, frame, function(frame) unset_fflag(frame, FF_MELEE_INV) unset_fflag(frame, FF_GRAZE) end) pat:update_frame(552, 0, frame, function(frame) unset_fflag(frame, FF_MELEE_INV) unset_fflag(frame, FF_GRAZE) end) end for frame = 9, 10 do pat:update_frame(550, 0, 8, function(frame) frame.duration = 17 end) pat:update_frame(550, 0, frame, function(frame) set_fflag(frame, FF_CANCEL) set_fflag(frame, FF_MOTION_CANCEL) end) pat:update_frame(552, 0, 8, function(frame) frame.duration = 17 end) pat:update_frame(552, 0, frame, function(frame) set_fflag(frame, FF_CANCEL) set_fflag(frame, FF_MOTION_CANCEL) end) end for frame = 0, 13 do pat:update_frame(551, 0, frame, function(frame) unset_fflag(frame, FF_MELEE_INV) unset_fflag(frame, FF_GRAZE) end) pat:update_frame(553, 0, frame, function(frame) unset_fflag(frame, FF_MELEE_INV) unset_fflag(frame, FF_GRAZE) end) end for frame = 12, 13 do pat:update_frame(551, 0, 11, function(frame) frame.duration = 17 end) pat:update_frame(551, 0, frame, function(frame) set_fflag(frame, FF_CANCEL) set_fflag(frame, FF_MOTION_CANCEL) end) pat:update_frame(553, 0, 11, function(frame) frame.duration = 17 end) pat:update_frame(553, 0, frame, function(frame) set_fflag(frame, FF_CANCEL) set_fflag(frame, FF_MOTION_CANCEL) end) end end function mods.modify4c(pat) for frame = 3, 4 do pat:update_frame(417, 2, frame, { duration = 1}) end pat:update_frame(808, 4, 0, {untech = 60}) end function mods.modify6a(pat) for frame = 3, 4 do pat:update_frame(302, 0, 5, { hit_ani_ground = 88, hit_ani_air = 88, untech = 45, launch_vector_y = -2500, proration = 750 }) end end function mods.modifythama(pat) pat:update_frame(851, 1, 0, { untech = 9900}) for st = 0, 9 do pat:update_frame(851, 4, st, { untech = 9000 }) end end function mods.modifyfalling(pat) for frame = 0, 10 do pat:update_frame(812, 0, frame, function(frame) frame.scale_x = 300 frame.scale_y = 300 frame.attackbox[1] = { x1=-60, y1=-60, x2=60, y2=60 } frame.hit_ani_air = 77 frame.hitstop_enemy = 15 frame.damage = 350 end) end for move = 1, 2 do for frame = 0, 1 do pat:update_frame(812, move, frame, function(frame) frame.scale_x = 300 frame.scale_y = 300 frame.attackbox[1] = { x1=-60, y1=-60, x2=60, y2=60 } frame.hit_ani_air = 77 frame.hitstop_enemy = 15 frame.damage = 350 end) end end end function mods.maketaunt(pat) 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 for loop = 0, 2 do for count = 0, onum - 1 do pat:split_frame(0, 0, (onum*(loop + 1)) - 1, oframe, 1) end for idx = 0, onum - 1 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, 30 do pat:split_frame(0, 0, num - 1, oframe, 1) end for idx = 0, 2 do local src = pat:get_frame(607, 0, idx) pat:update_frame(0, 0, num + idx, function(frame) copy_sprite(frame, src) frame.duration = src.duration end) end for idx = 3, 22 do local src = pat:get_frame(607, 1, idx - 3) pat:update_frame(0, 0, num + idx, function(frame) copy_sprite(frame, src) frame.duration = src.duration + 2 end) pat:update_frame(0, 0, num + 19, function(frame) -- copy_sprite(frame, src) frame.duration = 2 end) end for idx = 23, 30 do local src = pat:get_frame(607, 3, idx - 23) pat:update_frame(0, 0, num + idx, function(frame) copy_sprite(frame, src) frame.duration = src.duration end) end end return function(pat) mods.maketaunt(pat) -- mods.global(pat) mods.modifyfalling(pat) mods.modifythama(pat) mods.modify6a(pat) mods.modify4c(pat) mods.onbashira(pat) -- mods.modifyj2a(pat) mods.change6c_untech(pat) if config:get("global", "4A/2A", "melty-style jabs") then mods.cancel(pat) end mods.modifystarthing(pat) mods.modify_packettoss(pat) mods.modify_moses_damage(pat) mods.wavecall_startup(pat) mods.modify_j6a_untech(pat) mods.modify_2card_startup(pat) mods.modify_j5a_untech(pat) mods.modify_dial_a_untech(pat) mods.add_kanako_knockdown(pat) mods.modify_b_bullet_parameters(pat) end