local mods = {} function mods.modify_j2a_startup(pat) for idx = 0, 1 do pat:update_frame(308, 0, idx, { duration = 1 }) end end function mods.combobreaker(pat) for idx = 50, 53 do pat:get_sequence(idx, 0):set_priority(9999, 0) pat:update_frame(idx, 0, 0, function(frame) frame.duration = 10 set_fflag(frame, FF_CANCEL) end) end for idx = 56, 58 do pat:get_sequence(idx, 0):set_priority(9999, 0) pat:update_frame(idx, 0, 0, function(frame) frame.duration = 10 set_fflag(frame, FF_CANCEL) end) end for idx = 62, 64 do pat:get_sequence(idx, 0):set_priority(9999, 0) pat:update_frame(idx, 0, 0, function(frame) frame.duration = 10 set_fflag(frame, FF_CANCEL) end) end for idx = 70, 71 do pat:get_sequence(idx, 0):set_priority(9999, 0) pat:update_frame(idx, 0, 0, function(frame) frame.duration = 10 set_fflag(frame, FF_CANCEL) end) end for idx = 76, 78 do pat:get_sequence(idx, 0):set_priority(9999, 0) pat:update_frame(idx, 0, 0, function(frame) frame.duration = 10 set_fflag(frame, FF_CANCEL) end) end pat:get_sequence(73, 0):set_priority(9999, 0) pat:update_frame(73, 0, 0, function(frame) frame.duration = 10 set_fflag(frame, FF_CANCEL) end) end function mods.modify_springwind(pat) for idx = 545, 548 do for frame = 0, 5 do pat:update_frame(idx, 0, frame, { duration = 3}) end end pat:update_frame(821, 3, 0, { damage = 900, proration = 950, hit_ani_ground = 77, hit_ani_air = 77, combo_correction = 1, untech = 120, launch_vector_x = 10, launch_vector_y = 1900 }) pat:update_frame(821, 8, 0, { damage = 800, proration = 950, hit_ani_ground = 77, hit_ani_air = 77, combo_correction = 1, untech = 120, launch_vector_x = 10, launch_vector_y = 1900 }) end function mods.recovery_summonsword(pat) for idx = 570, 571 do for frame = 0, 7 do for shit = 0, 6 do pat:update_frame(idx, 2, frame, { duration = 1}) pat:update_frame(idx, 0, shit, { duration = 1}) end end end end function mods.modify_j5a_untech(pat) for frame = 2, 7 do pat:update_frame(306, 0, frame, { untech = 30 }) end end function mods.modify_dial_a_untech(pat) pat:update_frame(321, 0, 7, { untech = 6000 }) end function mods.cancel(pat) pat:get_sequence(300, 0):set_priority(15, 20) -- 5A pat:get_sequence(320, 0):set_priority(10, 20) -- 5AA pat:get_sequence(303, 0):set_priority(10, 15) -- 2A pat:get_sequence(330, 0):set_priority(15, 20) -- 4A pat:get_sequence(321, 0):set_priority(20, 30) end function mods.modify_d236_untech(pat) for frame = 0, 10 do pat:update_frame(810, 0, frame, { untech = 6000 }) pat:update_frame(810, 1, frame, { untech = 6000 }) pat:update_frame(810, 6, frame, { untech = 6000 }) end end function mods.stickybubbles(pat) pat:update_frame(817, 0, 0, function(frame) frame.proration = 1000 frame.hitstop_enemy = 2 frame.damage = 100 frame.untech = 9999 -- unset_aflag(frame, AF_PROJECTILE) -- unset_aflag(frame, AF_UNGRAZABLE) end) for frame = 0, 1 do pat:update_frame(817, 1, frame, function(frame) frame.proration = 1000 frame.hitstop_enemy = 2 frame.damage = 100 frame.untech = 9999 -- set_aflag(frame, 4260878) end) end pat:update_frame(817, 3, 0, { damage = 1000 }) for move = 530, 531 do pat:update_frame(move, 0, 3, { duration = 1 }) end end function mods.modify6A_startup(pat) pat:update_frame(302, 0, 2, { duration = 1 }) for frame = 6, 8 do pat:update_frame(302, 0, frame, {untech = 35, proration = 750, hit_ani_air = 88, hit_ani_ground = 88, launch_vector_y = -2000, launch_vector_x = 2000 }) end end function mods.flamethrower(pat) pat:update_frame(811, 0, 0, { hitstop_enemy = 15, hit_ani_ground = 53, damage = 180, untech = 60, proration = 975 }) --pat:update_frame(505, 2, 5, { duration = 5 }) --pat:update_frame(506, 2, 5, { duration = 5 }) end function mods.Cuntech(pat) for frame = 0, 10 do pat:update_frame(801, 0, frame, { untech = 45, damage = 300 }) end for frame = 0, 10 do pat:update_frame(801, 5, frame, { untech = 45 }) end end function mods.staticgreen(pat) for frame = 0, 9 do pat:update_frame(822, 0, frame, { untech = 6000 }) pat:update_frame(822, 1, frame, { untech = 6000 }) end for frame = 0, 1 do pat:update_frame(822, 3, frame, { untech = 6000 }) pat:update_frame(822, 4, frame, { untech = 6000 }) end end function mods.modifybuzzsaw(pat) pat:update_frame(826, 0, 0, { untech = 6000, hitstop_enemy = 15, hitstop_self = 8 }) end function mods.modify_emerald(pat) pat:update_frame(831, 0, 0, { untech = 6000 }) pat:update_frame(831, 3, 0, { untech = 6000 }) end function mods.modifyphoto(pat) pat:update_frame(610, 2, 2, { duration = 16 }) end function mods.modifygearcard(pat) for frame = 0, 1 do pat:update_frame(602, 1, frame, { untech = 6000 }) end end function mods.modify_megalopolis(pat) for frame = 14, 19 do pat:update_frame(612, 0, frame, { duration = 2 }) end end function mods.modifyfinish(pat) pat:update_frame(321, 0, 7, function(frame) set_aflag(frame, AF_PROJECTILE) set_aflag(frame, AF_UNGRAZABLE) frame.hitstop_self = 5 frame.hit_sfx = 9 set_aflag(frame, AF_LOWBLOCK_OK) end) end function mods.modifyd214(pat) for move = 560, 561 do for frame = 0, 3 do pat:update_frame(move, 2, frame, { duration = 1}) pat:update_frame(move, 2, 4, { duration = 40 }) end end pat:update_frame(825, 3, 0, { hitstop_enemy = 10, untech = 60, proration = 980, launch_vector_x = 2500 }) pat:update_frame(825, 5, 1, { hitstop_enemy = 10, untech = 60, proration = 980, launch_vector_x = 2500 }) end function mods.modify6cuntech(pat) pat:update_frame(801, 6, 0, function(frame) frame.untech = 45 -- show_message_box(table.tostring(frame)) end) end function mods.modifymelee(pat) for frame = 0, 29 do pat:update_frame(848, 5, frame, { untech = 6000}) end for frame = 0, 5 do pat:update_frame(848, 12, frame, { untech = 60 }) end end function mods.modifyalt22box(pat) pat:update_frame(816, 0, 1, function(frame) frame.attackbox[1]= pat:get_frame(816, 0, 1).hurtbox[1] frame.attackbox[2]= pat:get_frame(816, 0, 1).hurtbox[2] frame.attackbox[3]= pat:get_frame(816, 0, 1).hurtbox[3] -- set_aflag(frame, 3076) frame.damage = 1200 frame.attack_level = 2 frame.card_gain_block = 120 frame.card_gain_hit = 120 frame.chip_damage = 300 frame.combo_correction = 2 -- frame.data_format = 0 frame.hit_effect = 3 frame.sp_damage = 200 frame.unknown_9 = 100 frame.hitstop_enemy = 0 frame.hitstop_self = 0 frame.blockstop_enemy = 0 frame.blockstop_self = 0 frame.proration = 800 frame.limit = 0 frame.hit_ani_ground = 74 frame.hit_ani_air = 74 frame.untech = 100 frame.launch_vector_x = 2450 frame.launch_vector_y = 1850 frame.hit_sfx = 2 set_aflag(frame, AF_PROJECTILE) set_aflag(frame, AF_HIGHBLOCK_OK) set_aflag(frame, AF_LOWBLOCK_OK) set_aflag(frame, AF_AIR_BLOCKABLE) end) end function mods.graze66c(pat) for frame = 2, 6 do pat:update_frame(418, 0, frame, function(frame) set_fflag(frame, FF_GRAZE) end) end end function mods.modifyfirerekkas(pat) for move = 510, 511 do pat:get_sequence(move, 0):set_priority(51, 51) pat:get_sequence(move, 1):set_priority(51, 51) for frame = 6, 8 do pat:update_frame(move, 0, frame, function(frame) unset_fflag(frame, FF_CANCEL) end) end pat:update_frame(move, 0, 17, { duration = 14 }) pat:update_frame(511, 0, 29, { duration = 23 }) end for frame = 2, 15 do pat:update_frame(812, 0, frame, { hit_sfx = 7, blockstop_enemy = 11, hit_ani_ground = 0, damage = 500, untech = 9999, hitstop_enemy = 16, proration = 960 }) pat:update_frame(812, 2, frame, { hit_sfx = 7, blockstop_enemy = 11, hit_ani_ground = 0, damage = 500, untech = 9999, hitstop_enemy = 16, proration = 960 }) pat:update_frame(812, 2, frame, function(frame) unset_aflag(frame, AF_LOWBLOCK_OK) unset_aflag(frame, AF_AIR_BLOCKABLE) end) pat:update_frame(812, 0, frame, function(frame) unset_aflag(frame, AF_LOWBLOCK_OK) unset_aflag(frame, AF_AIR_BLOCKABLE) end) end end function mods.modifyarmor(pat) for move = 590, 591 do for frame = 0, 7 do pat:update_frame(move, 0, frame, function(frame) set_fflag(frame, FF_SUPER_ARMOR) end) end for frame = 0, 1 do pat:update_frame(move, 0, frame, function(frame) set_fflag(frame, FF_SUPER_ARMOR) end) end end end function mods.royal(pat) for frame = 0, 11 do pat:update_frame(863, 1, frame, { untech = 9000 }) end end function mods.philo(pat) for seq = 15, 19 do for frame = 0, 1 do pat:update_frame(855, seq, frame, { untech = 9000 }) end end end function mods.change4c(pat) for frame = 0, 1 do pat:update_frame(800, 2, frame, { proration = 990 }) end end function mods.modifylol(pat) local function remove_last_hurtbox(frame) table.remove(frame.hurtbox) end -- for frame = 10, 12 do -- pat:remove_frame(304, 0, 10) -- end -- for frame = 6, 8 do -- pat:remove_frame(304, 1, 6) -- end pat:remove_frame(202, 1, 1) pat:remove_frame(202, 1, 1) pat:remove_frame(202, 1, 1) pat:split_frame(202, 1, 0, 2, 2) pat:split_frame(202, 1, 0, 2, 2) pat:split_frame(202, 1, 0, 2, 2) pat:split_frame(202, 1, 0, 2, 2) pat:split_frame(202, 1, 0, 2, 2) pat:split_frame(202, 1, 0, 2, 2) pat:split_frame(202, 1, 0, 2, 2) for idx = 1, 2 do local src = pat:get_frame(540, 0, 5) -- local boxes = pat:get_frame(507, 1, 3).hurtbox pat:update_frame(202, 0, 0, function(frame) copy_sprite(frame, src) -- frame.hurtbox = table.map(boxes, table.shallow_copy) end) local src = pat:get_frame(540, 1, (idx - 1)) pat:update_frame(202, 0, idx, function(frame) copy_sprite(frame, src) -- frame.hurtbox = table.map(boxes, table.shallow_copy) end) end for idx = 0, 5 do local src = pat:get_frame(540, 1, (idx + 2)) -- local boxes = pat:get_frame(507, 1, idx).hurtbox pat:update_frame(202, 1, idx, function(frame) copy_sprite(frame, src) -- frame.hurtbox = table.map(boxes, table.shallow_copy) end) end for idx = 6, 7 do local src = pat:get_frame(540, 1, (idx - 6)) -- local boxes = pat:get_frame(507, 1, idx).hurtbox pat:update_frame(202, 1, idx, function(frame) copy_sprite(frame, src) -- frame.hurtbox = table.map(boxes, table.shallow_copy) end) end for idx = 1, 2 do local src = pat:get_frame(540, 2, 0) -- local boxes = pat:get_frame(507, 1, idx).hurtbox pat:update_frame(202, 2, 0, function(frame) copy_sprite(frame, src) -- frame.hurtbox = table.map(boxes, table.shallow_copy) end) local src = pat:get_frame(540, 3, (idx - 1)) pat:update_frame(202, 2, idx, function(frame) copy_sprite(frame, src) -- frame.hurtbox = table.map(boxes, table.shallow_copy) 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 local loop = 0 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 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, 11 do pat:split_frame(0, 0, num - 1, oframe, 1) end for idx = 0, 11 do local src = pat:get_frame(520, 0, idx) pat:update_frame(0, 0, num + idx, function(frame) copy_sprite(frame, src) frame.duration = src.duration + 2 end) end pat:update_frame(0, 0, num + 8, function(frame) frame.duration = 20 end) end return function(pat) mods.maketaunt(pat) mods.modifylol(pat) mods.change4c(pat) mods.royal(pat) mods.philo(pat) mods.modifyarmor(pat) mods.modifyfirerekkas(pat) mods.graze66c(pat) -- mods.modifyalt22box(pat) mods.modifymelee(pat) mods.modify6cuntech(pat) mods.modifyd214(pat) mods.modifyfinish(pat) mods.modify_megalopolis(pat) mods.modifyphoto(pat) mods.modify_emerald(pat) mods.modifybuzzsaw(pat) mods.staticgreen(pat) mods.Cuntech(pat) mods.flamethrower(pat) mods.modify6A_startup(pat) mods.stickybubbles(pat) mods.modify_d236_untech(pat) if config:get("global", "4A/2A", "melty-style jabs") then mods.cancel(pat) end -- mods.global(pat) mods.modifygearcard(pat) mods.modify_dial_a_untech(pat) mods.modify_j2a_startup(pat) mods.recovery_summonsword(pat) mods.modify_springwind(pat) mods.modify_j5a_untech(pat) -- mods.combobreaker(pat) end