Skip to content

Commit 7f33118

Browse files
committed
SL2 and other adjustments
1 parent 79b924b commit 7f33118

File tree

8 files changed

+63
-47
lines changed

8 files changed

+63
-47
lines changed

dynamic/src/consts.rs

-8
Original file line numberDiff line numberDiff line change
@@ -1471,14 +1471,6 @@ pub mod vars {
14711471
pub const RING_SECOND_COLOR: i32 = 0x108;
14721472
}
14731473
}
1474-
1475-
pub mod jack {
1476-
pub mod instance {
1477-
// flags
1478-
pub const GROUNDED_DOYLE_DASH: i32 = 0x0100;
1479-
}
1480-
}
1481-
14821474

14831475
pub mod shulk {
14841476
pub mod instance {

fighters/shulk/src/acmd/aerials.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ unsafe extern "C" fn shulk_attack_air_n_game(fighter: &mut L2CAgentBase) {
1313
frame(lua_state, 14.0);
1414
FT_DESIRED_RATE(fighter, 18.0, 16.0);
1515
if is_excute(fighter) {
16-
ATTACK(fighter, 0, 0, Hash40::new("swordr"), 10.0, 68, 100, 0, 55, 3.6, 2.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_cutup"), *ATTACK_SOUND_LEVEL_M, *COLLISION_SOUND_ATTR_CUTUP, *ATTACK_REGION_SWORD);
17-
ATTACK(fighter, 1, 0, Hash40::new("swordr"), 8.5, 58, 100, 0, 45, 4.0, 7.75, 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_cutup"), *ATTACK_SOUND_LEVEL_M, *COLLISION_SOUND_ATTR_CUTUP, *ATTACK_REGION_SWORD);
18-
ATTACK(fighter, 2, 0, Hash40::new("swordr"), 8.5, 58, 100, 0, 45, 4.0, 13.5, 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_cutup"), *ATTACK_SOUND_LEVEL_S, *COLLISION_SOUND_ATTR_CUTUP, *ATTACK_REGION_SWORD);
16+
ATTACK(fighter, 0, 0, Hash40::new("swordr"), 10.0, 68, 100, 0, 50, 3.6, 2.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_cutup"), *ATTACK_SOUND_LEVEL_M, *COLLISION_SOUND_ATTR_CUTUP, *ATTACK_REGION_SWORD);
17+
ATTACK(fighter, 1, 0, Hash40::new("swordr"), 8.5, 58, 100, 0, 42, 4.0, 7.75, 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_cutup"), *ATTACK_SOUND_LEVEL_M, *COLLISION_SOUND_ATTR_CUTUP, *ATTACK_REGION_SWORD);
18+
ATTACK(fighter, 2, 0, Hash40::new("swordr"), 8.5, 58, 100, 0, 42, 4.0, 13.5, 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_cutup"), *ATTACK_SOUND_LEVEL_S, *COLLISION_SOUND_ATTR_CUTUP, *ATTACK_REGION_SWORD);
1919
}
2020
frame(lua_state, 32.0);
2121
FT_MOTION_RATE(fighter, 1.0);

fighters/shulk/src/acmd/ground.rs

+4-6
Original file line numberDiff line numberDiff line change
@@ -78,14 +78,12 @@ unsafe extern "C" fn shulk_attack_dash_game(fighter: &mut L2CAgentBase) {
7878
let lua_state = fighter.lua_state_agent;
7979
let boma = fighter.boma();
8080
frame(lua_state, 1.0);
81-
FT_MOTION_RATE(fighter, 0.785);
81+
FT_DESIRED_RATE(fighter, 14.0, 11.0);
8282
frame(lua_state, 15.0);
83-
FT_MOTION_RATE(fighter, 0.87);
83+
FT_DESIRED_RATE(fighter, 28.0, 22.0);
8484
if is_excute(fighter) {
85-
ATTACK(fighter, 0, 0, Hash40::new("haver"), 13.5, 361, 95, 0, 35, 4.0, -1.5, 0.0, -2.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *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_cutup"), *ATTACK_SOUND_LEVEL_M, *COLLISION_SOUND_ATTR_CUTUP, *ATTACK_REGION_SWORD);
86-
ATTACK(fighter, 1, 0, Hash40::new("haver"), 13.5, 361, 95, 0, 35, 4.0, -1.5, 4.9, -2.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *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_cutup"), *ATTACK_SOUND_LEVEL_M, *COLLISION_SOUND_ATTR_CUTUP, *ATTACK_REGION_SWORD);
87-
ATTACK(fighter, 2, 0, Hash40::new("haver"), 12.0, 70, 95, 0, 35, 4.0, -1.5, 9.8, -2.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *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_cutup"), *ATTACK_SOUND_LEVEL_M, *COLLISION_SOUND_ATTR_CUTUP, *ATTACK_REGION_SWORD);
88-
ATTACK(fighter, 3, 0, Hash40::new("haver"), 12.0, 70, 95, 0, 35, 4.0, -1.5, 14.7, -2.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *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_cutup"), *ATTACK_SOUND_LEVEL_M, *COLLISION_SOUND_ATTR_CUTUP, *ATTACK_REGION_SWORD);
85+
ATTACK(fighter, 0, 0, Hash40::new("top"), 13.5, 361, 95, 0, 35, 3.7, 0.0, 7.4, 11.6, Some(0.0), Some(7.4), Some(6.6), 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *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_cutup"), *ATTACK_SOUND_LEVEL_M, *COLLISION_SOUND_ATTR_CUTUP, *ATTACK_REGION_SWORD);
86+
ATTACK(fighter, 1, 0, Hash40::new("top"), 12.0, 70, 95, 0, 35, 3.1, 0.0, 7.4, 18.8, Some(0.0), Some(7.4), Some(7.6), 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *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_cutup"), *ATTACK_SOUND_LEVEL_M, *COLLISION_SOUND_ATTR_CUTUP, *ATTACK_REGION_SWORD);
8987
}
9088
wait(lua_state, 2.0);
9189
if is_excute(fighter) {

fighters/shulk/src/acmd/specials.rs

+37-11
Original file line numberDiff line numberDiff line change
@@ -49,31 +49,34 @@ unsafe extern "C" fn shulk_special_s_game(agent: &mut L2CAgentBase) {
4949
if is_excute(agent) {
5050
if WorkModule::is_flag(boma, *FIGHTER_SHULK_INSTANCE_WORK_ID_FLAG_SPECIAL_N_ACTIVE) {
5151
if WorkModule::get_int(boma, *FIGHTER_SHULK_INSTANCE_WORK_ID_INT_SPECIAL_N_TYPE) == *FIGHTER_SHULK_MONAD_TYPE_JUMP {
52-
ATTACK(agent, 0, 0, Hash40::new("swordr"), 10.0, 100, 60, 0, 80, 3.5, 7.0, 0.0, 0.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *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_CUTUP, *ATTACK_REGION_SWORD);
53-
ATTACK(agent, 1, 0, Hash40::new("arml"), 14.0, 100, 60, 0, 80, 4.0, 0.0, 0.0, 0.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *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_BODY);
52+
ATTACK(agent, 0, 0, Hash40::new("arml"), 12.0, 100, 60, 0, 80, 4.0, 0.0, 0.0, 0.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *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_BODY);
53+
ATTACK(agent, 1, 0, Hash40::new("swordr"), 9.0, 100, 60, 0, 80, 3.5, 7.0, 0.0, 0.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *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_CUTUP, *ATTACK_REGION_SWORD);
5454
}
5555
else if WorkModule::get_int(boma, *FIGHTER_SHULK_INSTANCE_WORK_ID_INT_SPECIAL_N_TYPE) == *FIGHTER_SHULK_MONAD_TYPE_BUSTER {
56-
ATTACK(agent, 0, 0, Hash40::new("swordr"), 11.0, 361, 90, 0, 80, 3.5, 7.0, 0.0, 0.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *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_CUTUP, *ATTACK_REGION_SWORD);
57-
ATTACK(agent, 1, 0, Hash40::new("arml"), 15.1, 361, 90, 0, 80, 4.0, 0.0, 0.0, 0.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *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_BODY);
56+
ATTACK(agent, 0, 0, Hash40::new("arml"), 13.0, 361, 90, 0, 80, 4.0, 0.0, 0.0, 0.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *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_BODY);
57+
ATTACK(agent, 1, 0, Hash40::new("swordr"), 9.7, 361, 90, 0, 80, 3.5, 7.0, 0.0, 0.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *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_CUTUP, *ATTACK_REGION_SWORD);
5858
}
5959
else if WorkModule::get_int(boma, *FIGHTER_SHULK_INSTANCE_WORK_ID_INT_SPECIAL_N_TYPE) == *FIGHTER_SHULK_MONAD_TYPE_SMASH {
60-
ATTACK(agent, 0, 0, Hash40::new("swordr"), 8.0, 361, 95, 0, 85, 3.5, 7.0, 0.0, 0.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *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_CUTUP, *ATTACK_REGION_SWORD);
61-
ATTACK(agent, 1, 0, Hash40::new("arml"), 12.0, 361, 95, 0, 85, 4.0, 0.0, 0.0, 0.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *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_BODY);
60+
ATTACK(agent, 0, 0, Hash40::new("arml"), 10.2, 361, 95, 0, 85, 4.0, 0.0, 0.0, 0.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *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_BODY);
61+
ATTACK(agent, 1, 0, Hash40::new("swordr"), 7.7, 361, 95, 0, 85, 3.5, 7.0, 0.0, 0.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *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_CUTUP, *ATTACK_REGION_SWORD);
6262
}
6363
else {
64-
ATTACK(agent, 0, 0, Hash40::new("swordr"), 10.0, 361, 90, 0, 80, 3.5, 7.0, 0.0, 0.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *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_CUTUP, *ATTACK_REGION_SWORD);
65-
ATTACK(agent, 1, 0, Hash40::new("arml"), 14.0, 361, 90, 0, 80, 4.0, 0.0, 0.0, 0.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *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_BODY);
64+
ATTACK(agent, 0, 0, Hash40::new("arml"), 12.0, 361, 90, 0, 80, 4.0, 0.0, 0.0, 0.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *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_BODY);
65+
ATTACK(agent, 1, 0, Hash40::new("swordr"), 9.0, 361, 90, 0, 80, 3.5, 7.0, 0.0, 0.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *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_CUTUP, *ATTACK_REGION_SWORD);
6666
}
6767
}
6868
else {
69-
ATTACK(agent, 0, 0, Hash40::new("swordr"), 10.0, 361, 90, 0, 80, 3.5, 7.0, 0.0, 0.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *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_CUTUP, *ATTACK_REGION_SWORD);
70-
ATTACK(agent, 1, 0, Hash40::new("arml"), 14.0, 361, 90, 0, 80, 4.0, 0.0, 0.0, 0.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *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_BODY);
69+
ATTACK(agent, 0, 0, Hash40::new("arml"), 12.0, 361, 90, 0, 80, 4.0, 0.0, 0.0, 0.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *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_BODY);
70+
ATTACK(agent, 1, 0, Hash40::new("swordr"), 9.0, 361, 90, 0, 80, 3.5, 7.0, 0.0, 0.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *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_CUTUP, *ATTACK_REGION_SWORD);
7171
}
7272
}
73-
frame(lua_state, 30.0);
73+
frame(lua_state, 28.0);
7474
if is_excute(agent) {
7575
AttackModule::clear_all(boma);
7676
damage!(agent, *MA_MSC_DAMAGE_DAMAGE_NO_REACTION, *DAMAGE_NO_REACTION_MODE_NORMAL, 0);
77+
}
78+
wait(lua_state, 2.0);
79+
if is_excute(agent) {
7780
VarModule::set_int(agent.object(), vars::shulk::instance::SPECIAL_S_STEP, 2);
7881
}
7982
frame(lua_state, 40.0);
@@ -158,6 +161,27 @@ unsafe extern "C" fn shulk_special_air_s_effect(agent: &mut L2CAgentBase) {
158161
}
159162
}
160163

164+
unsafe extern "C" fn shulk_special_s_sound(agent: &mut L2CAgentBase) {
165+
let lua_state = agent.lua_state_agent;
166+
let boma = agent.boma();
167+
frame(lua_state, 3.0);
168+
if is_excute(agent) {
169+
PLAY_SEQUENCE(agent, Hash40::new("seq_shulk_rnd_special_s"));
170+
}
171+
frame(lua_state, 10.0);
172+
if is_excute(agent) {
173+
PLAY_SE(agent, Hash40::new("se_shulk_special_s01"));
174+
}
175+
frame(lua_state, 14.0);
176+
if is_excute(agent) {
177+
PLAY_SE(agent, Hash40::new("se_shulk_monado_open"));
178+
}
179+
frame(lua_state, 21.0);
180+
if is_excute(agent) {
181+
PLAY_SE(agent, Hash40::new("se_shulk_special_s03"));
182+
}
183+
}
184+
161185
unsafe extern "C" fn shulk_special_hi_game(fighter: &mut L2CAgentBase) {
162186
let lua_state = fighter.lua_state_agent;
163187
let boma = fighter.boma();
@@ -268,6 +292,8 @@ pub fn install() {
268292
.acmd("game_specialairs", shulk_special_s_game)
269293
.acmd("effect_specials", shulk_special_s_effect)
270294
.acmd("effect_specialairs", shulk_special_air_s_effect)
295+
.acmd("sound_specials", shulk_special_s_sound)
296+
.acmd("sound_specialairs", shulk_special_s_sound)
271297
.acmd("game_specialhi", shulk_special_hi_game)
272298
.acmd("game_specialairhi", shulk_special_hi_game)
273299
.acmd("game_speciallwattack", shulk_special_lw_attack_game)

0 commit comments

Comments
 (0)