Skip to content

Commit e99816a

Browse files
authored
Merge pull request #2229 from robertyur/Pacman-Adjustments
Pacman adjustments
2 parents 4d13d89 + e2524c6 commit e99816a

File tree

2 files changed

+52
-1
lines changed

2 files changed

+52
-1
lines changed

fighters/common/src/function_hooks/set_fighter_status_data.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ unsafe fn set_fighter_status_data_hook(boma: &mut BattleObjectModuleAccessor, ar
3939
|| (boma.kind() == *FIGHTER_KIND_MIIGUNNER
4040
&& boma.is_status_one_of(&[*FIGHTER_MIIGUNNER_STATUS_KIND_SPECIAL_S3_1_GROUND, *FIGHTER_MIIGUNNER_STATUS_KIND_SPECIAL_S3_1_AIR, *FIGHTER_MIIGUNNER_STATUS_KIND_SPECIAL_S3_2_GROUND, *FIGHTER_MIIGUNNER_STATUS_KIND_SPECIAL_S3_2_AIR]))
4141
|| (boma.kind() == *FIGHTER_KIND_PACMAN
42-
&& boma.is_status_one_of(&[*FIGHTER_STATUS_KIND_SPECIAL_N]))
42+
&& boma.is_status_one_of(&[*FIGHTER_STATUS_KIND_SPECIAL_N, *FIGHTER_STATUS_KIND_SPECIAL_LW]))
4343
|| (boma.kind() == *FIGHTER_KIND_PIKMIN
4444
&& boma.is_status_one_of(&[*FIGHTER_STATUS_KIND_SPECIAL_LW]))
4545
|| (boma.kind() == *FIGHTER_KIND_RICHTER

fighters/pacman/src/acmd/aerials.rs

+51
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,55 @@
11

22
use super::*;
33

4+
#[acmd_script( agent = "pacman", script = "game_attackairn" , category = ACMD_GAME , low_priority)]
5+
unsafe fn pacman_attack_air_n_game(fighter: &mut L2CAgentBase) {
6+
let lua_state = fighter.lua_state_agent;
7+
let boma = fighter.boma();
8+
frame(lua_state, 3.0);
9+
if is_excute(fighter) {
10+
WorkModule::on_flag(boma, *FIGHTER_STATUS_ATTACK_AIR_FLAG_ENABLE_LANDING);
11+
ATTACK(fighter, 0, 0, Hash40::new("pizzapacman"), 10.0, 50, 70, 0, 45, 8.1, 0.0, 0.0, 0.0, None, None, None, 0.8, 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_PUNCH, *ATTACK_REGION_BODY);
12+
}
13+
frame(lua_state, 6.0);
14+
if is_excute(fighter) {
15+
ATTACK(fighter, 0, 0, Hash40::new("pizzapacman"), 8.5, 50, 70, 0, 45, 7.2, 0.0, 0.5, 0.0, None, None, None, 0.8, 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_PUNCH, *ATTACK_REGION_BODY);
16+
}
17+
frame(lua_state, 10.0);
18+
if is_excute(fighter) {
19+
ATTACK(fighter, 0, 0, Hash40::new("pizzapacman"), 6.0, 50, 70, 0, 45, 4.5, 0.0, 0.5, 0.0, None, None, None, 0.8, 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_PUNCH, *ATTACK_REGION_BODY);
20+
}
21+
frame(lua_state, 20.0);
22+
if is_excute(fighter) {
23+
AttackModule::clear_all(boma);
24+
}
25+
frame(lua_state, 45.0);
26+
if is_excute(fighter) {
27+
WorkModule::off_flag(boma, *FIGHTER_STATUS_ATTACK_AIR_FLAG_ENABLE_LANDING);
28+
}
29+
}
30+
31+
#[acmd_script( agent = "pacman", script = "effect_attackairn" , category = ACMD_EFFECT , low_priority)]
32+
unsafe fn pacman_attack_air_n_effect(fighter: &mut L2CAgentBase) {
33+
let lua_state = fighter.lua_state_agent;
34+
let boma = fighter.boma();
35+
frame(lua_state, 2.0);
36+
if is_excute(fighter) {
37+
EFFECT_FOLLOW_NO_STOP(fighter, Hash40::new("pacman_change_start"), Hash40::new("pizzapacman"), 0, 0, 0, 0, 0, 0, 1, true);
38+
}
39+
frame(lua_state, 3.0);
40+
if is_excute(fighter) {
41+
EFFECT_FOLLOW_FLIP_ALPHA(fighter, Hash40::new("sys_spin_wind"), Hash40::new("sys_spin_wind"), Hash40::new("top"), 0, 5.9, 0.8, 0, 0, 90, 0.8, true, *EF_FLIP_YZ, 0.4);
42+
}
43+
frame(lua_state, 16.0);
44+
if is_excute(fighter) {
45+
EFFECT_FOLLOW_FLIP_ALPHA(fighter, Hash40::new("sys_spin_wind"), Hash40::new("sys_spin_wind"), Hash40::new("top"), 0, 5.9, 0.7, 0, 0, 90, 0.75, true, *EF_FLIP_YZ, 0.4);
46+
}
47+
frame(lua_state, 30.0);
48+
if is_excute(fighter) {
49+
EFFECT_FOLLOW(fighter, Hash40::new("pacman_change_end"), Hash40::new("pizzapacman"), 0, 0, 0, 0, 0, 0, 1, true);
50+
EFFECT_OFF_KIND(fighter, Hash40::new("sys_spin_wind"), true, true);
51+
}
52+
}
453

554
#[acmd_script( agent = "pacman", script = "game_attackairf" , category = ACMD_GAME , low_priority)]
655
unsafe fn pacman_attack_air_f_game(fighter: &mut L2CAgentBase) {
@@ -157,6 +206,8 @@ unsafe fn pacman_attack_air_lw_game(fighter: &mut L2CAgentBase) {
157206

158207
pub fn install() {
159208
install_acmd_scripts!(
209+
pacman_attack_air_n_game,
210+
pacman_attack_air_n_effect,
160211
pacman_attack_air_f_game,
161212
pacman_attack_air_b_game,
162213
pacman_attack_air_hi_game,

0 commit comments

Comments
 (0)