[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.