{
	"format_version": "1.10.0",
	"animation_controllers": {
		"controller.animation.shapescape_mb.endershulk_boss.states": {
			"states": {
				"default": {
					"animations": ["hide_portal", "idle"],
					"transitions": [
						{
							"opening": "q.property('shapescape_mb:state') == 'opening'"
						},
						{
							"death": "q.is_sheared"
						}
					],
					"blend_transition": 0.2
				},
				"opening": {
					"animations": ["hide_portal", "open"],
					"transitions": [
						{
							"open": "query.all_animations_finished"
						},
						{
							"death": "q.is_sheared"
						}
					],
					"blend_transition": 0.2
				},
				"open": {
					"animations": ["hide_portal", "open_idle"],
					"transitions": [
						{
							"default": "q.property('shapescape_mb:state') == 'closed'"
						},
						{
							"death": "q.is_sheared"
						}
					]
				},
				"death": {
					"animations": ["death"]
				}
			}
		},
		"controller.animation.shapescape_mb.endershulk.states_of_fighting": {
			"states": {
				"default": {
					"animations": ["open_idle", "hide_projectiles", "hide_eyelids"],
					"transitions": [
						{
							"tp_preparation": "q.property('shapescape_mb:choose_attack') == 'tp_preparation'"
						},
						{
							"push_away": "q.property('shapescape_mb:choose_attack') == 'push_away_preparation'"
						},
						{
							"ranged_attack_preparation": "q.property('shapescape_mb:choose_attack') == 'ranged_attack_preparation'"
						}
					],
					"blend_transition": 0.2
				},
				// Tp away from player
				"tp_preparation": {
					"animations": ["disappear"],
					"transitions": [
						{
							"disappeared": "query.all_animations_finished"
						}
					]
				},
				"disappeared": {
					"animations": ["disappeared"],
					"transitions": [
						{
							"tp_executed": "q.property('shapescape_mb:choose_attack') == 'tp_away_from_player' || q.property('shapescape_mb:choose_attack') == 'tp_to_player' "
						},
						{
							"default": "q.property('shapescape_mb:choose_attack') == 'idle'"
						}
					],
					"blend_transition": 0.2
				},
				"tp_executed": {
					"animations": ["appear"],
					"transitions": [
						{
							"default": "query.all_animations_finished || q.property('shapescape_mb:choose_attack') == 'idle'"
						}
					],
					"blend_transition": 0.2
				},
				// Push away
				"push_away": {
					"animations": ["knockback"],
					"transitions": [
						{
							"default": "query.all_animations_finished"
						}
					],
					"blend_transition": 0.2
				},

				// Ranged attack
				"ranged_attack_preparation": {
					"animations": ["summon_projectiles"],
					"transitions": [
						{
							"idle_projectiles": "query.all_animations_finished"
						},
						{
							"default": "query.all_animations_finished && !q.has_target"
						}
					],
					"blend_transition": 0.2
				},
				"idle_projectiles": {
					"animations": ["open_idle", "idle_projectiles", "hide_eyelids"],
					"transitions": [
						{
							"ranged_attack_execute_1": "query.variant == 1"
						},
						{
							"default": "!q.has_target || q.property('shapescape_mb:choose_attack') == 'idle'"
						}
					],
					"blend_transition": 0.1
				},
				"ranged_attack_execute_1": {
					"animations": [
						"open_idle",
						"idle_projectiles",
						"hide_eyelids",
						"hide_projectile_bot_right"
					],
					"transitions": [
						{
							"ranged_attack_execute_2": "query.variant == 2"
						},
						{
							"default": "!q.has_target || q.property('shapescape_mb:choose_attack') == 'idle'"
						}
					],
					"blend_transition": 0.1
				},
				"ranged_attack_execute_2": {
					"animations": [
						"open_idle",
						"idle_projectiles",
						"hide_projectile_top_left",
						"hide_projectile_bot_right",
						"hide_eyelids"
					],
					"transitions": [
						{
							"ranged_attack_execute_3": "query.variant == 3"
						},
						{
							"default": "!q.has_target || q.property('shapescape_mb:choose_attack') == 'idle'"
						}
					],
					"blend_transition": 0.1
				},
				"ranged_attack_execute_3": {
					"animations": [
						"open_idle",
						"idle_projectiles",
						"hide_projectile_top_left",
						"hide_projectile_top_right",
						"hide_projectile_bot_right",
						"hide_eyelids"
					],
					"transitions": [
						{
							"ranged_attack_execute_4": "query.variant  == 4 || !q.property('shapescape_mb:choose_attack') == 'ranged_attack_preparation'"
						},
						{
							"default": "!q.has_target || q.property('shapescape_mb:choose_attack') == 'idle'"
						}
					],
					"blend_transition": 0.1
				},
				"ranged_attack_execute_4": {
					"animations": [
						"open_idle",
						"idle_projectiles",
						"hide_projectile_top_left",
						"hide_projectile_bot_left",
						"hide_projectile_top_right",
						"hide_projectile_bot_right",
						"hide_eyelids"
					],
					"transitions": [
						{
							"default": "query.variant == 0 || !q.property('shapescape_mb:choose_attack') == 'ranged_attack_preparation'"
						}
					],
					"blend_transition": 0.1
				}
			}
		}
	}
}
