local mods = {} function mods.d236b_startup(pat) for seq = 0, 3 do pat:update_frame(560, 0, seq, {duration = 1}) --startup -9 end for seq = 8, 11 do pat:update_frame(560, 0, seq, {duration = 1}) -- hjc -11 end end function mods.modifyd623(pat) for move = 520, 521 do for frame = 5, 6 do pat:update_frame(move, 0, frame, {hitstop_self = 0, untech = 60, proration = 850}) end pat:update_frame(move, 0, 11, { duration = 7}) end for frame = 0, 1 do pat:update_frame(815, 0, frame, {hitstop_enemy = 10, untech = 60, proration = 850}) pat:update_frame(815, 5, frame, {hitstop_enemy = 10, untech = 60, proration = 850}) end end function mods.d236c_startup(pat) for seq = 0, 15 do pat:update_frame(561, 0, seq, {duration = 2}) -- set startup to 32 end --for seq = 0, 8 do --pat:update_frame(561, 0, seq, {duration = 1}) --startup -9 --end for seq = 25, 27 do pat:update_frame(561, 0, seq, {duration = 1}) -- recovery -12 end end function mods.modify_j5a_untech(pat) for frame = 2, 3 do pat:update_frame(306, 0, frame, { untech = 30 }) end end function mods.modify_d236_angle(pat) for seq = 0, 2 do for frame = 1, 5 do pat:update_frame(825, seq, frame, { untech = 60, damage = 500, hit_ani_ground = 74, hit_ani_air = 74, launch_vector_x = 2500, launch_vector_y = 1500 }) end end end function mods.reduce_2card_recovery(pat) for frame = 0, 4 do pat:update_frame(606, 2, frame, { duration = 2 }) end for frame = 0, 2 do pat:update_frame(606, 1, frame, { hitstop_enemy = 15, hit_ani_ground = 74, hit_ani_air = 74, launch_vector_y = 1000 }) end end function mods.blue_ball(pat) for frame = 0, 12 do pat:update_frame(602, 1, frame, { duration = 2 }) end for frame = 6, 11 do --recovery pat:update_frame(602, 2, frame, { duration = 1 }) end for frame = 0, 1 do pat:update_frame(852, 1, frame, { hit_ani_ground = 0, hit_ani_air = 77, launch_vector_x = 1000, launch_vector_y = 1000 }) end for frame = 0, 1 do pat:update_frame(853, 1, frame, { launch_vector_x = 2500 }) end end function mods.roc_fist(pat) for frame = 6, 7 do pat:update_frame(604, 0, frame, { proration = 850 }) end end function mods.chi_release(pat) for frame = 0, 11 do pat:update_frame(611, 3, frame, { duration = 1 }) end for frame = 0, 1 do pat:update_frame(611, 1, 0, { duration = 1 }) pat:update_frame(611, 0, 0, { duration = 1 }) end for frame = 0, 9 do pat:update_frame(611, 2, frame, { duration = 1 }) end end function mods.youhou(pat) pat:update_frame(605, 0, 6, { proration = 1000 }) pat:update_frame(605, 1, 8, { proration = 1000 }) for frame = 6, 7 do pat:update_frame(605, 2, frame, { proration = 750 }) end end function mods.modify_5aaa6a_untech(pat) pat:update_frame(323, 0, 4, { untech = 6000, launch_vector_x = 2500 }) 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, 10) -- 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(10, 20) pat:get_sequence(323, 0):set_priority(20, 30) pat:get_sequence(324, 0):set_priority(20, 30) end function mods.modifyj6a_untech(pat) pat:update_frame(307, 0, 6, { untech = 6000, damage = 800 }) pat:update_frame(307, 0, 7, { untech = 6000 }) for frame = 0, 4 do -- pat:update_frame(307, 0, frame, { duration = 1 }) end -- pat:update_frame(307, 0, 5, { duration = 7 }) -- pat:update_frame(307, 0, 5, { duration = 1 }) end function mods.dialAoption(pat) pat:update_frame(324, 0, 6, { duration = 3 }) pat:update_frame(323, 0, 5, { duration = 3 }) end function mods.searingfistuntech(pat) for frame = 3, 6 do pat:update_frame(505, 2, frame, { untech = 70, launch_vector_x = 2500, proration = 950 }) pat:update_frame(506, 2, frame, { untech = 70, launch_vector_x = 2500, proration = 950 }) end for frame = 0, 6 do pat:update_frame(811, frame, 0, { proration = 1000, damage = 100, untech = 9999 }) end end function mods.bigfistuntech(pat) for frame = 3, 7 do pat:update_frame(525, 0, frame, { untech = 6000}) pat:update_frame(526, 0, frame, { untech = 6000}) pat:update_frame(525, 0, frame, function(frame) -- show_message_box(table.tostring(frame)) frame.attackbox[1] = { x1=-22, y1=-107, x2=130, y2=-37 } end) pat:update_frame(526, 0, frame, function(frame) -- show_message_box(table.tostring(frame)) frame.attackbox[1] = { x1=-22, y1=-107, x2=130, y2=-37 } end) end end function mods.make236autoguard(pat) -- local function set_block(frame) -- set_fflag(frame, 529) -- end -- for frame = 0, 6 do -- pat:update_frame(565, 1, frame, set_block) -- pat:update_frame(566, 1, frame, set_block) -- end pat:update_frame(565, 0, 0, { duration = 12 }) pat:update_frame(566, 0, 0, { duration = 20 }) end function mods.dragonDP(pat) -- pat:get_sequence(550, 2):set_priority(50, 9999) -- pat:get_sequence(550, 5):set_priority(50, 9999) local function set_graze(frame) set_fflag(frame, FF_GRAZE) end local function set_invinc(frame) set_fflag(frame, FF_GRAZE) end -- for frame = 0, 3 do -- pat:update_frame(550, 4, frame, { duration = 20 }) -- end for frame = 0, 1 do -- pat:update_frame(550, 0, frame, set_invinc) -- pat:update_frame(550, 1, 0, set_invinc) pat:update_frame(550, 2, frame, set_invinc) pat:update_frame(550, 2, frame, { untech = 6000 }) -- pat:update_frame(551, 0, frame, set_graze) -- pat:update_frame(551, 1, 0, set_graze) pat:update_frame(551, 2, frame, set_graze) pat:update_frame(551, 2, frame, { untech = 6000 }) end -- pat:update_frame(550, 6, 0, { duration = 15 }) end function mods.modify2b(pat) pat:update_frame(802, 1, 1, { untech = 50, launch_vector_x = 0 }) pat:update_frame(802, 1, 0, { untech = 50, launch_vector_x = 0 }) end function mods.modify_236_bullets(pat) for off = 0, 6 do pat:update_frame(827, off, 0, { hitstop_enemy = 10, proration = 970 }) end end function mods.modify623boost(pat) pat:get_sequence(531, 2):set_priority(0, 0) pat:get_sequence(530, 2):set_priority(0, 0) pat:get_sequence(530, 1):set_priority(0, 0) pat:get_sequence(531, 1):set_priority(0, 0) for move = 530, 531 do for seq = 1, 2 do pat:update_frame(530, 0, 1, { duration = 10 }) pat:update_frame(531, 0, 1, { duration = 15 }) for idx = 0, pat:get_frame_count(move, seq) - 1 do pat:update_frame(move, seq, idx, function(frame) set_fflag(frame, FF_CANCEL) set_fflag(frame, FF_MOTION_CANCEL) end) end end end end function mods.j8arecovery(pat) pat:update_frame(309, 0, 10, { duration = 1 }) pat:update_frame(309, 0, 10, { duration = 5 }) pat:update_frame(309, 0, 11, { duration = 2 }) for frame = 0, 9 do pat:update_frame(309, 0, frame, { untech = 90, damage = 400 }) end end function mods.modify214(pat) for frame = 0, 1 do pat:update_frame(500, 1, frame, { untech = 9000 }) pat:update_frame(501, 1, frame, { untech = 9000 }) end pat:update_frame(500, 0, 7, { untech = 9000 }) pat:update_frame(500, 3, 7, { untech = 9000 }) pat:update_frame(501, 0, 7, { untech = 9000 }) pat:update_frame(501, 3, 7, { untech = 9000 }) for frame = 0, 4 do pat:update_frame(500, 0, frame, { duration = 2 }) pat:update_frame(500, 3, frame, { duration = 2 }) pat:update_frame(501, 0, frame, { duration = 2 }) pat:update_frame(501, 3, frame, { duration = 2 }) end end function mods.modifyd22(pat) pat:update_frame(820, 0, 0, { launch_vector_y = 2600, hitstop_enemy = 17, proration = 890, untech = 40 }) pat:update_frame(820, 1, 0, { launch_vector_y = 3100, hitstop_enemy = 17, proration = 890, untech = 40 }) pat:update_frame(820, 2, 0, { launch_vector_y = 2600, hitstop_enemy = 17, proration = 890, untech = 40 }) pat:update_frame(820, 3, 0, { launch_vector_y = 3100, hitstop_enemy = 17, proration = 890, untech = 40 }) for frame = 0, 19 do pat:update_frame(820, 4, frame, { launch_vector_y = 3100, hitstop_enemy = 17, proration = 890, untech = 40 }) pat:update_frame(820, 5, frame, { launch_vector_y = 3100, hitstop_enemy = 17, proration = 890, untech = 40 }) end end function mods.modifyj2a(pat) pat:update_frame(308, 0, 4, { untech = 60 }) pat:update_frame(308, 0, 7, { untech = 60 }) pat:update_frame(301, 0, 3, { untech = 60 }) end function mods.modify5bhitstop(pat) for frame = 0, 7 do pat:update_frame(800, 0, frame, { hitstop_enemy = 9 }) pat:update_frame(800, 1, frame, { hitstop_enemy = 9 }) end end function mods.modify66b(pat) pat:update_frame(408, 0, 5, { duration = 18 }) pat:update_frame(408, 0, 2, { duration = 6 }) pat:update_frame(408, 0, 0, { duration = 5 }) pat:update_frame(408, 0, 1, { duration = 5 }) local function set_armor(frame) set_fflag(frame, 129) end for st = 2, 4 do pat:update_frame(408, 0, st, set_armor) pat:update_frame(408, 0, st, { untech = 60 }) end end function mods.shockwave(pat) for frame = 0, 2 do pat:update_frame(821, 0, frame, { launch_vector_x = 200, launch_vector_y = 2300, hitstop_enemy = 10, proration = 920, untech = 40}) pat:update_frame(821, 2, frame, { launch_vector_x = 200, launch_vector_y = 2300, hitstop_enemy = 10, proration = 920, untech = 40}) pat:update_frame(821, 3, frame, { launch_vector_x = 200, launch_vector_y = 2300, hitstop_enemy = 10, proration = 920, untech = 40}) end end function mods.modifyalt236box(pat) pat:update_frame(826, 6, 0, function(frame) frame.attackbox[1]= pat:get_frame(826, 6, 0).hurtbox[1] -- set_aflag(frame, 3076) frame.attack_level = 1 frame.card_gain_block = 10 frame.card_gain_hit = 10 frame.chip_damage = 5 frame.combo_correction = 2 frame.data_format = 0 frame.hit_effect = 3 frame.duration = 1 frame.sp_damage = 0 frame.unknown_9 = 100 frame.damage = 100 frame.hitstop_enemy = 5 frame.hitstop_self = 5 frame.blockstop_enemy = 5 frame.blockstop_self = 5 frame.proration = 1000 frame.limit = 0 frame.hit_ani_ground = 77 frame.hit_ani_air = 77 frame.untech = 45 frame.launch_vector_x = -50 frame.launch_vector_y = 500 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) for frame = 0, 1 do pat:update_frame(826, 3, frame, { damage = 100 }) end end function mods.colorful(pat) for move = 570, 573 do pat:update_frame(move, 0, 3, { duration = 1 }) for off = 0, 6 do pat:update_frame(827, off, 0, function(frame) frame.hitstop_enemy = 15 frame.untech = 45 frame.attackbox[1] = { x1=-40, y1=-20, x2=70, y2=20 } frame.scale_x = 150 frame.scale_y = 150 frame.proration = 980 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, 3 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(788, 4, idx) 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.colorful(pat) mods.modifyalt236box(pat) mods.searingfistuntech(pat) mods.bigfistuntech(pat) mods.shockwave(pat) mods.modifyd623(pat) mods.modify66b(pat) mods.modify5bhitstop(pat) mods.modify214(pat) mods.modifyj2a(pat) mods.modifyd22(pat) mods.j8arecovery(pat) mods.modify623boost(pat) mods.modify_236_bullets(pat) mods.modify2b(pat) mods.make236autoguard(pat) mods.dragonDP(pat) mods.dialAoption(pat) mods.modifyj6a_untech(pat) if config:get("global", "4A/2A", "melty-style jabs") then mods.cancel(pat) end mods.youhou(pat) mods.chi_release(pat) mods.roc_fist(pat) mods.blue_ball(pat) mods.reduce_2card_recovery(pat) mods.modify_d236_angle(pat) -- mods.d236b_startup(pat) -- mods.d236c_startup(pat) mods.modify_5aaa6a_untech(pat) mods.modify_j5a_untech(pat) end