Skip to content

Commit 01a563e

Browse files
committed
Draft
1 parent 1155b40 commit 01a563e

File tree

7 files changed

+136
-46
lines changed

7 files changed

+136
-46
lines changed

fighters/younglink/src/acmd/aerials.rs

+6-6
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,9 @@ unsafe fn younglink_attack_air_f_game(fighter: &mut L2CAgentBase) {
5858
FT_MOTION_RATE(fighter, 1.0);
5959
frame(lua_state, 29.0);
6060
if is_excute(fighter) {
61-
ATTACK(fighter, 0, 0, Hash40::new("sword"), 8.0, 361, 90, 0, 50, 4.0, 0.0, 0.0, 1.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_L, *COLLISION_SOUND_ATTR_CUTUP, *ATTACK_REGION_SWORD);
62-
ATTACK(fighter, 1, 0, Hash40::new("sword"), 8.0, 361, 90, 0, 50, 4.0, 6.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_L, *COLLISION_SOUND_ATTR_CUTUP, *ATTACK_REGION_SWORD);
63-
ATTACK(fighter, 2, 0, Hash40::new("arml"), 8.0, 361, 90, 0, 50, 3.5, 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_cutup"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_CUTUP, *ATTACK_REGION_SWORD);
61+
ATTACK(fighter, 0, 0, Hash40::new("sword"), 8.0, 48, 140, 0, 30, 4.0, 0.0, 0.0, 1.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_L, *COLLISION_SOUND_ATTR_CUTUP, *ATTACK_REGION_SWORD);
62+
ATTACK(fighter, 1, 0, Hash40::new("sword"), 8.0, 48, 140, 0, 30, 4.0, 6.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_L, *COLLISION_SOUND_ATTR_CUTUP, *ATTACK_REGION_SWORD);
63+
ATTACK(fighter, 2, 0, Hash40::new("arml"), 8.0, 48, 140, 0, 30, 3.5, 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_cutup"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_CUTUP, *ATTACK_REGION_SWORD);
6464
}
6565
wait(lua_state, 3.0);
6666
if is_excute(fighter) {
@@ -199,11 +199,11 @@ unsafe fn younglink_attack_air_lw_game(fighter: &mut L2CAgentBase) {
199199
WorkModule::on_flag(boma, *FIGHTER_LINK_INSTANCE_WORK_ID_FLAG_ATTACK_AIR_LW_SET_ATTACK);
200200
ATTACK(fighter, 0, 0, Hash40::new("top"), 15.0, 70, 90, 0, 40, 4.5, 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_sting"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_CUTUP, *ATTACK_REGION_SWORD);
201201
/* Ground-only */
202-
ATTACK(fighter, 1, 0, Hash40::new("top"), 18.0, 281, 83, 0, 30, 3.5, 0.0, 9.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_G, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_fire"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_FIRE, *ATTACK_REGION_SWORD);
202+
ATTACK(fighter, 1, 0, Hash40::new("top"), 18.0, 281, 83, 0, 30, 3.0, 0.0, 9.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_G, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_fire"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_FIRE, *ATTACK_REGION_SWORD);
203203
/* Air-only */
204-
ATTACK(fighter, 2, 0, Hash40::new("top"), 18.0, 281, 39, 0, 30, 3.5, 0.0, 9.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_A, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_fire"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_FIRE, *ATTACK_REGION_SWORD);
204+
ATTACK(fighter, 2, 0, Hash40::new("top"), 18.0, 281, 39, 0, 30, 3.0, 0.0, 9.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_A, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_fire"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_FIRE, *ATTACK_REGION_SWORD);
205205
}
206-
wait(lua_state, 10.0);
206+
wait(lua_state, 4.0);
207207
// slow rate to 0.5x so that the move lasts MUCH longer
208208
FT_MOTION_RATE(fighter, 215.0/(60.0-17.0));
209209
if is_excute(fighter) {

fighters/younglink/src/acmd/ground.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ unsafe fn younglink_attack_dash_game(fighter: &mut L2CAgentBase) {
7272
sv_kinetic_energy!(set_speed_mul, fighter, FIGHTER_KINETIC_ENERGY_ID_MOTION, 0.85);
7373
frame(lua_state, 6.0);
7474
if is_excute(fighter) {
75-
ATTACK(fighter, 0, 0, Hash40::new("top"), 9.0, 75, 70, 0, 60, 4.5, 0.0, 5.0, 1.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_KICK, *ATTACK_REGION_BODY);
75+
ATTACK(fighter, 0, 0, Hash40::new("top"), 11.0, 70, 70, 0, 60, 4.5, 0.0, 5.0, 1.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_KICK, *ATTACK_REGION_BODY);
7676
VarModule::on_flag(fighter.battle_object, vars::common::status::ATTACK_DASH_ENABLE_AIR_FALL);
7777
VarModule::on_flag(fighter.battle_object, vars::common::status::ATTACK_DASH_ENABLE_AIR_CONTINUE);
7878
}

fighters/younglink/src/acmd/other.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -252,12 +252,12 @@ unsafe fn younglink_boomerang_game_fly(fighter: &mut L2CAgentBase) {
252252
let lua_state = fighter.lua_state_agent;
253253
let boma = fighter.boma();
254254
if is_excute(fighter) {
255-
ATTACK(fighter, 0, 0, Hash40::new("top"), 11.8, 75, 30, 0, 75, 4.3, 0.0, 0.0, 0.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *ATTACK_LR_CHECK_SPEED, false, -5.5, 0.0, 0, true, false, false, false, false, *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_OBJECT);
255+
ATTACK(fighter, 0, 0, Hash40::new("top"), 11.0, 70, 30, 0, 55, 4.3, 0.0, 0.0, 0.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *ATTACK_LR_CHECK_SPEED, false, -5.5, 0.0, 0, true, false, false, false, false, *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_OBJECT);
256256
AttackModule::enable_safe_pos(boma);
257257
}
258258
wait(lua_state, 3.0);
259259
if is_excute(fighter) {
260-
ATTACK(fighter, 0, 0, Hash40::new("top"), 8.0, 70, 30, 0, 55, 3.3, 0.0, 0.0, 0.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *ATTACK_LR_CHECK_SPEED, false, -3.5, 0.0, 0, true, false, false, false, false, *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_KICK, *ATTACK_REGION_OBJECT);
260+
ATTACK(fighter, 0, 0, Hash40::new("top"), 8.0, 75, 30, 0, 55, 3.3, 0.0, 0.0, 0.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *ATTACK_LR_CHECK_SPEED, false, -3.5, 0.0, 0, true, false, false, false, false, *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_KICK, *ATTACK_REGION_OBJECT);
261261
}
262262

263263
}

fighters/younglink/src/acmd/smashes.rs

+33-11
Original file line numberDiff line numberDiff line change
@@ -4,30 +4,51 @@ use super::*;
44
unsafe fn younglink_attack_s4_s_game(fighter: &mut L2CAgentBase) {
55
let lua_state = fighter.lua_state_agent;
66
let boma = fighter.boma();
7-
frame(lua_state, 3.0);
7+
frame(lua_state, 10.0);
88
if is_excute(fighter) {
99
WorkModule::on_flag(boma, *FIGHTER_STATUS_ATTACK_FLAG_START_SMASH_HOLD);
1010
}
11-
frame(lua_state, 4.0);
11+
frame(lua_state, 11.0);
12+
FT_MOTION_RATE(fighter, 1.0/(14.0-11.0));
13+
frame(lua_state, 14.0);
14+
FT_MOTION_RATE(fighter, 1.0);
15+
frame(lua_state, 15.0);
16+
if is_excute(fighter) {
17+
ATTACK(fighter, 0, 0, Hash40::new("sword"), 6.0, 65, 15, 0, 35, 3.8, 1.0, 0.0, 1.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_L, *COLLISION_SOUND_ATTR_CUTUP, *ATTACK_REGION_SWORD);
18+
ATTACK(fighter, 1, 0, Hash40::new("sword"), 6.0, 65, 15, 0, 35, 3.5, 5.4, 0.0, 1.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_L, *COLLISION_SOUND_ATTR_CUTUP, *ATTACK_REGION_SWORD);
19+
ATTACK(fighter, 2, 0, Hash40::new("shoulderl"), 6.0, 50, 15, 0, 40, 2.8, 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_cutup"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_CUTUP, *ATTACK_REGION_SWORD);
20+
AttackModule::set_attack_height_all(boma, app::AttackHeight(*ATTACK_HEIGHT_HIGH), false);
21+
}
22+
wait(lua_state, 2.0);
23+
if is_excute(fighter) {
24+
AttackModule::clear_all(boma);
25+
}
26+
frame(lua_state, 20.0);
1227
if is_excute(fighter) {
13-
FT_MOTION_RATE(fighter, 0.5);
28+
WorkModule::on_flag(boma, *FIGHTER_STATUS_ATTACK_FLAG_ENABLE_COMBO);
29+
}
30+
frame(lua_state, 40.0);
31+
if is_excute(fighter) {
32+
WorkModule::off_flag(boma, *FIGHTER_STATUS_ATTACK_FLAG_ENABLE_COMBO);
1433
}
1534

35+
}
36+
37+
#[acmd_script( agent = "younglink", script = "game_attacks4s2" , category = ACMD_GAME , low_priority)]
38+
unsafe fn younglink_attack_s4_s2_game(fighter: &mut L2CAgentBase) {
39+
let lua_state = fighter.lua_state_agent;
40+
let boma = fighter.boma();
1641
frame(lua_state, 11.0);
1742
if is_excute(fighter) {
18-
FT_MOTION_RATE(fighter, 1.0);
19-
}
20-
frame(lua_state, 12.0);
21-
if is_excute(fighter) {
2243
ATTACK(fighter, 0, 0, Hash40::new("sword"), 12.0, 48, 119, 0, 43, 3.8, 0.5, 1.0, 1.7, None, None, None, 1.5, 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_L, *COLLISION_SOUND_ATTR_CUTUP, *ATTACK_REGION_SWORD);
2344
ATTACK(fighter, 1, 0, Hash40::new("sword"), 12.0, 48, 119, 0, 43, 3.5, 5.4, 1.0, 1.7, None, None, None, 1.5, 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_L, *COLLISION_SOUND_ATTR_CUTUP, *ATTACK_REGION_SWORD);
24-
}
25-
26-
wait(lua_state, 10.0);
45+
ATTACK(fighter, 2, 0, Hash40::new("shoulderl"), 12.0, 48, 119, 0, 43, 2.8, 0.0, 0.0, 0.0, None, None, None, 1.5, 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_L, *COLLISION_SOUND_ATTR_CUTUP, *ATTACK_REGION_SWORD);
46+
}
47+
wait(lua_state, 4.0);
2748
if is_excute(fighter) {
2849
AttackModule::clear_all(boma);
2950
}
30-
51+
3152
}
3253

3354
#[acmd_script( agent = "younglink", script = "game_attackhi4" , category = ACMD_GAME , low_priority)]
@@ -187,6 +208,7 @@ unsafe fn younglink_attack_lw4_game(fighter: &mut L2CAgentBase) {
187208
pub fn install() {
188209
install_acmd_scripts!(
189210
younglink_attack_s4_s_game,
211+
younglink_attack_s4_s2_game,
190212
younglink_attack_hi4_game,
191213
younglink_attack_hi4_effect,
192214
younglink_attack_hi4_sound,

0 commit comments

Comments
 (0)