Skip to content

Commit 685e388

Browse files
authored
Merge pull request #2257 from jaccob101/mewtwo-tp-jump
Mewtwo Adjustments
2 parents f3e2580 + 6b483e4 commit 685e388

File tree

15 files changed

+491
-159
lines changed

15 files changed

+491
-159
lines changed

dynamic/src/consts.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -867,9 +867,8 @@ pub mod vars {
867867
pub mod mewtwo {
868868
pub mod instance {
869869
// flags
870-
pub const GROUNDED_TELEPORT: i32 = 0x0100;
871-
pub const UP_SPECIAL_JUMP_REFRESH: i32 = 0x0101;
872-
pub const UP_SPECIAL_FREEFALL: i32 = 0x0102;
870+
pub const TELEPORT_CANCEL: i32 = 0x0100;
871+
pub const UP_SPECIAL_FREEFALL: i32 = 0x0101;
873872
}
874873
}
875874

fighters/common/src/function_hooks/set_fighter_status_data.rs

+2
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,8 @@ unsafe fn set_fighter_status_data_hook(boma: &mut BattleObjectModuleAccessor, ar
7070
&& (WorkModule::get_int(boma, *FIGHTER_INSTANCE_WORK_ID_INT_WAZA_CUSTOMIZE_TO) == *FIGHTER_WAZA_CUSTOMIZE_TO_SPECIAL_LW_3 && boma.is_status(*FIGHTER_STATUS_KIND_SPECIAL_LW)))
7171
|| (boma.kind() == *FIGHTER_KIND_TRAIL
7272
&& boma.is_status_one_of(&[*FIGHTER_TRAIL_STATUS_KIND_SPECIAL_N2, *FIGHTER_STATUS_KIND_SPECIAL_LW]))
73+
|| (boma.kind() == *FIGHTER_KIND_MEWTWO
74+
&& boma.is_status_one_of(&[*FIGHTER_STATUS_KIND_SPECIAL_LW]))
7375
{
7476
// if b-reverse flag does not already exist in status_attr bitmask
7577
if status_attr & *FIGHTER_STATUS_ATTR_START_TURN as u32 == 0 {

fighters/mewtwo/src/acmd/aerials.rs

+82-15
Large diffs are not rendered by default.

fighters/mewtwo/src/acmd/ground.rs

+33-13
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ unsafe extern "C" fn mewtwo_attack_11_game(fighter: &mut L2CAgentBase) {
1818
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);
1919
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);
2020
//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);
2223
}
2324
frame(lua_state, 8.0);
2425
if is_excute(fighter) {
@@ -55,34 +56,53 @@ unsafe extern "C" fn mewtwo_attack_100_end_game(fighter: &mut L2CAgentBase) {
5556
unsafe extern "C" fn mewtwo_attack_dash_game(fighter: &mut L2CAgentBase) {
5657
let lua_state = fighter.lua_state_agent;
5758
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+
}
5963
frame(lua_state, 10.0);
6064
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);
6467
}
6568
frame(lua_state, 13.0);
69+
FT_MOTION_RATE_RANGE(fighter, 13.0, 21.0, 9.0);
6670
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);
7074
}
71-
frame(lua_state, 21.0);
75+
frame(lua_state, 21.0); //43
76+
FT_MOTION_RATE(fighter, 1.0);
7277
if is_excute(fighter) {
7378
AttackModule::clear_all(boma);
7479
}
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+
}
7981

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+
}
8099
}
81100

82101
pub fn install() {
83102
smashline::Agent::new("mewtwo")
84103
.acmd("game_attack11", mewtwo_attack_11_game)
85104
.acmd("game_attack100end", mewtwo_attack_100_end_game)
86105
.acmd("game_attackdash", mewtwo_attack_dash_game)
106+
.acmd("effect_attackdash", mewtwo_attack_dash_effect)
87107
.install();
88108
}

fighters/mewtwo/src/acmd/smashes.rs

+23
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,28 @@ unsafe extern "C" fn mewtwo_attack_hi4_game(fighter: &mut L2CAgentBase) {
125125

126126
}
127127

