Creating a State Based Boss Fight

I’m attempting to create a Boss Fight where the boss will have different stages it will go through for it’s attack. So it will switch between attacks which will be states, and then maybe even when it gets to low enough health, go through some different attacks. The only problem is I’m not exactly sure what would be the best way to go about this considering normally when not using a Game Engine like Unreal, I’d have a enum for example with all the states the boss has and then I’ll just randomly switch between them, with each state having it’s own functionality but I’m not sure if I should do the same in Unreal considering it’s likely got much better features for doing this type of thing.

Like the Behavior Tree, I know I likely should be using that but how exactly should I go about using it? Should I create custom tasks that will for example change values within the Bosses AI Controller that are used to determine what state the boss is in? Or have the tasks themselves be the states with all the functionality for the tasks (Firing, moving) programmed into them?

It’s quite a broad question I know but any advice would be very much appreciated.

i havent tried to do this in a behavior tree but i imagine its totally possible. my first thought would be to use a blackboard decorator and have a value that determines which phase your in.