@@ -29,6 +29,25 @@ unsafe fn wings_of_rebellion_cancel(boma: &mut BattleObjectModuleAccessor, statu
29
29
}
30
30
}
31
31
32
+ // Joker Aerial Grappling Hook stall
33
+ unsafe fn aerial_grappling_hook_stall ( boma : & mut BattleObjectModuleAccessor , motion_kind : u64 , frame : f32 ) {
34
+ if motion_kind == hash40 ( "special_air_hi_throw" ) {
35
+ if frame < 37.0 {
36
+ KineticModule :: unable_energy ( boma, * FIGHTER_KINETIC_ENERGY_ID_GRAVITY ) ;
37
+ }
38
+ if frame >= 37.0 {
39
+ KineticModule :: enable_energy ( boma, * FIGHTER_KINETIC_ENERGY_ID_GRAVITY ) ;
40
+ }
41
+ }
42
+ }
43
+
44
+ // Joker Grappling Hook Spike Cancel
45
+ unsafe fn grappling_hook_spike_cancel ( fighter : & mut L2CFighterCommon , boma : & mut BattleObjectModuleAccessor ) {
46
+ if fighter. is_status ( * FIGHTER_STATUS_KIND_SPECIAL_HI ) && fighter. is_situation ( * SITUATION_KIND_AIR ) && AttackModule :: is_infliction_status ( boma, * COLLISION_KIND_MASK_HIT ) && !boma. is_in_hitlag ( ) {
47
+ MotionModule :: set_rate ( boma, 2.0 ) ;
48
+ }
49
+ }
50
+
32
51
unsafe fn arsene_summon_desmummon ( boma : & mut BattleObjectModuleAccessor ) {
33
52
34
53
//if boma.is_motion_one_of(&[Hash40::new("special_lw_start"), Hash40::new("special_lw_loop")]) {
@@ -143,6 +162,8 @@ unsafe extern "C" fn jack_training_tools(fighter: &mut L2CFighterCommon) {
143
162
144
163
pub unsafe fn moveset ( fighter : & mut L2CFighterCommon , boma : & mut BattleObjectModuleAccessor , id : usize , cat : [ i32 ; 4 ] , status_kind : i32 , situation_kind : i32 , motion_kind : u64 , stick_x : f32 , stick_y : f32 , facing : f32 , frame : f32 ) {
145
164
wings_of_rebellion_cancel ( boma, status_kind) ;
165
+ aerial_grappling_hook_stall ( boma, motion_kind, frame) ;
166
+ grappling_hook_spike_cancel ( fighter, boma) ;
146
167
//arsene_grappling_hook(boma, situation_kind, motion_kind);
147
168
knife_length ( boma) ;
148
169
//arsene_summon_desmummon(boma);
0 commit comments