Skip to content

Commit a69237a

Browse files
authored
Merge pull request #2271 from HDR-Development/mokl
mokl's misc
2 parents 12a11e5 + e98d3d7 commit a69237a

File tree

11 files changed

+123
-75
lines changed

11 files changed

+123
-75
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

+26-25
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

@@ -471,22 +471,22 @@ unsafe 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 fn effect_special_lw_light(fighter: &mut L2CAgentBase) {
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

@@ -649,8 +649,9 @@ unsafe 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
@@ -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 {
@@ -22,7 +28,7 @@ fn mario_init(fighter: &mut L2CFighterCommon) {
2228
}
2329

2430
#[status_script(agent = "mario", status = FIGHTER_MARIO_STATUS_KIND_SPECIAL_LW_SHOOT, condition = LUA_SCRIPT_STATUS_FUNC_STATUS_PRE)]
25-
unsafe extern "C" fn special_lw_pre(fighter: &mut L2CFighterCommon) -> L2CValue {
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,
@@ -55,5 +61,6 @@ pub fn install() {
5561
special_n::install();
5662
install_status_scripts!(
5763
special_lw_pre,
64+
special_lw_shoot_pre
5865
);
5966
}

fighters/nana/src/acmd/smashes.rs

+6-14
Original file line numberDiff line numberDiff line change
@@ -91,25 +91,17 @@ unsafe fn nana_attack_hi4_game(fighter: &mut L2CAgentBase) {
9191
unsafe 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 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)