Hi,
I watched the video you referenced.
I think it is much simpler than all the weird stuff you have
So your boss is doing 2 things. 1) Moving after player and 2) Sometimes dashes at player.
So here is my suggestion to you:
Create 2 GLOBAL variables:
1) BOSS_moving = 1
2) BOSS_dashing = 0
Then you don't need all this direction stuff. The boss is simply going after the player in the video you referenced. So you simply say:
CONDITION #1: Player.X less than BOSS.X
and CONDITION #2: BOSS_moving = 1
ACTION = BOSS go left
CONDITION #1: Player.X more than BOSS.X
and CONDITION #2: BOSS_moving = 1
ACTION = BOSS go right
that's all there is to it for Part 1.
Then you have your Part 2: the dashing business. For this you simply say:
CONDITION #1: using SYSTEM every random(2,5) seconds
CONDITION #2: BOSS_moving = 1
ACTION #1: set BOSS_moving = 0
ACTION #2: set BOSS_dashing = 1
CONDITION: using SYSTEM >>> BOSS_dashing = 1
ACTION: BOSS super dash attack badaboom badabang
CONDITION: on end of animation of big BOSS badaboom
ACTION #1: set BOSS_moving = 1
ACTION #2: set BOSS_dashing = 0
And that's all there is to it