From b0ff77ee0d777c33b0f8beff1597309ea35993a0 Mon Sep 17 00:00:00 2001 From: ethangarsia517 Date: Sun, 23 Aug 2026 14:49:56 -0500 Subject: [PATCH 1/4] the stuff + pikmin crash fix Balance adjusments. Also fixes crashes for Kirby Pikmin Toss and Villager & Isabelle when using Pocket for Pikmin --- fighters/kirby/src/acmd/aerials.rs | 14 +-- fighters/kirby/src/acmd/specials.rs | 26 +++--- fighters/kirby/src/finalcuttershot/acmd.rs | 4 +- .../kirby/motion/body/motion_patch.yaml | 2 +- romfs/source/fighter/kirby/param/hdr.xml | 85 +++++++++++++++++++ romfs/source/fighter/murabito/param/hdr.xml | 84 ++++++++++++++++++ romfs/source/fighter/pikmin/param/hdr.xml | 1 + romfs/source/fighter/shizue/param/hdr.xml | 84 ++++++++++++++++++ 8 files changed, 277 insertions(+), 23 deletions(-) diff --git a/fighters/kirby/src/acmd/aerials.rs b/fighters/kirby/src/acmd/aerials.rs index eb3d1a15dc..e505ffce9a 100644 --- a/fighters/kirby/src/acmd/aerials.rs +++ b/fighters/kirby/src/acmd/aerials.rs @@ -94,9 +94,9 @@ unsafe extern "C" fn game_attackairb(agent: &mut L2CAgentBase) { HIT_NODE(agent, Hash40::new("footr"), *HIT_STATUS_XLU); HIT_NODE(agent, Hash40::new("toel"), *HIT_STATUS_XLU); HIT_NODE(agent, Hash40::new("toer"), *HIT_STATUS_XLU); - ATTACK(agent, 0, 0, Hash40::new("kneer"), 13.0, 361, 104, 0, 19, 4.5, 0.0, 0.0, 0.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *ATTACK_LR_CHECK_POS, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_normal"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_KICK); - ATTACK(agent, 1, 0, Hash40::new("toer"), 13.0, 361, 104, 0, 19, 4.5, 0.0, 0.0, 0.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *ATTACK_LR_CHECK_POS, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_normal"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_KICK); - ATTACK(agent, 2, 0, Hash40::new("top"), 13.0, 361, 104, 0, 19, 4.0, 0.0, 4.0, -10.5, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *ATTACK_LR_CHECK_POS, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_normal"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_KICK); + ATTACK(agent, 0, 0, Hash40::new("kneer"), 13.0, 361, 106, 0, 20, 4.5, 0.0, 0.0, 0.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *ATTACK_LR_CHECK_POS, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_normal"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_KICK); + ATTACK(agent, 1, 0, Hash40::new("toer"), 13.0, 361, 106, 0, 20, 4.5, 0.0, 0.0, 0.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *ATTACK_LR_CHECK_POS, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_normal"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_KICK); + ATTACK(agent, 2, 0, Hash40::new("top"), 13.0, 361, 106, 0, 20, 4.0, 0.0, 4.0, -10.5, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *ATTACK_LR_CHECK_POS, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_normal"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_KICK); } frame(lua_state, 9.0); @@ -140,13 +140,13 @@ unsafe extern "C" fn game_attackairhi(agent: &mut L2CAgentBase) { frame(lua_state, 10.0); if is_excute(agent) { WorkModule::on_flag(boma, *FIGHTER_STATUS_ATTACK_AIR_FLAG_ENABLE_LANDING); - ATTACK(agent, 0, 0, Hash40::new("footr"), 13.0, 72, 120, 0, 5, 4.0, 0.0, -5.6, 0.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *ATTACK_LR_CHECK_POS, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_normal"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_KICK); - ATTACK(agent, 1, 0, Hash40::new("footr"), 13.0, 72, 120, 0, 5, 3.5, 0.0, 0.0, 0.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *ATTACK_LR_CHECK_POS, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_normal"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_KICK); + ATTACK(agent, 0, 0, Hash40::new("footr"), 13.0, 70, 100, 0, 35, 4.0, 0.0, -5.6, 0.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *ATTACK_LR_CHECK_POS, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_normal"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_KICK); + ATTACK(agent, 1, 0, Hash40::new("footr"), 13.0, 70, 100, 0, 35, 3.5, 0.0, 0.0, 0.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *ATTACK_LR_CHECK_POS, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_normal"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_KICK); } frame(lua_state, 13.0); if is_excute(agent) { - ATTACK(agent, 0, 0, Hash40::new("footr"), 9.0, 30, 120, 0, 5, 4.0, 0.0, -5.6, 0.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *ATTACK_LR_CHECK_POS, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_normal"), *ATTACK_SOUND_LEVEL_M, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_KICK); - ATTACK(agent, 1, 0, Hash40::new("footr"), 9.0, 30, 120, 0, 5, 3.5, 0.0, 0.0, 0.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *ATTACK_LR_CHECK_POS, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_normal"), *ATTACK_SOUND_LEVEL_M, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_KICK); + ATTACK(agent, 0, 0, Hash40::new("footr"), 9.0, 30, 104, 0, 15, 4.0, 0.0, -5.6, 0.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *ATTACK_LR_CHECK_POS, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_normal"), *ATTACK_SOUND_LEVEL_M, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_KICK); + ATTACK(agent, 1, 0, Hash40::new("footr"), 9.0, 30, 104, 0, 15, 3.5, 0.0, 0.0, 0.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *ATTACK_LR_CHECK_POS, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_normal"), *ATTACK_SOUND_LEVEL_M, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_KICK); } frame(lua_state, 16.0); if is_excute(agent) { diff --git a/fighters/kirby/src/acmd/specials.rs b/fighters/kirby/src/acmd/specials.rs index 40b3fd3ba0..53ff7ff8b3 100644 --- a/fighters/kirby/src/acmd/specials.rs +++ b/fighters/kirby/src/acmd/specials.rs @@ -136,8 +136,8 @@ unsafe extern "C" fn game_specialsmax(agent: &mut L2CAgentBase) { frame(lua_state, 11.0); if is_excute(agent) { damage!(agent, *MA_MSC_DAMAGE_DAMAGE_NO_REACTION, *DAMAGE_NO_REACTION_MODE_ALWAYS, 0); - ATTACK(agent, 0, 0, Hash40::new("top"), 32.0, 361, 72, 0, 55, 5.8, 0.0, 4.2, 11.5, None, None, None, 1.25, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_POS, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_fire"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_FIRE, *ATTACK_REGION_HAMMER); - ATTACK(agent, 1, 0, Hash40::new("top"), 32.0, 361, 72, 0, 55, 3.6, 0.0, 4.2, 5.5, None, None, None, 1.25, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_POS, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_fire"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_FIRE, *ATTACK_REGION_HAMMER); + ATTACK(agent, 0, 0, Hash40::new("top"), 34.0, 361, 74, 0, 58, 5.8, 0.0, 4.2, 11.5, None, None, None, 1.25, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_POS, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_fire"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_FIRE, *ATTACK_REGION_HAMMER); + ATTACK(agent, 1, 0, Hash40::new("top"), 34.0, 361, 74, 0, 58, 3.6, 0.0, 4.2, 5.5, None, None, None, 1.25, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_POS, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_fire"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_FIRE, *ATTACK_REGION_HAMMER); } frame(lua_state, 13.0); FT_MOTION_RATE_RANGE(agent, 13.0, 54.0, 27.0); @@ -173,8 +173,8 @@ unsafe extern "C" fn game_specialairs(agent: &mut L2CAgentBase) { frame(lua_state, 11.0); FT_MOTION_RATE(agent, 1.0); if is_excute(agent) { - ATTACK(agent, 1, 0, Hash40::new("top"), 12.0, 50, 102, 0, 60, 5.4, 0.0, 4.3, 11.5, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_fire"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_HAMMER); - ATTACK(agent, 0, 0, Hash40::new("top"), 10.0, 65, 73, 0, 66, 3.2, 0.0, 4.3, 5.5, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_fire"), *ATTACK_SOUND_LEVEL_M, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_HAMMER); + ATTACK(agent, 1, 0, Hash40::new("top"), 14.0, 52, 96, 0, 54, 5.4, 0.0, 4.3, 11.5, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_fire"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_HAMMER); + ATTACK(agent, 0, 0, Hash40::new("top"), 11.0, 67, 70, 0, 64, 3.2, 0.0, 4.3, 5.5, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_fire"), *ATTACK_SOUND_LEVEL_M, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_HAMMER); } wait(lua_state, 2.0); if is_excute(agent) { @@ -182,8 +182,8 @@ unsafe extern "C" fn game_specialairs(agent: &mut L2CAgentBase) { } frame(lua_state, 25.0); if is_excute(agent) { - ATTACK(agent, 1, 0, Hash40::new("top"), 10.0, 38, 92, 0, 67, 5.4, 0.0, 4.3, 11.5, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_fire"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_HAMMER); - ATTACK(agent, 0, 0, Hash40::new("top"), 8.5, 53, 70, 0, 66, 3.2, 0.0, 4.3, 5.5, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_fire"), *ATTACK_SOUND_LEVEL_M, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_HAMMER); + ATTACK(agent, 1, 0, Hash40::new("top"), 12.5, 42, 90, 0, 54, 5.4, 0.0, 4.3, 11.5, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_fire"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_HAMMER); + ATTACK(agent, 0, 0, Hash40::new("top"), 10.0, 57, 66, 0, 62, 3.2, 0.0, 4.3, 5.5, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_fire"), *ATTACK_SOUND_LEVEL_M, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_HAMMER); } wait(lua_state, 2.0); if is_excute(agent) { @@ -203,8 +203,8 @@ unsafe extern "C" fn game_specialairss(agent: &mut L2CAgentBase) { frame(lua_state, 11.0); FT_MOTION_RATE(agent, 1.0); if is_excute(agent) { - ATTACK(agent, 1, 0, Hash40::new("top"), 12.0, 50, 102, 0, 60, 5.4, 0.0, 4.3, 11.5, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_normal"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_HAMMER); - ATTACK(agent, 0, 0, Hash40::new("top"), 10.0, 65, 73, 0, 66, 3.2, 0.0, 4.3, 5.5, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_normal"), *ATTACK_SOUND_LEVEL_M, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_HAMMER); + ATTACK(agent, 1, 0, Hash40::new("top"), 14.0, 52, 97, 0, 54, 5.4, 0.0, 4.3, 11.5, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_normal"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_HAMMER); + ATTACK(agent, 0, 0, Hash40::new("top"), 11.0, 67, 70, 0, 64, 3.2, 0.0, 4.3, 5.5, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_normal"), *ATTACK_SOUND_LEVEL_M, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_HAMMER); } wait(lua_state, 2.0); if is_excute(agent) { @@ -212,8 +212,8 @@ unsafe extern "C" fn game_specialairss(agent: &mut L2CAgentBase) { } frame(lua_state, 25.0); if is_excute(agent) { - ATTACK(agent, 1, 0, Hash40::new("top"), 10.0, 38, 92, 0, 67, 5.4, 0.0, 4.3, 11.5, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_normal"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_HAMMER); - ATTACK(agent, 0, 0, Hash40::new("top"), 8.5, 53, 70, 0, 66, 3.2, 0.0, 4.3, 5.5, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_normal"), *ATTACK_SOUND_LEVEL_M, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_HAMMER); + ATTACK(agent, 1, 0, Hash40::new("top"), 12.5, 42, 91, 0, 54, 5.4, 0.0, 4.3, 11.5, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_normal"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_HAMMER); + ATTACK(agent, 0, 0, Hash40::new("top"), 10.0, 57, 66, 0, 62, 3.2, 0.0, 4.3, 5.5, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_normal"), *ATTACK_SOUND_LEVEL_M, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_HAMMER); } wait(lua_state, 2.0); if is_excute(agent) { @@ -338,7 +338,7 @@ unsafe extern "C" fn game_specialairhi2(agent: &mut L2CAgentBase) { } frame(lua_state, 19.0); if is_excute(agent) { - ATTACK(agent, 0, 0, Hash40::new("haver"), 7.0, 55, 115, 0, 55, 6.0, 0.0, 8.5, 0.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *ATTACK_LR_CHECK_POS, true, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_cutup"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_CUTUP, *ATTACK_REGION_SWORD); + ATTACK(agent, 0, 0, Hash40::new("haver"), 7.0, 55, 105, 0, 55, 6.0, 0.0, 8.5, 0.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *ATTACK_LR_CHECK_POS, true, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_cutup"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_CUTUP, *ATTACK_REGION_SWORD); } frame(lua_state, 28.0); if is_excute(agent) { @@ -631,7 +631,7 @@ unsafe extern "C" fn game_specialairlw(agent: &mut L2CAgentBase) { ArticleModule::change_motion(boma, *FIGHTER_KIRBY_GENERATE_ARTICLE_STONE, Hash40::new("special_lw_to_air"), false, -1.0); DamageModule::set_reaction_mul(boma, 0.75); AttackModule::clear(boma, 1, false); - ATTACK(agent, 0, 0, Hash40::new("top"), 18.0, 70, 76, 0, 69, 6.5, 0.0, 2.0, 0.0, None, None, None, 0.7, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_POS, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_normal"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_BODY); + ATTACK(agent, 0, 0, Hash40::new("top"), 22.0, 70, 76, 0, 69, 6.5, 0.0, 2.0, 0.0, None, None, None, 0.7, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_POS, false, 1, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_normal"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_BODY); AttackModule::init_attack_pos(boma, 0); } } @@ -701,7 +701,7 @@ unsafe extern "C" fn game_speciallwtoair(agent: &mut L2CAgentBase) { ArticleModule::change_motion(boma, *FIGHTER_KIRBY_GENERATE_ARTICLE_STONE, Hash40::new("special_lw_to_air"), false, -1.0); DamageModule::set_reaction_mul(boma, 0.75); AttackModule::clear(boma, 1, false); - ATTACK(agent, 0, 0, Hash40::new("top"), 18.0, 70, 79, 0, 75, 6.5, 0.0, 2.0, 0.0, None, None, None, 0.7, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_POS, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_normal"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_BODY); + ATTACK(agent, 0, 0, Hash40::new("top"), 17.0, 70, 79, 0, 75, 6.5, 0.0, 2.0, 0.0, None, None, None, 0.7, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_POS, false, 1, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_normal"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_BODY); AttackModule::init_attack_pos(boma, 0); } } diff --git a/fighters/kirby/src/finalcuttershot/acmd.rs b/fighters/kirby/src/finalcuttershot/acmd.rs index a7de0accb6..b3f0762d9d 100644 --- a/fighters/kirby/src/finalcuttershot/acmd.rs +++ b/fighters/kirby/src/finalcuttershot/acmd.rs @@ -4,11 +4,11 @@ unsafe extern "C" fn game_finalcutterregular(agent: &mut L2CAgentBase) { let lua_state = agent.lua_state_agent; let boma = agent.boma(); if is_excute(agent) { - ATTACK(agent, 0, 0, Hash40::new("top"), 5.0, 70, 95, 0, 85, 5.0, 0.0, 5.6, -5.1, None, None, None, 0.7, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, true, true, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_cutup"), *ATTACK_SOUND_LEVEL_M, *COLLISION_SOUND_ATTR_CUTUP, *ATTACK_REGION_NONE); + ATTACK(agent, 0, 0, Hash40::new("top"), 8.0, 70, 95, 0, 70, 5.0, 0.0, 5.6, -5.1, None, None, None, 0.7, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, true, true, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_cutup"), *ATTACK_SOUND_LEVEL_M, *COLLISION_SOUND_ATTR_CUTUP, *ATTACK_REGION_NONE); } frame(lua_state, 2.0); if is_excute(agent) { - ATTACK(agent, 0, 0, Hash40::new("top"), 6.0, 45, 30, 0, 60, 3.8, 0.0, 3.0, -6.1, Some(0.0), Some(9.0), Some(-9.6), 0.7, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, true, true, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_cutup"), *ATTACK_SOUND_LEVEL_M, *COLLISION_SOUND_ATTR_CUTUP, *ATTACK_REGION_NONE); + ATTACK(agent, 0, 0, Hash40::new("top"), 6.0, 50, 30, 0, 70, 3.8, 0.0, 3.0, -6.1, Some(0.0), Some(9.0), Some(-9.6), 0.7, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, true, true, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_cutup"), *ATTACK_SOUND_LEVEL_M, *COLLISION_SOUND_ATTR_CUTUP, *ATTACK_REGION_NONE); } } diff --git a/romfs/source/fighter/kirby/motion/body/motion_patch.yaml b/romfs/source/fighter/kirby/motion/body/motion_patch.yaml index b150a9cc47..d562f0a415 100644 --- a/romfs/source/fighter/kirby/motion/body/motion_patch.yaml +++ b/romfs/source/fighter/kirby/motion/body/motion_patch.yaml @@ -1593,7 +1593,7 @@ special_air_hi_h: freeze_during_hitstop: false special_air_lw2: extra: - cancel_frame: 28 + cancel_frame: 32 special_hi_h: game_script: game_specialhih flags: diff --git a/romfs/source/fighter/kirby/param/hdr.xml b/romfs/source/fighter/kirby/param/hdr.xml index 8f1236dd3a..cb3a4e9f6c 100644 --- a/romfs/source/fighter/kirby/param/hdr.xml +++ b/romfs/source/fighter/kirby/param/hdr.xml @@ -8,4 +8,89 @@ 1 0.8 + + + + + + + 1.26 + 1.05 + 0.2 + 0 + 1.05 + collision_attr_fire + collision_attr_fire + 8 + 1.0 + 0.05 + 0.0 + 4 + + + + + + 0.96 + 0.9 + -0.2 + 6 + 1.25 + collision_attr_elec + collision_attr_paralyze + 7 + 1.0 + 1.0 + 0.14 + 7 + + + + + 1.2 + 1.0 + 0.0 + 0 + 1.0 + collision_attr_water + collision_attr_water + 9 + 0.2 + 0.8 + 2.0 + 4 + + + + + 1.44 + 1.0 + 0.33 + 0 + 1.0 + collision_attr_purple + collision_attr_flower + 8 + 1.0 + 1.0 + 1.0 + 3 + + + + + 1.2 + 1.1 + 0.0 + 0 + 1.1 + collision_attr_normal + collision_attr_normal + 2 + 0.36 + 0.0 + 1.0 + 999 + + \ No newline at end of file diff --git a/romfs/source/fighter/murabito/param/hdr.xml b/romfs/source/fighter/murabito/param/hdr.xml index f183756ec7..67400975b3 100644 --- a/romfs/source/fighter/murabito/param/hdr.xml +++ b/romfs/source/fighter/murabito/param/hdr.xml @@ -3,4 +3,88 @@ 14 + + + + + + 1.05 + 1.05 + 0.2 + 0 + 1.05 + collision_attr_fire + collision_attr_fire + 8 + 1.0 + 0.05 + 0.0 + 4 + + + + + + 0.8 + 0.9 + -0.2 + 6 + 1.25 + collision_attr_elec + collision_attr_paralyze + 7 + 1.0 + 1.0 + 0.14 + 7 + + + + + 1.0 + 1.0 + 0.0 + 0 + 1.0 + collision_attr_water + collision_attr_water + 9 + 0.2 + 0.8 + 2.0 + 4 + + + + + 1.2 + 1.0 + 0.33 + 0 + 1.0 + collision_attr_purple + collision_attr_flower + 8 + 1.0 + 1.0 + 1.0 + 3 + + + + + 1.0 + 1.1 + 0.0 + 0 + 1.1 + collision_attr_normal + collision_attr_normal + 2 + 0.36 + 0.0 + 1.0 + 999 + + \ No newline at end of file diff --git a/romfs/source/fighter/pikmin/param/hdr.xml b/romfs/source/fighter/pikmin/param/hdr.xml index a3dc807ffb..f63bc2ef2a 100644 --- a/romfs/source/fighter/pikmin/param/hdr.xml +++ b/romfs/source/fighter/pikmin/param/hdr.xml @@ -12,6 +12,7 @@ 0.5 + diff --git a/romfs/source/fighter/shizue/param/hdr.xml b/romfs/source/fighter/shizue/param/hdr.xml index f183756ec7..67400975b3 100644 --- a/romfs/source/fighter/shizue/param/hdr.xml +++ b/romfs/source/fighter/shizue/param/hdr.xml @@ -3,4 +3,88 @@ 14 + + + + + + 1.05 + 1.05 + 0.2 + 0 + 1.05 + collision_attr_fire + collision_attr_fire + 8 + 1.0 + 0.05 + 0.0 + 4 + + + + + + 0.8 + 0.9 + -0.2 + 6 + 1.25 + collision_attr_elec + collision_attr_paralyze + 7 + 1.0 + 1.0 + 0.14 + 7 + + + + + 1.0 + 1.0 + 0.0 + 0 + 1.0 + collision_attr_water + collision_attr_water + 9 + 0.2 + 0.8 + 2.0 + 4 + + + + + 1.2 + 1.0 + 0.33 + 0 + 1.0 + collision_attr_purple + collision_attr_flower + 8 + 1.0 + 1.0 + 1.0 + 3 + + + + + 1.0 + 1.1 + 0.0 + 0 + 1.1 + collision_attr_normal + collision_attr_normal + 2 + 0.36 + 0.0 + 1.0 + 999 + + \ No newline at end of file From be706a35b54e20363ced1830cdafc54c45995346 Mon Sep 17 00:00:00 2001 From: ethangarsia517 Date: Sun, 23 Aug 2026 14:52:17 -0500 Subject: [PATCH 2/4] hammer flip correction forgot about the fire variant --- fighters/kirby/src/acmd/specials.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fighters/kirby/src/acmd/specials.rs b/fighters/kirby/src/acmd/specials.rs index 53ff7ff8b3..2174e01c36 100644 --- a/fighters/kirby/src/acmd/specials.rs +++ b/fighters/kirby/src/acmd/specials.rs @@ -173,7 +173,7 @@ unsafe extern "C" fn game_specialairs(agent: &mut L2CAgentBase) { frame(lua_state, 11.0); FT_MOTION_RATE(agent, 1.0); if is_excute(agent) { - ATTACK(agent, 1, 0, Hash40::new("top"), 14.0, 52, 96, 0, 54, 5.4, 0.0, 4.3, 11.5, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_fire"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_HAMMER); + ATTACK(agent, 1, 0, Hash40::new("top"), 14.0, 52, 97, 0, 54, 5.4, 0.0, 4.3, 11.5, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_fire"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_HAMMER); ATTACK(agent, 0, 0, Hash40::new("top"), 11.0, 67, 70, 0, 64, 3.2, 0.0, 4.3, 5.5, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_fire"), *ATTACK_SOUND_LEVEL_M, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_HAMMER); } wait(lua_state, 2.0); @@ -182,7 +182,7 @@ unsafe extern "C" fn game_specialairs(agent: &mut L2CAgentBase) { } frame(lua_state, 25.0); if is_excute(agent) { - ATTACK(agent, 1, 0, Hash40::new("top"), 12.5, 42, 90, 0, 54, 5.4, 0.0, 4.3, 11.5, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_fire"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_HAMMER); + ATTACK(agent, 1, 0, Hash40::new("top"), 12.5, 42, 91, 0, 54, 5.4, 0.0, 4.3, 11.5, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_fire"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_HAMMER); ATTACK(agent, 0, 0, Hash40::new("top"), 10.0, 57, 66, 0, 62, 3.2, 0.0, 4.3, 5.5, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_fire"), *ATTACK_SOUND_LEVEL_M, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_HAMMER); } wait(lua_state, 2.0); From b366893bc1c289652331ea69aa00c453b17ba2e1 Mon Sep 17 00:00:00 2001 From: ethangarsia517 Date: Sun, 23 Aug 2026 15:00:43 -0500 Subject: [PATCH 3/4] uninstall unused variant of specialairlw? This one appears to never be used... --- fighters/kirby/src/acmd/specials.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fighters/kirby/src/acmd/specials.rs b/fighters/kirby/src/acmd/specials.rs index 2174e01c36..bf1dd63272 100644 --- a/fighters/kirby/src/acmd/specials.rs +++ b/fighters/kirby/src/acmd/specials.rs @@ -607,6 +607,7 @@ unsafe extern "C" fn game_speciallw(agent: &mut L2CAgentBase) { } } +// This doesn't appear to do anything, so it's not installed -> unsafe extern "C" fn game_specialairlw(agent: &mut L2CAgentBase) { let lua_state = agent.lua_state_agent; let boma = agent.boma(); @@ -777,7 +778,7 @@ pub fn install(agent: &mut Agent) { agent.acmd("expression_specialairhih", expression_specialairhih, Priority::Low); agent.acmd("game_speciallw", game_speciallw, Priority::Low); - agent.acmd("game_specialairlw", game_specialairlw, Priority::Low); + //agent.acmd("game_specialairlw", game_specialairlw, Priority::Low); agent.acmd("effect_specialairlw", effect_specialairlw, Priority::Low); agent.acmd("game_speciallwtoground", game_speciallwtoground, Priority::Low); agent.acmd("game_speciallwtoair", game_speciallwtoair, Priority::Low); From e9600a0acf7e2be8c0cba5693e8d4a348d46a74e Mon Sep 17 00:00:00 2001 From: ethangarsia517 Date: Mon, 24 Aug 2026 10:31:10 -0500 Subject: [PATCH 4/4] revert pikmin + tiny specials adjustment Pikmin to be fixed another way. --- fighters/kirby/src/acmd/specials.rs | 13 ++-- fighters/kirby/src/finalcuttershot/acmd.rs | 2 +- romfs/source/fighter/kirby/param/hdr.xml | 85 --------------------- romfs/source/fighter/murabito/param/hdr.xml | 84 -------------------- romfs/source/fighter/pikmin/param/hdr.xml | 1 - romfs/source/fighter/shizue/param/hdr.xml | 84 -------------------- 6 files changed, 7 insertions(+), 262 deletions(-) diff --git a/fighters/kirby/src/acmd/specials.rs b/fighters/kirby/src/acmd/specials.rs index bf1dd63272..856f8e695d 100644 --- a/fighters/kirby/src/acmd/specials.rs +++ b/fighters/kirby/src/acmd/specials.rs @@ -173,7 +173,7 @@ unsafe extern "C" fn game_specialairs(agent: &mut L2CAgentBase) { frame(lua_state, 11.0); FT_MOTION_RATE(agent, 1.0); if is_excute(agent) { - ATTACK(agent, 1, 0, Hash40::new("top"), 14.0, 52, 97, 0, 54, 5.4, 0.0, 4.3, 11.5, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_fire"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_HAMMER); + ATTACK(agent, 1, 0, Hash40::new("top"), 14.0, 52, 96, 0, 54, 5.4, 0.0, 4.3, 11.5, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_fire"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_HAMMER); ATTACK(agent, 0, 0, Hash40::new("top"), 11.0, 67, 70, 0, 64, 3.2, 0.0, 4.3, 5.5, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_fire"), *ATTACK_SOUND_LEVEL_M, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_HAMMER); } wait(lua_state, 2.0); @@ -182,7 +182,7 @@ unsafe extern "C" fn game_specialairs(agent: &mut L2CAgentBase) { } frame(lua_state, 25.0); if is_excute(agent) { - ATTACK(agent, 1, 0, Hash40::new("top"), 12.5, 42, 91, 0, 54, 5.4, 0.0, 4.3, 11.5, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_fire"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_HAMMER); + ATTACK(agent, 1, 0, Hash40::new("top"), 12.5, 42, 90, 0, 53, 5.4, 0.0, 4.3, 11.5, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_fire"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_HAMMER); ATTACK(agent, 0, 0, Hash40::new("top"), 10.0, 57, 66, 0, 62, 3.2, 0.0, 4.3, 5.5, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_fire"), *ATTACK_SOUND_LEVEL_M, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_HAMMER); } wait(lua_state, 2.0); @@ -203,7 +203,7 @@ unsafe extern "C" fn game_specialairss(agent: &mut L2CAgentBase) { frame(lua_state, 11.0); FT_MOTION_RATE(agent, 1.0); if is_excute(agent) { - ATTACK(agent, 1, 0, Hash40::new("top"), 14.0, 52, 97, 0, 54, 5.4, 0.0, 4.3, 11.5, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_normal"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_HAMMER); + ATTACK(agent, 1, 0, Hash40::new("top"), 14.0, 52, 96, 0, 54, 5.4, 0.0, 4.3, 11.5, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_normal"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_HAMMER); ATTACK(agent, 0, 0, Hash40::new("top"), 11.0, 67, 70, 0, 64, 3.2, 0.0, 4.3, 5.5, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_normal"), *ATTACK_SOUND_LEVEL_M, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_HAMMER); } wait(lua_state, 2.0); @@ -212,7 +212,7 @@ unsafe extern "C" fn game_specialairss(agent: &mut L2CAgentBase) { } frame(lua_state, 25.0); if is_excute(agent) { - ATTACK(agent, 1, 0, Hash40::new("top"), 12.5, 42, 91, 0, 54, 5.4, 0.0, 4.3, 11.5, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_normal"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_HAMMER); + ATTACK(agent, 1, 0, Hash40::new("top"), 12.5, 42, 90, 0, 53, 5.4, 0.0, 4.3, 11.5, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_normal"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_HAMMER); ATTACK(agent, 0, 0, Hash40::new("top"), 10.0, 57, 66, 0, 62, 3.2, 0.0, 4.3, 5.5, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_normal"), *ATTACK_SOUND_LEVEL_M, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_HAMMER); } wait(lua_state, 2.0); @@ -607,7 +607,6 @@ unsafe extern "C" fn game_speciallw(agent: &mut L2CAgentBase) { } } -// This doesn't appear to do anything, so it's not installed -> unsafe extern "C" fn game_specialairlw(agent: &mut L2CAgentBase) { let lua_state = agent.lua_state_agent; let boma = agent.boma(); @@ -632,7 +631,7 @@ unsafe extern "C" fn game_specialairlw(agent: &mut L2CAgentBase) { ArticleModule::change_motion(boma, *FIGHTER_KIRBY_GENERATE_ARTICLE_STONE, Hash40::new("special_lw_to_air"), false, -1.0); DamageModule::set_reaction_mul(boma, 0.75); AttackModule::clear(boma, 1, false); - ATTACK(agent, 0, 0, Hash40::new("top"), 22.0, 70, 76, 0, 69, 6.5, 0.0, 2.0, 0.0, None, None, None, 0.7, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_POS, false, 1, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_normal"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_BODY); + ATTACK(agent, 0, 0, Hash40::new("top"), 18.0, 70, 76, 0, 69, 6.5, 0.0, 2.0, 0.0, None, None, None, 0.7, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_POS, false, 1, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_normal"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_BODY); AttackModule::init_attack_pos(boma, 0); } } @@ -778,7 +777,7 @@ pub fn install(agent: &mut Agent) { agent.acmd("expression_specialairhih", expression_specialairhih, Priority::Low); agent.acmd("game_speciallw", game_speciallw, Priority::Low); - //agent.acmd("game_specialairlw", game_specialairlw, Priority::Low); + agent.acmd("game_specialairlw", game_specialairlw, Priority::Low); agent.acmd("effect_specialairlw", effect_specialairlw, Priority::Low); agent.acmd("game_speciallwtoground", game_speciallwtoground, Priority::Low); agent.acmd("game_speciallwtoair", game_speciallwtoair, Priority::Low); diff --git a/fighters/kirby/src/finalcuttershot/acmd.rs b/fighters/kirby/src/finalcuttershot/acmd.rs index b3f0762d9d..4748aa20e3 100644 --- a/fighters/kirby/src/finalcuttershot/acmd.rs +++ b/fighters/kirby/src/finalcuttershot/acmd.rs @@ -8,7 +8,7 @@ unsafe extern "C" fn game_finalcutterregular(agent: &mut L2CAgentBase) { } frame(lua_state, 2.0); if is_excute(agent) { - ATTACK(agent, 0, 0, Hash40::new("top"), 6.0, 50, 30, 0, 70, 3.8, 0.0, 3.0, -6.1, Some(0.0), Some(9.0), Some(-9.6), 0.7, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, true, true, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_cutup"), *ATTACK_SOUND_LEVEL_M, *COLLISION_SOUND_ATTR_CUTUP, *ATTACK_REGION_NONE); + ATTACK(agent, 0, 0, Hash40::new("top"), 6.0, 60, 30, 0, 70, 3.8, 0.0, 3.0, -6.1, Some(0.0), Some(9.0), Some(-9.6), 0.7, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, true, true, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_cutup"), *ATTACK_SOUND_LEVEL_M, *COLLISION_SOUND_ATTR_CUTUP, *ATTACK_REGION_NONE); } } diff --git a/romfs/source/fighter/kirby/param/hdr.xml b/romfs/source/fighter/kirby/param/hdr.xml index cb3a4e9f6c..8f1236dd3a 100644 --- a/romfs/source/fighter/kirby/param/hdr.xml +++ b/romfs/source/fighter/kirby/param/hdr.xml @@ -8,89 +8,4 @@ 1 0.8 - - - - - - - 1.26 - 1.05 - 0.2 - 0 - 1.05 - collision_attr_fire - collision_attr_fire - 8 - 1.0 - 0.05 - 0.0 - 4 - - - - - - 0.96 - 0.9 - -0.2 - 6 - 1.25 - collision_attr_elec - collision_attr_paralyze - 7 - 1.0 - 1.0 - 0.14 - 7 - - - - - 1.2 - 1.0 - 0.0 - 0 - 1.0 - collision_attr_water - collision_attr_water - 9 - 0.2 - 0.8 - 2.0 - 4 - - - - - 1.44 - 1.0 - 0.33 - 0 - 1.0 - collision_attr_purple - collision_attr_flower - 8 - 1.0 - 1.0 - 1.0 - 3 - - - - - 1.2 - 1.1 - 0.0 - 0 - 1.1 - collision_attr_normal - collision_attr_normal - 2 - 0.36 - 0.0 - 1.0 - 999 - - \ No newline at end of file diff --git a/romfs/source/fighter/murabito/param/hdr.xml b/romfs/source/fighter/murabito/param/hdr.xml index 67400975b3..f183756ec7 100644 --- a/romfs/source/fighter/murabito/param/hdr.xml +++ b/romfs/source/fighter/murabito/param/hdr.xml @@ -3,88 +3,4 @@ 14 - - - - - - 1.05 - 1.05 - 0.2 - 0 - 1.05 - collision_attr_fire - collision_attr_fire - 8 - 1.0 - 0.05 - 0.0 - 4 - - - - - - 0.8 - 0.9 - -0.2 - 6 - 1.25 - collision_attr_elec - collision_attr_paralyze - 7 - 1.0 - 1.0 - 0.14 - 7 - - - - - 1.0 - 1.0 - 0.0 - 0 - 1.0 - collision_attr_water - collision_attr_water - 9 - 0.2 - 0.8 - 2.0 - 4 - - - - - 1.2 - 1.0 - 0.33 - 0 - 1.0 - collision_attr_purple - collision_attr_flower - 8 - 1.0 - 1.0 - 1.0 - 3 - - - - - 1.0 - 1.1 - 0.0 - 0 - 1.1 - collision_attr_normal - collision_attr_normal - 2 - 0.36 - 0.0 - 1.0 - 999 - - \ No newline at end of file diff --git a/romfs/source/fighter/pikmin/param/hdr.xml b/romfs/source/fighter/pikmin/param/hdr.xml index f63bc2ef2a..a3dc807ffb 100644 --- a/romfs/source/fighter/pikmin/param/hdr.xml +++ b/romfs/source/fighter/pikmin/param/hdr.xml @@ -12,7 +12,6 @@ 0.5 - diff --git a/romfs/source/fighter/shizue/param/hdr.xml b/romfs/source/fighter/shizue/param/hdr.xml index 67400975b3..f183756ec7 100644 --- a/romfs/source/fighter/shizue/param/hdr.xml +++ b/romfs/source/fighter/shizue/param/hdr.xml @@ -3,88 +3,4 @@ 14 - - - - - - 1.05 - 1.05 - 0.2 - 0 - 1.05 - collision_attr_fire - collision_attr_fire - 8 - 1.0 - 0.05 - 0.0 - 4 - - - - - - 0.8 - 0.9 - -0.2 - 6 - 1.25 - collision_attr_elec - collision_attr_paralyze - 7 - 1.0 - 1.0 - 0.14 - 7 - - - - - 1.0 - 1.0 - 0.0 - 0 - 1.0 - collision_attr_water - collision_attr_water - 9 - 0.2 - 0.8 - 2.0 - 4 - - - - - 1.2 - 1.0 - 0.33 - 0 - 1.0 - collision_attr_purple - collision_attr_flower - 8 - 1.0 - 1.0 - 1.0 - 3 - - - - - 1.0 - 1.1 - 0.0 - 0 - 1.1 - collision_attr_normal - collision_attr_normal - 2 - 0.36 - 0.0 - 1.0 - 999 - - \ No newline at end of file