@@ -18,7 +18,8 @@ unsafe extern "C" fn mewtwo_attack_11_game(fighter: &mut L2CAgentBase) {
18
18
ATTACK ( fighter, 1 , 0 , Hash40 :: new ( "top" ) , 3.0 , 83 , 40 , 0 , 25 , 4.5 , 0.0 , 11.8 , 9.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_d , * COLLISION_CATEGORY_MASK_ALL , * COLLISION_PART_MASK_ALL , false , Hash40 :: new ( "collision_attr_purple" ) , * ATTACK_SOUND_LEVEL_S , * COLLISION_SOUND_ATTR_FIRE , * ATTACK_REGION_PUNCH ) ;
19
19
ATTACK ( fighter, 2 , 0 , Hash40 :: new ( "top" ) , 3.0 , 83 , 40 , 0 , 25 , 4.0 , 0.0 , 9.0 , 13.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_d , * COLLISION_CATEGORY_MASK_ALL , * COLLISION_PART_MASK_ALL , false , Hash40 :: new ( "collision_attr_purple" ) , * ATTACK_SOUND_LEVEL_S , * COLLISION_SOUND_ATTR_FIRE , * ATTACK_REGION_PUNCH ) ;
20
20
//Jab-Lock Hitbox
21
- ATTACK ( fighter, 3 , 0 , Hash40 :: new ( "top" ) , 3.0 , 361 , 20 , 0 , 25 , 2.5 , 1.0 , 3.0 , 0.0 , Some ( 1.0 ) , Some ( 3.0 ) , Some ( 10.0 ) , 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_purple" ) , * ATTACK_SOUND_LEVEL_S , * COLLISION_SOUND_ATTR_FIRE , * ATTACK_REGION_PUNCH ) ;
21
+ ATTACK ( fighter, 3 , 0 , Hash40 :: new ( "top" ) , 3.0 , 361 , 20 , 0 , 25 , 2.5 , 1.0 , 3.0 , 2.0 , Some ( 1.0 ) , Some ( 3.0 ) , Some ( 14.5 ) , 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_purple" ) , * ATTACK_SOUND_LEVEL_S , * COLLISION_SOUND_ATTR_FIRE , * ATTACK_REGION_PUNCH ) ;
22
+ AttackModule :: set_down_only ( boma, 3 , true ) ;
22
23
}
23
24
frame ( lua_state, 8.0 ) ;
24
25
if is_excute ( fighter) {
@@ -55,34 +56,53 @@ unsafe extern "C" fn mewtwo_attack_100_end_game(fighter: &mut L2CAgentBase) {
55
56
unsafe extern "C" fn mewtwo_attack_dash_game ( fighter : & mut L2CAgentBase ) {
56
57
let lua_state = fighter. lua_state_agent ;
57
58
let boma = fighter. boma ( ) ;
58
- sv_kinetic_energy ! ( set_speed_mul, fighter, FIGHTER_KINETIC_ENERGY_ID_MOTION , 0.85 ) ;
59
+ if is_excute ( fighter) {
60
+ sv_kinetic_energy ! ( set_speed_mul, fighter, FIGHTER_KINETIC_ENERGY_ID_MOTION , 0.85 ) ;
61
+ FighterAreaModuleImpl :: enable_fix_jostle_area ( boma, 8.5 , 3.0 ) ;
62
+ }
59
63
frame ( lua_state, 10.0 ) ;
60
64
if is_excute ( fighter) {
61
- ATTACK ( fighter, 0 , 0 , Hash40 :: new ( "top" ) , 12.0 , 54 , 67 , 0 , 80 , 5.5 , 0.0 , 10.0 , 16.299999 , Some ( 0.0 ) , Some ( 8.5 ) , Some ( 16.299999 ) , 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_purple" ) , * ATTACK_SOUND_LEVEL_L , * COLLISION_SOUND_ATTR_FIRE , * ATTACK_REGION_PUNCH ) ;
62
- ATTACK ( fighter, 1 , 0 , Hash40 :: new ( "top" ) , 9.0 , 60 , 57 , 0 , 80 , 2.5 , 0.0 , 10.0 , 13.0 , Some ( 0.0 ) , Some ( 10.0 ) , Some ( 6.0 ) , 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_purple" ) , * ATTACK_SOUND_LEVEL_M , * COLLISION_SOUND_ATTR_FIRE , * ATTACK_REGION_PUNCH ) ;
63
- ATTACK ( fighter, 2 , 0 , Hash40 :: new ( "top" ) , 9.0 , 60 , 57 , 0 , 80 , 5.0 , 0.0 , 6.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_purple" ) , * ATTACK_SOUND_LEVEL_M , * COLLISION_SOUND_ATTR_FIRE , * ATTACK_REGION_PUNCH ) ;
65
+ ATTACK ( fighter, 0 , 0 , Hash40 :: new ( "top" ) , 12.0 , 54 , 67 , 0 , 80 , 5.5 , 0.0 , 8.6 , 13.5 , 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_purple" ) , * ATTACK_SOUND_LEVEL_L , * COLLISION_SOUND_ATTR_FIRE , * ATTACK_REGION_PUNCH ) ;
66
+ ATTACK ( fighter, 1 , 0 , Hash40 :: new ( "top" ) , 9.0 , 60 , 57 , 0 , 80 , 4.3 , 0.0 , 8.2 , 5.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_purple" ) , * ATTACK_SOUND_LEVEL_M , * COLLISION_SOUND_ATTR_FIRE , * ATTACK_REGION_PUNCH ) ;
64
67
}
65
68
frame ( lua_state, 13.0 ) ;
69
+ FT_MOTION_RATE_RANGE ( fighter, 13.0 , 21.0 , 9.0 ) ;
66
70
if is_excute ( fighter) {
67
- ATTACK ( fighter, 0 , 0 , Hash40 :: new ( "top" ) , 7.0 , 60 , 60 , 0 , 77 , 4.0 , 0.0 , 10.0 , 16.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_purple" ) , * ATTACK_SOUND_LEVEL_S , * COLLISION_SOUND_ATTR_FIRE , * ATTACK_REGION_PUNCH ) ;
68
- ATTACK ( fighter, 1 , 0 , Hash40 :: new ( "top" ) , 6.0 , 70 , 60 , 0 , 77 , 2.5 , 0.0 , 10.0 , 13 .0, Some ( 0.0 ) , Some ( 10.0 ) , Some ( 8.0 ) , 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_purple" ) , * ATTACK_SOUND_LEVEL_S , * COLLISION_SOUND_ATTR_FIRE , * ATTACK_REGION_PUNCH ) ;
69
- ATTACK ( fighter , 2 , 0 , Hash40 :: new ( "top" ) , 6.0 , 70 , 60 , 0 , 77 , 5.0 , 0.0 , 6.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_purple" ) , * ATTACK_SOUND_LEVEL_S , * COLLISION_SOUND_ATTR_FIRE , * ATTACK_REGION_PUNCH ) ;
71
+ ATTACK ( fighter, 0 , 0 , Hash40 :: new ( "top" ) , 7.0 , 60 , 60 , 0 , 77 , 4.5 , 0.0 , 8.6 , 14.5 , 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_purple" ) , * ATTACK_SOUND_LEVEL_S , * COLLISION_SOUND_ATTR_FIRE , * ATTACK_REGION_PUNCH ) ;
72
+ ATTACK ( fighter, 1 , 0 , Hash40 :: new ( "top" ) , 6.0 , 70 , 60 , 0 , 77 , 3.7 , 0.0 , 8.2 , 6 .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_purple" ) , * ATTACK_SOUND_LEVEL_S , * COLLISION_SOUND_ATTR_FIRE , * ATTACK_REGION_PUNCH ) ;
73
+ FighterAreaModuleImpl :: enable_fix_jostle_area ( boma , 3.5 , 3.0 ) ;
70
74
}
71
- frame ( lua_state, 21.0 ) ;
75
+ frame ( lua_state, 21.0 ) ; //43
76
+ FT_MOTION_RATE ( fighter, 1.0 ) ;
72
77
if is_excute ( fighter) {
73
78
AttackModule :: clear_all ( boma) ;
74
79
}
75
- frame ( lua_state, 22.0 ) ;
76
- FT_MOTION_RATE ( fighter, 7.0 /( 25.0 -22.0 ) ) ;
77
- frame ( lua_state, 25.0 ) ;
78
- FT_MOTION_RATE ( fighter, 1.0 ) ;
80
+ }
79
81
82
+ unsafe extern "C" fn mewtwo_attack_dash_effect ( fighter : & mut L2CAgentBase ) {
83
+ let lua_state = fighter. lua_state_agent ;
84
+ let boma = fighter. boma ( ) ;
85
+ frame ( lua_state, 9.0 ) ;
86
+ if is_excute ( fighter) {
87
+ LANDING_EFFECT ( fighter, Hash40 :: new ( "sys_h_smoke_a" ) , Hash40 :: new ( "top" ) , 0 , 0 , 2 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , false ) ;
88
+ }
89
+ frame ( lua_state, 10.0 ) ;
90
+ if is_excute ( fighter) {
91
+ EFFECT_FLW_POS ( fighter, Hash40 :: new ( "mewtwo_pk_attack_e" ) , Hash40 :: new ( "haver" ) , 1.9 * PostureModule :: lr ( boma) , 0 , 0 , 0 , 0 , 0 , 0.9 , true ) ;
92
+ EffectModule :: enable_sync_init_pos_last ( boma) ;
93
+ //LAST_EFFECT_SET_RATE(fighter, 1.5);
94
+ }
95
+ frame ( lua_state, 21.0 ) ;
96
+ if is_excute ( fighter) {
97
+ EffectModule :: kill_kind ( boma, Hash40 :: new ( "mewtwo_pk_attack_e" ) , true , true ) ;
98
+ }
80
99
}
81
100
82
101
pub fn install ( ) {
83
102
smashline:: Agent :: new ( "mewtwo" )
84
103
. acmd ( "game_attack11" , mewtwo_attack_11_game)
85
104
. acmd ( "game_attack100end" , mewtwo_attack_100_end_game)
86
105
. acmd ( "game_attackdash" , mewtwo_attack_dash_game)
106
+ . acmd ( "effect_attackdash" , mewtwo_attack_dash_effect)
87
107
. install ( ) ;
88
108
}
0 commit comments