Skip to content

Commit 138f079

Browse files
committed
First Younglink Draft
1 parent 2f7f79f commit 138f079

File tree

9 files changed

+64
-143
lines changed

9 files changed

+64
-143
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, 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);
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);
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.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);
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);
203203
/* Air-only */
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);
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);
205205
}
206-
wait(lua_state, 4.0);
206+
wait(lua_state, 10.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"), 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);
75+
ATTACK(fighter, 0, 0, Hash40::new("top"), 9.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.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);
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);
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, 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);
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);
261261
}
262262

263263
}

fighters/younglink/src/acmd/smashes.rs

+11-33
Original file line numberDiff line numberDiff line change
@@ -4,51 +4,30 @@ 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, 10.0);
7+
frame(lua_state, 3.0);
88
if is_excute(fighter) {
99
WorkModule::on_flag(boma, *FIGHTER_STATUS_ATTACK_FLAG_START_SMASH_HOLD);
1010
}
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);
27-
if is_excute(fighter) {
28-
WorkModule::on_flag(boma, *FIGHTER_STATUS_ATTACK_FLAG_ENABLE_COMBO);
29-
}
30-
frame(lua_state, 40.0);
11+
frame(lua_state, 4.0);
3112
if is_excute(fighter) {
32-
WorkModule::off_flag(boma, *FIGHTER_STATUS_ATTACK_FLAG_ENABLE_COMBO);
13+
FT_MOTION_RATE(fighter, 0.5);
3314
}
3415

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();
4116
frame(lua_state, 11.0);
4217
if is_excute(fighter) {
18+
FT_MOTION_RATE(fighter, 1.0);
19+
}
20+
frame(lua_state, 12.0);
21+
if is_excute(fighter) {
4322
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);
4423
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);
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);
24+
}
25+
26+
wait(lua_state, 10.0);
4827
if is_excute(fighter) {
4928
AttackModule::clear_all(boma);
5029
}
51-
30+
5231
}
5332

5433
#[acmd_script( agent = "younglink", script = "game_attackhi4" , category = ACMD_GAME , low_priority)]
@@ -208,7 +187,6 @@ unsafe fn younglink_attack_lw4_game(fighter: &mut L2CAgentBase) {
208187
pub fn install() {
209188
install_acmd_scripts!(
210189
younglink_attack_s4_s_game,
211-
younglink_attack_s4_s2_game,
212190
younglink_attack_hi4_game,
213191
younglink_attack_hi4_effect,
214192
younglink_attack_hi4_sound,

0 commit comments

Comments
 (0)