Skip to content

Commit abcd651

Browse files
committed
Merge branch 'dev' into feature/smashline-2
2 parents 8257d40 + a69237a commit abcd651

File tree

11 files changed

+122
-74
lines changed

11 files changed

+122
-74
lines changed

fighters/duckhunt/src/acmd/other.rs

+39
Original file line numberDiff line numberDiff line change
@@ -364,8 +364,41 @@ unsafe extern "C" fn escape_air_slide_game(fighter: &mut L2CAgentBase) {
364364
}
365365

366366

367+
unsafe extern "C" fn effect_appeals(fighter: &mut L2CAgentBase) {
368+
let lua_state = fighter.lua_state_agent;
369+
let boma = fighter.boma();
370+
}
371+
372+
373+
unsafe extern "C" 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+
}
367382

368383

384+
unsafe extern "C" 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+
369402
pub fn install() {
370403
smashline::Agent::new("duckhunt_gunmanbullet")
371404
.acmd("game_move", duckhunt_gunmanbullet_move_game)
@@ -391,6 +424,12 @@ pub fn install() {
391424
.acmd("game_turndash", turn_dash_game)
392425
.acmd("game_escapeair", escape_air_game)
393426
.acmd("game_escapeairslide", escape_air_slide_game)
427+
.acmd("effect_appealsl", effect_appeals)
428+
.acmd("effect_appealsr", effect_appeals)
429+
.acmd("sound_appealsl", sound_appeals)
430+
.acmd("sound_appealsr", sound_appeals)
431+
.acmd("expression_appealsl", expression_appeals)
432+
.acmd("expression_appealsr", expression_appeals)
394433
.install();
395434
smashline::Agent::new("duckhunt_clay")
396435
.acmd("game_fly", duckhunt_clay_fly_game)

fighters/duckhunt/src/acmd/tilts.rs

-5
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,6 @@ unsafe extern "C" fn duckhunt_attack_squat_s3_sound(agent: &mut L2CAgentBase) {
180180
let boma = agent.boma();
181181
frame(lua_state, 1.0);
182182
if is_excute(agent) {
183-
PLAY_SE(agent, Hash40::new("se_duckhunt_appeal_s01"));
184183
PLAY_SE(agent, Hash40::new("se_duckhunt_appeal_s02"));
185184
}
186185
frame(lua_state, 4.0);
@@ -215,10 +214,6 @@ unsafe extern "C" fn duckhunt_attack_squat_s3_expression(agent: &mut L2CAgentBas
215214
if is_excute(agent) {
216215
RUMBLE_HIT(agent, Hash40::new("rbkind_attackm"), 0);
217216
}
218-
frame(lua_state, 22.0);
219-
if is_excute(agent) {
220-
VisibilityModule::set_int64(boma, hash40("body") as i64, hash40("body_normal") as i64);
221-
}
222217
}
223218

224219
pub fn install() {

fighters/lucas/src/acmd/aerials.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -327,13 +327,13 @@ unsafe extern "C" 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 extern "C" 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 extern "C" 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

+26-25
Original file line numberDiff line numberDiff line change
@@ -114,19 +114,16 @@ unsafe extern "C" 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 extern "C" 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 extern "C" 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

@@ -471,22 +471,22 @@ unsafe extern "C" fn effect_special_lw_light(fighter: &mut L2CAgentBase) {
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);
@@ -507,11 +507,11 @@ unsafe extern "C" fn effect_special_lw_light(fighter: &mut L2CAgentBase) {
507507
unsafe extern "C" 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

@@ -649,8 +649,9 @@ unsafe extern "C" fn sound_special_air_lw_light(fighter: &mut L2CAgentBase) {
649649
frame(lua_state, 10.0);
650650
if is_excute(fighter) {
651651
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"));
652+
let handle = SoundModule::play_se(boma, Hash40::new("se_mario_special_l01"), true, false, false, false, app::enSEType(0));
653+
SoundModule::set_se_vol(boma, handle as i32, 0.7, 0);
654+
PLAY_SE(fighter, Hash40::new("vc_mario_attack05"));
654655
PLAY_SE(fighter, Hash40::new("se_mario_attackair_l01"));
655656
}
656657
else {

fighters/mario/src/status.rs

+8-1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,12 @@ extern "C" fn mario_init(fighter: &mut L2CFighterCommon) {
2323

2424

2525
unsafe extern "C" fn special_lw_pre(fighter: &mut L2CFighterCommon) -> L2CValue {
26+
StatusModule::set_status_kind_interrupt(fighter.module_accessor, *FIGHTER_MARIO_STATUS_KIND_SPECIAL_LW_SHOOT);
27+
return 1.into()
28+
}
29+
30+
31+
unsafe extern "C" fn special_lw_shoot_pre(fighter: &mut L2CFighterCommon) -> L2CValue {
2632
StatusModule::init_settings(fighter.module_accessor,
2733
app::SituationKind(*SITUATION_KIND_NONE),
2834
*FIGHTER_KINETIC_TYPE_UNIQ,
@@ -54,6 +60,7 @@ pub fn install() {
5460
special_n::install();
5561
smashline::Agent::new("mario")
5662
.on_init(mario_init)
57-
.status(Pre, *FIGHTER_MARIO_STATUS_KIND_SPECIAL_LW_SHOOT, special_lw_pre)
63+
.status(Pre, *FIGHTER_STATUS_KIND_SPECIAL_LW, special_lw_pre)
64+
.status(Pre, *FIGHTER_MARIO_STATUS_KIND_SPECIAL_LW_SHOOT, special_lw_shoot_pre)
5865
.install();
5966
}

fighters/nana/src/acmd/smashes.rs

+6-14
Original file line numberDiff line numberDiff line change
@@ -91,25 +91,17 @@ unsafe extern "C" fn nana_attack_hi4_game(fighter: &mut L2CAgentBase) {
9191
unsafe extern "C" fn nana_attack_lw4_game(fighter: &mut L2CAgentBase) {
9292
let lua_state = fighter.lua_state_agent;
9393
let boma = fighter.boma();
94-
frame(lua_state, 1.0);
95-
FT_MOTION_RATE_RANGE(fighter, 1.0, 5.0, 3.0);
96-
frame(lua_state, 5.0);
97-
FT_MOTION_RATE_RANGE(fighter, 5.0, 10.0, 3.0);
94+
frame(lua_state, 4.0);
9895
if is_excute(fighter) {
9996
WorkModule::on_flag(boma, *FIGHTER_STATUS_ATTACK_FLAG_START_SMASH_HOLD);
10097
}
101-
frame(lua_state, 8.33); // effectively frame 7
98+
frame(lua_state, 7.0);
10299
if is_excute(fighter) {
103100
ATTACK(fighter, 1, 0, Hash40::new("havel"), 12.0, 40, 110, 0, 50, 3.0, 0.0, 3.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_PUNCH, *ATTACK_REGION_HAMMER);
104101
ATTACK(fighter, 2, 0, Hash40::new("havel"), 12.0, 40, 110, 0, 50, 3.0, 0.0, 7.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_PUNCH, *ATTACK_REGION_HAMMER);
105102
AttackModule::set_attack_height_all(boma, app::AttackHeight(*ATTACK_HEIGHT_LOW), false);
106103
}
107-
frame(lua_state, 10.0);
108-
FT_MOTION_RATE(fighter, 1.0);
109104
frame(lua_state, 13.0);
110-
FT_MOTION_RATE_RANGE(fighter, 13.0, 21.0, 4.0);
111-
frame(lua_state, 21.0);
112-
FT_MOTION_RATE(fighter, 1.0);
113105
if is_excute(fighter) {
114106
AttackModule::clear_all(boma);
115107
}
@@ -123,14 +115,14 @@ unsafe extern "C" fn effect_attacklw4(fighter: &mut L2CAgentBase) {
123115
if is_excute(fighter) {
124116
EFFECT(fighter, Hash40::new("sys_smash_flash"), Hash40::new("top"), 6, 7, -10, 0, 0, 0, 0.8, 0, 0, 0, 0, 0, 0, true);
125117
}
126-
frame(lua_state, 10.0);
118+
frame(lua_state, 7.0);
127119
if is_excute(fighter) {
128120
LANDING_EFFECT(fighter, Hash40::new("sys_atk_smoke"), Hash40::new("top"), 5, 0, 0, 0, 0, 0, 0.5, 0, 0, 0, 0, 0, 0, false);
129121
}
130-
frame(lua_state, 10.0);
122+
frame(lua_state, 8.0);
131123
if is_excute(fighter) {
132-
EFFECT_FOLLOW_FLIP(fighter, Hash40::new("popo_smash_arc_b"), Hash40::new("popo_smash_arc_b"), Hash40::new("top"), 1.5, 2.5, 1, 184.5, -3, -3, 1.1, true, *EF_FLIP_YZ);
133-
LAST_EFFECT_SET_RATE(fighter, 1.5);
124+
EFFECT_FOLLOW_FLIP(fighter, Hash40::new("popo_smash_arc_b"), Hash40::new("popo_smash_arc_b"), Hash40::new("top"), 1.5, 2.5, 1, 180, -75, 180, 1.1, true, *EF_FLIP_YZ);
125+
LAST_EFFECT_SET_RATE(fighter, 1.3);
134126
}
135127
}
136128

0 commit comments

Comments
 (0)