Skip to content

Commit 0dc348a

Browse files
committed
Merge branch 'dev' into sephiroth-again-again
2 parents 999a20a + 9835b20 commit 0dc348a

File tree

13 files changed

+143
-98
lines changed

13 files changed

+143
-98
lines changed

fighters/common/src/opff/floats.rs

+5-4
Original file line numberDiff line numberDiff line change
@@ -90,10 +90,11 @@ pub unsafe fn extra_floats(fighter: &mut L2CFighterCommon, boma: &mut BattleObje
9090
WorkModule::on_flag(boma, *FIGHTER_INSTANCE_WORK_ID_FLAG_SUPERLEAF);
9191
}
9292
if WorkModule::is_flag(boma, *FIGHTER_INSTANCE_WORK_ID_FLAG_SUPERLEAF)
93-
&& !WorkModule::is_flag(boma, *FIGHTER_STATUS_WORK_ID_FLAG_RESERVE_FALL_SLOWLY)
94-
&& (boma.left_stick_y() >= -0.66 && InputModule::get_trigger_count(fighter.battle_object, Buttons::Jump) <= 4)
95-
{ //disables held floats unless jump is held 5f
96-
WorkModule::off_flag(boma, *FIGHTER_INSTANCE_WORK_ID_FLAG_SUPERLEAF);
93+
&& !WorkModule::is_flag(boma, *FIGHTER_STATUS_WORK_ID_FLAG_RESERVE_FALL_SLOWLY) {
94+
if (boma.left_stick_y() >= -0.66 && InputModule::get_trigger_count(fighter.battle_object, Buttons::Jump) <= 4) //disable helf floats for 4f
95+
|| fighter.is_button_off(Buttons::Jump) { //disable 1f float
96+
WorkModule::off_flag(boma, *FIGHTER_INSTANCE_WORK_ID_FLAG_SUPERLEAF);
97+
}
9798
}
9899
// Immediately transition to fall/double jump fall when activating float
99100
if ControlModule::check_button_on(boma, *CONTROL_PAD_BUTTON_JUMP) && boma.left_stick_y() < -0.66 && WorkModule::get_int(boma, *FIGHTER_INSTANCE_WORK_ID_INT_SUPERLEAF_FALL_SLOWLY_FRAME) > 0 {

fighters/fox/src/acmd/specials.rs

+6-5
Original file line numberDiff line numberDiff line change
@@ -109,9 +109,10 @@ unsafe fn game_speciallwstart(fighter: &mut L2CAgentBase) {
109109
frame(lua_state, 1.0);
110110
FT_MOTION_RATE_RANGE(fighter, 1.0, 4.0, 4.0);
111111
if is_excute(fighter) {
112-
ATTACK(fighter, 0, 0, Hash40::new("top"), 3.0, 360, 100, 80, 0, 8.0, 0.0, 6.5, 0.0, None, None, None, 0.9, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_POS, false, -1, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_G, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_elec"), *ATTACK_SOUND_LEVEL_S, *COLLISION_SOUND_ATTR_FIRE, *ATTACK_REGION_ENERGY);
113-
ATTACK(fighter, 1, 0, Hash40::new("top"), 3.0, 24, 24, 0, 66, 8.0, 0.0, 6.5, 0.0, None, None, None, 0.9, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_POS, false, -1, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_A, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_elec"), *ATTACK_SOUND_LEVEL_S, *COLLISION_SOUND_ATTR_FIRE, *ATTACK_REGION_ENERGY);
114-
AttackModule::set_add_reaction_frame(boma, 0, 2.0, false);
112+
ATTACK(fighter, 0, 0, Hash40::new("top"), 3.0, 360, 100, 80, 0, 8.0, 0.0, 6.5, 0.0, None, None, None, 0.9, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_POS, false, -1, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_G, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_normal"), *ATTACK_SOUND_LEVEL_S, *COLLISION_SOUND_ATTR_FIRE, *ATTACK_REGION_ENERGY);
113+
ATTACK(fighter, 1, 0, Hash40::new("top"), 3.0, 24, 24, 0, 66, 8.0, 0.0, 6.5, 0.0, None, None, None, 0.9, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_POS, false, -1, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_A, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_normal"), *ATTACK_SOUND_LEVEL_S, *COLLISION_SOUND_ATTR_FIRE, *ATTACK_REGION_ENERGY);
114+
AttackModule::set_add_reaction_frame_revised(boma, 0, -3.0, false);
115+
AttackModule::set_add_reaction_frame_revised(boma, 1, 2.0, false);
115116
ReflectorModule::set_status(boma, *FIGHTER_FOX_REFLECTOR_KIND_REFLECTOR, app::ShieldStatus(*SHIELD_STATUS_NORMAL), *FIGHTER_REFLECTOR_GROUP_EXTEND);
116117
// Reflection begins on same frame shine hitbox is active
117118
ATK_SET_SHIELD_SETOFF_MUL_arg3(fighter, 0, 1, 0.54);
@@ -129,8 +130,8 @@ unsafe fn game_specialairlwstart(fighter: &mut L2CAgentBase) {
129130
frame(lua_state, 1.0);
130131
FT_MOTION_RATE_RANGE(fighter, 1.0, 4.0, 4.0);
131132
if is_excute(fighter) {
132-
ATTACK(fighter, 0, 0, Hash40::new("top"), 3.0, 10, 32, 0, 62, 8.0, 0.0, 6.5, 0.0, None, None, None, 0.9, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_POS, false, -1, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_G, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_elec"), *ATTACK_SOUND_LEVEL_S, *COLLISION_SOUND_ATTR_FIRE, *ATTACK_REGION_ENERGY);
133-
ATTACK(fighter, 1, 0, Hash40::new("top"), 3.0, 24, 45, 0, 66, 8.0, 0.0, 6.5, 0.0, None, None, None, 0.9, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_POS, false, -1, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_A, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_elec"), *ATTACK_SOUND_LEVEL_S, *COLLISION_SOUND_ATTR_FIRE, *ATTACK_REGION_ENERGY);
133+
ATTACK(fighter, 0, 0, Hash40::new("top"), 3.0, 10, 32, 0, 62, 8.0, 0.0, 6.5, 0.0, None, None, None, 0.9, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_POS, false, -1, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_G, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_normal"), *ATTACK_SOUND_LEVEL_S, *COLLISION_SOUND_ATTR_FIRE, *ATTACK_REGION_ENERGY);
134+
ATTACK(fighter, 1, 0, Hash40::new("top"), 3.0, 24, 45, 0, 66, 8.0, 0.0, 6.5, 0.0, None, None, None, 0.9, 1.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_POS, false, -1, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_A, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_normal"), *ATTACK_SOUND_LEVEL_S, *COLLISION_SOUND_ATTR_FIRE, *ATTACK_REGION_ENERGY);
134135
AttackModule::set_add_reaction_frame(boma, 0, 2.0, false);
135136
ReflectorModule::set_status(boma, *FIGHTER_FOX_REFLECTOR_KIND_REFLECTOR, app::ShieldStatus(*SHIELD_STATUS_NORMAL), *FIGHTER_REFLECTOR_GROUP_EXTEND);
136137
// Reflection begins on same frame shine hitbox is active

fighters/marth/src/acmd/specials.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ unsafe fn marth_special_s1_game(fighter: &mut L2CAgentBase) {
1818
ATTACK(fighter, 1, 0, Hash40::new("top"), 4.0, 92, 60, 0, 25, 7.5, 0.0, 9.5, 16.5, None, None, None, 1.0, 0.8, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, 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_M, *COLLISION_SOUND_ATTR_MARTH_SWORD, *ATTACK_REGION_SWORD);
1919
ATTACK(fighter, 2, 0, Hash40::new("top"), 4.0, 20, 60, 0, 25, 4.5, 0.0, 9.5, 3.0, None, None, None, 1.0, 0.8, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, 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_S, *COLLISION_SOUND_ATTR_CUTUP, *ATTACK_REGION_SWORD);
2020
}
21-
frame(lua_state, 7.0);
21+
frame(lua_state, 10.0);
2222
if is_excute(fighter) {
2323
AttackModule::clear_all(boma);
2424
WorkModule::on_flag(boma, *FIGHTER_MARTH_STATUS_SPECIAL_S_FLAG_MOTION_CHANGE_ENABLE);

fighters/pitb/src/acmd/other.rs

+52-1
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,55 @@ unsafe fn escape_air_slide_game(fighter: &mut L2CAgentBase) {
229229
}
230230
}
231231

232+
#[acmd_script( agent = "pitb", script = "effect_appealsl" , category = ACMD_EFFECT , low_priority)]
233+
unsafe fn appeal_sl_effect(fighter: &mut L2CAgentBase) {
234+
let lua_state = fighter.lua_state_agent;
235+
let boma = fighter.boma();
236+
frame(lua_state, 20.0);
237+
if is_excute(fighter) {
238+
EFFECT_FOLLOW_ALPHA(fighter, Hash40::new("pitb_atk_air_n"), Hash40::new("swordr2"), 0, -1, 0, -90, -90, 0, 1, true, 0.3);
239+
EFFECT_FOLLOW(fighter, Hash40::new("pitb_sword"), Hash40::new("swordr1"), 0, 0, 0, 0, -90, 0, 1, true);
240+
EFFECT_FOLLOW(fighter, Hash40::new("pitb_sword"), Hash40::new("swordl"), 0, -0.06, 0, 180, 90, 0, 1, true);
241+
}
242+
frame(lua_state, 30.0);
243+
if is_excute(fighter) {
244+
EFFECT_OFF_KIND(fighter, Hash40::new("pitb_atk_air_n"), false, false);
245+
}
246+
frame(lua_state, 32.0);
247+
if is_excute(fighter) {
248+
EFFECT_OFF_KIND(fighter, Hash40::new("pitb_sword"), false, false);
249+
}
250+
frame(lua_state, 58.0);
251+
if is_excute(fighter) {
252+
EFFECT(fighter, Hash40::new("sys_smash_flash"), Hash40::new("top"), -5, 5, 13, 0, 0, 0, 0.4, 0, 0, 0, 0, 0, 0, false);
253+
}
254+
}
255+
256+
#[acmd_script( agent = "pitb", script = "effect_appealsr" , category = ACMD_EFFECT , low_priority)]
257+
unsafe fn appeal_sr_effect(fighter: &mut L2CAgentBase) {
258+
let lua_state = fighter.lua_state_agent;
259+
let boma = fighter.boma();
260+
frame(lua_state, 20.0);
261+
if is_excute(fighter) {
262+
EFFECT_FOLLOW_ALPHA(fighter, Hash40::new("pitb_atk_air_n"), Hash40::new("swordr2"), 0, -1, 0, -90, -90, 0, 1, true, 0.3);
263+
EFFECT_FOLLOW(fighter, Hash40::new("pitb_sword"), Hash40::new("swordr1"), 0, 0, 0, 0, -90, 0, 1, true);
264+
EFFECT_FOLLOW(fighter, Hash40::new("pitb_sword"), Hash40::new("swordl"), 0, -0.06, 0, 180, 90, 0, 1, true);
265+
}
266+
frame(lua_state, 30.0);
267+
if is_excute(fighter) {
268+
EFFECT_OFF_KIND(fighter, Hash40::new("pitb_atk_air_n"), false, false);
269+
}
270+
frame(lua_state, 32.0);
271+
if is_excute(fighter) {
272+
EFFECT_OFF_KIND(fighter, Hash40::new("pitb_sword"), false, false);
273+
}
274+
frame(lua_state, 58.0);
275+
if is_excute(fighter) {
276+
EFFECT(fighter, Hash40::new("sys_smash_flash"), Hash40::new("top"), 5, 5, 13, 0, 0, 0, 0.4, 0, 0, 0, 0, 0, 0, false);
277+
}
278+
}
279+
280+
232281
pub fn install() {
233282
install_acmd_scripts!(
234283
escape_air_game,
@@ -241,6 +290,8 @@ pub fn install() {
241290
damageflylw_sound,
242291
damageflyn_sound,
243292
damageflyroll_sound,
244-
damageflytop_sound
293+
damageflytop_sound,
294+
appeal_sl_effect,
295+
appeal_sr_effect
245296
);
246297
}

fighters/rockman/src/status/rockbuster/shoot_jump_squat.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ unsafe fn rockman_rockbuster_shoot_jump_squat_main(fighter: &mut L2CFighterCommo
5858
rockman_rockbuster_main_helper(fighter, false.into(), true.into(), L2CValue::Void(), L2CValue::Void());
5959
MotionModule::change_motion(
6060
fighter.module_accessor,
61-
Hash40::new("jump_squat"),
61+
Hash40::new("jump_squat_buster"),
6262
0.0,
6363
1.0,
6464
false,

fighters/rockman/src/vtable_hook.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -318,7 +318,8 @@ pub fn install(is_runtime: bool) {
318318
skyline::patching::Patch::in_text(0x10839cc).nop();
319319

320320
// Patches which status to compare to for Metal Blade.
321-
skyline::patching::Patch::in_text(0x1080264).data(0x7107741Fu32);
321+
skyline::patching::Patch::in_text(0x1080264).nop();
322+
skyline::patching::Patch::in_text(0x1080268).nop();
322323

323324
skyline::install_hooks!(
324325
rockman_vtable_func,

fighters/sheik/src/acmd/aerials.rs

+16-58
Original file line numberDiff line numberDiff line change
@@ -108,72 +108,32 @@ unsafe fn sheik_attack_air_b_game(fighter: &mut L2CAgentBase) {
108108
unsafe fn sheik_attack_air_hi_game(fighter: &mut L2CAgentBase) {
109109
let lua_state = fighter.lua_state_agent;
110110
let boma = fighter.boma();
111-
frame(lua_state, 5.0);
111+
frame(lua_state, 4.0);
112112
if is_excute(fighter) {
113113
WorkModule::on_flag(boma, *FIGHTER_STATUS_ATTACK_AIR_FLAG_ENABLE_LANDING);
114-
ATTACK(fighter, 0, 0, Hash40::new("kneer"), 11.0, 80, 118, 0, 15, 4.16, 5.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_sting"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_KICK);
115-
ATTACK(fighter, 1, 0, Hash40::new("kneer"), 11.0, 80, 118, 0, 15, 3.66, 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_sting"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_KICK);
114+
ATTACK(fighter, 0, 0, Hash40::new("kneer"), 1.5, 367, 80, 0, 45, 4.0, 5.0, 0.0, 0.0, None, None, None, 0.5, 1.3, *ATTACK_SETOFF_KIND_ON, *ATTACK_LR_CHECK_F, false, 0, 0.0, 4, 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_S, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_KICK);
115+
ATTACK(fighter, 1, 0, Hash40::new("kneer"), 1.5, 367, 80, 0, 45, 4.0, 0.0, 0.0, 0.0, None, None, None, 0.5, 1.3, *ATTACK_SETOFF_KIND_ON, *ATTACK_LR_CHECK_F, false, 0, 0.0, 4, 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_S, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_KICK);
116+
ATTACK(fighter, 2, 0, Hash40::new("legr"), 1.5, 367, 80, 0, 45, 3.5, 1.0, 0.0, 0.0, None, None, None, 0.5, 1.3, *ATTACK_SETOFF_KIND_ON, *ATTACK_LR_CHECK_F, false, 0, 0.0, 4, 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_S, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_KICK);
116117
}
117-
frame(lua_state, 8.0);
118+
frame(lua_state, 16.0);
118119
if is_excute(fighter) {
119-
ATTACK(fighter, 0, 0, Hash40::new("kneer"), 9.0, 70, 120, 0, 10, 4.16, 5.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_sting"), *ATTACK_SOUND_LEVEL_M, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_KICK);
120-
ATTACK(fighter, 1, 0, Hash40::new("kneer"), 9.0, 70, 120, 0, 10, 3.66, 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_sting"), *ATTACK_SOUND_LEVEL_M, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_KICK);
120+
AttackModule::clear_all(boma);
121121
}
122-
frame(lua_state, 21.0);
122+
frame(lua_state, 23.0);
123+
if is_excute(fighter) {
124+
FT_MOTION_RATE(fighter, 1.0);
125+
ATTACK(fighter, 0, 1, Hash40::new("kneel"), 6.0, 80, 135, 0, 45, 4.7, 5.0, 0.0, 0.0, None, None, None, 1.5, 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_sting"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_KICK);
126+
ATTACK(fighter, 1, 1, Hash40::new("kneel"), 6.0, 80, 135, 0, 45, 4.7, 0.0, 0.0, 0.0, None, None, None, 1.5, 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_sting"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_KICK);
127+
ATTACK(fighter, 2, 1, Hash40::new("legl"), 6.0, 80, 135, 0, 45, 4.7, 0.0, 0.0, 0.0, None, None, None, 1.5, 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_sting"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_KICK);
128+
}
129+
frame(lua_state, 26.0);
123130
if is_excute(fighter) {
124131
AttackModule::clear_all(boma);
125132
}
126-
frame(lua_state, 30.0);
133+
frame(lua_state, 44.0);
127134
if is_excute(fighter) {
128135
WorkModule::off_flag(boma, *FIGHTER_STATUS_ATTACK_AIR_FLAG_ENABLE_LANDING);
129136
}
130-
131-
}
132-
133-
#[acmd_script( agent = "sheik", script = "effect_attackairhi", category = ACMD_EFFECT, low_priority )]
134-
unsafe fn effect_attackairhi(agent: &mut L2CAgentBase) {
135-
let lua_state = agent.lua_state_agent;
136-
let boma = agent.boma();
137-
frame(lua_state, 4.0);
138-
if is_excute(agent) {
139-
EFFECT_FOLLOW(agent, Hash40::new("sys_spin_wind"), Hash40::new("top"), 0, 19, 4, -20, 0, 180, 0.3, true);
140-
LAST_EFFECT_SET_RATE(agent, 1.3);
141-
}
142-
frame(lua_state, 5.0);
143-
for _ in 0..3 {
144-
if is_excute(agent) {
145-
agent.clear_lua_stack();
146-
lua_args!(agent, Hash40::new("sys_spin_wind_s"), Hash40::new("top"), 0.0, 17.5, 3.5, 19.0, 0.0, 180.0, 0.4, 4, 4, 4, 0, 0, 0, true);
147-
sv_animcmd::EFFECT_FOLLOW_RND(agent.lua_state_agent);
148-
LAST_EFFECT_SET_RATE(agent, 2.5);
149-
}
150-
wait(lua_state, 1.0);
151-
if is_excute(agent) {
152-
agent.clear_lua_stack();
153-
lua_args!(agent, Hash40::new("sys_spin_wind_s"), Hash40::new("top"), 0.0, 15.5, 3.25, 19.0, 0.0, 180.0, 0.5, 4, 4, 4, 0, 0, 0, true);
154-
sv_animcmd::EFFECT_FOLLOW_RND(agent.lua_state_agent);
155-
LAST_EFFECT_SET_RATE(agent, 2);
156-
}
157-
wait(lua_state, 1.0);
158-
if is_excute(agent) {
159-
agent.clear_lua_stack();
160-
lua_args!(agent, Hash40::new("sys_spin_wind_s"), Hash40::new("top"), 0.0, 12.0, 3.0, 19.0, 0.0, 180.0, 0.65, 3, 2, 3, 0, 0, 0, true);
161-
sv_animcmd::EFFECT_FOLLOW_RND(agent.lua_state_agent);
162-
LAST_EFFECT_SET_RATE(agent, 2);
163-
}
164-
wait(lua_state, 1.0);
165-
}
166-
}
167-
168-
#[acmd_script( agent = "sheik", script = "sound_attackairhi", category = ACMD_SOUND, low_priority )]
169-
unsafe fn sound_attackairhi(agent: &mut L2CAgentBase) {
170-
let lua_state = agent.lua_state_agent;
171-
let boma = agent.boma();
172-
frame(lua_state, 4.0);
173-
if is_excute(agent) {
174-
PLAY_SEQUENCE(agent, Hash40::new("seq_sheik_rnd_attack"));
175-
PLAY_STATUS(agent, Hash40::new("se_sheik_attackair_h01"));
176-
}
177137
}
178138

179139
#[acmd_script( agent = "sheik", script = "expression_attackairhi", category = ACMD_EXPRESSION, low_priority )]
@@ -184,7 +144,7 @@ unsafe fn expression_attackairhi(agent: &mut L2CAgentBase) {
184144
if is_excute(agent) {
185145
ControlModule::set_rumble(boma, Hash40::new("rbkind_nohitm"), 0, false, *BATTLE_OBJECT_ID_INVALID as u32);
186146
}
187-
frame(lua_state, 5.0);
147+
frame(lua_state, 4.0);
188148
if is_excute(agent) {
189149
RUMBLE_HIT(agent, Hash40::new("rbkind_attackm"), 0);
190150
}
@@ -289,8 +249,6 @@ pub fn install() {
289249
sheik_attack_air_f_effect,
290250
sheik_attack_air_b_game,
291251
sheik_attack_air_hi_game,
292-
effect_attackairhi,
293-
sound_attackairhi,
294252
expression_attackairhi,
295253
sheik_attack_air_lw_game,
296254
sheik_attack_air_lw_effect,

fighters/trail/src/acmd/other.rs

+21-2
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,6 @@ unsafe fn escape_air_game(fighter: &mut L2CAgentBase) {
190190
unsafe fn escape_air_slide_game(fighter: &mut L2CAgentBase) {
191191
let lua_state = fighter.lua_state_agent;
192192
let boma = fighter.boma();
193-
194193
frame(lua_state, 29.0);
195194
if is_excute(fighter) {
196195
WorkModule::on_flag(boma, *FIGHTER_STATUS_ESCAPE_AIR_FLAG_SLIDE_ENABLE_CONTROL);
@@ -201,6 +200,25 @@ unsafe fn escape_air_slide_game(fighter: &mut L2CAgentBase) {
201200
}
202201
}
203202

203+
#[acmd_script( agent = "trail", script = "sound_run" , category = ACMD_SOUND , low_priority)]
204+
unsafe fn run_sound(fighter: &mut L2CAgentBase) {
205+
let lua_state = fighter.lua_state_agent;
206+
let boma = fighter.boma();
207+
for _ in 0..i32::MAX {
208+
frame(lua_state, 1.0);
209+
if is_excute(fighter) {
210+
PLAY_SE(fighter, Hash40::new("se_trail_step_right_l"));
211+
}
212+
frame(lua_state, 16.0);
213+
if is_excute(fighter) {
214+
PLAY_SE(fighter, Hash40::new("se_trail_step_left_l"));
215+
}
216+
fighter.clear_lua_stack();
217+
sv_animcmd::wait_loop_sync_mot(lua_state);
218+
fighter.pop_lua_stack(1);
219+
}
220+
}
221+
204222
pub fn install() {
205223
install_acmd_scripts!(
206224
escape_air_game,
@@ -212,6 +230,7 @@ pub fn install() {
212230
damageflylw_sound,
213231
damageflyn_sound,
214232
damageflyroll_sound,
215-
damageflytop_sound
233+
damageflytop_sound,
234+
run_sound,
216235
);
217236
}

fighters/trail/src/acmd/smashes.rs

-1
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,6 @@ unsafe fn effect_attacklw4(fighter: &mut L2CAgentBase) {
164164
}
165165
}
166166

167-
168167
pub fn install() {
169168
install_acmd_scripts!(
170169
game_attacks4,

0 commit comments

Comments
 (0)