-- sequence ids: -- 500 = [236] summer red -- 505 = [236] summer flame -- 510 = [236] wipe moisture -- 520 = [22] winter element -- 525 = [22] condensed bubble -- 530 = [22] sticky bubble -- 540 = [623] spring wind -- 545 = [623] flash of spring -- 550 = [623] static green -- 560 = [214] autumn edge (swords) -- 565 = [214] autumn blade (saws) -- 570 = [214] fall slasher -- 580 = [421] dew spear -- 585 = [421] emerald city -- 590 = [421] diamond hardness -- 600 = st elmo's pillar -- 601 = noachian deluge -- 602 = elemental harvester -- 603 = royal flare -- 604 = silent selene -- 605 = philosopher's stone -- 606 = jellyfish princess -- 607 = satellite sunflower -- 610 = photosynthesis -- 611 = phlogistic pillar -- 612 = emerald megalopolis -- 613 = royal diamond ring require("config.util") local mods = {} function mods.counterable_fa(pat) pat:update_frame(301, 0, 6, function(frame) set_aflag(frame, 0x4000) end) end function mods.startup_da(pat) pat:update_frame(305, 0, 0, { duration = 3 }) pat:update_frame(305, 0, 1, { duration = 3 }) pat:update_frame(305, 0, 2, { duration = 3 }) end function mods.hit_parameters_ja(pat) for idx = 2, 7 do pat:update_frame(306, 0, idx, { proration = 950 }) end end function mods.hit_parameters_j6a(pat, args) for idx = 0, 29 do pat:update_frame(848, 5, idx, args) end end function mods.ground_bounce_j2a(pat) for idx = 3, 4 do pat:update_frame(308, 0, idx, { hit_ani_air = 88, hit_ani_ground = 88, }) end end function mods.melee_db(pat) for idx = 5, 10 do pat:update_frame(408, 0, idx, function(frame) unset_aflag(frame, AF_PROJECTILE) end) end end function mods.parameters_2c(pat) for idx = 0, 1 do pat:update_frame(801, 12, idx, { untech = 60, -- hitstop_enemy = 5, launch_vector_x = 500, launch_vector_y = 1250, }) end end function mods.winter_element_parameters(pat, blockstop) for idx = 0, 14 do pat:update_frame(815, 0, idx, { blockstop_enemy = blockstop, }) end end function mods.condensed_bubble_cancel(pat) for seq = 525, 527 do for idx = 5, 6 do pat:update_frame(seq, 0, idx, function(frame) set_fflag(frame, FF_CANCEL) end) end for idx = 7, 8 do pat:update_frame(seq, 0, idx, function(frame) set_fflag(frame, FF_CANCEL + FF_MOTION_CANCEL) end) end end end function mods.sticky_bubble_cancel(pat) for _, seq in ipairs({530, 532, 533}) do for idx = 5, 6 do pat:update_frame(seq, 0, idx, function(frame) set_fflag(frame, FF_CANCEL) end) end for idx = 7, 8 do pat:update_frame(seq, 0, idx, function(frame) set_fflag(frame, FF_CANCEL + FF_MOTION_CANCEL) end) end end end function mods.flash_of_spring_startup(pat) for seq = 545, 548 do pat:update_frame(seq, 0, 5, { duration = 5 }) end end function mods.autumn_edge_parameters(pat) pat:update_frame(825, 3, 0, { sp_damage = 60 }) end function mods.elemental_harvester_startup(pat) pat:update_frame(602, 0, 4, { duration = 35 }) end function mods.elemental_harvester_damage(pat, damage, proration, limit) for idx = 0, 1 do pat:update_frame(602, 1, idx, { damage = damage, proration = proration, limit = limit }) end end function mods.elmo_recovery(pat) pat:update_frame(600, 0, 11, { duration = 10 }) end function mods.elmo_parameters(pat) pat:update_frame(850, 2, 1, { damage = 3000, -- chip_damage = 500, proration = 750, -- limit = 50, untech = 6000, -- launch_vector_x = 200, -- launch_vector_y = 3000, }) end function mods.photosynthesis_recovery(pat) pat:update_frame(610, 2, 2, { duration = 16 }) end return function(pat) if config:get("patchouli", "fa", "counterable") then mods.counterable_fa(pat) end if config:get("patchouli", "da", "reduce_startup") then mods.startup_da(pat) end -- mods.hit_parameters_ja(pat) mods.hit_parameters_j6a(pat, { untech = 60, limit = 15, launch_vector_x = 200, proration = config:getdef("patchouli", "j6a", "proration", 870) }) if config:get("patchouli", "j2a", "ground_bounce") then mods.ground_bounce_j2a(pat) end if config:get("patchouli", "db", "melee") then mods.melee_db(pat) end if config:get("patchouli", "c_series", "increase_2c_juggle") then mods.parameters_2c(pat) end mods.winter_element_parameters(pat, config:getdef( "patchouli", "winter_element", "blockstop", 0 )) mods.condensed_bubble_cancel(pat) mods.sticky_bubble_cancel(pat) mods.autumn_edge_parameters(pat) if config:get("patchouli", "flash_of_spring", "haste_1") then mods.flash_of_spring_startup(pat) end if config:get("patchouli", "st_elmos_pillar", "upgrade") then mods.elmo_recovery(pat) mods.elmo_parameters(pat) end if config:get("patchouli", "elemental_harvester", "increase_startup") then mods.elemental_harvester_startup(pat) end mods.elemental_harvester_damage(pat, 140, 990, 2) mods.photosynthesis_recovery(pat) end