128+
unsafe extern "C" fn mewtwo_attack_hi4_effect(fighter: &mut L2CAgentBase) {
129+
let lua_state = fighter.lua_state_agent;
130+
let boma = fighter.boma();
131+
if is_excute(fighter) {
132+
EFFECT(fighter, Hash40::new("sys_smash_flash"), Hash40::new("top"), 0, 13, 10, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, true);
133+
}
134+
frame(lua_state, 6.0);
135+
if is_excute(fighter) {
136+
EFFECT_FOLLOW_FLIP(fighter, Hash40::new("mewtwo_pk_hand"), Hash40::new("mewtwo_pk_hand"), Hash40::new("havel"), -1, 0, 1.3, 0, 0, 0, 0.7, true, *EF_FLIP_YZ);
137+
}
138+
frame(lua_state, 8.0);
139+
if is_excute(fighter) {
140+
EFFECT_OFF_KIND(fighter, Hash40::new("mewtwo_pk_hand"), false, false);
141+
EFFECT_FOLLOW_NO_STOP_FLIP(fighter, Hash40::new("mewtwo_pk_attack_a"), Hash40::new("mewtwo_pk_attack_a"), Hash40::new("top"), -2.5, 21.5, 0, 0, 0, 0, 0.95, true, *EF_FLIP_YZ);
142+
LAST_EFFECT_SET_RATE(fighter, 1.2);
143+
}
144+
frame(lua_state, 9.0);
145+
if is_excute(fighter) {
146+
LANDING_EFFECT(fighter, Hash40::new("sys_landing_smoke"), Hash40::new("top"), 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, false);
147+
}
148+
}
149+
128150
unsafe extern "C" fn mewtwo_attack_lw4_game(fighter: &mut L2CAgentBase) {
129151
let lua_state = fighter.lua_state_agent;
130152
let boma = fighter.boma();
@@ -155,6 +177,7 @@ pub fn install() {
155177
.acmd("game_attacks4", mewtwo_attack_s4_s_game)
156178
.acmd("game_attacks4lw", mewtwo_attack_s4_lw_game)
157179
.acmd("game_attackhi4", mewtwo_attack_hi4_game)
180+
.acmd("effect_attackhi4", mewtwo_attack_hi4_effect)
158181
.acmd("game_attacklw4", mewtwo_attack_lw4_game)
159182
.install();
160183
}

fighters/mewtwo/src/acmd/specials.rs

+40-3
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,14 @@ use super::*;
44
unsafe extern "C" fn mewtwo_special_s_game(fighter: &mut L2CAgentBase) {
55
let lua_state = fighter.lua_state_agent;
66
let boma = fighter.boma();
7+
frame(lua_state, 8.0);
8+
if is_excute(fighter) {
9+
shield!(fighter, *MA_MSC_CMD_SHIELD_ON, *COLLISION_KIND_REFLECTOR, *FIGHTER_MEWTWO_REFLECTOR_KIND_REFLECTOR, *FIGHTER_REFLECTOR_GROUP_EXTEND);
10+
}
711
frame(lua_state, 12.0);
812
if is_excute(fighter) {
913
CATCH(fighter, 0, Hash40::new("top"), 7.4, 0.0, 8.4, 17.0, None, None, None, *FIGHTER_STATUS_KIND_MEWTWO_THROWN, *COLLISION_SITUATION_MASK_GA);
1014
CATCH(fighter, 1, Hash40::new("top"), 10.2, 0.0, 8.4, 17.0, None, None, None, *FIGHTER_STATUS_KIND_MEWTWO_THROWN, *COLLISION_SITUATION_MASK_G);
11-
shield!(fighter, *MA_MSC_CMD_SHIELD_ON, *COLLISION_KIND_REFLECTOR, *FIGHTER_MEWTWO_REFLECTOR_KIND_REFLECTOR, *FIGHTER_REFLECTOR_GROUP_EXTEND);
1215
ATTACK_ABS(fighter, *FIGHTER_ATTACK_ABSOLUTE_KIND_THROW, 0, 0.0, 280, 16, 0, 50, 0.0, 1.0, *ATTACK_LR_CHECK_F, 0.0, true, Hash40::new("collision_attr_normal"), *ATTACK_SOUND_LEVEL_S, *COLLISION_SOUND_ATTR_NONE, *ATTACK_REGION_THROW);
1316
ATTACK_ABS(fighter, *FIGHTER_ATTACK_ABSOLUTE_KIND_CATCH, 0, 0.0, 361, 100, 0, 100, 0.0, 1.0, *ATTACK_LR_CHECK_F, 0.0, false, Hash40::new("collision_attr_normal"), *ATTACK_SOUND_LEVEL_S, *COLLISION_SOUND_ATTR_NONE, *ATTACK_REGION_THROW);
1417
ATTACK_ABS(fighter, *FIGHTER_ATTACK_ABSOLUTE_KIND_THROW_MEWTWO, 0, 1.0, 280, 50, 0, 100, 0.0, 1.0, *ATTACK_LR_CHECK_F, 0.0, true, Hash40::new("collision_attr_normal"), *ATTACK_SOUND_LEVEL_S, *COLLISION_SOUND_ATTR_NONE, *ATTACK_REGION_THROW);
@@ -28,10 +31,10 @@ unsafe extern "C" fn mewtwo_special_s_game(fighter: &mut L2CAgentBase) {
2831
ATK_HIT_ABS(fighter, *FIGHTER_ATTACK_ABSOLUTE_KIND_THROW_MEWTWO, Hash40::new("throw"), target, target_group, target_no);
2932
}
3033
}
31-
frame(lua_state, 36.0);
34+
frame(lua_state, 32.0);
3235
if is_excute(fighter) {
3336
shield!(fighter, *MA_MSC_CMD_SHIELD_OFF, *COLLISION_KIND_REFLECTOR, *FIGHTER_MEWTWO_REFLECTOR_KIND_REFLECTOR, *FIGHTER_REFLECTOR_GROUP_EXTEND);
34-
WorkModule::on_flag(boma, *FIGHTER_MEWTWO_STATUS_SPECIAL_S_FLAG_GRAVITY_NORMAL);
37+
fighter.on_flag(*FIGHTER_MEWTWO_STATUS_SPECIAL_S_FLAG_GRAVITY_NORMAL);
3538
}
3639
frame(lua_state, 40.0);
3740
if is_excute(fighter) {
@@ -40,6 +43,38 @@ unsafe extern "C" fn mewtwo_special_s_game(fighter: &mut L2CAgentBase) {
4043
}
4144
}
4245

46+
unsafe extern "C" fn mewtwo_special_s_effect(fighter: &mut L2CAgentBase) {
47+
let lua_state = fighter.lua_state_agent;
48+
let boma = fighter.boma();
49+
frame(lua_state, 6.0);
50+
if is_excute(fighter) {
51+
EFFECT_FOLLOW_FLIP(fighter, Hash40::new("mewtwo_pk_hand"), Hash40::new("mewtwo_pk_hand"), Hash40::new("havel"), -1.5, 0, 2, 0, 0, 0, 0.4, true, *EF_FLIP_YZ);
52+
}
53+
frame(lua_state, 10.0);
54+
if is_excute(fighter) {
55+
EFFECT_FOLLOW_NO_STOP(fighter, Hash40::new("mewtwo_nenriki"), Hash40::new("top"), 0, 9, 17, 0, 90, 0, 0.45, true);
56+
EffectModule::enable_sync_init_pos_last(boma);
57+
}
58+
frame(lua_state, 14.0);
59+
if is_excute(fighter) {
60+
LANDING_EFFECT(fighter, Hash40::new("sys_dash_smoke"), Hash40::new("top"), -5, 0, 0, 0, 0, 0, 0.7, 0, 0, 0, 0, 0, 0, false);
61+
}
62+
frame(lua_state, 20.0);
63+
if is_excute(fighter) {
64+
EFFECT_OFF_KIND(fighter, Hash40::new("mewtwo_pk_hand"), false, false);
65+
}
66+
frame(lua_state, 35.0);
67+
if is_excute(fighter) {
68+
EFFECT_OFF_KIND(fighter, Hash40::new("mewtwo_nenriki"), false, true);
69+
}
70+
}
71+
72+
unsafe extern "C" fn mewtwo_special_hi_start_game(fighter: &mut L2CAgentBase) {
73+
if is_excute(fighter) {
74+
GroundModule::set_correct(fighter.module_accessor, app::GroundCorrectKind(*GROUND_CORRECT_KIND_GROUND_CLIFF_STOP));
75+
}
76+
}
77+
4378
unsafe extern "C" fn mewtwo_special_air_hi_start_game(fighter: &mut L2CAgentBase) {
4479
let lua_state = fighter.lua_state_agent;
4580
let boma = fighter.boma();
@@ -100,6 +135,8 @@ unsafe extern "C" fn bindball_shoot_game(fighter: &mut L2CAgentBase) {
100135
pub fn install() {
101136
smashline::Agent::new("mewtwo")
102137
.acmd("game_specials", mewtwo_special_s_game)
138+
.acmd("effect_specials", mewtwo_special_s_effect)
139+
.acmd("game_specialhistart", mewtwo_special_hi_start_game)
103140
.acmd("game_specialairhistart", mewtwo_special_air_hi_start_game)
104141
.acmd("game_specialairhi", mewtwo_special_air_hi_game)
105142
.acmd("game_speciallw", mewtwo_special_lw_game)

fighters/mewtwo/src/acmd/throws.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ unsafe extern "C" fn mewtwo_throw_hi_game(fighter: &mut L2CAgentBase) {
88
ATTACK_ABS(fighter, *FIGHTER_ATTACK_ABSOLUTE_KIND_CATCH, 0, 3.0, 361, 100, 0, 40, 0.0, 1.0, *ATTACK_LR_CHECK_F, 0.0, true, Hash40::new("collision_attr_normal"), *ATTACK_SOUND_LEVEL_S, *COLLISION_SOUND_ATTR_NONE, *ATTACK_REGION_THROW);
99
}
1010
frame(lua_state, 43.0);
11-
FT_MOTION_RATE_RANGE(fighter, 43.0, 78.0, 28.0);
11+
FT_MOTION_RATE_RANGE(fighter, 43.0, 78.0, 27.0);
1212
if is_excute(fighter) {
1313
ATK_HIT_ABS(fighter, *FIGHTER_ATTACK_ABSOLUTE_KIND_THROW, Hash40::new("throw"), WorkModule::get_int64(boma, *FIGHTER_STATUS_THROW_WORK_INT_TARGET_OBJECT), WorkModule::get_int64(boma, *FIGHTER_STATUS_THROW_WORK_INT_TARGET_HIT_GROUP), WorkModule::get_int64(boma, *FIGHTER_STATUS_THROW_WORK_INT_TARGET_HIT_NO));
1414
AttackModule::clear_all(boma);

0 commit comments

Comments
 (0)