Skip to content

Commit 98aea4c

Browse files
committed
yeah
1 parent 9835b20 commit 98aea4c

File tree

11 files changed

+123
-150
lines changed

11 files changed

+123
-150
lines changed

fighters/duckhunt/src/acmd/other.rs

+40-1
Original file line numberDiff line numberDiff line change
@@ -363,6 +363,42 @@ unsafe fn escape_air_slide_game(fighter: &mut L2CAgentBase) {
363363
}
364364
}
365365

366+
#[acmd_script( agent = "duckhunt", scripts = ["effect_appealsl", "effect_appealsr"], category = ACMD_EFFECT , low_priority)]
367+
unsafe fn effect_appeals(fighter: &mut L2CAgentBase) {
368+
let lua_state = fighter.lua_state_agent;
369+
let boma = fighter.boma();
370+
}
371+
372+
#[acmd_script( agent = "duckhunt", scripts = ["sound_appealsl", "sound_appealsr"], category = ACMD_SOUND , low_priority)]
373+
unsafe fn sound_appeals(fighter: &mut L2CAgentBase) {
374+
let lua_state = fighter.lua_state_agent;
375+
let boma = fighter.boma();
376+
frame(lua_state, 1.0);
377+
if is_excute(fighter) {
378+
let handle = SoundModule::play_se(boma, Hash40::new("se_duckhunt_appeal_s01"), true, false, false, false, app::enSEType(0));
379+
SoundModule::set_se_vol(boma, handle as i32, 3.0, 0);
380+
}
381+
}
382+
383+
#[acmd_script( agent = "duckhunt", scripts = ["expression_appealsl", "expression_appealsr"], category = ACMD_EXPRESSION , low_priority)]
384+
unsafe fn expression_appeals(fighter: &mut L2CAgentBase) {
385+
let lua_state = fighter.lua_state_agent;
386+
let boma = fighter.boma();
387+
if is_excute(fighter) {
388+
ItemModule::set_have_item_visibility(boma, false, 0);
389+
VisibilityModule::set_int64(boma, hash40("body") as i64, hash40("body_normal") as i64);
390+
slope!(fighter, *MA_MSC_CMD_SLOPE_SLOPE_INTP, *SLOPE_STATUS_TOP, 10);
391+
}
392+
frame(lua_state, 10.0);
393+
if is_excute(fighter) {
394+
ControlModule::set_rumble(boma, Hash40::new("rbkind_superleaf"), 72, true, *BATTLE_OBJECT_ID_INVALID as u32);
395+
}
396+
frame(lua_state, 88.0);
397+
if is_excute(fighter) {
398+
slope!(fighter, *MA_MSC_CMD_SLOPE_SLOPE_INTP, *SLOPE_STATUS_LR, 10);
399+
}
400+
}
401+
366402
pub fn install() {
367403
install_acmd_scripts!(
368404
escape_air_game,
@@ -382,7 +418,10 @@ pub fn install() {
382418
damageflylw_sound,
383419
damageflyn_sound,
384420
damageflyroll_sound,
385-
damageflytop_sound
421+
damageflytop_sound,
422+
effect_appeals,
423+
sound_appeals,
424+
expression_appeals
386425
);
387426
}
388427

fighters/duckhunt/src/acmd/tilts.rs

-5
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,6 @@ unsafe fn duckhunt_attack_squat_s3_sound(agent: &mut L2CAgentBase) {
181181
let boma = agent.boma();
182182
frame(lua_state, 1.0);
183183
if is_excute(agent) {
184-
PLAY_SE(agent, Hash40::new("se_duckhunt_appeal_s01"));
185184
PLAY_SE(agent, Hash40::new("se_duckhunt_appeal_s02"));
186185
}
187186
frame(lua_state, 4.0);
@@ -216,10 +215,6 @@ unsafe fn duckhunt_attack_squat_s3_expression(agent: &mut L2CAgentBase) {
216215
if is_excute(agent) {
217216
RUMBLE_HIT(agent, Hash40::new("rbkind_attackm"), 0);
218217
}
219-
frame(lua_state, 22.0);
220-
if is_excute(agent) {
221-
VisibilityModule::set_int64(boma, hash40("body") as i64, hash40("body_normal") as i64);
222-
}
223218
}
224219

225220
pub fn install() {

fighters/lucas/src/acmd/aerials.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -327,13 +327,13 @@ unsafe fn lucas_attack_air_hi_effect(fighter: &mut L2CAgentBase) {
327327
let boma = fighter.boma();
328328
frame(lua_state, 6.0);
329329
if is_excute(fighter) {
330-
EFFECT_FOLLOW_FLIP(fighter, Hash40::new("sys_attack_arc_d"), Hash40::new("sys_attack_arc_d"), Hash40::new("top"), 1.3, 8.8, 0, -55, -128, -62, 0.8, true, *EF_FLIP_YZ);
331-
LAST_EFFECT_SET_RATE(fighter, 2.0);
330+
EFFECT_FOLLOW_FLIP(fighter, Hash40::new("sys_attack_arc_d"), Hash40::new("sys_attack_arc_d"), Hash40::new("top"), 1.3, 7.8, -2.0, -55, -128, -62, 0.8, true, *EF_FLIP_YZ);
331+
LAST_EFFECT_SET_RATE(fighter, 2.4);
332332
LAST_EFFECT_SET_COLOR(fighter, 1.0, 0.8, 0.1);
333333
}
334334
frame(lua_state, 7.0);
335335
if is_excute(fighter) {
336-
EFFECT_ALPHA(fighter, Hash40::new("sys_attack_impact"), Hash40::new("top"), 1.05, 14.5, 0, 0, 0, 0, 1.31, 0, 0, 0, 0, 0, 0, true, 0.7);
336+
EFFECT_ALPHA(fighter, Hash40::new("sys_attack_impact"), Hash40::new("top"), 1.05, 14.5, 2.0, 0, 0, 0, 1.31, 0, 0, 0, 0, 0, 0, true, 0.7);
337337
}
338338
}
339339

fighters/lucas/src/acmd/smashes.rs

+8-2
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,13 @@ unsafe fn lucas_attack_s4_s_game(fighter: &mut L2CAgentBase) {
6262
AttackModule::clear_all(boma);
6363
}
6464
frame(lua_state, 20.0);
65+
if is_excute(fighter) {
66+
WorkModule::on_flag(boma, *FIGHTER_LUCAS_STATUS_ATTACK_S4_FLAG_REFLECT_END);
67+
}
68+
frame(lua_state, 25.0);
6569
if is_excute(fighter) {
6670
VarModule::off_flag(fighter.object(), vars::lucas::instance::ATTACK_S4_ANGLE_DOWN);
6771
VarModule::off_flag(fighter.object(), vars::lucas::instance::ATTACK_S4_ANGLE_UP);
68-
WorkModule::on_flag(boma, *FIGHTER_LUCAS_STATUS_ATTACK_S4_FLAG_REFLECT_END);
6972
}
7073
}
7174
else {
@@ -116,10 +119,13 @@ unsafe fn lucas_attack_s4_s_game(fighter: &mut L2CAgentBase) {
116119
AttackModule::clear_all(boma);
117120
}
118121
frame(lua_state, 20.0);
122+
if is_excute(fighter) {
123+
WorkModule::on_flag(boma, *FIGHTER_LUCAS_STATUS_ATTACK_S4_FLAG_REFLECT_END);
124+
}
125+
frame(lua_state, 25.0);
119126
if is_excute(fighter) {
120127
VarModule::off_flag(fighter.object(), vars::lucas::instance::ATTACK_S4_ANGLE_DOWN);
121128
VarModule::off_flag(fighter.object(), vars::lucas::instance::ATTACK_S4_ANGLE_UP);
122-
WorkModule::on_flag(boma, *FIGHTER_LUCAS_STATUS_ATTACK_S4_FLAG_REFLECT_END);
123129
}
124130
}
125131
}

fighters/lucas/src/opff.rs

+8-6
Original file line numberDiff line numberDiff line change
@@ -348,15 +348,17 @@ unsafe fn smash_s_angle_handler(fighter: &mut L2CFighterCommon, frame: f32) {
348348
if fighter.is_status_one_of(&[*FIGHTER_STATUS_KIND_ATTACK_S4, *FIGHTER_STATUS_KIND_ATTACK_S4_START]) {
349349
// Up Tilted Side Smash
350350
if VarModule::is_flag(fighter.object(), vars::lucas::instance::ATTACK_S4_ANGLE_UP) {
351-
joint_rotator(fighter, frame, Hash40::new("waist"), Vector3f{x: 0.0, y:-30.0, z:0.0}, 11.0, 15.0, 17.0, 25.0);
352-
joint_rotator(fighter, frame, Hash40::new("bust"), Vector3f{x: 0.0, y:-20.0, z:0.0}, 11.0, 15.0, 17.0, 25.0);
351+
joint_rotator(fighter, frame, Hash40::new("waist"), Vector3f{x: 0.0, y:-10.0, z:0.0}, 13.0, 15.0, 16.0, 25.0);
352+
joint_rotator(fighter, frame, Hash40::new("bust"), Vector3f{x: 0.0, y:-10.0, z:0.0}, 13.0, 15.0, 16.0, 25.0);
353+
joint_rotator(fighter, frame, Hash40::new("handl"), Vector3f{x: 0.0, y:-20.0, z:0.0}, 11.0, 15.0, 16.0, 25.0);
354+
joint_rotator(fighter, frame, Hash40::new("handr"), Vector3f{x: 0.0, y:-20.0, z:0.0}, 11.0, 15.0, 16.0, 25.0);
353355
}
354356
// Down Tilted Side Smash
355357
else if VarModule::is_flag(fighter.object(), vars::lucas::instance::ATTACK_S4_ANGLE_DOWN) {
356-
joint_rotator(fighter, frame, Hash40::new("waist"), Vector3f{x: 0.0, y:10.0, z:0.0}, 11.0, 15.0, 17.0, 25.0);
357-
joint_rotator(fighter, frame, Hash40::new("bust"), Vector3f{x: 0.0, y:10.0, z:0.0}, 11.0, 15.0, 17.0, 25.0);
358-
joint_rotator(fighter, frame, Hash40::new("handl"), Vector3f{x: 0.0, y:20.0, z:0.0}, 11.0, 15.0, 17.0, 25.0);
359-
joint_rotator(fighter, frame, Hash40::new("handr"), Vector3f{x: 0.0, y:20.0, z:0.0}, 11.0, 15.0, 17.0, 25.0);
358+
joint_rotator(fighter, frame, Hash40::new("waist"), Vector3f{x: 0.0, y:10.0, z:0.0}, 13.0, 15.0, 16.0, 25.0);
359+
joint_rotator(fighter, frame, Hash40::new("bust"), Vector3f{x: 0.0, y:10.0, z:0.0}, 13.0, 15.0, 16.0, 25.0);
360+
joint_rotator(fighter, frame, Hash40::new("handl"), Vector3f{x: 0.0, y:20.0, z:0.0}, 11.0, 15.0, 16.0, 25.0);
361+
joint_rotator(fighter, frame, Hash40::new("handr"), Vector3f{x: 0.0, y:20.0, z:0.0}, 11.0, 15.0, 16.0, 25.0);
360362
}
361363
}
362364
}

fighters/mario/src/acmd/specials.rs

+25-101
Original file line numberDiff line numberDiff line change
@@ -114,19 +114,16 @@ unsafe fn mario_special_n_fire_effect(fighter: &mut L2CAgentBase) {
114114
if is_excute(fighter) {
115115
EFFECT(fighter, Hash40::new("sys_smash_flash_s"), Hash40::new("top"), 6, 11, 0, 0, 0, 0, 0.9, 0, 0, 0, 0, 0, 0, false);
116116
}
117-
frame(lua_state, 11.0);
117+
frame(lua_state, 13.0);
118118
if is_excute(fighter) {
119119
if PostureModule::lr(boma) > 0.0 {
120-
EFFECT_FOLLOW(fighter, Hash40::new("mario_fb_shoot"), Hash40::new("havel"), 0, 0, 0, 0, 45, 0, 0.7, true);
121-
EFFECT_FOLLOW(fighter, Hash40::new("mario_fb_shoot"), Hash40::new("haver"), 0, 0, 0, 0, 45, 0, 0.7, true);
120+
EFFECT_FOLLOW(fighter, Hash40::new("mario_fb_shoot"), Hash40::new("havel"), 0, 0, 0, 0, 45, 0, 0.55, true);
121+
EFFECT_FOLLOW(fighter, Hash40::new("mario_fb_shoot"), Hash40::new("haver"), 0, 0, 0, 0, 45, 0, 0.55, true);
122122
}
123123
else {
124-
EFFECT_FOLLOW(fighter, Hash40::new("mario_fb_shoot"), Hash40::new("havel"), 0, 0, 0, 0, -45, 0, 0.7, true);
125-
EFFECT_FOLLOW(fighter, Hash40::new("mario_fb_shoot"), Hash40::new("haver"), 0, 0, 0, 0, -45, 0, 0.7, true);
124+
EFFECT_FOLLOW(fighter, Hash40::new("mario_fb_shoot"), Hash40::new("havel"), 0, 0, 0, 0, -45, 0, 0.55, true);
125+
EFFECT_FOLLOW(fighter, Hash40::new("mario_fb_shoot"), Hash40::new("haver"), 0, 0, 0, 0, -45, 0, 0.55, true);
126126
}
127-
}
128-
frame(lua_state, 12.0);
129-
if is_excute(fighter) {
130127
if fighter.is_situation(*SITUATION_KIND_GROUND) {
131128
EFFECT_FOLLOW(fighter, Hash40::new("sys_h_smoke_b"), Hash40::new("top"), 0, 0, 0, 0, 0, 0, 0.5, true);
132129
LAST_EFFECT_SET_COLOR(fighter, 0.2, 0.2, 0.2);
@@ -135,10 +132,13 @@ unsafe fn mario_special_n_fire_effect(fighter: &mut L2CAgentBase) {
135132
frame(lua_state, 14.0);
136133
if is_excute(fighter) {
137134
FLASH(fighter, 1, 0, 0, 0.35);
138-
EFFECT_FOLLOW(fighter, Hash40::new("sys_flame"), Hash40::new("handl"), 1.0, 0, 0, 0, 0, 0, 0.2, true);
139-
EFFECT_FOLLOW(fighter, Hash40::new("sys_flame"), Hash40::new("handr"), 1.0, 0, 0, 0, 0, 0, 0.2, true);
140135
EFFECT_FOLLOW(fighter, Hash40::new("sys_bomb_a"), Hash40::new("top"), 0, 7.5, 10.5, 0, 0, 0, 0.26, true);
141-
LAST_EFFECT_SET_RATE(fighter, 1.2);
136+
LAST_EFFECT_SET_COLOR(fighter, 0.65, 0.2, 0.08);
137+
LAST_EFFECT_SET_RATE(fighter, 0.75);
138+
EFFECT_FOLLOW(fighter, Hash40::new("sys_damage_fire"), Hash40::new("top"), 0, 6.0, 10.5, 0, 0, 0, 0.9, true);
139+
LAST_EFFECT_SET_RATE(fighter, 0.55);
140+
EFFECT_FOLLOW(fighter, Hash40::new("sys_damage_fire"), Hash40::new("top"), 0, 5.0, 10.5, 0, 0, 0, 0.9, true);
141+
LAST_EFFECT_SET_RATE(fighter, 0.55);
142142
EffectModule::enable_sync_init_pos_last(boma);
143143
if fighter.is_situation(*SITUATION_KIND_GROUND) {
144144
EFFECT_FOLLOW(fighter, Hash40::new("sys_h_smoke_b"), Hash40::new("top"), 0, 0, 0, 0, 0, 0, 0.5, true);
@@ -191,7 +191,7 @@ unsafe fn mario_special_n_fire_expression(fighter: &mut L2CAgentBase) {
191191
}
192192
frame(lua_state, 14.0);
193193
if is_excute(fighter) {
194-
ControlModule::set_rumble(boma, Hash40::new("rbkind_55_smash"), 0, false, *BATTLE_OBJECT_ID_INVALID as u32);
194+
ControlModule::set_rumble(boma, Hash40::new("rbkind_explosion"), 0, false, *BATTLE_OBJECT_ID_INVALID as u32);
195195
}
196196
}
197197

@@ -465,28 +465,28 @@ unsafe fn mario_special_lw_light(fighter: &mut L2CAgentBase) {
465465
}
466466

467467
//Galaxy spin special effects
468-
#[acmd_script( agent = "mario", script = "effect_speciallwlight", category = ACMD_EFFECT, low_priority )]
468+
#[acmd_script( agent = "mario", scripts = ["effect_speciallwlight", "effect_specialairlwlight"], category = ACMD_EFFECT, low_priority )]
469469
unsafe fn effect_special_lw_light(fighter: &mut L2CAgentBase) {
470470
let lua_state = fighter.lua_state_agent;
471471
let boma = fighter.boma();
472472
frame(lua_state, 10.0);
473473
if is_excute(fighter) {
474-
EFFECT_FOLLOW(fighter, Hash40::new("sys_spin_wind"), Hash40::new("top"), 0, 9.5, 0, 0, 0, 0, 1.0, true);
474+
EFFECT_FOLLOW(fighter, Hash40::new("sys_spin_wind"), Hash40::new("top"), 0, 10.4, 0, 0, 0, 0, 1.0, true);
475475
LAST_EFFECT_SET_COLOR(fighter, 0.045, 0.345, 2.05);
476476
LAST_EFFECT_SET_ALPHA(fighter, 0.55);
477-
LAST_EFFECT_SET_RATE(fighter, 0.5);
478-
EFFECT_FOLLOW(fighter, Hash40::new("sys_spin_wind"), Hash40::new("top"), 0, 9.45, 0, 0, 0, 0, 1.0, true);
477+
LAST_EFFECT_SET_RATE(fighter, 0.65);
478+
EFFECT_FOLLOW(fighter, Hash40::new("sys_spin_wind"), Hash40::new("top"), 0, 10.4, 0, 0, 0, 0, 1.0, true);
479479
LAST_EFFECT_SET_COLOR(fighter, 0.045, 0.345, 2.05);
480480
LAST_EFFECT_SET_ALPHA(fighter, 0.55);
481-
LAST_EFFECT_SET_RATE(fighter, 0.5);
482-
EFFECT_FOLLOW(fighter, Hash40::new("sys_spin_wind"), Hash40::new("top"), 0, 9.5, 0, 0, 180, 0, 1.0, true);
481+
LAST_EFFECT_SET_RATE(fighter, 0.65);
482+
EFFECT_FOLLOW(fighter, Hash40::new("sys_spin_wind"), Hash40::new("top"), 0, 10.4, 0, 0, 180, 0, 1.0, true);
483483
LAST_EFFECT_SET_COLOR(fighter, 0.045, 0.345, 2.05);
484484
LAST_EFFECT_SET_ALPHA(fighter, 0.55);
485-
LAST_EFFECT_SET_RATE(fighter, 0.5);
486-
EFFECT_FOLLOW(fighter, Hash40::new("sys_spin_wind"), Hash40::new("top"), 0, 9.45, 0, 0, 180, 0, 1.0, true);
485+
LAST_EFFECT_SET_RATE(fighter, 0.65);
486+
EFFECT_FOLLOW(fighter, Hash40::new("sys_spin_wind"), Hash40::new("top"), 0, 10.4, 0, 0, 180, 0, 1.0, true);
487487
LAST_EFFECT_SET_COLOR(fighter, 0.045, 0.345, 2.05);
488488
LAST_EFFECT_SET_ALPHA(fighter, 0.55);
489-
LAST_EFFECT_SET_RATE(fighter, 0.5);
489+
LAST_EFFECT_SET_RATE(fighter, 0.65);
490490
EFFECT_FOLLOW(fighter, Hash40::new("sys_starrod_splash"), Hash40::new("havel"), 0, 0, 0, 0, 0, 0, 1.0, true);
491491
LAST_EFFECT_SET_ALPHA(fighter, 0.5);
492492
EFFECT_FOLLOW(fighter, Hash40::new("sys_starrod_splash"), Hash40::new("haver"), 0, 0, 0, 0, 0, 0, 1.0, true);
@@ -503,15 +503,15 @@ unsafe fn effect_special_lw_light(fighter: &mut L2CAgentBase) {
503503
}
504504

505505
//Galaxy spin sound effects
506-
#[acmd_script( agent = "mario", script = "sound_speciallwlight", category = ACMD_SOUND, low_priority )]
506+
#[acmd_script( agent = "mario", scripts = ["sound_speciallwlight", "sound_specialairlwlight"], category = ACMD_SOUND, low_priority )]
507507
unsafe fn sound_special_lw_light(fighter: &mut L2CAgentBase) {
508508
let lua_state = fighter.lua_state_agent;
509509
let boma = fighter.boma();
510-
511510
frame(lua_state, 6.0);
512-
if is_excute(fighter) {
511+
if is_excute(fighter) {
512+
let handle = SoundModule::play_se(boma, Hash40::new("se_mario_special_l01"), true, false, false, false, app::enSEType(0));
513+
SoundModule::set_se_vol(boma, handle as i32, 0.7, 0);
513514
PLAY_SE(fighter, Hash40::new("vc_mario_attack05"));
514-
PLAY_SE(fighter, Hash40::new("se_mario_special_l01"));
515515
PLAY_SE(fighter, Hash40::new("se_mario_attackair_l01"));
516516
}
517517

@@ -586,80 +586,6 @@ unsafe fn mario_special_air_lw_light(fighter: &mut L2CAgentBase) {
586586
}
587587
}
588588

589-
//Galaxy spin special effects
590-
#[acmd_script( agent = "mario", script = "effect_specialairlwlight", category = ACMD_EFFECT, low_priority )]
591-
unsafe fn effect_special_air_lw_light(fighter: &mut L2CAgentBase) {
592-
let lua_state = fighter.lua_state_agent;
593-
let boma = fighter.boma();
594-
frame(lua_state, 10.0);
595-
if is_excute(fighter) {
596-
if !VarModule::is_flag(fighter.battle_object, vars::mario::instance::DISABLE_DSPECIAL_STALL) { // Effects will disappear if you used galaxy spin in the air
597-
EFFECT_FOLLOW(fighter, Hash40::new("sys_spin_wind"), Hash40::new("top"), 0, 9.5, 0, 0, 0, 0, 1.0, true);
598-
LAST_EFFECT_SET_COLOR(fighter, 0.045, 0.345, 2.05);
599-
LAST_EFFECT_SET_ALPHA(fighter, 0.55);
600-
LAST_EFFECT_SET_RATE(fighter, 0.45);
601-
EFFECT_FOLLOW(fighter, Hash40::new("sys_spin_wind"), Hash40::new("top"), 0, 9.45, 0, 0, 0, 0, 1.0, true);
602-
LAST_EFFECT_SET_COLOR(fighter, 0.045, 0.345, 2.05);
603-
LAST_EFFECT_SET_ALPHA(fighter, 0.55);
604-
LAST_EFFECT_SET_RATE(fighter, 0.45);
605-
EFFECT_FOLLOW(fighter, Hash40::new("sys_spin_wind"), Hash40::new("top"), 0, 9.5, 0, 0, 180, 0, 1.0, true);
606-
LAST_EFFECT_SET_COLOR(fighter, 0.045, 0.345, 2.05);
607-
LAST_EFFECT_SET_ALPHA(fighter, 0.55);
608-
LAST_EFFECT_SET_RATE(fighter, 0.45);
609-
EFFECT_FOLLOW(fighter, Hash40::new("sys_spin_wind"), Hash40::new("top"), 0, 9.45, 0, 0, 180, 0, 1.0, true);
610-
LAST_EFFECT_SET_COLOR(fighter, 0.045, 0.345, 2.05);
611-
LAST_EFFECT_SET_ALPHA(fighter, 0.55);
612-
LAST_EFFECT_SET_RATE(fighter, 0.45);
613-
614-
EFFECT_FOLLOW(fighter, Hash40::new("sys_starrod_splash"), Hash40::new("havel"), 0, 0, 0, 0, 0, 0, 1.0, true);
615-
LAST_EFFECT_SET_ALPHA(fighter, 0.5);
616-
EFFECT_FOLLOW(fighter, Hash40::new("sys_starrod_splash"), Hash40::new("haver"), 0, 0, 0, 0, 0, 0, 1.0, true);
617-
LAST_EFFECT_SET_ALPHA(fighter, 0.5);
618-
EFFECT_FOLLOW(fighter, Hash40::new("sys_starrod_splash"), Hash40::new("top"), 0, 9.3, 9.0, 0, 0, 0, 1.0, true);
619-
LAST_EFFECT_SET_ALPHA(fighter, 0.5);
620-
EFFECT_FOLLOW(fighter, Hash40::new("sys_starrod_splash"), Hash40::new("top"), 0, 9.3, -9.0, 0, 0, 0, 1.0, true);
621-
LAST_EFFECT_SET_ALPHA(fighter, 0.5);
622-
EFFECT_FOLLOW(fighter, Hash40::new("sys_starrod_splash"), Hash40::new("top"), 0, 9.3, 4.5, 0, 0, 0, 1.0, true);
623-
LAST_EFFECT_SET_ALPHA(fighter, 0.5);
624-
EFFECT_FOLLOW(fighter, Hash40::new("sys_starrod_splash"), Hash40::new("top"), 0, 9.3, -4.5, 0, 0, 0, 1.0, true);
625-
LAST_EFFECT_SET_ALPHA(fighter, 0.5);
626-
}
627-
else {
628-
EFFECT_FOLLOW(fighter, Hash40::new("sys_spin_wind"), Hash40::new("top"), 0, 9.5, 0, 0, 0, 0, 1.0, true);
629-
LAST_EFFECT_SET_ALPHA(fighter, 0.1);
630-
LAST_EFFECT_SET_RATE(fighter, 0.8);
631-
EFFECT_FOLLOW(fighter, Hash40::new("sys_spin_wind"), Hash40::new("top"), 0, 9.5, 0, 0, 0, 0, 1.0, true);
632-
LAST_EFFECT_SET_ALPHA(fighter, 0.1);
633-
LAST_EFFECT_SET_RATE(fighter, 0.8);
634-
635-
EFFECT_FOLLOW(fighter, Hash40::new("sys_starrod_splash"), Hash40::new("havel"), 0, 0, 0, 0, 0, 0, 1.0, true);
636-
LAST_EFFECT_SET_ALPHA(fighter, 0.2);
637-
EFFECT_FOLLOW(fighter, Hash40::new("sys_starrod_splash"), Hash40::new("haver"), 0, 0, 0, 0, 0, 0, 1.0, true);
638-
LAST_EFFECT_SET_ALPHA(fighter, 0.2);
639-
640-
}
641-
}
642-
}
643-
644-
//Galaxy spin sound effects
645-
#[acmd_script( agent = "mario", script = "sound_specialairlwlight", category = ACMD_SOUND, low_priority )]
646-
unsafe fn sound_special_air_lw_light(fighter: &mut L2CAgentBase) {
647-
let lua_state = fighter.lua_state_agent;
648-
let boma = fighter.boma();
649-
frame(lua_state, 10.0);
650-
if is_excute(fighter) {
651-
if !VarModule::is_flag(fighter.battle_object, vars::mario::instance::DISABLE_DSPECIAL_STALL) { // Effects will change if you used galaxy spin in the air
652-
PLAY_SE(fighter, Hash40::new("vc_mario_attack05"));
653-
PLAY_SE(fighter, Hash40::new("se_mario_special_l01"));
654-
PLAY_SE(fighter, Hash40::new("se_mario_attackair_l01"));
655-
}
656-
else {
657-
PLAY_SE(fighter, Hash40::new("se_mario_attackair_l01"));
658-
PLAY_SE(fighter, Hash40::new("vc_mario_attack05"));
659-
}
660-
}
661-
}
662-
663589
pub fn install() {
664590
install_acmd_scripts!(
665591
mario_special_n_game,
@@ -677,8 +603,6 @@ pub fn install() {
677603
sound_special_lw_light,
678604
expression_special_lw_light,
679605
mario_special_air_lw_light,
680-
effect_special_air_lw_light,
681-
sound_special_air_lw_light,
682606
mario_special_hi_game,
683607
mario_special_hi_effect,
684608
mario_special_air_hi_effect,

fighters/mario/src/status.rs

+9
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,12 @@ unsafe extern "C" fn change_status_callback(fighter: &mut L2CFighterCommon) -> L
1212
true.into()
1313
}
1414

15+
#[status_script(agent = "mario", status = FIGHTER_STATUS_KIND_SPECIAL_LW, condition = LUA_SCRIPT_STATUS_FUNC_STATUS_PRE)]
16+
unsafe extern "C" fn special_lw_pre(fighter: &mut L2CFighterCommon) -> L2CValue {
17+
StatusModule::set_status_kind_interrupt(fighter.module_accessor, *FIGHTER_MARIO_STATUS_KIND_SPECIAL_LW_SHOOT);
18+
return 1.into()
19+
}
20+
1521
#[smashline::fighter_init]
1622
fn mario_init(fighter: &mut L2CFighterCommon) {
1723
unsafe {
@@ -24,4 +30,7 @@ fn mario_init(fighter: &mut L2CFighterCommon) {
2430
pub fn install() {
2531
smashline::install_agent_init_callbacks!(mario_init);
2632
special_n::install();
33+
smashline::install_status_scripts!(
34+
special_lw_pre
35+
);
2736
}

0 commit comments

Comments
 (0)