local mods = {} function mods.d236_bounce(pat) for seq = 1, 2 do pat:update_frame(810, seq, 0, {hit_ani_ground = 88, hit_ani_air = 88, damage = 700 }) end end function mods.modify_j6a_untech(pat) for frame = 5, 6 do pat:update_frame(307, 0, frame, { untech = 6000 }) end for frame = 0, 3 do pat:update_frame(307, 0, frame, { duration = 1}) end pat:update_frame(307, 0, 4, {duration = 7}) end function mods.modify_j5a_untech(pat) for frame = 6, 7 do pat:update_frame(306, 0, frame, { untech = 30 }) end end function mods.modify_j8a_untech(pat) pat:update_frame(309, 0, 4, { untech = 60 }) end function mods.modify_c_proration(pat) for frame = 0, 1 do pat:update_frame(801, 1, frame, { untech = 45, damage = 275, proration = 950 }) pat:update_frame(801, 7, frame, { untech = 45, damage = 275, proration = 950 }) pat:update_frame(801, 8, frame, { untech = 45, damage = 275, proration = 950 }) end end function mods.modify_bluespark(pat) pat:update_frame(602, 0, 7, { duration = 1 }) pat:update_frame(602, 0, 2, { duration = 30 }) for frame = 0, 8 do pat:update_frame(852, 0, frame, { untech = 6000, proration = 1000, sp_damage = 50 }) end for frame = 0, 5 do pat:update_frame(852, 1, frame, { untech = 6000, proration = 1000, sp_damage = 50 }) end end function mods.modify_236_startup(pat) for frame = 0, 5 do pat:update_frame(810, 0, frame, { duration = 1 }) end end function mods.modify_chen_parameters(pat) pat:update_frame(854, 2, 0, { untech = 6000, proration = 900, sp_damage = 200 }) end function mods.modify_ran_untech(pat) pat:update_frame(851, 2, 0, { untech = 6000, proration = 990 }) end function mods.modify_yellowspark_untech(pat) pat:update_frame(855, 3, 0, { untech = 6000 }) end function mods.modify_fireflies(pat) for frame = 0, 1 do pat:update_frame(856, 1, frame, { untech = 6000 }) end end function mods.modify_eyesgalore(pat) for frame = 0, 11 do pat:update_frame(858, 5, frame, { untech = 6000, proration = 990 }) end end function mods.modify_trains(pat) pat:update_frame(865, 1, 0, { damage = 2000, hitstop_enemy = 12, launch_vector_x = 3000, launch_vector_y = -1300, hit_ani_air = 88, hit_ani_ground = 88 }) end function mods.modify_dial_a_untech(pat) for frame = 4, 5 do pat:update_frame(322, 0, frame, { untech = 6000 }) end pat:update_frame(321, 0, 4, { hitstop_enemy = 15 }) end function mods.cancel(pat) -- pat:get_sequence(300, 0):set_priority(11, 5) -- 5A pat:get_sequence(320, 0):set_priority(10, 10) -- 5AA -- pat:get_sequence(303, 0):set_priority(10, 10) -- 2A -- pat:get_sequence(330, 0):set_priority(20, 10) -- 4A pat:get_sequence(321, 0):set_priority(10, 20) pat:get_sequence(322, 0):set_priority(20, 30) end function mods.spin_untech(pat) pat:update_frame(520, 1, 0, { untech = 6000 }) pat:update_frame(521, 1, 0, { untech = 6000 }) end function mods.add44reversal(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, 1 do pat:update_frame(201, 4, frame, set_graze) pat:update_frame(201, 4, frame, set_invinc) end end function mods.modifyj2abox(pat) pat:update_frame(308, 1, 0, function(frame) frame.attackbox[1] = pat:get_frame(522, 1, 0).attackbox[1] frame.attackbox[2] = pat:get_frame(523, 1, 0).attackbox[2] frame.blockstop_self = 0 frame.hitstop_self = 0 frame.damage = 700 frame.untech = 60 frame.proration = 900 end) end function mods.modifypinwheel(pat) pat:update_frame(850, 0, 0, { untech = 6000, launch_vector_x = 2500 }) pat:update_frame(850, 1, 0, { untech = 6000, launch_vector_x = 2500 }) pat:update_frame(853, 0, 0, { untech = 6000 }) pat:update_frame(853, 1, 0, { untech = 6000 }) end function mods.modify3a(pat) pat:update_frame(304, 0, 4, { untech = 60 }) pat:update_frame(304, 0, 5, { untech = 60 }) end function mods.modifyillusionmanji(pat) pat:update_frame(816, 0, 0, { hit_ani_ground = 0, untech = 6000, hitstop_enemy = 10, hitstop_self = 0 }) pat:update_frame(816, 0, 1, { hit_ani_ground = 0, untech = 6000, hitstop_enemy = 10, hitstop_self = 0 }) pat:update_frame(816, 1, 0, { untech = 60 }) pat:update_frame(816, 1, 1, { untech = 60 }) pat:update_frame(816, 2, 0, { sp_damage = 0, hit_ani_ground = 0, untech = 6000, hitstop_enemy = 10, hitstop_self = 0 }) pat:update_frame(816, 2, 1, { sp_damage = 0, hit_ani_ground = 0, untech = 6000, hitstop_enemy = 10, hitstop_self = 0 }) end function mods.modifyBseries(pat) pat:update_frame(800, 0, 0, { damage = 70, proration = 990, untech = 30 }) pat:update_frame(800, 1, 0, { damage = 70, proration = 990, untech = 30 }) pat:update_frame(800, 2, 0, { damage = 70, proration = 990, untech = 30 }) end function mods.modifybrainsfeet(pat) pat:update_frame(530, 0, 2, { duration = 19 }) pat:update_frame(530, 0, 6, { duration = 9 }) pat:update_frame(530, 0, 2, { duration = 45 }) for frame = 2, 3 do pat:update_frame(817, 1, frame, { blockstop_enemy = 10, hitstop_enemy = 10 }) pat:update_frame(817, 0, frame, { blockstop_enemy = 10, hitstop_enemy = 10 }) end end function mods.modifyeyes(pat) for frame = 0, 11 do pat:update_frame(822, 5, frame, { untech = 90, proration = 990 }) end end function mods.modifycomboport(pat) -- pat:update_frame(560, 0, 5, { duration = 1}) -- pat:update_frame(561, 0, 5, { duration = 1}) for frame = 0, pat:get_frame_count(560, 1) - 1 do pat:update_frame(560, 1, frame, { untech = 6000, launch_vector_x = 2500}) end for frame = 0, pat:get_frame_count(562, 1) - 1 do pat:update_frame(562, 1, frame, { untech = 6000, launch_vector_x = 2500}) end for frame = 0, pat:get_frame_count(561, 1) - 1 do pat:update_frame(561, 1, frame, { launch_vector_y = -3000, untech = 6000, hit_ani_air = 88, hit_ani_ground = 88}) end for frame = 0, pat:get_frame_count(563, 1) - 1 do pat:update_frame(563, 1, frame, { launch_vector_y = -3000, untech = 6000, hit_ani_air = 88, hit_ani_ground = 88}) end end function mods.modifybewitch(pat) pat:update_frame(812, 2, 0, function(frame) -- frame.sp_damage = 100 frame.hit_ani_ground = 0 frame.hitstop_enemy = 20 frame.blockstop_enemy = 15 end) pat:update_frame(857, 2, 0, function(frame) -- frame.sp_damage = 75 frame.hit_ani_ground = 0 frame.hitstop_enemy = 20 frame.blockstop_enemy = 15 end) end function mods.modifygap(pat) for frame = 0, 15 do pat:update_frame(820, 1, frame, function(frame) frame.attackbox[1]= pat:get_frame(820, 1, 0).hurtbox[1] frame.attackbox[2]= pat:get_frame(850, 1, 0).attackbox[1] -- set_aflag(frame, 3076) frame.attack_level = 2 frame.card_gain_block = 30 frame.card_gain_hit = 30 frame.chip_damage = 200 frame.combo_correction = 2 frame.hit_effect = 3 frame.sp_damage = 100 frame.damage = 800 frame.hitstop_enemy = 10 frame.hitstop_self = 0 frame.blockstop_enemy = 10 frame.unknown_9 = 100 -- frame.data_format = 0 frame.proration = 920 frame.limit = 0 frame.hit_ani_ground = 74 frame.hit_ani_air = 74 frame.untech = 60 frame.launch_vector_x = 2500 frame.launch_vector_y = 1000 frame.hit_sfx = 11 set_aflag(frame, AF_PROJECTILE) set_aflag(frame, AF_HIGHBLOCK_OK) set_aflag(frame, AF_LOWBLOCK_OK) set_aflag(frame, AF_AIR_BLOCKABLE) end) pat:update_frame(820, 10, frame, function(frame) frame.attackbox[1]= pat:get_frame(820, 10, 0).hurtbox[1] frame.attackbox[2]= pat:get_frame(850, 1, 0).attackbox[1] -- set_aflag(frame, 3076) frame.attack_level = 2 frame.card_gain_block = 30 frame.card_gain_hit = 30 frame.chip_damage = 200 frame.combo_correction = 2 frame.hit_effect = 3 frame.sp_damage = 100 frame.damage = 800 frame.hitstop_enemy = 10 frame.hitstop_self = 0 frame.blockstop_enemy = 10 frame.unknown_9 = 100 -- frame.data_format = 0 frame.proration = 920 frame.limit = 0 frame.hit_ani_ground = 74 frame.hit_ani_air = 74 frame.untech = 60 frame.launch_vector_x = 2500 frame.launch_vector_y = 1000 frame.hit_sfx = 11 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 end function mods.modifyOTG(pat) for idx = 0, 3 do for frame = 0, pat:get_frame_count(97, idx) - 1 do pat:update_frame(97, idx, frame, function(frame) frame.hurtbox[1] = pat:get_frame(89, 0, 0).hurtbox[1] unset_fflag(frame, FF_MELEE_INV) unset_fflag(frame, FF_BULLET_INV) unset_fflag(frame, FF_GRAZE) set_fflag(frame, 129) end) end end for move = 98, 99 do pat:update_frame(move, 0, 0, function(frame) frame.hurtbox[1] = pat:get_frame(89, 0, 0).hurtbox[1] unset_fflag(frame, FF_MELEE_INV) unset_fflag(frame, FF_BULLET_INV) unset_fflag(frame, FF_GRAZE) set_fflag(frame, 129) end) end for seq = 1, 3 do pat:update_frame(99, seq, 0, function(frame) frame.hurtbox[1] = pat:get_frame(89, 0, 0).hurtbox[1] unset_fflag(frame, FF_MELEE_INV) unset_fflag(frame, FF_BULLET_INV) unset_fflag(frame, FF_GRAZE) set_fflag(frame, 129) end) end end function mods.modifyflesh(pat) pat:get_sequence(566, 3):set_priority(9999, 0) -- pat:update_frame(566, 2, 0, { untech = 9999, hitstop_enemy = 1, proration = 950 }) pat:update_frame(566, 2, 0, function(frame) unset_fflag(frame, FF_CANCEL) frame.untech = 9999 -- frame.launch_vector_y = 1500 frame.launch_vector_x = 0 frame.hit_ani_air = 77 frame.proration = 990 -- frame.duration = 2 frame.damage = 250 frame.hitstop_self = 1 frame.hitstop_enemy = 0 end) for frame = 0, 3 do pat:update_frame(566, 3, frame, function(frame) frame.duration = 1 set_fflag(frame, FF_CANCEL) end) end end function mods.modify66bhitani(pat) for frame = 5, 6 do pat:update_frame(408, 0, frame, { damage = 500, hit_ani_ground = 88, hit_ani_air = 88, untech = 25}) end end function mods.modifygravebound(pat) pat:update_frame(811, 1, 0, { launch_vector_x = 2500, untech = 80}) end function mods.modifyantimatter(pat) for frame = 0, 15 do pat:update_frame(821, 2, frame, { hitstop_enemy = 20, blockstop_enemy = 15, hit_ani_air = 77, hit_ani_ground = 77, untech = 9999, launch_vector_y = 2000, launch_vector_x = 0}) end end function mods.modifynew5aaaa(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 for idx = 0, 10 do local src = pat:get_frame(310, 0, (idx + 5)) local boxes = pat:get_frame(310, 0, (idx + 5)).hurtbox local box = pat:get_frame(310, 0, (idx + 5)).attackbox pat:update_frame(322, 0, idx, function(frame) -- frame.attackbox[2] = { x1= 30, y1= 30, x2= 40, y2= 50 } -- frame.attackbox[3] = { x1= 10, y1= 10, x2= 60, y2= 90 } copy_sprite(frame, src) frame.hurtbox = table.map(boxes, table.shallow_copy) frame.attackbox = table.map(box, 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 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, 8 do pat:split_frame(0, 0, num - 1, oframe, 1) end for idx = 0, 8 do local src = pat:get_frame(501, 0, idx) pat:update_frame(0, 0, num + idx, function(frame) copy_sprite(frame, src) frame.duration = src.duration + 1 end) end pat:update_frame(0, 0, num + 4, function(frame) frame.duration = 36 end) end return function(pat) mods.maketaunt(pat) mods.modifynew5aaaa(pat) mods.modifyantimatter(pat) mods.modifygravebound(pat) mods.modify66bhitani(pat) -- mods.modifyOTG(pat) -- -- mods.global(pat) mods.modifyflesh(pat) mods.modifygap(pat) mods.modifybewitch(pat) mods.modifycomboport(pat) mods.modifyeyes(pat) mods.modifybrainsfeet(pat) mods.modifyBseries(pat) mods.modify3a(pat) mods.modifyillusionmanji(pat) mods.modifypinwheel(pat) mods.modifyj2abox(pat) mods.add44reversal(pat) if config:get("global", "4A/2A", "melty-style jabs") then mods.cancel(pat) end mods.modify_j6a_untech(pat) mods.spin_untech(pat) mods.modify_dial_a_untech(pat) mods.modify_trains(pat) mods.modify_eyesgalore(pat) mods.modify_fireflies(pat) mods.modify_yellowspark_untech(pat) mods.modify_ran_untech(pat) mods.modify_chen_parameters(pat) mods.modify_236_startup(pat) mods.modify_c_proration(pat) mods.modify_j8a_untech(pat) mods.modify_bluespark(pat) mods.modify_j5a_untech(pat) mods.d236_bounce(pat) end