Skip to content

Commit f8a16c8

Browse files
Final Touches
Includes Motionpatch Prep for Incoming Gumshoe which will be a separate PR
1 parent 0316bba commit f8a16c8

File tree

3 files changed

+76
-101
lines changed

3 files changed

+76
-101
lines changed

fighters/duckhunt/src/acmd/smashes.rs

+5-89
Original file line numberDiff line numberDiff line change
@@ -10,56 +10,10 @@ unsafe fn duckhunt_attack_hi4_game(fighter: &mut L2CAgentBase) {
1010
}
1111
frame(lua_state, 7.0);
1212
if is_excute(fighter) {
13-
WorkModule::set_int(
14-
boma,
15-
5,
16-
*FIGHTER_DUCKHUNT_STATUS_ATTACK_INT_SMASH_DELAY_FRAME,
17-
);
18-
WorkModule::set_int(
19-
boma,
20-
6,
21-
*FIGHTER_DUCKHUNT_STATUS_ATTACK_INT_SMASH_RETICLE_DISPLAY_FRAME,
22-
);
13+
WorkModule::set_int( boma, 5, *FIGHTER_DUCKHUNT_STATUS_ATTACK_INT_SMASH_DELAY_FRAME);
14+
WorkModule::set_int( boma, 6, *FIGHTER_DUCKHUNT_STATUS_ATTACK_INT_SMASH_RETICLE_DISPLAY_FRAME);
2315
FT_MOTION_RATE_RANGE(fighter, 17.0, 57.0, 28.0);
24-
ATTACK(
25-
fighter,
26-
/*ID*/ 0,
27-
/*Part*/ 0,
28-
/*Bone*/ Hash40::new("top"),
29-
/*Damage*/ 5.0,
30-
/*Angle*/ 127,
31-
/*KBG*/ 0,
32-
/*FKB*/ 0,
33-
/*BKB*/ 110,
34-
/*Size*/ 5.3,
35-
/*X*/ 0.0,
36-
/*Y*/ 6.0,
37-
/*Z*/ 9.0,
38-
/*X2*/ None,
39-
/*Y2*/ None,
40-
/*Z2*/ None,
41-
/*Hitlag*/ 1.0,
42-
/*SDI*/ 0.5,
43-
/*Clang_Rebound*/ *ATTACK_SETOFF_KIND_THRU,
44-
/*FacingRestrict*/ *ATTACK_LR_CHECK_POS,
45-
/*SetWeight*/ false,
46-
/*ShieldDamage*/ 0,
47-
/*Trip*/ 0.0,
48-
/*Rehit*/ 0,
49-
/*Reflectable*/ false,
50-
/*Absorbable*/ false,
51-
/*Flinchless*/ false,
52-
/*DisableHitlag*/ false,
53-
/*Direct_Hitbox*/ true,
54-
/*Ground_or_Air*/ *COLLISION_SITUATION_MASK_GA,
55-
/*Hitbits*/ *COLLISION_CATEGORY_MASK_ALL,
56-
/*CollisionPart*/ *COLLISION_PART_MASK_ALL,
57-
/*FriendlyFire*/ false,
58-
/*Effect*/ Hash40::new("collision_attr_fire"),
59-
/*SFXLevel*/ *ATTACK_SOUND_LEVEL_M,
60-
/*SFXType*/ *COLLISION_SOUND_ATTR_PUNCH,
61-
/*Type*/ *ATTACK_REGION_NONE,
62-
);
16+
ATTACK( fighter, /*ID*/ 0, /*Part*/ 0, /*Bone*/ Hash40::new("top"), /*Damage*/ 5.0, /*Angle*/ 127, /*KBG*/ 0, /*FKB*/ 0, /*BKB*/ 110, /*Size*/ 5.3, /*X*/ 0.0, /*Y*/ 6.0, /*Z*/ 9.0, /*X2*/ None, /*Y2*/ None, /*Z2*/ None, /*Hitlag*/ 1.0, /*SDI*/ 0.5, /*Clang_Rebound*/ *ATTACK_SETOFF_KIND_THRU, /*FacingRestrict*/ *ATTACK_LR_CHECK_POS, /*SetWeight*/ false, /*ShieldDamage*/ 0, /*Trip*/ 0.0, /*Rehit*/ 0, /*Reflectable*/ false, /*Absorbable*/ false, /*Flinchless*/ false, /*DisableHitlag*/ false, /*Direct_Hitbox*/ true, /*Ground_or_Air*/ *COLLISION_SITUATION_MASK_GA, /*Hitbits*/ *COLLISION_CATEGORY_MASK_ALL, /*CollisionPart*/ *COLLISION_PART_MASK_ALL, /*FriendlyFire*/ false, /*Effect*/ Hash40::new("collision_attr_fire"), /*SFXLevel*/ *ATTACK_SOUND_LEVEL_M, /*SFXType*/ *COLLISION_SOUND_ATTR_PUNCH, /*Type*/ *ATTACK_REGION_NONE);
6317
}
6418
frame(lua_state, 15.0);
6519
if is_excute(fighter) {
@@ -169,46 +123,8 @@ unsafe fn duckhunt_attack_s4_s_game(fighter: &mut L2CAgentBase) {
169123
frame(lua_state, 18.0);
170124
FT_MOTION_RATE_RANGE(fighter, 18.0, 24.0, 4.0);
171125
if is_excute(fighter) {
172-
ATTACK(
173-
fighter,
174-
1,
175-
0,
176-
Hash40::new("top"),
177-
4.0,
178-
45,
179-
100,
180-
70,
181-
0,
182-
7.0,
183-
0.0,
184-
6.0,
185-
18.0,
186-
None,
187-
None,
188-
None,
189-
1.0,
190-
1.0,
191-
*ATTACK_SETOFF_KIND_THRU,
192-
*ATTACK_LR_CHECK_F,
193-
false,
194-
0,
195-
0.0,
196-
0,
197-
false,
198-
false,
199-
false,
200-
false,
201-
true,
202-
*COLLISION_SITUATION_MASK_GA,
203-
*COLLISION_CATEGORY_MASK_ALL,
204-
*COLLISION_PART_MASK_ALL,
205-
false,
206-
Hash40::new("collision_attr_fire"),
207-
*ATTACK_SOUND_LEVEL_M,
208-
*COLLISION_SOUND_ATTR_PUNCH,
209-
*ATTACK_REGION_NONE,
210-
);
211-
}
126+
ATTACK(fighter, 1, 0, Hash40::new("top"), 4.0, 45, 100, 70, 0, 7.0, 0.0, 6.0, 18.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_THRU, *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_fire"), *ATTACK_SOUND_LEVEL_M, *COLLISION_SOUND_ATTR_PUNCH, *ATTACK_REGION_NONE,);
127+
}
212128
frame(lua_state, 24.0);
213129
FT_MOTION_RATE(fighter, 1.0);
214130
if is_excute(fighter) {

fighters/duckhunt/src/acmd/specials.rs

+8-12
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,5 @@
1-
21
use super::*;
32

4-
#[acmd_script( agent = "duckhunt", script = "game_specialhi" , category = ACMD_GAME , low_priority)]
5-
unsafe fn duckhunt_special_hi_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_DUCKHUNT_INSTANCE_WORK_ID_FLAG_REQUEST_SPECIAL_HI_CANCEL);
11-
}
12-
13-
}
14-
153
#[acmd_script( agent = "duckhunt" , scripts = ["game_specialairlw", "game_speciallw"], category = ACMD_GAME , low_priority)]
164
unsafe fn duckhunt_special_lw_game(fighter: &mut L2CAgentBase) {
175
let lua_state: u64 = fighter.lua_state_agent;
@@ -64,7 +52,15 @@ unsafe fn duckhunt_special_s_game(fighter: &mut L2CAgentBase) {
6452

6553
pub fn install() {
6654
install_acmd_scripts!(
55+
//gumshoe {{{
6756
duckhunt_special_hi_game,
57+
duckhunt_special_hi2_game,
58+
duckhunt_special_hi3_game,
59+
duckhunt_special_hi_effect,
60+
duckhunt_special_hi_sound,
61+
duckhunt_special_hi_expression,
62+
reticle_special_hi_game,
63+
//gumshoe }}}
6864
duckhunt_special_n_game,
6965
duckhunt_special_lw_game,
7066
duckhunt_special_s_game,

romfs/source/fighter/duckhunt/motion/body/motion_patch.yaml

+63
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,69 @@ attack_squat_s3:
6060
intangible_end_frame: 0
6161
cancel_frame: 27
6262
freeze_during_hitstop: false
63+
special_hi:
64+
flags:
65+
loop: false
66+
extra:
67+
cancel_frame: 25
68+
special_hi_2:
69+
game_script: game_specialhi2
70+
flags:
71+
turn: false
72+
loop: false
73+
move: false
74+
fix_trans: false
75+
fix_rot: false
76+
fix_scale: false
77+
unk_40: false
78+
unk_80: true
79+
unk_100: false
80+
unk_200: false
81+
unk_400: false
82+
unk_800: false
83+
unk_1000: false
84+
unk_2000: false
85+
blend_frames: 10
86+
animations:
87+
- name: d02specialhi2.nuanmb
88+
scripts:
89+
- expression_specialhi2
90+
- sound_specialhi2
91+
- effect_specialhi2
92+
extra:
93+
intangible_start_frame: 0
94+
intangible_end_frame: 0
95+
cancel_frame: 0
96+
freeze_during_hitstop: false
97+
special_hi_3:
98+
game_script: game_specialhi3
99+
flags:
100+
turn: false
101+
loop: false
102+
move: false
103+
fix_trans: false
104+
fix_rot: false
105+
fix_scale: false
106+
unk_40: false
107+
unk_80: true
108+
unk_100: false
109+
unk_200: false
110+
unk_400: false
111+
unk_800: false
112+
unk_1000: false
113+
unk_2000: false
114+
blend_frames: 10
115+
animations:
116+
- name: d02specialhi3.nuanmb
117+
scripts:
118+
- expression_specialhi3
119+
- sound_specialhi3
120+
- effect_specialhi3
121+
extra:
122+
intangible_start_frame: 0
123+
intangible_end_frame: 0
124+
cancel_frame: 0
125+
freeze_during_hitstop: false
63126
fall_aerial:
64127
blend_frames: 5
65128
fall_special:

0 commit comments

Comments
 (0)