[State -3, gravitational acceleration]
Type = Null
Trigger1 = fvar(3):= 0 || 1
Trigger1 = fvar(3):=(((EnemyNear(Root,var(59)),Anim != [5051,5059])&&(EnemyNear(Root,var(59)),Anim != [5061,5069]))&&(EnemyNear(Root,var(59)),StateNo = 5050))*25 || 1
Trigger1 = fvar(0):= Ceil((EnemyNear(Root,var(59)),Pos Y - fvar(2) - fvar(1) )*1000.0)*(EnemyNear(Root,var(59)),Pos Y < fvar(3))/1000.0 || 1
Trigger1 = fvar(1):= EnemyNear(Root,var(59)),Pos Y - fvar(2) || 1
Trigger1 = fvar(2):= EnemyNear(Root,var(59)),Pos Y || 1
ignorehitpause = 1
And this in -2 state:[State -2, yaccel]
Type = VarSet
TriggerAll = NumHelper(999999)
TriggerAll = EnemyNear(var(59)),Vel Y != 0
TriggerAll = EnemyNear(var(59)),Pos Y < (((EnemyNear(var(59)),Anim != [5051,5059]) && (EnemyNear(var(59)),Anim != [5061,5069 ])) && (EnemyNear(var(59)),StateNo = 5050))*25
TriggerAll = fvar(20) != Helper(999999),fvar(0)
Trigger1 = EnemyNear(var(59)) ,StateNo != [5000,5210]
Trigger2 = EnemyNear(var(59)),MoveType != H
FV = 20
Value = Helper(999999),fvar(0)
IgnoreHitPause = 1
[State -2, yaccel]
Type = VarSet
TriggerAll = EnemyNear(var(59)),Vel Y != 0
TriggerAll = EnemyNear(var(59)),MoveType = H
TriggerAll = EnemyNear(var(59)),Pos Y < (((EnemyNear(var(59)),Anim != [5051,5059]) && (EnemyNear(var(59)),Anim != [5061,5069 ])) && (EnemyNear(var(59)),StateNo = 5050))*25
TriggerAll = fvar(20) != EnemyNear(var(59)),GetHitVar(yaccel)
Trigger1 = EnemyNear(var(59)),StateNo = [5000,5210]
FV = 20
Value = EnemyNear(var(59)),GetHitVar(yaccel)
IgnoreHitPause = 1
[State -2, yaccel]
Type = VarSet
Trigger1= fvar(20) != 0 && EnemyNear(var(59)),Vel Y = 0
FV = 20
Value = 0
IgnoreHitPause = 1
So, yeah, I solved the issue and made it work.