@@ -66,6 +66,86 @@ unsafe fn diddy_special_air_n_cancel_expression(fighter: &mut L2CAgentBase) {
66
66
let boma = fighter. boma ( ) ;
67
67
}
68
68
69
+ #[ acmd_script( agent = "kirby" , scripts = [ "game_edgespecialnstart" , "game_edgespecialairnstart" ] , category = ACMD_GAME , low_priority) ]
70
+ unsafe fn edge_special_n_start ( fighter : & mut L2CAgentBase ) {
71
+ let lua_state = fighter. lua_state_agent ;
72
+ let boma = fighter. boma ( ) ;
73
+ frame ( lua_state, 20.0 ) ;
74
+ FT_MOTION_RATE_RANGE ( fighter, 20.0 , 32.0 , 8.0 ) ;
75
+ if is_excute ( fighter) {
76
+ WorkModule :: set_int ( boma, * FIGHTER_EDGE_SPECIAL_N_S , * FIGHTER_EDGE_STATUS_SPECIAL_N_WORK_INT_CHARGE_KIND ) ;
77
+ }
78
+ frame ( lua_state, 32.0 ) ;
79
+ FT_MOTION_RATE_RANGE ( fighter, 32.0 , 79.0 , 51.0 ) ;
80
+ if is_excute ( fighter) {
81
+ WorkModule :: set_int ( boma, * FIGHTER_EDGE_SPECIAL_N_M , * FIGHTER_EDGE_STATUS_SPECIAL_N_WORK_INT_CHARGE_KIND ) ;
82
+ }
83
+ frame ( lua_state, 79.0 ) ;
84
+ FT_MOTION_RATE ( fighter, 1.2 ) ;
85
+ frame ( lua_state, 99.0 ) ;
86
+ FT_MOTION_RATE ( fighter, 1.0 ) ;
87
+ frame ( lua_state, 100.0 ) ;
88
+ if is_excute ( fighter) {
89
+ WorkModule :: set_int ( boma, * FIGHTER_EDGE_SPECIAL_N_L , * FIGHTER_EDGE_STATUS_SPECIAL_N_WORK_INT_CHARGE_KIND ) ;
90
+ }
91
+ frame ( lua_state, 105.0 ) ;
92
+ FT_MOTION_RATE ( fighter, 1.6 ) ;
93
+ frame ( lua_state, 115.0 ) ;
94
+ FT_MOTION_RATE ( fighter, 1.0 ) ;
95
+ frame ( lua_state, 120.0 ) ;
96
+ if is_excute ( fighter) {
97
+ ArticleModule :: generate_article ( boma, * FIGHTER_EDGE_GENERATE_ARTICLE_FIRE , false , -1 ) ;
98
+ }
99
+ frame ( lua_state, 140.0 ) ;
100
+ if is_excute ( fighter) {
101
+ WorkModule :: on_flag ( boma, * FIGHTER_EDGE_STATUS_SPECIAL_N_FLAG_ENABLE_FALL_SPEED ) ;
102
+ }
103
+ }
104
+
105
+ #[ acmd_script( agent = "kirby" , scripts = [ "game_edgespecialn1" , "game_edgespecialairn1" ] , category = ACMD_GAME , low_priority) ]
106
+ unsafe fn edge_special_n1_game ( fighter : & mut L2CAgentBase ) {
107
+ let lua_state = fighter. lua_state_agent ;
108
+ let boma = fighter. boma ( ) ;
109
+ frame ( lua_state, 1.0 ) ;
110
+ FT_MOTION_RATE_RANGE ( fighter, 1.0 , 11.0 , 13.0 ) ;
111
+ frame ( lua_state, 11.0 ) ;
112
+ FT_MOTION_RATE ( fighter, 1.0 ) ;
113
+ frame ( lua_state, 13.0 ) ;
114
+ if is_excute ( fighter) {
115
+ ArticleModule :: generate_article ( boma, * FIGHTER_EDGE_GENERATE_ARTICLE_FIRE , false , 0 ) ;
116
+ }
117
+ frame ( lua_state, 15.0 ) ;
118
+ FT_MOTION_RATE_RANGE ( fighter, 15.0 , 35.0 , 5.0 ) ;
119
+ frame ( lua_state, 35.0 ) ;
120
+ FT_MOTION_RATE ( fighter, 1.0 ) ;
121
+ if is_excute ( fighter) {
122
+ WorkModule :: on_flag ( boma, * FIGHTER_EDGE_STATUS_SPECIAL_N_FLAG_ENABLE_FALL_SPEED ) ;
123
+ }
124
+
125
+ }
126
+
127
+ #[ acmd_script( agent = "kirby" , scripts = [ "game_edgespecialn2" , "game_edgespecialairn2" ] , category = ACMD_GAME , low_priority) ]
128
+ unsafe fn edge_special_n2_game ( fighter : & mut L2CAgentBase ) {
129
+ let lua_state = fighter. lua_state_agent ;
130
+ let boma = fighter. boma ( ) ;
131
+ frame ( lua_state, 1.0 ) ;
132
+ FT_MOTION_RATE_RANGE ( fighter, 1.0 , 11.0 , 13.0 ) ;
133
+ frame ( lua_state, 11.0 ) ;
134
+ FT_MOTION_RATE ( fighter, 1.0 ) ;
135
+ frame ( lua_state, 13.0 ) ;
136
+ if is_excute ( fighter) {
137
+ ArticleModule :: generate_article ( boma, * FIGHTER_EDGE_GENERATE_ARTICLE_FIRE , false , 0 ) ;
138
+ }
139
+ frame ( lua_state, 35.0 ) ;
140
+ FT_MOTION_RATE ( fighter, 0.4 ) ;
141
+ if is_excute ( fighter) {
142
+ WorkModule :: on_flag ( boma, * FIGHTER_EDGE_STATUS_SPECIAL_N_FLAG_ENABLE_FALL_SPEED ) ;
143
+ }
144
+ frame ( lua_state, 60.0 ) ;
145
+ FT_MOTION_RATE ( fighter, 1.0 ) ;
146
+
147
+ }
148
+
69
149
#[ acmd_script( agent = "kirby" , script = "game_ganonfloatstart" , category = ACMD_GAME , low_priority) ]
70
150
unsafe fn ganon_float_start_game ( fighter : & mut L2CAgentBase ) {
71
151
let lua_state = fighter. lua_state_agent ;
@@ -1678,6 +1758,9 @@ pub fn install() {
1678
1758
diddy_special_air_n_cancel_effect,
1679
1759
diddy_special_air_n_cancel_sound,
1680
1760
diddy_special_air_n_cancel_expression,
1761
+ edge_special_n_start,
1762
+ edge_special_n1_game,
1763
+ edge_special_n2_game,
1681
1764
ganon_float_start_game,
1682
1765
ganon_float_start_effect,
1683
1766
ganon_float_start_expression,
0 commit comments